Vraag:
Ontwerpen van een NGS-bestandsdatabaseschema voor een lab
Gus
2017-05-22 21:32:41 UTC
view on stackexchange narkive permalink

Ik ben de inwoner van Bioinfo Geek in een academisch laboratorium van een ziekenhuis dat routinematig NGS gebruikt, evenals CyTOF en andere grootschalige gegevensproducerende technologieën. Ik ben ziek van ons huidige "protocol" voor het verzamelen van metadata en de associatie met de eindproducten (miriad excel-sheets en een paar slecht ontworpen RedCap DB's).

Ik wil een centraal gestructureerde, gecontroleerde datastore implementeren die los dit op. Ik weet dat de interface naar de technici hoe de gegevens worden ingevoerd cruciaal is voor de acceptatie ervan, maar dit is niet de focus van DEZE specifieke vraag: Bestaat er een schema of schema-richtlijnen voor dit type database?

Ik gebruik liever een model dat is ontwikkeld door mensen die weten hoe ze dit goed moeten doen. Ik ken BioSQL, maar het lijkt meer gericht op volledige proteïne / nucleotide-records zoals die gevonden worden in uniprot of genbank. Dat is niet wat we hier hebben. Wat ik wil is iets dat lijkt op het systeem dat in deze voordruk wordt aangeraakt: http://biorxiv.org/content/early/2017/05/10/136358

Als alternatief, kan iemand links geven naar waar ik relevante richtlijnen kan vinden of persoonlijk advies geven?

Wilt u verwerkte of onbewerkte gegevens opslaan? Wat zou een voorbeeldbestandsformaat zijn dat u zou proberen vast te leggen?
Dit is meestal voor de primaire gegevensorganisatie: we krijgen 800 BAM's van WES en ik wil de bestandslocatie van elke BAM die is gekoppeld aan metadata zoals: PROJECT, READ_LENGTH, SAMPLE_NAME, FAMILY_ID, DATA_TYPE, DIAGNOSIS, enz.
Hey Gus, we doen ook hetzelfde onderzoek en hebben deze vraag in Biostars gemaakt, laat het ons weten als je iets gevonden hebt! https://www.biostars.org/p/350514/
Drie antwoorden:
#1
+9
woemler
2017-05-22 22:01:01 UTC
view on stackexchange narkive permalink

De Global Alliance for Genomics and Health werkt al geruime tijd aan de kwestie van het representeren van sequentiegegevens en metagegevens voor opslag en delen, maar met gemengde resultaten. Ze bieden wel een model en API voor het opslaan van NGS-gegevens in hun GitHub-opslagplaats, maar het kan een beetje vervelend zijn om een ​​overzicht op hoog niveau te krijgen. Ik weet niet zeker of er ergens anders een betere weergave hiervan bestaat.

Ik kan zeggen uit persoonlijke ervaring (ik heb meer dan een dozijn genomische databases gebouwd) dat er geen ideaal datamodel en best practices voor opslag bestaat. Genomische gegevens zijn er in vele soorten en maten, en uw behoeften zullen van elke andere organisatie verschillen, dus wat werkt voor één bio-informatica-groep, hoeft niet noodzakelijk voor u te werken. Het beste wat u kunt doen, is een model ontwerpen en implementeren dat alle gegevenstypen in uw workflow en downstreamanalyses die u met de gegevens en metagegevens zou kunnen doen, omvat.

#2
+5
Daniel Standage
2017-05-22 23:04:32 UTC
view on stackexchange narkive permalink

Ik ben het ermee eens dat er geen ideaal datamodel is dat erg lang stabiel zal blijven in een snel veranderend veld als genoominformatica. Misschien zou een databasemethode zonder schema (NoSQL of een ander documentgebaseerd systeem, zoals MongoDB), beter werken? Dit geeft u de ultieme flexibiliteit om alle informatie toe te voegen die relevant is voor database-items die u nu aan uw database toevoegt, zonder dat u de database later opnieuw hoeft op te bouwen als u meer / andere informatie wilt toevoegen aan volgende database-items.

#3
+5
user172818
2017-05-23 00:31:41 UTC
view on stackexchange narkive permalink

Voor metadata zou ik een SQL-schema gebruiken zoals het volgende:

  CREATE TABLE Project (ac TEXT, - project / Study accession PRIMARY KEY ( ac)); CREATE TABLE Sample (- biologisch monster / biopsie ac TEXT, PRIMARY KEY (ac)); CREATE TABLE AnalysisSample (prj_ac TEXT, - project acccession (Project.ac) symbool TEXT, - een korte naam uniek in het project sample_ac TEXT, - sample accession (Sample.ac) PRIMARY KEY (prj_ac, symbol)); CREATE TABLE Collection (- a BAM file ac TEXT, - collection / alignment file accession prj_ac TEXT, - project accession ( Project.ac) PRIMAIRE SLEUTEL (ac)); CREATE TABLE ReadGroup (cl_ac TEXT, - collection accession (Collection.ac) rg_id TEXT, - @ RG-ID sample_sym TEXT, - @ RG-SM; matching AnalysisSample.symbol PRIMAIRE SLEUTEL (cl_ac, rg_id)); CREATE TABLE VariantSet (- een VCF-bestand ac TEXT, - VCF-bestand accession prj_ac TEXT, - projecttoegang (Project.ac) PRIMAIRE SLEUTEL (ac)); CREATE TABLE Va riantSample (vs_ac TEXT, - VCF-bestandstoegang (VariantSet.ac) sample_sym TEXT, - voorbeeldsymbool in het VCF-bestand; matching AnalysisSample.symbol PRIMARY KEY (vs_ac, sample_sym));  

In het schema heb je Project en biologische Sample tabellen, die op hoog niveau onafhankelijk van elkaar zijn. Een AnalysisSample beschrijft een monster dat wordt gebruikt in BAM of VCF en verbindt Project en biologisch Sample . Belangrijk is dat elke AnalysisSample een symbool heeft dat uniek is in een project (zie de primaire index). Dit is het symbool op een BAM-leesgroeplijn of op een VCF-bemonsteringslijn. Een Verzameling is in feite een BAM / CRAM-bestand. In theorie kan een BAM-bestand meer dan één steekproef bevatten (hoewel zeldzaam in de praktijk), die wordt geadresseerd door een aparte ReadGroup -tabel. Ten slotte is een VariantSet een VCF-bestand. VariantSample vertelt u welke voorbeelden in elk VCF-bestand zijn opgenomen.

Dit is het skelet van een volledig schema. U kunt extra velden toevoegen aan geschikte tabellen (bijv. Bestandspad en hg19 / hg38 / etc naar Collectie , leeslengte naar Leesgroep en familie-ID naar Voorbeeld ). Je hebt ook indices nodig voor het efficiënt samenvoegen van tafels en misschien meer tabellen voor complexe structuren (bijv. Stamboom).

Voor de projecten waaraan ik heb deelgenomen, zou dit schema het grootste deel van de tijd moeten werken. Het is geïnspireerd op het JSON-schema van GA4GH, maar mijn versie is in SQL, is eenvoudiger en heeft ook een iets andere structuur waarvan ik denk dat het beter is.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...