Molekyl database rammeverk: et rammeverk for å lage databaseapplikasjoner med kjemisk struktur søkefunksjon

Funksjonalitet

Nedenfor er en liste over kjernefunksjonaliteten TIL MDF:

  • Kjemisk struktur søk: Full, Sub, SMARTS, Likhet, Formel

  • Kjemiske struktur søk kan kombineres med eiendom søk

  • Kjemiske struktur søk er paged og bufret

  • Støtte for multi-komponent forbindelser (blandinger)

  • 3 kjemiske struktur søkbare enheter: Import og Eksport AV SD-Filer for over 3 enheter

  • Transaksjonsdatabasetilgang

  • Valgfri sikkerhet (autorisasjon)

MED UTFORMINGEN og funksjonaliteten TIL MDF er det mulig å bygge mange forskjellige typer system som registreringssystemer, lager systemer eller bare en enkel sammensatt database. Mens du kan også lage DIN EGEN ELN, det finnes også gratis Indigo ELN. DENNE ELN ble opprettet AV GGA Software Services og brukes På Pfizer .

I motsetning Til MolDB5R og MyMolDB , MDF ER ikke en fullt funksjonell frittstående web-applikasjon med kjemisk struktur søk. Som navnet antyder, er det et rammeverk for å forenkle å skape et slikt program. MDF kan også brukes til å lage lokale eller klient-server desktop applikasjoner. MDF er rettet mot programvareutviklere og ikke beregnet for bruk av forskere selv. MEN MDF-funksjonene er svært robuste. Kjemisk struktur søking er gjort i databasen og ikke programkoden. Derfor kan du søke etter kjemisk struktur og andre egenskaper samtidig, resultatene kan sorteres etter flere egenskaper og kan veksles (SQL OFFSET og LIMIT klausuler). Merk at hvis du gjør kjemisk struktur søk i programkode, vil enhver spørring kreve minst to turer til databasen, nemlig struktur søk og deretter filtrering av andre egenskaper, sortering og / eller begrensende. Begge må skje i samme transaksjon. Det ble ikke bestemt om MolDB5R og MyMolDB faktisk gjør dette i samme transaksjon.

I MDF kan kjemiske forbindelser knyttes til en inneholdbar, som i registreringssystemer vil være en batch eller i et lagersystem mye. En bestemt fysisk tilgjengelig prøve i en barkodet flaske kan da knyttes til en beholder. Disse beholderne kan også søkes etter kjemisk struktur. Dette er grunnlaget for å skape et lagersystem. Utviklere kan legge til så mange flere egenskaper som de ønsker å hver av enhetene og alle av dem er søkbare sammen med den kjemiske strukturen.

ALL datatilgang I MDF er transaksjonell for å hindre data inkonsekvenser. MDF kan konfigureres til å bruke en database tilkobling pool. Når du spør EN RDBMS opprette en tilkobling ofte tar mer tid enn selve spørringen, og dermed hvis du allerede har åpne tilkoblinger responstider kan reduseres.

FOR likhet søker MDF utsatt algoritmer levert Av Bingo Kassetten som Er Tanimoto, Tversky og Euklidsk metrisk for understell.

MDF er klar til Bruk Med Fjærsikkerhet. Sikkerhet er valgfritt. MDF tilbyr metode nivå sikkerhet (autorisasjon). Det tilbyr ikke noen autentiseringsfunksjoner.

Blanding håndtering

MDF støtter multi-komponent kjemiske forbindelser. Søk etter understruktur returnerer alle forbindelser som har minst en komponent (kjemisk struktur) som samsvarer med spørringsstrukturen. Dette er viktig fordi reaksjonsprodukter som kan inngå i et kjemisk registreringssystem er nesten alltid blandinger med mindre omfattende rensing er gjort.

hvis en oppføring i en importert SD-Fil består av flere frakoblede strukturer, antas det at denne oppføringen er en blanding og hver struktur lagres som en separat kjemisk struktur.

Struktur normalisering

SOM standard MDF lagrer kjemiske strukturer som de er sendt. MDF gjør ingen standardisering/normalisering av kjemiske strukturer. Det er opp til utvikleren å bruke MDF for å sikre at kjemiske strukturer er riktig normalisert før du lagrer dem i databasen. Det er for tiden foreslått at utviklere implementere en slik funksjon ved å overstyre preSave () metode For ChemicalCompoundServiceImpl. Denne metoden kalles før noen kjemisk forbindelse opprettes eller oppdateres. Innenfor denne metoden kan den kjemiske forbindelsen og alle kjemiske strukturer den består av, fritt manipuleres etter ønske. Merk at hver forbindelse som blir lagret, vil bli behandlet med denne metoden.

Salter, solvater og løsninger

MDF gjeldende versjon 1.0.1 har ingen spesiell håndtering for salter, solvater eller løsninger. MDF vil lagre separate komponenter i en kjemisk strukturfil som en separat kjemisk struktur. Derfor lagrer et salt som 1 = CC = CC = C1. vil bli representert som en blanding av de to ioner uten noen prosenter satt. Et eksakt struktursøk etter enten ion ville returnere dette saltet. Hvis saltet har en ladning større enn 1 og flere ioner forbundet med det som 1 = CC = C = C1.. saltet vil bli lagret som en blanding av 1 = CC = C = C1 og uten noen prosenter satt. Hvis den kjemiske strukturen er en enkelt ion, blir den lagret og søkbar som enhver annen kjemisk struktur. Hvis denne oppførselen er uegnet i et bestemt tilfelle, kan utviklere implementere salt-og solvathåndteringsfunksjonalitet i preSave () – metoden.

noen kommersielle systemer ser også ut til å ikke ha noen måte å håndtere løsninger på. Det anbefales å lage forbindelsen som om den var ren og legge til løsningsinformasjonen som separate felt på sammensatt nivå.

Eksempel webapplikasjon

en enkel webapplikasjon med MDF ble opprettet. Web-applikasjonen gjør Bruk Av Våren MVC. Programmet gjør ikke bruk av sikkerhetsintegrasjon, og det bruker ikke enhetene Containable og ChemicalCompoundContainer. Den bruker Bare ChemicalCompound enhet. Søknaden er en sammensatt database for flerkomponentforbindelser. Den har en side for å importere kjemiske strukturer I EN SD-fil inn i sammensatt database. Databasen kan søkes etter understruktur og egenskaper. Den bruker JSME for å tegne kjemiske strukturer(Figur 3). Søkeresultatsiden viser søketreffene i en tabellform og sidevekslet måte. Når et understruktursøk er gjort, vil understrukturen bli uthevet i søkeresultatene (Figur 4). Treff av et søk kan eksporteres som EN SD-fil. Søkeresultatene inneholder en kobling til en enkelt sammensatt visning. Egenskapene til forbindelsen kan redigeres og komposisjoner kan legges til, redigeres og slettes (Figur 5, 6). Når du redigerer en forbindelse eller en sammensetning programmet omhandler samtidige endringer transparent og konfliktløsning dialog vises der brukeren kan velge hvilke verdier som skal brukes for hver egenskap og deretter lagre den nye versjonen.

Figur 3
figure3

Søk side av eksempel web-applikasjon ved HJELP AV MDF. En bruker kan søke i sammensatt database ved kjemisk understruktur og / eller egenskaper som sammensatt navn eller CAS nummer.

figure4

resultat side av en understruktur søk. Resultatene vises i en paged tabell generert Av JQuery plugin datatables . De kjemiske strukturbildene har den matchende understrukturen uthevet i rødt. Ved å klikke i den kjemiske strukturen bildet vil vise SMILER for det.

figur 5
figure5

individuell sammensatt visning. Denne nettsiden viser en enkelt forbindelse. Forbindelsen kan redigeres eller slettes ved å klikke på den ifølge linken på siden. Det er en fane som viser alle inneholdt kjemiske strukturer og en fane for hver enkelt sammensetning forbindelsen består av.

figur 6
figure6

enkelt sammensetning. Viser samme side som Figur 5, men i stedet For Den Kombinerte Strukturfanen velges kategorien for den første sammensetningen. Sammensetningen kan redigeres ved å klikke på den ifølge linken på siden.

YTELSE

MDF har et hovedprestasjonsproblem ved håndtering av blandinger. Hvis et program bruker blandinger, dvs. forbindelser med flere komponenter, returnerer en kjemisk strukturspørring en rad for hver komponent i en forbindelse som samsvarer med spørringen. Dette er uønsket fordi sluttbrukerne vil se hver forbindelse som samsvarer med spørringen bare en gang. Løsningen på problemet er å bruke en tydelig spørring, og det er her ytelsesproblemet skjer. Hvis du utfører en distinkt spørring, må hele databasen søkes uavhengig av limit-klausul som i stor grad øker kjøretiden. Merk at sortering har samme effekt. Så sortering kan også ha en stor ytelsesstraff, og når du søker, bør du alltid sortere for å få et forutsigbart utfall. For å gjøre Dette enda verre Bingo Patron For PostgreSQL har ennå ikke en skikkelig implementering for kostnadsestimering og kostnadene for bruk av chemical structure index er hardkodet og undervurdert. Dette villeder PostgreSQL – spørringsplanen til alltid å bruke en full indeksskanning på struktursøkindeks, selv når spørringen har en ekstra where-klausul som i stor grad begrenser mengden resultater. I disse tilfellene vil det for eksempel være raskere å bruke indeksen FOR CAS-nummeret og Bruke Bingo matchsub-funksjonen for filtrering. Matchsub-funksjonen gjør understruktur matching uten indeks. Dette er selvsagt tregere enn med en indeks, men hvis det bare må gjøres for et lite antall strukturer, er det mye raskere enn hele indeksskanningen. FOR å løse problemet med kostnadsestimering, GJØR MDF noen interne beregninger for å eksplisitt bestemme om strukturindeksen eller matchsub-funksjonen brukes. Dette kan forbedre ytelsen med en størrelsesorden. Merk at leverandøren av Bingo-Kassetten er klar over dette problemet, og tidslinjen for reparasjonen var slutten av 2013. Hovedproblemet med forskjellige spørringer og sortering er imidlertid iboende hvordan relasjonsdatabaser fungerer og kan ikke løses unntatt med en bedre understruktur søkeindeks eller bedre maskinvare. MDF tilbyr også en innstilling for å deaktivere forskjellige spørringer hele programmet for enkeltkomponent sammensatte databaser.

FOR Å benchmark MDF ble den tidligere skisserte webapplikasjonen brukt. Databasen inneholder 525573 unike forbindelser. Forbindelsene er Fra Sink undergruppe 13 ved referanse pH 7 SD-filer 13_p0. 0.sdf, 13_p0. 1.sdf, 13_p0.10.sdf og 13_p0. 11.sdf. Strukturene lagres i databasen SOM SMILER. Importere HVER AV SD-filer, som inneholder ca 131 ‘ 000 kjemiske strukturer, tok 12 min med kjemisk struktur søkeindeksen deaktivert. Ombygging indeksen ETTER AT ALLE SD-filer ble importert tok 22 min på en bærbar pc med 4 GB RAM, Core I5-3220M CPU OG En 512gb Samsung 830 SSD. Det utgjør 1 h 10 min for å sette opp en fullt indeksert database med en halv million forbindelser. Som en ekstra referanse ble samme import gjort på en stasjonær PC med 12 GB RAM, i7-875k @ 3.4 GHz og databasen som kjører På En Western Digital Green Drive (5400 RPM). Her tok importen 8 min, og konklusjonen er at importen ER CPU begrenset i stedet for å være begrenset av lagringshastighet. Indeksen generasjon tok ca 22 min på den bærbare datamaskinen og 20 min på skrivebordet. Konklusjonen her er at DEN er begrenset mer AV CPU, men kjørehastigheten er også viktig. Import – og indeksgenereringsytelsen ved lagring av strukturer som molfiler ble ikke benchmarked.

underkonstruksjonssøkytelsen ble benchmarked med forskjellige konfigurasjonsinnstillinger. Substructure søk er gjort Av Bingo PostgreSQL cartridge og dette benchmark reflekterer derfor ytelsen pluss eventuelle overhead forårsaket AV MDF. Med unntak av c1ccccc1 forfatteren trakk kjemiske strukturer uten spesifikk betydning og testet søkehastigheten. Søkehastigheten ble bestemt av logbacks implementering av org.slf4j. profiler.Profiler.

den første referansen er en referanse. Denne referansen brukte muligheten til å deaktivere alle forskjellige spørringer og ingen sortering ble gjort. MDF utfører en telling av totale treff ved første forekomst av et kjemisk struktursøk, og tellingen bufres, noe som fører til at den første siden lastes langsommere enn etterfølgende sider. Hver side inneholder 4 poster. Resultatene er vist I Tabell 2 sortert stigende etter antall treff.

Tabell 2 Substruktur søk ytelse

referansen ble gjentatt, men denne gangen med forskjellige spørringer aktivert. Lastetiden for første side dobles fordi tellespørringen kjøres, og deretter kjøres den faktiske spørringen, som tar omtrent samme tid som tellespørringen på grunn av den distinkte klausulen. Den andre siden tar alltid halvparten av tiden å laste i forhold til den første siden av samme grunn(Tabell 3). Antall treff er identisk Med De I Tabell 2 fordi alle forbindelser i databasen bestar av bare en komponent.

Tabell 3 Substruktur søk ytelse med distinkte resultater

Resultatene viser At Bingo gjør ingen optimaliseringer for en vanlig substruktur spørring som en benzen ring og dermed søker etter c1ccccc1 i en database der nesten alle molekyler har dette funksjonen er veldig treg . For å forbedre søkehastigheten i et slikt scenario anbefales filtrering av flere egenskaper. Derfor ble referansen gjentatt med et ekstra filter av sammensatt navn som begynte med «ZINC34».Tabell 4 viser FORDELEN MED MDF-optimalisering som en løsning på kostnadsestimeringsproblemet I Bingo PostgreSQL-kassetten. Uten denne optimaliseringen ville referanseindeksen ha samme ytelse som vist i Tabell 3.

Tabell 4 Understruktur søk med distinkt spørring og ekstra filter ‘ZINC34%’ på sammensatte navn

MDF bruker Også Bingo Patroner likhet søker funksjonalitet. Dens ytelse ble testet ved å søke etter forbindelser med en likhetspoeng på 0,9 ved Hjelp Av Tanimoto likhetsmål også kjent som Jaccard-Indeksen . Resultatene er vist i Tabell 5.

Tabell 5 Tanimoto likhet søk ytelse: treff med minst 90% likhet

Outlook

For å generere kjemiske struktur skildringer Indigo toolkit brukes. Verktøykassen kan konfigureres til å generere strukturer på mange måter, inkludert farging av heteroatomer, bindingslengde og bredde og mange flere. Foreløpig er dette hardkodet og kan ikke justeres av brukeren. Et neste skritt ville være å avsløre disse konfigurasjonsalternativene, slik at de kan settes gjennom En Java properties-fil. Også håndtering av salter og solvater må implementeres for Å gjøre MDF brukbar i områder hvor slike forbindelser er viktige.

FOR Å gjøre BRUK AV MDF må du kunne programmere I Java, og du trenger grunnleggende kunnskaper Om Spring framework og hvordan du konfigurerer Det. Dette begrenser målgruppen. NÅR DU bruker MDF, må du skrive noen kjeleplatekode, og dermed vil neste skritt være å lage ekstra verktøy for å lette bruken av MDF som automatisk generering av enhetsklasser og deres lagre og tjenester. Disse verktøyene må konfigureres slik at en bruker kan definere ønskede egenskaper for hver av enhetene og de ønskede søkemetoder. Et alternativ ville være en maven plugin. Maven plugins kan generere kode som metamodel etableringen gjort Av QueryDSL-maven plugin. Et annet alternativ ville være merknader som genererer kode på kompilere som Project Lombok gjør .

det siste trinnet vil være å lage en webapplikasjonsplattform som lar administratorer opprette nye webapplikasjoner med kjemisk struktur søkefunksjon ved å skrive inn de ønskede egenskapene for enhetene på et webskjema og klikke på en knapp. Det er åpenbart at dette vil kreve en betydelig utviklingsinnsats.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.