Frage:
Entwerfen eines Labor-NGS-Dateidatenbankschemas
Gus
2017-05-22 21:32:41 UTC
view on stackexchange narkive permalink

Ich bin der in einem akademischen Labor eines Krankenhauses ansässige Bioinfo Geek, der routinemäßig NGS sowie CyTOF und andere großvolumige Datenerzeugungstechnologien einsetzt. Ich habe unser aktuelles "Protokoll" für die Erfassung von Metadaten und die Zuordnung zu den Endprodukten (Miriad Excel Sheets und ein paar schlecht gestaltete RedCap-DBs) satt.

Ich möchte einen zentralen strukturierten, kontrollierten Datenspeicher implementieren, der dies ermöglicht Pass darauf auf. Ich weiß, dass die Schnittstelle zu den Technikern, wie die Daten eingegeben werden sollen, für deren Übernahme von entscheidender Bedeutung ist, aber dies ist nicht der Schwerpunkt dieser speziellen Frage: Gibt es ein Schema oder Schemarichtlinien für diesen Datenbanktyp? stark>

Ich würde lieber ein Modell verwenden, das von Leuten entwickelt wurde, die wissen, wie man das gut macht. Ich kenne BioSQL, aber es scheint eher auf vollständige Protein / Nukleotid-Aufzeichnungen ausgerichtet zu sein, wie sie in Uniprot oder Genbank zu finden sind. Das haben wir hier nicht. Was ich möchte, ist etwas Ähnliches wie das in diesem Preprint angesprochene System: http://biorxiv.org/content/early/2017/05/10/136358

Alternativ: Kann jemand Links zu relevanten Richtlinien oder persönlichen Ratschlägen bereitstellen?

Möchten Sie verarbeitete oder unverarbeitete Daten speichern? Was wäre ein Beispiel für ein Dateiformat, das Sie erfassen möchten?
Dies ist hauptsächlich für die Organisation primärer Daten gedacht: Wir erhalten 800 BAMs von WES und ich möchte, dass der Dateispeicherort jeder BAM mit Metadaten wie PROJECT, READ_LENGTH, SAMPLE_NAME, FAMILY_ID, DATA_TYPE, DIAGNOSIS usw. verknüpft ist.
Hey Gus, wir recherchieren auch und haben diese Frage in Biostars erstellt. Lass es uns wissen, wenn du etwas gefunden hast! https://www.biostars.org/p/350514/
Drei antworten:
#1
+9
woemler
2017-05-22 22:01:01 UTC
view on stackexchange narkive permalink

Die Globale Allianz für Genomik und Gesundheit beschäftigt sich seit geraumer Zeit mit der Darstellung von Sequenzierungsdaten und Metadaten für die Speicherung und gemeinsame Nutzung, allerdings mit gemischten Ergebnissen. Sie bieten ein Modell und eine API zum Speichern von NGS-Daten in ihrem GitHub-Repository an, aber es kann etwas mühsam sein, eine allgemeine Ansicht zu erhalten. Ich bin mir nicht sicher, ob es anderswo eine bessere Darstellung dafür gibt.

Ich kann aus persönlicher Erfahrung (nachdem ich über ein Dutzend Genomdatenbanken aufgebaut habe) sagen, dass es kein ideales Datenmodell und Best Practices für die Speicherung gibt. Genomdaten gibt es in vielen Formen und Größen, und Ihre Anforderungen unterscheiden sich von denen jeder anderen Organisation. Was für eine Bioinformatikgruppe funktioniert, funktioniert also nicht unbedingt für Sie. Am besten entwerfen und implementieren Sie ein Modell, das alle Datentypen in Ihrem Workflow und nachgelagerte Analysen abdeckt, die Sie möglicherweise mit den Daten und Metadaten durchführen.

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

Ich stimme zu, dass es kein ideales Datenmodell gibt, das in einem sich schnell bewegenden Bereich wie der Genominformatik sehr lange stabil sein wird. Vielleicht würde ein schemaloser Datenbankansatz (NoSQL oder ein anderes dokumentbasiertes System wie MongoDB) besser funktionieren? Dies gibt Ihnen ultimative Flexibilität, um alle Informationen anzuhängen, die für Datenbankeinträge relevant sind, die Sie jetzt zu Ihrer Datenbank hinzufügen, ohne die Datenbank später neu erstellen zu müssen, wenn Sie mehr / andere Informationen an nachfolgende Datenbankeinträge anhängen möchten.

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

Für Metadaten würde ich ein SQL-Schema wie das folgende verwenden:

  CREATE TABLE Project (ac TEXT, - Projekt- / Studienzugang PRIMARY KEY ( ac)); CREATE TABLE Probe (- biologische Probe / Biopsie ac TEXT, PRIMARY KEY (ac)); CREATE TABLE AnalysisSample (prj_ac TEXT, - Symbol für den Projektzugang (Project.ac) TEXT, - ein Kurzname, der in eindeutig ist das Projekt sample_ac TEXT, - Beispielzugang (Sample.ac) PRIMARY KEY (prj_ac, Symbol)); TABELLE ERSTELLEN Sammlung (- eine BAM-Datei ac TEXT, - Zugang zur Sammlung / Ausrichtungsdatei prj_ac TEXT, - Projektzugang ( Project.ac) PRIMARY KEY (ac)); CREATE TABLE ReadGroup (cl_ac TEXT, - Sammlungszugang (Collection.ac) rg_id TEXT, - @ RG-ID sample_sym TEXT, - @ RG-SM; Matching AnalysisSample.symbol PRIMARY KEY (cl_ac, rg_id)); CREATE TABLE VariantSet (- eine VCF-Datei ac TEXT, - VCF-Dateizugriff prj_ac TEXT, - Projektzugang (Project.ac) PRIMARY KEY (ac)); CREATE TABLE Va riantSample (vs_ac TEXT, - Zugang zur VCF-Datei (VariantSet.ac) sample_sym TEXT, - Beispielsymbol in der VCF-Datei; Matching AnalysisSample.symbol PRIMARY KEY (vs_ac, sample_sym));  

Im Schema haben Sie Project und biologische Sample -Tabellen. die auf hoher Ebene unabhängig voneinander sind. Eine Analyseprobe beschreibt eine in BAM oder VCF verwendete Probe und verbindet Projekt und biologische Probe . Wichtig ist, dass jedes AnalysisSample ein in einem Projekt eindeutiges Symbol hat (siehe Primärindex). Dies ist das Symbol in einer BAM-Lesegruppenzeile oder in einer VCF-Abtastzeile. Eine Sammlung ist praktisch eine BAM / CRAM-Datei. Theoretisch kann eine BAM-Datei mehr als ein Beispiel enthalten (obwohl dies in der Praxis selten ist), das von einer separaten ReadGroup -Tabelle adressiert wird. Schließlich ist ein VariantSet eine VCF-Datei. VariantSample gibt an, welche Samples in jeder VCF-Datei enthalten sind.

Dies ist das Grundgerüst eines vollständigen Schemas. Sie können entsprechenden Tabellen zusätzliche Felder hinzufügen (z. B. Dateipfad und hg19 / hg38 / usw. zu Sammlung , Leselänge zu Lesegruppe und Familien-ID zu Beispiel ). Sie benötigen auch Indizes für eine effiziente Tabellenverknüpfung und möglicherweise mehr Tabellen für komplexe Strukturen (z. B. Stammbaum).

Für die Projekte, an denen ich teilgenommen habe, sollte dieses Schema die meiste Zeit funktionieren. Es ist vom JSON-Schema von GA4GH inspiriert, aber meine Version ist in SQL, ist einfacher und hat auch eine etwas andere Struktur, die ich für besser halte.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...