Molecule database framework :ett ramverk för att skapa databasapplikationer med chemical structure search capability

funktionalitet

nedan är en lista över kärnfunktionaliteten i MDF:

  • Chemical structure search: Fullständig, Sub, SMARTS, likhet, formel

  • kemisk struktur sökningar kan kombineras med fastighetssökningar

  • kemisk struktur sökningar sökas och cachas

  • stöd för flerkomponentföreningar (blandningar)

  • 3 kemisk struktur sökbara enheter: ChemicalCompound, Containable och ChemicalCompoundContainer

  • Import och Export av SD-filer för över 3 enheter

  • Transaktionsdatabasåtkomst

  • valfri säkerhet (auktorisering)

med design och funktionalitet av MDF är det möjligt att bygga många olika typer av system som registreringssystem, lagersystem eller bara en enkel sammansatt databas. Medan du också kan skapa din egen ELN, finns det också gratis Indigo ELN. Denna ELN skapades av GGA Software Services och används på Pfizer .

till skillnad från MolDB5R och MyMolDB är MDF inte en fullt fungerande fristående webbapplikation med kemisk struktursökning. Som namnet antyder är det ett ramverk för att förenkla skapandet av en sådan applikation. MDF kan också användas för att skapa lokala eller klient-server skrivbordsprogram. MDF riktar sig till mjukvaruutvecklare och är inte avsedd att användas av forskare själva. Men MDF-funktioner är mycket robusta. Kemisk struktursökning görs i databasen och inte applikationskoden. Därför kan du söka efter kemisk struktur och andra egenskaper samtidigt, resultaten kan sorteras efter flera egenskaper och kan sökas (SQL OFFSET och LIMIT klausuler). Observera att om du gör den kemiska struktursökningen i applikationskod, kommer varje fråga att kräva minst två resor till databasen, nämligen struktursökningen och därefter filtrering av andra egenskaper, sortering och/eller begränsning. Båda måste ske i samma transaktion. Det bestämdes inte om MolDB5R och MyMolDB faktiskt gör det i samma transaktion.

i MDF kan de kemiska föreningarna associeras med en innehållbar, som i registreringssystem skulle vara en sats eller i ett inventeringssystem mycket. Ett specifikt fysiskt tillgängligt prov i en streckkodad flaska kan sedan associeras med en behållare. Dessa behållare kan också sökas efter kemisk struktur. Detta är grunden för att skapa ett inventeringssystem. Utvecklare kan lägga till så många ytterligare egenskaper som de vill till var och en av enheterna och alla är sökbara tillsammans med den kemiska strukturen.

all dataåtkomst i MDF är transaktionell för att förhindra datakonsekvenser. MDF kan konfigureras för att använda en databasanslutningspool. När Fråga en RDBMS skapa en anslutning tar ofta mer tid än själva frågan och därmed om du redan har öppna anslutningar svarstider kan minskas.

för Likhetssökning MDF exponerade algoritmerna som tillhandahålls av Bingopatronen som är Tanimoto, Tversky och euklidisk metrisk för understrukturer.

MDF är redo att användas med Fjädersäkerhet. Säkerhet är valfritt. MDF erbjuder säkerhet på metodnivå (auktorisation). Det erbjuder inga autentiseringsfunktioner.

Blandningshantering

MDF stöder kemiska föreningar med flera komponenter. Sökning efter understruktur returnerar alla föreningar som har minst en komponent (kemisk struktur) som matchar frågestrukturen. Detta är viktigt eftersom reaktionsprodukter som kan ingå i ett kemiskt registreringssystem nästan alltid är blandningar om inte omfattande rening görs.

om en post i en importerad SD-fil består av flera frånkopplade strukturer antas att denna post är en blandning och varje struktur lagras som en separat kemisk struktur.

strukturnormalisering

som standard lagrar MDF de kemiska strukturerna när de skickas in. MDF gör ingen standardisering / normalisering av kemiska strukturer. Det är upp till utvecklaren att använda MDF för att säkerställa att kemiska strukturer är korrekt normaliserade innan de sparas i databasen. Det föreslås för närvarande att utvecklare implementerar en sådan funktion genom att åsidosätta preSave () – metoden för ChemicalCompoundServiceImpl. Denna metod kallas innan någon kemisk förening skapas eller uppdateras. Inom denna metod kan den kemiska föreningen och alla kemiska strukturer som den består av fritt manipuleras efter önskemål. Observera att varje förening som sparas kommer att behandlas med denna metod.

salter, solvates och lösningar

MDF nuvarande version 1.0.1 har ingen speciell hantering för salter, solvates eller lösningar. MDF lagrar separata komponenter i en kemisk strukturfil som en separat kemisk struktur. Därför sparar ett salt som 1 = CC = CC = C1. kommer att representeras som en blandning av de två jonerna utan några procentandelar. En exakt struktursökning för endera Jonen skulle returnera detta salt. Om saltet har en laddning större än 1 och flera joner associerade med det som 1 = CC = C = C1.. saltet kommer att lagras som en blandning av 1 = CC = C = C1 och utan några procentandelar. Om den kemiska strukturen är en enda Jon kommer den att lagras och sökbar som alla andra kemiska strukturer. Om detta beteende är olämpligt i ett specifikt fall kan utvecklare implementera salt-och solvate-hanteringsfunktionalitet i preSave () – metoden.

vissa kommersiella system verkar inte heller ha något sätt att hantera lösningar. Det rekommenderas att skapa föreningen som om den var ren och lägga till lösningsinformationen som separata fält på föreningsnivån.

exempel webbapplikation

en enkel webbapplikation med MDF skapades. Webbapplikationen använder Spring MVC. Applikationen använder inte säkerhetsintegrationen och använder inte enheterna Containable och ChemicalCompoundContainer. Den använder endast ChemicalCompound entity. Applikationen är en sammansatt databas för flerkomponentföreningar. Den har en sida för att importera de kemiska strukturerna i en SD-fil till sammansatt databas. Databasen kan sökas efter understruktur och egenskaper. Den använder JSME för att rita de kemiska strukturerna (Figur 3). Sökresultatsidan visar sökningen träffar i en tabell och paged mode. När en understruktursökning görs kommer understrukturen att markeras i sökresultaten (Figur 4). Träffarna i en sökning kan exporteras som en SD-fil. Sökresultaten innehåller en länk till en enda sammansatt vy. Egenskaperna hos föreningen kan redigeras och kompositioner kan läggas till, redigeras och raderas (figurerna 5, 6). När du redigerar en förening eller en komposition programmet behandlar samtidiga ändringar transparent och dialog konfliktlösning visas där användaren kan välja vilka värden som ska användas för varje egenskap och sedan spara den nya versionen.

Figur 3
figure3

Sök sida i exemplet webbapplikation med MDF. En användare kan söka i föreningsdatabasen efter kemisk understruktur och / eller egenskaper som föreningsnamn eller CAS-nummer.

Figur 4
figure4

resultatsida för en understruktursökning. Resultaten visas i en paged tabell som genereras av jQuery plugin datatables . De kemiska strukturbilderna har den matchande understrukturen markerad i rött. Genom att klicka på den kemiska strukturbilden visas leenden för den.

Figur 5
figure5

individuell sammansatt vy. Denna webbsida visar en enda förening. Föreningen kan redigeras eller raderas genom att klicka på länken Enligt på sidan. Det finns en flik som visar alla innehöll kemiska strukturer och en flik för varje enskild komposition föreningen består av.

Figur 6
figure6

enkel komposition. Visar samma sida som Figur 5 men istället för fliken kombinerad struktur väljs fliken för den första kompositionen. Kompositionen kan redigeras genom att klicka på länken Enligt på sidan.

prestanda

MDF har ett huvudproblem vid hantering av blandningar. Om en applikation använder blandningar, dvs. föreningar med flera komponenter, returnerar en kemisk strukturfråga en rad för varje komponent i en förening som matchar frågan. Detta är oönskat eftersom slutanvändarna bara vill se varje förening som matchar frågan en gång. Lösningen på problemet är att använda en distinkt fråga och det är här prestandaproblemet händer. Om du utför en distinkt fråga måste hela databasen sökas oavsett begränsningsklausul vilket kraftigt ökar körningstiden. Observera att sortering har samma effekt. Så sortering kan också ha en enorm prestationsstraff och när du söker bör du alltid sortera för att få ett förutsägbart resultat. För att göra detta ännu värre Bingo patron för PostgreSQL ännu inte har ett korrekt genomförande för kostnadsberäkning och kostnaden för att använda den kemiska strukturen index är hårdkodade och underskattas. Detta vilseleder PostgreSQL-frågeplaneraren att alltid använda en fullständig indexsökning på struktursökningsindex även när frågan har en ytterligare where-klausul som kraftigt begränsar mängden resultat. I dessa fall skulle det till exempel vara snabbare att använda indexet för CAS-numret och använda Bingo matchsub-funktionen för filtrering. Matchsub-funktionen matchar understrukturen utan index. Detta är naturligtvis långsammare än med ett index men om det bara måste göras för ett litet antal strukturer är det mycket snabbare än hela indexskanningen. För att åtgärda kostnadsberäkningsproblemet gör MDF några interna beräkningar för att uttryckligen bestämma om strukturindexet eller matchsub-funktionen används. Detta kan förbättra prestanda med en storleksordning. Observera att leverantören av Bingo patronen är medveten om detta problem och tidslinjen för fix var slutet av 2013. Huvudproblemet med distinkta frågor och sortering är dock inneboende i hur relationsdatabaser fungerar och kan inte lösas förutom med ett bättre substructure search index eller bättre hårdvara. MDF erbjuder också en inställning för att inaktivera distinkta frågor programomfattande för enkomponent sammansatta databaser.

för att jämföra MDF användes den tidigare skisserade webbapplikationen. Databasen innehåller 525573 unika föreningar. Föreningarna är från zink delmängd 13 vid referens pH 7 SD-filer 13_p0.0.sdf, 13_p0. 1.sdf, 13_p0. 10.sdf och 13_p0.11.sdf. Strukturerna lagras i databasen som leenden. Att importera var och en av SD-filerna, som innehåller cirka 131’000 kemiska strukturer, tog 12 minuter med chemical structure search index inaktiverat. Ombyggnad av indexet efter att alla SD-filer importerades tog 22 min på en bärbar dator med 4 GB RAM, Core i5-3220m CPU och en 512GB Samsung 830 SSD. Det uppgår till 1 h 10 min för att installera en helt indexerad databas med en halv miljon föreningar. Som en ytterligare referens gjordes samma import på en stationär dator med 12 GB RAM, i7-875k @ 3.4 GHz och databasen som körs på en Western Digital Green-enhet (5400 RPM). Här tog importen 8 min och slutsatsen är att importen är CPU-begränsad snarare än att begränsas av lagringshastighet. Indexgenerationen tog ungefär 22 min på den bärbara datorn och 20 min på skrivbordet. Slutsatsen här är att den är begränsad mer av CPU men körhastigheten spelar också roll. Import-och indexgenereringsprestanda vid lagring av strukturerna som molfiler jämfördes inte.

underkonstruktionens sökprestanda jämfördes med olika konfigurationsinställningar. Substructure search görs av Bingo PostgreSQL patron och detta riktmärke återspeglar därför dess prestanda plus eventuella overhead som orsakas av MDF. Med undantag för c1ccccc1 författaren ritade kemiska strukturer utan någon specifik betydelse och testade sökhastigheten. Sökhastigheten bestämdes av logbacks implementering av org.slf4j. profiler.Profiler.

det första riktmärket är en referens. Detta riktmärke använde alternativet för att inaktivera alla distinkta frågor och ingen sortering gjordes. MDF utför ett antal totala träffar vid första förekomsten av en kemisk struktursökning och räkningen cachas vilket gör att den första sidan laddas långsammare än efterföljande sidor. Varje sida innehåller 4 poster. Resultaten visas i Tabell 2 ordnad stigande efter antal träffar.

Tabell 2 understruktur sökprestanda

riktmärket upprepades men den här gången med distinkta frågor aktiverade. Första sidans laddningstid fördubblas eftersom räknefrågan körs och sedan körs den faktiska frågan som tar ungefär samma tid som räknefrågan på grund av den distinkta klausulen. Den andra sidan tar då alltid halva tiden att ladda jämfört med den första sidan av samma anledning (tabell 3). Antalet träffar är identiskt med dem i Tabell 2 eftersom alla föreningar i databasen består av endast en komponent.

tabell 3 Substructure search performance med distinkta resultat

resultaten visar att Bingo inte gör några optimeringar för en vanlig understrukturfråga som en bensenring och därmed söker efter c1ccccc1 i en databas där nästan alla molekyler har denna funktion är mycket långsamt. För att förbättra sökhastigheten i ett sådant scenario rekommenderas filtrering med ytterligare egenskaper. Därför upprepades riktmärket med ett ytterligare filter med sammansatt namn som började med ”ZINC34”.

tabell 4 visar fördelen med MDF optimering som en lösning av kostnadsberäkning frågan i Bingo PostgreSQL patron. Utan denna optimering skulle riktmärket ha samma prestanda som visas i tabell 3.

Tabell 4 Substruktur sökning med distinkt fråga och ytterligare filter”ZINC34%” på sammansatt namn

MDF använder också Bingo patroner likhet söka funktionalitet. Dess prestanda testades genom att söka efter föreningar med en likhetspoäng på 0,9 med hjälp av tanimoto-likhetsmåttet, även känt som Jaccard-Index . Resultaten visas i Tabell 5.

Tabell 5 tanimoto likhetssökningsprestanda: träffar med minst 90% likhet

Outlook

För att generera de kemiska strukturbildningarna används Indigo toolkit. Verktygslådan kan konfigureras för att generera strukturerna på många sätt inklusive färgning av heteroatomer, bindningslängd och bredd och många fler. För närvarande är detta hårdkodat och kan inte justeras av användaren. Ett nästa steg skulle vara att avslöja dessa konfigurationsalternativ så att de kan ställas in via en Java-egenskapsfil. Även hanteringen av salter och solvat måste genomföras för att göra MDF användbar i områden där sådana föreningar är viktiga.

för att använda MDF måste du kunna programmera i Java och du behöver grundläggande kunskaper om Spring framework och hur du konfigurerar det. Detta begränsar målgruppen. När du använder MDF måste du skriva några panna-platta kod och därmed nästa steg skulle vara att skapa ytterligare verktyg för att underlätta användningen av MDF som automatisk generering av enhetsklasser och deras förråd och tjänster. Dessa verktyg måste konfigureras så att en användare kan definiera önskade egenskaper för var och en av enheterna och önskade sökmetoder. Ett alternativ skulle vara ett Maven-plugin. Maven plugins kan generera kod som metamodel skapelse görs av QueryDSL-maven plugin. Ett annat alternativ skulle vara anteckningar som genererar kod på kompilering som Project Lombok gör .

det sista steget skulle vara att skapa en webbapplikationsplattform som låter administratörer skapa nya webbapplikationer med kemisk struktur sökfunktion genom att helt enkelt ange önskade egenskaper för enheterna på ett webbformulär och klicka på en knapp. Det är uppenbart att detta skulle kräva en betydande utvecklingsinsats.

Lämna ett svar

Din e-postadress kommer inte publiceras.