Molecule database framework: a framework for creating database applications with chemical structure search capability

Functionality

alla on luettelo MDF: n ydintoiminnoista:

  • kemiallinen rakenne search: Täysi, Sub, SMARTS, Similarity, kaava

  • Kemiallinen rakennehaku voidaan yhdistää ominaisuushakuihin

  • Kemiallinen rakennehaku on hakukelpoinen ja välimuistissa

    tuki monikomponenttisille yhdisteille (seoksille)

  • 3 kemiallista rakennehakua: Kemicalcompound, Containable and ChemicalCompoundContainer

  • SD-tiedostojen tuonti ja vienti yli 3 yksikölle

  • Transactional database access

  • valinnainen security (authorization)

MDF: n suunnittelun ja toimivuuden avulla on mahdollista rakentaa monia erityyppisiä järjestelmiä, kuten rekisteröintijärjestelmiä, inventaariojärjestelmiä tai vain yksinkertainen yhdistelmätietokanta. Vaikka voit myös luoda oman ELN, on olemassa myös vapaa Indigo ELN. Tämän ELN: n on luonut GGA Software Services ja sitä käytetään Pfizerilla .

toisin kuin MolDB5R ja mymoldb , MDF ei ole täysin toimiva itsenäinen verkkosovellus, jossa on kemiallinen rakennehaku. Kuten nimestä voi päätellä, se on kehys tällaisen sovelluksen luomisen yksinkertaistamiseksi. MDF: ää voidaan käyttää myös paikallisten tai asiakaspalvelimien työpöytäsovellusten luomiseen. MDF on suunnattu ohjelmistokehittäjille eikä tarkoitettu tutkijoiden itsensä käyttöön. Kuitenkin MDF ominaisuudet ovat erittäin kestäviä. Kemiallisen rakenteen haku tehdään tietokannasta eikä sovelluskoodista. Näin ollen voit etsiä kemiallisen rakenteen ja muiden ominaisuuksien mukaan samanaikaisesti, tulokset voidaan lajitella useiden ominaisuuksien mukaan ja ne voidaan pagata (SQL OFFSET ja raja-lausekkeet). Huomaa, että jos teet kemiallisen rakennehaun sovelluskoodissa, mikä tahansa kysely vaatii vähintään kaksi hakua tietokantaan, eli rakennehaun ja sen jälkeen suodatuksen muilla ominaisuuksilla, lajittelulla ja/tai rajoittamisella. Molempien on tapahduttava samassa kaupassa. Ei selvitetty, tekivätkö MolDB5R ja MyMolDB todella näin samassa liiketoimessa.

MDF: ssä kemialliset yhdisteet voivat liittyä säilytysaineeseen, joka rekisteröintijärjestelmissä olisi erä tai inventaariojärjestelmässä erä. Viivakoodipullossa oleva tietty fyysisesti saatavilla oleva näyte voidaan sitten liittää säiliöön. Näitä säiliöitä voi etsiä myös kemiallisen rakenteen perusteella. Tämä on perusta inventaariojärjestelmän luomiselle. Kehittäjät voivat lisätä kuhunkin kokonaisuuteen niin paljon lisäominaisuuksia kuin haluavat, ja ne kaikki ovat haettavissa yhdessä kemiallisen rakenteen kanssa.

kaikki MDF: n tietojen käyttö on transaktiota tietojen epäjohdonmukaisuuksien estämiseksi. MDF voidaan konfiguroida käyttämään tietokantayhteyssarjaa. RDBMS-yhteyden luominen vie usein enemmän aikaa kuin itse kysely, joten jos sinulla on jo avoimia yhteyksiä, vasteaikoja voidaan lyhentää.

samankaltaisuuden etsinnässä MDF paljasti Bingopatruunan tarjoamat algoritmit, jotka ovat tanimoto, Tversky ja Euklidinen metriikka alarakenteille.

MDF on valmis käytettäväksi Jousisuojauksella. Turvallisuus on vapaaehtoista. MDF tarjoaa menetelmätason turvallisuuden (valtuutus). Se ei tarjoa mitään todennusominaisuuksia.

seosten käsittely

MDF tukee monikomponenttisia kemiallisia yhdisteitä. Haku pohjarakenteella palauttaa kaikki yhdisteet, joilla on vähintään yksi kyselyn rakennetta vastaava komponentti (kemiallinen rakenne). Tämä on tärkeää, koska reaktiotuotteet, jotka voidaan syöttää kemialliseen rekisteröintijärjestelmään, ovat lähes aina seoksia, ellei laajamittaista puhdistusta tehdä.

Jos tuodussa SD-tiedostossa oleva merkintä koostuu useista irrallisista rakenteista, oletetaan, että tämä merkintä on seos ja jokainen rakenne tallennetaan erillisenä kemiallisena rakenteena.

rakenteen normalisointi

oletuksena MDF tallentaa kemialliset rakenteet sitä mukaa kuin ne toimitetaan. MDF ei tee mitään standardointia/normalisointia kemiallisten rakenteiden. MDF: ää käyttävän kehittäjän tehtävänä on varmistaa, että kemialliset rakenteet normalisoidaan oikein ennen niiden tallentamista tietokantaan. Tällä hetkellä ehdotetaan, että kehittäjät toteuttaa tällaisen ominaisuuden ohittamalla preSave() menetelmä ChemicalCompoundServiceImpl. Tätä menetelmää kutsutaan ennen kuin mitään kemiallista yhdistettä luodaan tai päivitetään. Tässä menetelmässä kemiallista yhdistettä ja kaikkia sen muodostamia kemiallisia rakenteita voidaan vapaasti manipuloida halutulla tavalla. Huomaa, että jokainen tallennettu yhdiste käsitellään tällä menetelmällä.

suolat, solvaatit ja liuokset

MDF: n nykyisessä versiossa 1.0.1 ei ole erityistä käsittelyä suoloille, solvaateille tai liuoksille. MDF tallentaa erilliset komponentit kemialliseen rakennetiedostoon erillisenä kemiallisena rakenteena. Siksi säästää suolaa kuten 1 = CC = CC = C1. esitetään kahden ionin seoksena ilman prosenttilukuja. Jommankumman ionin tarkka rakenne palauttaisi suolan. Jos suolan varaus on suurempi kuin 1 ja siihen liittyy useita ioneja kuten 1 = CC = C = C1.. suola varastoidaan seoksena 1 = CC = C = C1 ja ilman prosenttimääriä. Jos kemiallinen rakenne on yksi ioni, se varastoituu ja on haettavissa kuten mikä tahansa muu kemiallinen rakenne. Jos tämä käyttäytyminen ei sovellu tiettyyn tapaukseen, kehittäjät voivat toteuttaa suolan ja solvaatin käsittelytoiminnon preSave () – menetelmässä.

jotkin kaupalliset järjestelmät eivät myöskään näytä pystyvän käsittelemään ratkaisuja. On suositeltavaa luoda yhdiste ikään kuin se olisi puhdas ja lisätä liuoksen tiedot erillisinä kenttinä yhdisteen tasolle.

esimerkki web-sovellus

yksinkertainen web-sovellus käyttäen MDF luotiin. Verkkosovellus hyödyntää Spring MVC: tä. Sovellus ei hyödynnä tietoturvaintegraatiota, eikä siinä käytetä säilytettäviä ja Kemicalcompoundcontaineria. Se käyttää vain kemiallista kokonaisuutta. Sovellus on yhdistelmätietokanta monikomponenttisille yhdisteille. Siinä on sivu SD-tiedoston kemiallisten rakenteiden tuomiseksi yhdistetietokantaan. Tietokantaa voi etsiä pohjarakenteen ja ominaisuuksien perusteella. Se käyttää jsme: tä kemiallisten rakenteiden piirtämiseen (kuva 3). Hakutulossivulla hakutulokset näkyvät taulukkomuodossa ja hakusanoina. Kun alarakennehaku tehdään, alarakenne korostuu hakutuloksissa (Kuva 4). Haun osumat voidaan viedä SD-tiedostona. Hakutuloksissa on linkki yhteen yhdistelmänäkymään. Yhdisteen ominaisuuksia voidaan muokata ja koostumuksia voidaan lisätä, muokata ja poistaa (kuvat 5 ja 6). Kun muokkaat yhdistettä tai koostumusta, sovellus käsittelee samanaikaisia muutoksia läpinäkyvästi ja näytetään ristiriitojen ratkaisuikkuna, jossa käyttäjä voi valita kullekin ominaisuudelle käytettävät arvot ja tallentaa uuden version.

kuva 3
kuva3

hakusivu esimerkkisovelluksesta käyttäen MDF: ää. Käyttäjä voi hakea yhdistetietokannasta kemiallisen pohjarakenteen ja/tai ominaisuuksien, kuten yhdisteen nimen tai CAS-numeron, perusteella.

Kuva 4
kuva4

alirakenteiden haun tulosivu. Tulokset näkyvät jQuery plugin datatablesin tuottamassa hakutaulukossa . Kemiallisissa rakennekuvissa on punaisella korostettu vastaava pohjarakenne. Kemiallisen rakenteen kuvan napsauttaminen näyttää hymyt sille.

kuva 5
kuvio5

yksittäiset yhdistelmänäkymät. Tämä sivu näyttää yhden yhdisteen. Yhdistettä voi muokata tai poistaa klikkaamalla sivun sisällä olevaa linkkiä. On välilehti näyttää kaikki sisältyvät kemialliset rakenteet ja välilehti kunkin yksittäisen koostumuksen yhdiste koostuu.

kuva 6
kuva6
p> yksi kokoonpano. Näyttää saman sivun kuin kuvassa 5, mutta yhdistetyn Rakenne-välilehden sijaan valitaan ensimmäisen koostumuksen välilehti. Kokoonpanoa voi muokata klikkaamalla sivun sisällä olevaa linkkiä.

suorituskyky

MDF: llä on yksi keskeinen suorituskykyyn liittyvä ongelma seosten käsittelyssä. Jos sovelluksessa käytetään seoksia eli yhdisteitä, joissa on useita komponentteja, kemiallinen rakennekysely palauttaa yhden rivin jokaista kyselyä vastaavaa yhdisteen komponenttia kohti. Tämä ei ole toivottavaa, koska loppukäyttäjät haluavat nähdä jokaisen yhdisteen, joka vastaa kyselyä vain kerran. Ratkaisu ongelmaan on käyttää erillistä kyselyä ja tässä kohtaa suorituskykyongelma tapahtuu. Jos suoritat erillisen kyselyn, koko tietokanta on etsittävä riippumatta rajoituslausekkeesta, joka lisää suoritusaikaa huomattavasti. Huomaa, että lajittelulla on sama vaikutus. Lajittelulla voi siis olla myös valtava suoritusrangaistus, ja hakulaitteessa kannattaa aina lajitella, jotta lopputulos olisi ennakoitavissa. Jotta tämä vielä pahempi Bingo kasetti PostgreSQL ei ole vielä asianmukaista täytäntöönpanoa kustannusarvio ja kustannukset käyttämällä kemiallisen rakenteen indeksi on kova koodattu ja aliarvioitu. Tämä johtaa harhaan PostgreSQL-kyselyn höylän aina käyttämään täyttä indeksiskannausta structure search Indexissä, vaikka kyselyssä olisi ylimääräinen missä-lauseke, joka rajoittaa suuresti tulosten määrää. Näissä tapauksissa olisi esimerkiksi nopeampaa käyttää CAS-numeron indeksiä ja käyttää suodatukseen Bingo matchsub-toimintoa. Matchsub-funktio tekee substructure matching-toiminnon ilman indeksiä. Tämä on tietenkin hitaampaa kuin indeksillä, mutta jos se on tehtävä vain pienelle määrälle rakenteita, se on paljon nopeampi kuin täydellinen indeksiskannaus. Korjatakseen kustannusarvion MDF tekee joitakin sisäisiä laskelmia, joissa päätetään nimenomaisesti, käytetäänkö rakenneindeksiä vai matchsub-toimintoa. Tämä voi parantaa suorituskykyä suuruusluokkaa. Huomaa, että bingokasetin toimittaja on tietoinen tästä ongelmasta ja korjauksen aikajana oli vuoden 2013 lopussa. Erillisten kyselyiden ja lajittelun tärkein kysymys liittyy kuitenkin siihen, miten relaatiotietokannat toimivat, eikä sitä voida ratkaista muuten kuin paremmalla alirakenteisella hakuindeksillä tai paremmalla laitteistolla. MDF tarjoaa myös asetuksen, jolla voidaan poistaa erilliset kyselyt sovelluksen laajuisilta yksikomponenttisille yhdistelmätietokannoille.

MDF: n vertailukohteena käytettiin aiemmin hahmoteltua verkkosovellusta. Tietokanta sisältää 525573 ainutlaatuista yhdistettä. Yhdisteet ovat sinkin osajoukosta 13 viite-pH 7 SD-tiedostoista 13_p0. 0.sdf, 13_p0. 1.sdf, 13_p0. 10.sdf ja 13_p0. 11.sdf. Rakenteet tallentuvat tietokantaan HYMYINÄ. Kaikkien SD-tiedostojen, jotka sisältävät noin 131’000 kemiallista rakennetta, tuonti kesti 12 minuuttia kemiallisen rakenteen Hakuindeksin ollessa pois käytöstä. Uudelleenrakentaminen indeksin jälkeen kaikki SD-tiedostot tuotiin kesti 22 min kannettavan 4 GB RAM, Core i5-3220m CPU ja 512GB Samsung 830 SSD. Että yhteensä 1 h 10 min setup täysin indeksoitu tietokanta puoli miljoonaa yhdisteitä. Lisäviitteenä sama tuonti tehtiin pöytätietokoneelle, jossa on 12 Gt RAM-muistia, i7-875K @ 3.4 GHz ja tietokanta, joka toimii Western Digital Green Drive (5400 RPM). Täällä tuonti kesti 8 min ja johtopäätös on, että tuonti on CPU rajoitettu eikä rajoittaa varastointi-nopeus. Indeksin generointi kesti kannettavalla tietokoneella noin 22 min ja työpöydällä 20 min. Johtopäätös tässä on, että se on rajoitettu enemmän CPU, mutta ajaa nopeus myös väliä. Tuontia ja indeksin tuottamista ei ole vertailtu, kun rakenteita varastoidaan molfileiksi.

alirakenteiden hakusuoritusta verrattiin erilaisilla konfiguraatioasetuksilla. Pohjarakenteen haku tehdään Bingo PostgreSQL-kasetilla ja tämä vertailuarvo heijastaa siten sen suorituskykyä sekä MDF: n aiheuttamia yleiskustannuksia. C1ccc1: tä lukuun ottamatta tekijä piirsi kemiallisia rakenteita, joilla ei ollut erityistä merkitystä, ja testasi hakunopeutta. Hakunopeus määritettiin org: n logbacks-toteutuksella.slf4j. profiloija.Profiloija.

ensimmäinen vertailuarvo on viite. Tämä vertailuarvo käytti mahdollisuutta poistaa kaikki erilliset kyselyt ja lajittelua ei tehty. MDF laskee kokonaisosumat kemiallisen rakennehaun ensimmäisellä esiintymällä ja luku tallennetaan välimuistiin, mikä aiheuttaa ensimmäisen sivun latautumisen hitaammin kuin seuraavat sivut. Jokainen sivu sisältää 4 kirjaa. Tulokset on esitetty taulukossa 2 järjestyksessä osumien määrän mukaan nousevina.

Taulukko 2 Alirakenteiden hakusuoritus

vertailuarvo toistui, mutta tällä kertaa erilliset kyselyt mahdollistuivat. Ensimmäisen sivun latausaika kaksinkertaistuu, koska laskentakysely suoritetaan ja sen jälkeen suoritetaan varsinainen kysely, joka vie suunnilleen saman verran aikaa kuin laskentakysely erillisen lausekkeen vuoksi. Toisen sivun lataamiseen kuluu aina puolet ajasta verrattuna ensimmäiseen sivuun samasta syystä (Taulukko 3). Osumien määrä on sama kuin taulukossa 2, koska kaikki tietokannan yhdisteet koostuvat vain yhdestä komponentista.

Taulukko 3 pohjarakenteen hakusuoritus erillisin tuloksin

tulokset osoittavat, että Bingo ei tee optimointeja yhteiselle pohjarakenteen kyselylle kuten bentseenirenkaalle ja siten etsii c1ccc1 tietokannasta, jossa lähes kaikilla molekyyleillä on tämä ominaisuus on hyvin hidas. Hakunopeuden parantamiseksi tällaisessa skenaariossa suositellaan lisäominaisuuksien suodattamista. Tämän vuoksi vertailuarvo toistettiin lisäsuodattimella, jonka yhdisteen nimi alkaa ”ZINC34”: llä.

taulukossa 4 esitetään MDF-optimoinnin hyöty kustannusarvion ratkaisuna Bingo PostgreSQL-kasetissa. Ilman tätä optimointia vertailuarvon suorituskyky olisi sama kuin taulukossa 3.

Taulukko 4 Pohjarakennehaku erillisellä kyselyllä ja lisäsuodattimella”ZINC34%”yhdisteen nimellä

MDF käyttää myös Bingokasettien samankaltaisuuden hakutoimintoa. Sen suorituskykyä testattiin etsimällä yhdisteitä, joiden samankaltaisuuspistemäärä oli 0,9 käyttäen Tanimoton samankaltaisuusmittaria, joka tunnetaan myös nimellä Jaccard Index . Tulokset esitetään taulukossa 5.

Taulukko 5 Tanimoto similarity search performance: hits with at least 90% similarity

Outlook

kemiallisen rakenteen kuvausten tuottamiseen käytetään Indigo-työkalupakkia. Työkalupakki voidaan konfiguroida tuottamaan rakenteita monin tavoin, mukaan lukien heteroatomien väritys, sidoksen pituus ja leveys ja paljon muuta. Tällä hetkellä tämä on kova koodattu ja ei voi säätää käyttäjä. Seuraava askel olisi paljastaa nämä kokoonpanovaihtoehdot, jotta ne voidaan asettaa Java-ominaisuustiedoston kautta. Myös suolojen ja solvaattien käsittely on toteutettava, jotta MDF voidaan käyttää alueilla, joilla tällaiset yhdisteet ovat tärkeitä.

käyttääksesi MDF: ää sinun täytyy osata ohjelmoida Java-kielellä ja tarvitset perustiedot Spring Frameworkista ja sen konfiguroinnista. Tämä rajoittaa kohdeyleisöä. Käytettäessä MDF sinun täytyy kirjoittaa joitakin kattila-levy koodi ja siten seuraava askel olisi luoda lisätyökaluja käytön helpottamiseksi MDF kuten automaattinen sukupolven yksikön luokat ja niiden arkistot ja palvelut. Näiden työkalujen tulee olla konfiguroitavissa, jotta käyttäjä voi määritellä halutut ominaisuudet kullekin kokonaisuudelle ja halutut hakumenetelmät. Vaihtoehto olisi Maven plugin. Maven-liitännäiset voivat luoda koodia kuten querydsl-maven-liitännäisen tekemä metamodel-luonti. Toinen vaihtoehto olisi merkintöjä, jotka tuottavat koodia kääntää kuten Project Lombok tekee .

viimeinen vaihe olisi luoda www-sovellusalusta, jonka avulla järjestelmänvalvojat voivat luoda uusia verkkosovelluksia, joissa on kemiallinen rakennehakukyky, yksinkertaisesti syöttämällä yksiköiden halutut ominaisuudet verkkolomakkeeseen ja klikkaamalla painiketta. On selvää, että tämä vaatisi merkittäviä kehitystoimia.

Vastaa

Sähköpostiosoitettasi ei julkaista.