gP2S är en webbapplikation för spårning av cryoEM-experiment. Dess huvudfunktioner beskrivs, liksom de steg som krävs för att installera och konfigurera programmet. När programmet har konfigurerats kan man korrekt registrera metadata som är associerade med negativa färg- och cryoEM-experiment.
Kryogen elektronmikroskopi (cryoEM) har blivit en integrerad del av många läkemedelsupptäcktsprojekt eftersom kristallografi av proteinmålet inte alltid är möjligt att uppnå och cryoEM ger ett alternativt sätt att stödja strukturbaserad ligand design. När man hanterar ett stort antal distinkta projekt, och inom varje projekt ett potentiellt stort antal ligand-protein-co-structures, blir korrekt journalföring snabbt utmanande. Många experimentella parametrar justeras för varje mål, inklusive vid provberedning, rutnätsberedning och mikroskopisteg. Därför kan korrekt journalföring vara av avgörande betydelse för att möjliggöra långsiktig reproducerbarhet och för att underlätta effektivt lagarbete, särskilt när steg i cryoEM-arbetsflödet utförs av olika operatörer. För att hantera denna utmaning utvecklade vi ett webbaserat informationshanteringssystem för cryoEM, kallat gP2S.
Programmet håller reda på varje experiment, från prov till slutlig atommodell, i samband med projekt, vars lista upprätthålls i programmet eller externt i ett separat system. Användardefinierade kontrollerade ordförråd av förbrukningsvaror, utrustning, protokoll och programvara hjälper till att beskriva varje steg i cryoEM-arbetsflödet på ett strukturerat sätt. gP2S är allmänt konfigurerbart och kan, beroende på teamets behov, finnas som en fristående produkt eller vara en del av ett bredare ekosystem av vetenskapliga tillämpningar, integrera via REST API: er med projekthanteringsverktyg, applikationer som spårar produktionen av proteiner eller små molekyler ligands, eller applikationer som automatiserar datainsamling och lagring. Användare kan registrera information om varje rutnäts- och mikroskopisession, inklusive viktiga experimentella metadata och parametervärden, och härstamningen för varje experimentell artefakt (exempel, rutnät, mikroskopisession, karta etc.) registreras. gP2S fungerar som en cryoEM experimentell arbetsflödesorganisatör som möjliggör korrekt journalföring för team och är tillgänglig under en licens med öppen källkod.
Informationshantering vid cryoEM-anläggningar
Från och med 2014 har antalet kryogena elektronmikroskopi (cryoEM)1-anläggningar vuxit explosionsartad, med minst 300 avancerade system installerade runt om ivärlden 2, inklusive på ett antal läkemedelsföretag, vilket återspeglar en växande roll för cryoEM i läkemedelsupptäckt3. Dessa anläggningars uppdrag och deras krav på dataspårning och datahantering skiljer sigåt 4. Vissa, till exempel nationella cryoEM-center, anklagas för att ta emot EM-rutnät, samla in datamängder och returnera data till användarna för strukturbestämning, kanske efter viss automatiserad bildbehandling. I sådana anläggningar är det viktigt att spåra nätets härkomst, dess koppling till ett användarförslag eller ett användarbidrag och härstamningen från rutnät till datauppsättning, men andra faktorer, såsom reningsmetoden för proteinprovet eller den slutliga strukturbestämningsprocessen, är mindre, eller inte alls, relevanta. I andra anläggningar, såsom lokala akademiska anläggningar, ansvarar varje slutanvändare för att förbereda sina egna prover och nät, genomföra mikroskopin, hantera rådata och dess bearbetning och publicering av resultaten. Det finns inget strikt behov av metadataspårning från en sådan anläggnings sida eftersom denna roll uppfylls av slutanvändaren eller deras huvudprövare.
I vår cryoEM-anläggning centraliseras hantering och optimering av prover, rutnät, datainsamlings- och bearbetningsprotokoll och resultat (kartor, modeller) över många projekt till en liten grupp utövare. Detta innebär utmaningar inom experimentell (meta)datahantering. Den experimentella härstamningen av strukturer, från atommodell hela vägen tillbaka till den exakta identiteten hos proteiner och ligander, via parametrar för nätberedning och protokoll för datainsamling, måste fångas in och bevaras noggrant. Dessa metadata måste göras tillgängliga för ett antal mänskliga aktörer. Till exempel kan en person som gör bildbehandling behöva veta vilken konstruktion av ett protein som användes och vad bildparametrarna var, även om de varken renade proteinet eller samlade cryoEM-data själva; Informatiksystem som automatiska datahanteringsdemoner måste identifiera det projekt för vilket ett mikroskop för närvarande samlar in data för att korrekt och systematiskt tilldela katalognamn.
Flera informationshanteringssystem finns tillgängliga för att stödja cryoEM-anläggningar. Kanske mest komplett bland dem är EMEN25, som kombinerar funktioner i en elektronisk labbanteckningsbok, ett informationshanteringssystem och vissa delar av ett affärsprocesshanteringsverktyg. Används vid många synkrotroner, ISPyB6, ursprungligen byggd för att stödja röntgenstrålarna för kristallografi, stöder nu också cryoEM-datainsamling. Scipion7 är ett rikt och kraftfullt omslag runt bildbehandlingspaket, som gör det möjligt för användare att spela in arbetsflöden för bildbehandling och dela dem, till exempel via det offentliga arkivet EMPIAR8,9, och är också integrerat med ISPyB för att möjliggöra kryoEM-databehandling i farten.
Här beskriver vi gP2S (för Genentech Protein to Structure), ett modernt och lätt kryoEM-informationshanteringssystem byggt för att stödja arbetsflödet från renat protein och små molekyler till den slutliga atommodellen.
Översikt över gP2S
gP2S är ett användarvänligt webbaserat cryoEM-informationshanteringssystem som underlättar korrekt journalföring för cryoEM-labb och multifunktionella, multiprojektanläggningar. Följande entiteter, deras relationer och associerade metadata spåras: projekt, utrustning, förbrukningsvaror, protokoll, exempel, rutnät, mikroskopisessioner, bildbehandlingssessioner, kartor och atommodeller. Användare kan också lägga till fritextkommentarer, eventuellt inklusive bifogade filer, vilket möjliggör omfattande anteckningar om alla entiteter som är registrerade i gP2S. Frontend har utformats för att underlätta användning med pekskärmsenheter och testats i stor utsträckning på 12,9″-iPad Pros, vilket gör det möjligt att använda gP2S på labbbänken medan du förbereder prover och galler (figur 1), samt vid datorn när du använder mikroskopet, bearbetar bilder eller deponeringsmodeller. Varje sida i frontend syftar till att minska manuell datainmatning genom att förinställningsparametrar förinställning till förnuftiga standardvärden när det är möjligt.
Backend för gP2S har ett antal REST API -slutpunkter (REpresentational State Transfer Application Programming Interface), vilket gör det möjligt att integrera gP2S i befintliga arbetsflöden och skript. Datamodellen utformades för att möjliggöra korrekt insamling av negativa stain- och cryoEM-arbetsflöden, inklusive förgrening, till exempel med ett exempel som används på flera rutnät, data från flera mikroskopisessioner som slås samman till en enda databehandlingssession eller en databehandlingssession som ger flera kartor.
Systemarkitektur
gP2S är ett klassiskt program på tre nivåer (figur 2). I denna modulära arkitektur är systemet uppdelat i tre separata lager, var och en ansvarig för att utföra distinkta uppgifter, och var och en utbytbar eller modifierbar oberoende av de andra. (1) Presentationslagret (eller frontend) ger användaren åtkomst via webbläsare (i stor utsträckning testad med Chrome och Safari), gör det möjligt att skapa och ändra arbetsflödeselement (inklusive dataverifiering) och visar experimentella data som enskilda entiteter, projektbaserade listor och fullständiga arbetsflödesrapporter. (2) Servicelagret (eller server delningen) fungerar som ett mellanliggande lager mellan användargränssnittet och lagringssystemet – det innehåller kärnaffärslogik, exponerar det tjänste-API som används av frontend, integreras med datalagring och LDAP-system (Lightweight Directory Access Protocol) för användarautentisering och utgör en grund för ytterligare integrering med externa system. (3) Beständighetsskiktet (dataåtkomst) ansvarar för lagring av experimentella data, användarkommentarer och bifogade filer.
Viktig teknik och nyckelramar
För att underlätta utveckling, byggande och underhåll av GP2S-applikationen användes flera tekniker och ramverk i projektet. De viktigaste är: Vue.js 2.4.210 för frontend och SpringBoot 1.311 med inbäddad Tomcat 8-server för backend. Programmet använder MySQL 5.7- och MongoDB 4.0.6-databaser för lagring och LDAP12 för autentisering. Som standard levereras och distribueras alla dessa komponentdelar som ett program.
Totalt använder programmet hundratals olika bibliotek antingen direkt eller indirekt. De mest framträdande listas i tabell 1.
Datamodell
Tre typer av entiteter kan särskiljas i gP2S-datamodellen(figur 3):arbetsflödesenheter som är relaterade till data som samlats in under experiment (t.ex. prover eller mikroskopisessioner). Utrustnings- och protokollenheter som beskriver data som är vanliga i alla projekt (t.ex. mikroskop eller vitrifikationsprotokoll). andra enheter som spelar stödjande eller tekniska roller i systemet (t.ex. kommentarer eller standardvärden).
Roten till arbetsflödesdataträdet är project-entiteten. Varje projekt består av ett antal proteiner och/eller ligands som är byggstenar för att skapa provenheter. Varje exempel kan användas för att skapa flera rutnät som i sin tur används i mikroskopisessioner (ett rutnät per mikroskopisession). De senare tilldelas bearbetningssessioner som kan ge en eller flera kartor. Den sista entiteten i trädet är atommodellen, skapad med en eller flera kartor. Följaktligen är varje arbetsflödesrelaterad entitet, från protein till modell, alltid bunden till ett visst projekt via sina förfäder. Sådan design skapar dataaggregat som är lätta att bearbeta antingen med frontend-modulen eller av externa system som använder API: et.
Förutom arbetsflödesdata finns det entiteter som beskriver utrustning som används i experiment eller protokoll som följdes när rutnät förbereddes. Att definiera dessa entiteter är en förutsättning för att skapa experimentella arbetsflödesentiteter som rutnät, mikroskopi och bearbetningssessioner.
Den sista typen av dataentitet, som kollektivt heter “Övrigt”, används för tekniska ändamål (t.ex. bifogade filer eller standardvärden). Den här kategorin innehåller kommentarsenheter som kan länkas till alla arbetsflöden eller utrustnings-/protokollentiteter.
Tillgänglighet för programvara
Open source-versionen av gP2S är tillgänglig under en Apache License Version 2.026, från https://github.com/arohou/gP2S. En Docker-avbildning för att köra gP2S är tillgänglig https://hub.docker.com/r/arohou/gp2s. En filial till GP2S med sluten källkod är under fortsatt utveckling på Roche & Genentech.
Köra gP2S-programmet
Det finns två sätt att köra gP2S: som dockerbehållare eller som ett fristående Java-program. Det optimala valet beror på mål distributions miljön. Om du till exempel vill anpassa eller förbättra koden så att den passar användarnas specifika behov måste hela programmet byggas om först. I det här fallet kan gP2S som ett fristående program rekommenderas.
Docker-behållare
Det enklaste sättet att börja arbeta med gP2S-programmet är att köra det som en Docker-tjänst. För detta ändamål har en dedikerad Docker-avbildning förberetts och publicerats i Docker Hub-databasen (“https://hub.docker.com/r/arohou/gp2s”). Om du kör gP2S-avbildningen beror det på åtkomsten till MySQL- och MongoDB-databaser och till en LDAP-server. För icke-produktionsmiljö rekommenderas att du kör alla dessa beroenden som dockerprogram med flera behållare tillsammans med gP2S-programmet. För att göra detta sömlöst har en docker-compose-fil (https://github.com/arohou/gP2S/blob/master/docker-compose.yml) som innehåller alla nödvändiga konfigurationer av den slutliga miljön förberetts och tillhandahållits i GP2S GitHub-databasen (https://github.com/arohou/gP2S). Följande dockerbilder är beroenden: mysql27, mongodb28, apacheds29.
I standardkonfigurationen tas alla lagrade data, både entiteter och bifogade filer bort när docker-behållarna tas bort. För att behålla data bör antingen docknings volymer användas eller gP2S-programmet bör anslutas till dedikerade databas instanser (MySQL och MongoDB). ApacheDS LDAP-serverbehållaren levereras med en förkonfigurerad administratörsanvändare (lösenord: hemlig). Dessa autentiseringsuppgifter bör användas för att logga in på gP2S-programmet när det körs som en Docker-tjänst. För produktionsmiljöer kan samma docker-compose-fil användas för att distribuera gP2S (och andra behållare om det behövs) som tjänster till en Docker Swarm container orchestration-plattform.
Den fullständiga processen att köra gP2S som dockerbehållare, inklusive all information om korrekt konfiguration, beskrivs i gP2S GitHub-databasen och omfattar följande avsnitt:
• Kör det dockade gP2S-programmet med alla beroenden.
• Tillgång till gP2S-programmet, databasen och LDAP.
• Uppdatering av gP2S-tjänsten med en ny version.
• Ta bort gP2S-applikationen.
• Konfigurera databeständighet.
• Ansluta det dockeriserade gP2S-programmet till dedikerade databaser eller en LDAP-server.
• Konfigurationsinformation
Fristående Java-applikation
Ett annat alternativ för att köra gP2S-programmet är att bygga ett fristående Java-paket. Den här metoden bör användas om det inte är möjligt att köra Docker-behållare. För att skapa gP2S-programmet måste du installera ett Java Development Kit version 8 eller senare. Hela byggprocessen hanteras av Maven-verktyget, som finns i kodbasen i GitHub-databasen. Byggkonfigurationen är beredd att bygga frontend-delen först, sedan kopiera den till serverdelskällor och sedan bygga den som ett slutligt program. På så sätt finns det inget behov av att installera några andra verktyg eller bibliotek för att förbereda ett fullt fungerande gP2S-paket. Som standard är resultatet av bygget ett JAR-paket (lagras lokalt) och Docker-avbildning (skjuts till databasen konfigurerad i Maven pom.xml-filen). Det är viktigt att komma ihåg att information som krävs för att ansluta till externa system (databaser och LDAP-server) måste tillhandahållas i en korrekt konfigurationsfil innan paketet byggs.
När gP2S JAR-paketet har skapats innehåller det alla beroenden och konfigurationsinformation som behövs för att köra programmet, inklusive Tomcat-programservern som är värd för systemet. Om paketet byggdes med flera konfigurationsfiler kan det köras i olika lägen utan ombyggnad.
GP2S GitHub-lagringsplatsen innehåller en fullständig beskrivning av processen att skapa och köra gP2S som ett fristående program och täcker följande ämnen:
• Bygga gP2S med Maven-verktyget
• Bygga och köra med inbäddade databaser
• Bygga och köra med beroenden utplacerade som dockercontainrar
• Bygga och köra med dedikerade databaser
• Konfigurera autentisering
När gP2S används korrekt och konsekvent hjälper det till att uppnå korrekt registerhållning av metadata av hög kvalitet genom att genomdriva registrering av kritiska experimentella metadata med hjälp av strukturerade datamodeller och definierade ordförråd, men mervärdet av detta realiseras bara fullt ut när en hög efterlevnadsnivå uppnås i labbet. Ovanstående protokoll omfattar inte hur detta ska åstadkommas. Vi konstaterade att en effektiv tillsynsteknik var att mikroskopoperatörer vägrar att samla in data om nät som inte är registrerade i gP2S. Detta drev upp efterlevnaden mycket snabbt och lade grunden för framväxten, under de följande månaderna, av en stor mängd detaljerade och exakta experimentella detaljer och företagsminne. Efter några månaders användning blev värdet av korpus av metadata lagrade i gP2S så uppenbart för de flesta användare att efterlevnaden förblev hög utan uttryckligt ingripande.
För att fullt ut utnyttja detta kollektiva minne krävs att metadata som lagras i gP2S är tillgängliga för externa system och lätt förknippade med experimentella data (mikrografer) och resultat (kartor och modeller). Ovanstående protokoll beskriver inte hur man integrerar gP2S med andra informatik- och databehandlingssystem. Mest okomplicerade är potentiella integrationer via GP2S backend REST API, som inte kräver någon ändring av gP2S. Till exempel kör varje dator som styr våra datainsamlingsdetektorer ett skript som regelbundet frågar gP2S slutpunkt “getItemByMicroscope” under REST-styrenheten för mikroskopisessionshantering, för att kontrollera om en mikroskopisession pågår på mikroskopet. I så fall hämtar skriptet från gP2S lämpligt datalagringskatalognamn (som konfigurerats på sidan Inställningar, se ovan) och skapar en katalog på den lokala datalagringsenheten med det här namnet. Detta säkerställer systematisk namngivning av datalagringskataloger och minskar risken för fel på grund av skrivfel.
Även om de har kommenterats i källan till den offentliga versionen av GP2S är ytterligare integrationer som inbegriper gP2S-förbrukande externa systemdata också möjliga. I vårt labb integreras vår distribution av gP2S med (i) ett projekthanteringssystem, så att varje projekt som konfigurerats i gP2S kan länkas till ett företagsomfattande portföljprojekt och metadata från portföljen kan visas inom gP2S; ii) Ett system för proteinregistrering, så att varje protein som tillsätts gP2S via en identifierare som lagras lokalt, kopplas till en fullständig uppsättning register som beskriver proteinens härkomst, innehåller uppgifter om relevant molekylärbiologi, uttryckssystem och rening. iii) Ett litet system för hantering av molekylföreningar som gör det möjligt för gP2S att visa viktig information om varje ligand, såsom dess kemiska struktur. De kodändringar som krävs för att möjliggöra dessa integrationer beskrivs i avsnittet “Integration” i det README-BUILD.md dokument som är tillgängligt från GP2S-databasen (https://github.com/arohou/gP2S).
Den nuvarande versionen av gP2S har begränsningar, bland annat den alltför förenklade datamodellen och frontend för strukturdeposition (Modell). Detta lämnades avsiktligt i ett “barebones” tillstånd i den släppta versionen av gP2S eftersom en fullfjädrad strukturdeposition och valideringsfunktion för närvarande är under utveckling tillsammans med stöd för röntgenkristallografi. Ett annat designbeslut var att inte implementera något privilegium eller behörighetssystem: alla användare i gP2S har lika tillgång till dess funktioner och data. Detta kan göra det till ett dåligt val för anläggningar som betjänar användargrupper med konkurrerande intressen och sekretesskrav, men inte var ett problem för vår anläggning.
Utvecklingen av vår interna version av gP2S pågår och det är vår förhoppning att den open source-version som beskrivs här kommer att vara användbar för andra cryoEM-grupper, och att vissa kan bidra med förslag eller kodförbättringar i framtiden. Framtida värdefulla utvecklingar kan till exempel fokusera på integrationer med labbutrustning (vitrificationrobotar, elektronmikroskop), programvara (t.ex. för att skörda metadata för bildbehandling) och externa offentliga databaser (t.ex. för att underlätta strukturdepositioner).
Den systematiska insamlingen av högkvalitativa metadata som möjliggörs genom rutinmässig användning av gP2S i labbet och cryoEM-anläggningen kan ha en betydande, positiv inverkan på förmågan att åtala flera projekt parallellt under en period av år. I och med att fler och fler delade och centraliserade cryoEM-grupper och anläggningar etableras förväntar vi oss att behovet av informationshanteringssystem som gP2S kommer att fortsätta växa.
The authors have nothing to disclose.
Författarna tackar alla andra medlemmar i GP2S utvecklingsteam som har arbetat med projektet sedan starten: Rafał Udziela, Cezary Krzyżanowski, Przemysław Stankowski, Jacek Ziemski, Piotr Suchcicki, Karolina Pająk, Ewout Vanden Eyden, Damian Mierzwiński, Michał Wojtkowski, Piotr Pikusa, Anna Surdacka, Kamil Łuczak och Artur Kusak. Vi tackar också Raymond Ha och Claudio Ciferri för att de hjälpte till att sätta ihop teamet och forma projektet.