Domanda:
Progettazione di uno schema di database di file NGS di laboratorio
Gus
2017-05-22 21:32:41 UTC
view on stackexchange narkive permalink

Sono Bioinfo Geek residente in un laboratorio accademico ospedaliero che impiega abitualmente NGS, CyTOF e altre tecnologie per la produzione di dati di grandi volumi. Sono stufo del nostro attuale "protocollo" per la raccolta di metadati e l'associazione con i prodotti finali (miriad fogli Excel e un paio di DB RedCap mal progettati).

Voglio implementare un datastore centralizzato strutturato e controllato che prenditi cura di questo. So che l'interfaccia per i tecnici come inserirà i dati è cruciale per la sua adozione, ma questo non è il fulcro di QUESTA domanda particolare: Esiste uno schema o linee guida dello schema per questo tipo di database?

Preferisco usare un modello che è stato sviluppato da persone che sanno come farlo bene. Conosco BioSQL ma sembra più orientato verso record completi di proteine ​​/ nucleotidi come quelli trovati in uniprot o genbank. Non è quello che abbiamo qui. Quello che voglio è qualcosa di simile al sistema accennato in questo prestampa: http://biorxiv.org/content/early/2017/05/10/136358

In alternativa, qualcuno può fornire collegamenti a dove potrei trovare linee guida pertinenti o fornire consigli personali?

Stai cercando di archiviare dati elaborati o non elaborati? Quale sarebbe un formato di file di esempio che tenteresti di acquisire?
Questo è principalmente per l'organizzazione dei dati primari: otteniamo 800 BAM di WES e voglio la posizione del file di ogni BAM associata a metadati come: PROJECT, READ_LENGTH, SAMPLE_NAME, FAMILY_ID, DATA_TYPE, DIAGNOSIS, ecc.
Ehi Gus, anche noi stiamo facendo la stessa ricerca e abbiamo creato questa domanda su Biostars, facci sapere se hai trovato qualcosa! https://www.biostars.org/p/350514/
Tre risposte:
#1
+9
woemler
2017-05-22 22:01:01 UTC
view on stackexchange narkive permalink

L ' Alleanza globale per la genomica e la salute ha lavorato per un po' di tempo sulla questione della rappresentazione dei dati di sequenziamento e dei metadati per l'archiviazione e la condivisione, anche se con risultati contrastanti. Offrono un modello e un'API per l'archiviazione dei dati NGS nel loro repository GitHub, ma può essere un po 'fastidioso ottenere una visualizzazione di alto livello. Non sono sicuro che una rappresentazione migliore di questo esista altrove.

Posso dire per esperienza personale (avendo costruito oltre una dozzina di database genomici), non esiste un modello di dati ideale e buone pratiche di archiviazione. I dati genomici sono disponibili in molte forme e dimensioni e le tue esigenze varieranno da ogni altra organizzazione, quindi ciò che funziona per un gruppo bioinformatico non funzionerà necessariamente per te. La cosa migliore da fare è progettare e implementare un modello che coprirà tutti i tipi di dati nel flusso di lavoro e le analisi a valle che potresti fare con i dati e i metadati.

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

Sono d'accordo sul fatto che non esiste un modello di dati ideale che sarà stabile per molto tempo in un campo in rapido movimento come l'informatica del genoma. Forse un approccio al database senza schema (NoSQL o qualche altro sistema basato su documenti, come MongoDB) funzionerebbe meglio? Questo ti dà la massima flessibilità per allegare qualsiasi informazione sia rilevante per le voci del database che stai aggiungendo al tuo database ora, senza la necessità di ricostruire il database in un secondo momento se desideri allegare più / diverse informazioni alle successive voci del database.

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

Per i metadati , userei uno schema SQL simile al seguente:

  CREATE TABLE Project (ac TEXT, - project / Study accession PRIMARY KEY ( ac)); CREATE TABLE Sample (- campione biologico / biopsia ac TEXT, PRIMARY KEY (ac)); CREATE TABLE AnalysisSample (prj_ac TEXT, - project acccession (Project.ac) symbol TEXT, - un nome breve unico in the 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) PRIMARY KEY (ac)); CREATE TABLE ReadGroup (cl_ac TEXT, - collection accession (Collection.ac) rg_id TEXT, - @ RG-ID sample_sym TEXT, - @ RG-SM; matching AnalysisSample.symbol PRIMARY KEY (cl_ac, rg_id)); CREATE TABLE VariantSet (- un file VCF ac TEXT, - VCF file accession prj_ac TEXT, - project accession (Project.ac) PRIMARY KEY (ac)); CREATE TABLE Va riantSample (vs_ac TEXT, - accesso al file VCF (VariantSet.ac) sample_sym TEXT, - simbolo di esempio nel file VCF; matching AnalysisSample.symbol PRIMARY KEY (vs_ac, sample_sym));  

Nello schema sono presenti le tabelle Project e Sample biologiche, che sono indipendenti l'uno dall'altro ad alto livello. Un AnalysisSample descrive un campione utilizzato in BAM o VCF e collega Project e Sample biologico. È importante sottolineare che ogni AnalysisSample ha un simbolo univoco in un progetto (vedere l'indice principale). Questo è il simbolo su una riga del gruppo di lettura BAM o su una riga di campionamento VCF. Una Collection è in effetti un file BAM / CRAM. In teoria, un file BAM può contenere più di un campione (sebbene raro in pratica), che viene affrontato da una tabella ReadGroup separata. Infine, un VariantSet è un file VCF. VariantSample ti dice quali campioni sono inclusi in ogni file VCF.

Questo è lo scheletro di uno schema completo. Puoi aggiungere campi extra alle tabelle appropriate (es. Percorso del file e hg19 / hg38 / etc a Collection , lunghezza di lettura a ReadGroup e ID famiglia a Sample ). Hai anche bisogno di indici per unire tabelle efficienti e forse più tabelle per strutture complesse (es. Pedigree).

Per i progetti a cui ho partecipato, questo schema dovrebbe funzionare la maggior parte del tempo. È ispirato allo schema JSON di GA4GH, ma la mia versione è in SQL, è più semplice e ha anche una struttura leggermente diversa che penso sia migliore.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...