Molekyldatabaseramme: en ramme til oprettelse af databaseapplikationer med kemisk struktur søgefunktion

funktionalitet

nedenfor er en liste over kernefunktionaliteten i MDF:

  • kemisk struktur søgning: Fuld, Sub, SMARTS, lighed, formel

  • kemisk struktur søgninger kan kombineres med ejendomssøgninger

  • kemisk struktur søgninger er paged og cachelagret

  • støtte til multi-komponent forbindelser (blandinger)

  • 3 kemisk struktur søgbare enheder: ChemicalCompound, Containable and ChemicalCompoundContainer

  • Import og eksport af SD-filer til over 3 enheder

  • Transaktionsdatabaseadgang

  • valgfri sikkerhed (autorisation)

med design og funktionalitet af MDF er det muligt at opbygge mange forskellige typer systemer såsom registreringssystemer, lagersystemer eller bare en simpel sammensat database. Mens du også kunne oprette din egen ELN, findes der også den gratis Indigo ELN. Denne ELN blev oprettet af GGA-Programmeltjenester og bruges hos Pfis .

I modsætning til MolDB5R og MyMolDB er MDF ikke en fuldt funktionel standalone-applikation med kemisk struktursøgning. Som navnet antyder, er det en ramme for at forenkle oprettelsen af en sådan applikation. MDF kan også bruges til at oprette lokale eller klient-server desktop applikationer. MDF er rettet mod programmeludviklere og ikke beregnet til brug af forskere selv. Men MDF funktioner er meget robust. Kemisk struktur søgning sker i databasen og ikke programkoden. Derfor kan du søge efter kemisk struktur og andre egenskaber på samme tid, resultaterne kan sorteres efter flere egenskaber og kan sidestilles. Bemærk, at hvis du foretager den kemiske struktursøgning i applikationskode, kræver enhver forespørgsel mindst to ture til databasen, nemlig struktursøgningen og efterfølgende filtrering efter andre egenskaber, sortering og/eller begrænsning. Begge skal ske i samme transaktion. Det blev ikke bestemt, om MolDB5R og MyMolDB faktisk gør dette i den samme transaktion.

i MDF kan de kemiske forbindelser være forbundet med en containerbar, som i registreringssystemer ville være en batch eller i et lagersystem meget. En specifik fysisk tilgængelig prøve i en stregkodet flaske kan derefter forbindes med en beholder. Disse beholdere kan også søges efter kemisk struktur. Dette er grundlaget for oprettelse af et lagersystem. Udviklere kan tilføje så mange yderligere egenskaber, som de ønsker at hver af enhederne og alle af dem er søgbare sammen med den kemiske struktur.

Al dataadgang i MDF er transaktionel for at forhindre data uoverensstemmelser. MDF kan konfigureres til at bruge en databaseforbindelsespool. Når du spørger en RDBMS, tager det ofte længere tid at oprette en forbindelse end selve forespørgslen, og hvis du allerede har åbne forbindelser, kan svartiderne reduceres.

for lighed søger MDF udsat algoritmerne leveret af Bingo patronen, som er Tanimoto, Tversky og euklidisk metric for understrukturer.

MDF er klar til brug med Fjedersikkerhed. Sikkerhed er valgfri. MDF tilbyder metode niveau sikkerhed (autorisation). Det tilbyder ikke nogen godkendelsesfunktioner.

blanding håndtering

MDF understøtter multi-komponent kemiske forbindelser. Søgning efter underkonstruktion returnerer alle forbindelser, der har mindst en komponent (kemisk struktur), der matcher forespørgselsstrukturen. Dette er vigtigt, fordi reaktionsprodukter, der kan indgå i et kemisk registreringssystem, næsten altid er blandinger, medmindre der foretages omfattende oprensning.

Hvis en post i en importeret SD-fil består af flere frakoblede strukturer, antages det, at denne post er en blanding, og hver struktur lagres som en separat kemisk struktur.

struktur normalisering

som standard MDF gemmer de kemiske strukturer, som de indsendes. MDF gør ikke nogen standardisering / normalisering af kemiske strukturer. Det er op til udvikleren, der bruger MDF, at sikre, at kemiske strukturer normaliseres korrekt, inden de gemmes i databasen. Det foreslås i øjeblikket, at udviklere implementerer en sådan funktion ved at tilsidesætte preSave () – metoden for ChemicalCompoundServiceImpl. Denne metode kaldes, før en kemisk forbindelse oprettes eller opdateres. Inden for denne metode kan den kemiske forbindelse og alle de kemiske strukturer, den består af, frit manipuleres efter ønske. Bemærk, at hver forbindelse, der gemmes, behandles ved hjælp af denne metode.

salte, solvater og opløsninger

MDF current version 1.0.1 har ingen særlig håndtering af salte, solvater eller opløsninger. MDF gemmer separate komponenter i en kemisk strukturfil som en separat kemisk struktur. Derfor gemmer et salt som 1 = CC = CC = C1. vil blive repræsenteret som en blanding af de to ioner uden nogen procentsatser. En nøjagtig struktur søgning efter enten ion ville returnere dette salt. Hvis saltet har en ladning større end 1 og flere ioner forbundet med det som 1 = CC = C = C1.. saltet opbevares som en blanding af 1 = CC = C = C1 og uden nogen procentsatser. Hvis den kemiske struktur er en enkelt ion, gemmes den og kan søges som enhver anden kemisk struktur. Hvis denne adfærd er uegnet i et specifikt tilfælde, kan udviklere implementere salt-og solvathåndteringsfunktionalitet i preSave () – metoden.

nogle kommercielle systemer synes heller ikke at have nogen måde at håndtere løsninger på. Det anbefales at oprette forbindelsen som om den var ren og tilføje opløsningsoplysningerne som separate felter på sammensat niveau.

eksempel på internetapplikation

en simpel internetapplikation ved hjælp af MDF blev oprettet. Internettet Ansøgning gør brug af foråret MVC. Applikationen gør ikke brug af sikkerhedsintegrationen, og den bruger ikke enhederne Containable og ChemicalCompoundContainer. Det bruger kun Kemiskforbindelse enhed. Ansøgningen er en sammensat database for multikomponentforbindelser. Den har en side til import af de kemiske strukturer i en SD-fil til den sammensatte database. Databasen kan søges efter understruktur og egenskaber. Det bruger JSME til at tegne de kemiske strukturer (figur 3). Søgeresultatsiden viser søgningen hits i en tabelform og paged mode. Når en underkonstruktionssøgning er udført, fremhæves underkonstruktionen i søgeresultaterne (figur 4). Hits af en søgning kan eksporteres som en SD-fil. Søgeresultaterne indeholder et link til en enkelt sammensat visning. Forbindelsens egenskaber kan redigeres, og sammensætninger kan tilføjes, redigeres og slettes (figur 5, 6). Når du redigerer en forbindelse eller en sammensætning, behandler applikationen samtidige ændringer gennemsigtigt, og der vises konfliktløsningsdialog, hvor brugeren kan vælge, hvilke værdier der skal bruges til hver egenskab og derefter gemme den nye version.

figur 3
figur3

søgeside for eksempel internetapplikationen ved hjælp af MDF. En bruger kan søge i sammensatte database ved kemisk understruktur og/eller egenskaber som sammensatte navn eller CAS-nummer.

figur 4
figur4

resultat side af en understruktur søgning. Resultaterne vises i en sidetabel, der genereres af dataables . De kemiske strukturbilleder har den matchende underkonstruktion fremhævet med rødt. Hvis du klikker på det kemiske strukturbillede, vises smilene til det.

figur 5
figur5

individuel sammensat visning. Denne hjemmeside viser en enkelt forbindelse. Forbindelsen kan redigeres eller slettes ved at klikke på linket ifølge på siden. Der er en fane, der viser alle indeholdte kemiske strukturer og en fane for hver enkelt sammensætning, som forbindelsen består af.

figur 6
figur6
p > enkelt sammensætning. Viser den samme side som figur 5, men i stedet for fanen kombineret struktur vælges fanen for den første komposition. Sammensætningen kan redigeres ved at klikke på linket ifølge på siden.

ydeevne

MDF har et hovedpræstationsproblem ved håndtering af blandinger. Hvis en applikation bruger blandinger, dvs.forbindelser med flere komponenter, returnerer en kemisk strukturforespørgsel en række for hver komponent i en forbindelse, der matcher forespørgslen. Dette er uønsket, fordi slutbrugerne kun vil se hver forbindelse, der kun matcher forespørgslen en gang. Løsningen på problemet er at bruge en særskilt forespørgsel, og det er her ydelsesproblemet sker. Hvis du udfører en særskilt forespørgsel, skal hele databasen søges uanset begrænsningsklausul, hvilket i høj grad øger eksekveringstiden. Bemærk, at sortering har samme effekt. Så sortering kan også have en enorm præstationsstraf, og når du søger, skal du altid sortere for at få et forudsigeligt resultat. For at gøre dette endnu værre Bingo patron til postgraduate endnu ikke har en ordentlig gennemførelse for omkostningsestimering og omkostningerne til at bruge den kemiske struktur indeks er hårdt kodet og undervurderet. Dette vildleder forespørgselsplanerne til altid at bruge en fuld indeksscanning på struktursøgningsindeks, selv når forespørgslen har en yderligere hvor-klausul, der i høj grad begrænser mængden af resultater. I disse tilfælde ville det for eksempel være hurtigere at bruge indekset til CAS-nummeret og bruge Bingo matchsub-funktionen til filtrering. Matchsub-funktionen gør understruktur matching uden indeks. Dette er selvfølgelig langsommere end med et indeks, men hvis det kun skal gøres for et lille antal strukturer, er det meget hurtigere end den fulde indeksscanning. For at løse problemet med omkostningsestimering foretager MDF nogle interne beregninger for eksplicit at afgøre, om strukturindekset eller matchsub-funktionen bruges. Dette kan forbedre ydeevnen med en størrelsesorden. Bemærk, at leverandøren af Bingo patronen er opmærksom på dette problem, og tidslinjen for rettelsen var slutningen af 2013. Hovedproblemet med forskellige forespørgsler og sortering er imidlertid iboende for, hvordan relationelle databaser fungerer og kan ikke løses undtagen med et bedre søgeindeks for understrukturer eller bedre udstyr. MDF tilbyder også en indstilling til at deaktivere forskellige forespørgsler applikationsdækkende til enkeltkomponentforbindelsesdatabaser.

for at benchmarke MDF blev den tidligere skitserede internetapplikation brugt. Databasen indeholder 525573 unikke forbindelser. Forbindelserne er fra Sinc-delmængde 13 ved reference pH 7 SD-filerne 13_p0.0.sdf, 13_p0. 1.sdf, 13_p0.10.sdf og 13_p0.11.sdf. Strukturerne gemmes i databasen som smil. Import af hver af SD-filer, som indeholder ca 131 ‘ 000 kemiske strukturer, tog 12 min med den kemiske struktur søgeindeks deaktiveret. Genopbygning af indekset efter alle SD-filer blev importeret tog 22 min på en bærbar computer med 4 GB RAM, Core i5-3220m CPU og en 512GB Samsung 830 SSD. Det udgør i alt 1 time 10 min for at opsætte en fuldt indekseret database med en halv million forbindelser. Som en yderligere reference blev den samme import udført på en stationær PC med 12 GB RAM, i7-875k @ 3.4 GH og databasen, der kører på et vestligt digitalt grønt drev (5400 O / min). Her tog importen 8 min, og konklusionen er, at importen er CPU-begrænset snarere end at være begrænset af lagringshastighed. Indeksgenerationen tog cirka 22 minutter på den bærbare computer og 20 minutter på skrivebordet. Konklusionen her er, at den er begrænset mere af CPU, men drevhastigheden betyder også noget. Import-og indeksgenereringsydelsen ved lagring af strukturer som molfiler blev ikke benchmarket.

underkonstruktionssøgningsydelsen blev benchmarket med forskellige konfigurationsindstillinger. Underkonstruktionssøgning udføres af Bingo postgraduate patron, og dette benchmark afspejler derfor dets ydeevne plus enhver overhead forårsaget af MDF. Med undtagelse af c1ccccc1 forfatteren tegnede kemiske strukturer uden specifik betydning og testede søgehastigheden. Søgehastigheden blev bestemt af logbacks implementering af org.slf4j. profiler.Profiler.

det første benchmark er en reference. Dette benchmark brugte muligheden for at deaktivere alle forskellige forespørgsler, og der blev ikke udført nogen sortering. MDF udfører en optælling af samlede hits på første forekomst af en kemisk struktur søgning og optællingen er cachelagret som forårsager den første side til at indlæse langsommere end efterfølgende sider. Hver side indeholder 4 poster. Resultaterne er vist i tabel 2 ordnet stigende efter antal hits.

tabel 2 understruktur søg ydeevne

benchmarket blev gentaget, men denne gang med forskellige forespørgsler aktiveret. Indlæsningstiden for første side fordobles, fordi tælleforespørgslen køres, og derefter køres den faktiske forespørgsel, hvilket tager omtrent samme tid som tælleforespørgslen på grund af den særskilte klausul. Den anden side tager derefter altid halvdelen af tiden at indlæse sammenlignet med den første side af samme grund (tabel 3). Antallet af hits er identisk med dem i tabel 2, fordi alle forbindelser i databasen kun består af en komponent.

tabel 3 Understruktursøgningsydelse med forskellige resultater

resultaterne viser, at Bingo ikke optimerer for en fælles understrukturforespørgsel som en bensene-ring og dermed søger efter c1ccccc1 i en database, hvor næsten alle molekyler har denne funktion er meget langsom. For at forbedre søgehastigheden i et sådant scenario anbefales filtrering med yderligere egenskaber. Derfor blev benchmark gentaget med et yderligere filter af sammensat navn startende med “SINC34”.

Tabel 4 viser fordelen ved MDF-optimeringen som en løsning på omkostningsestimeringsproblemet i bingo postgraduate patron. Uden denne optimering ville benchmarket have samme ydeevne som vist i tabel 3.

Tabel 4 understruktur søgning med distinkt forespørgsel og yderligere filter ‘SINC34%’ på sammensatte navn

MDF bruger også Bingo patroner lighed søgning funktionalitet. Dens ydeevne blev testet ved at søge efter forbindelser med en lighedsscore på 0,9 ved hjælp af Tanimoto lighedsmåling, også kendt som Jaccard-indeks . Resultaterne er vist i tabel 5.

tabel 5 Tanimoto lighed søg ydeevne: hits med mindst 90% lighed

Outlook

til generering af den kemiske struktur skildringer Indigo toolkit bruges. Værktøjssættet kan konfigureres til at generere strukturer på mange måder, herunder farvning af heteroatomer, bindingslængde og bredde og mange flere. I øjeblikket er dette hårdt kodet og kan ikke justeres af brugeren. Et næste skridt ville være at udsætte disse konfigurationsindstillinger, så de kan indstilles gennem en Java-egenskabsfil. Også håndtering af salte og solvater skal implementeres for at gøre MDF anvendelig i områder, hvor sådanne forbindelser er vigtige.

for at gøre brug af MDF skal du være i stand til at programmere i Java, og du har brug for grundlæggende viden om foråret rammer og hvordan du konfigurerer det. Dette begrænser målgruppen. Når du bruger MDF, skal du skrive en kedelpladekode, og det næste trin ville derfor være at oprette yderligere værktøjer til at lette brugen af MDF som den automatiske generering af enhedsklasser og deres lagre og tjenester. Disse værktøjer skal konfigureres, så en bruger kan definere de ønskede egenskaber for hver af enhederne og de ønskede søgemetoder. En mulighed ville være et maven-plugin. Maven-plugins kan generere kode som metamodel-oprettelsen udført af plugin-plugin ‘ et. En anden mulighed ville være anmærkninger, der genererer kode på kompilere ligesom Project Lombok gør .

det sidste trin ville være at oprette en internetapplikationsplatform, der lader administratorer oprette nye internetapplikationer med kemisk struktur søgefunktion ved blot at indtaste de ønskede egenskaber for enhederne på en internetformular og klikke på en knap. Det er indlysende, at dette ville kræve en betydelig udviklingsindsats.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.