Questão:
Projetando um esquema de banco de dados de arquivo NGS de laboratório
Gus
2017-05-22 21:32:41 UTC
view on stackexchange narkive permalink

Eu sou o residente Bioinfo Geek em um laboratório acadêmico de hospital que rotineiramente emprega NGS, bem como CyTOF e outras tecnologias de produção de dados de grande volume. Estou farto de nosso "protocolo" atual para coleta de metadados e associação com os produtos finais (planilhas miriad excel e alguns bancos de dados RedCap mal projetados).

Quero implementar um armazenamento de dados central estruturado e controlado que irá cuide disso. Sei que a interface com os técnicos de como estarão inserindo os dados é fundamental para sua adoção, mas esse não é o foco desta pergunta em particular: Existe um esquema ou diretrizes de esquema para este tipo de banco de dados?

Prefiro usar um modelo desenvolvido por pessoas que sabem fazer isso bem. Eu conheço o BioSQL, mas parece mais voltado para registros completos de proteínas / nucleotídeos como aqueles encontrados em uniprot ou genbank. Não é isso que temos aqui. O que eu quero é algo semelhante ao sistema abordado neste preprint: http://biorxiv.org/content/early/2017/05/10/136358

Alternativamente, Alguém pode fornecer links para onde eu possa encontrar diretrizes relevantes ou fornecer conselhos pessoais?

Você deseja armazenar dados processados ​​ou não? Qual seria um exemplo de formato de arquivo que você tentaria capturar?
Isso é principalmente para organização de dados primários: obtemos 800 BAMs de WES e eu quero a localização do arquivo de cada BAM associado a metadados como: PROJECT, READ_LENGTH, SAMPLE_NAME, FAMILY_ID, DATA_TYPE, DIAGNOSIS, etc.
Olá Gus, também estamos fazendo a mesma pesquisa e criamos essa pergunta no Biostars, diga-nos se você encontrou algo! https://www.biostars.org/p/350514/
Trzy respostas:
woemler
2017-05-22 22:01:01 UTC
view on stackexchange narkive permalink

A Global Alliance for Genomics and Health tem trabalhado na questão da representação de dados de sequenciamento e metadados para armazenamento e compartilhamento por algum tempo, embora com resultados mistos. Eles oferecem um modelo e uma API para armazenar dados NGS em seu repositório GitHub, mas pode ser um pouco trabalhoso obter uma visualização de alto nível. Não tenho certeza se alguma representação melhor disso existe em outro lugar.

Posso dizer por experiência pessoal (tendo construído mais de uma dúzia de bancos de dados genômicos), não existe um modelo de dados ideal e práticas recomendadas de armazenamento. Os dados genômicos vêm em muitas formas e tamanhos, e suas necessidades variam de acordo com todas as outras organizações, então o que funciona para um grupo de bioinformática não necessariamente funcionará para você. A melhor coisa a fazer é projetar e implementar um modelo que cobrirá todos os tipos de dados em seu fluxo de trabalho e análises downstream que você pode fazer com os dados e metadados.

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

Concordo que não existe um modelo de dados ideal que seja estável por muito tempo em um campo de rápida evolução como a informática do genoma. Talvez uma abordagem de banco de dados sem esquema (NoSQL ou algum outro sistema baseado em documento, como MongoDB) funcione melhor? Isso dá a você flexibilidade máxima para anexar qualquer informação relevante às entradas do banco de dados que você está adicionando agora, sem a necessidade de reconstruir o banco de dados posteriormente, se desejar anexar mais / informações diferentes às entradas subsequentes do banco de dados.

user172818
2017-05-23 00:31:41 UTC
view on stackexchange narkive permalink

Para metadados , eu usaria um esquema SQL parecido com o seguinte:

  CREATE TABLE Projeto (ac TEXT, - projeto / acesso de estudo PRIMARY KEY ( ac)); CREATE TABLE Sample (- amostra biológica / biópsia ac TEXT, PRIMARY KEY (ac)); CREATE TABLE AnalysisSample (prj_ac TEXT, - projeto acccession (Project.ac) símbolo TEXT, - um nome curto exclusivo em o projeto sample_ac TEXT, - amostra de acesso (Sample.ac) PRIMARY KEY (prj_ac, símbolo)); CREATE TABLE Collection (- um arquivo BAM ac TEXT, - coleção / alinhamento de arquivo de acesso prj_ac TEXT, - project access ( Project.ac) PRIMARY KEY (ac)); CRIAR TABELA ReadGroup (cl_ac TEXT, - acesso de coleção (Collection.ac) rg_id TEXT, - @ RG-ID sample_sym TEXT, - @ RG-SM; correspondente AnalysisSample.symbol PRIMARY KEY (cl_ac, rg_id)); CREATE TABLE VariantSet (- um arquivo VCF ac TEXT, - VCF file access prj_ac TEXT, - project access (Project.ac) PRIMARY KEY (ac)); CRIAR TABELA Va riantSample (vs_ac TEXT, - acesso ao arquivo VCF (VariantSet.ac) sample_sym TEXT, - símbolo de amostra no arquivo VCF; correspondência AnalysisSample.symbol PRIMARY KEY (vs_ac, sample_sym));  

No esquema, você tem Projeto e tabelas biológicas Amostra , que são independentes umas das outras no alto nível. Um AnalysisSample descreve uma amostra usada em BAM ou VCF e conecta Projeto e Amostra biológica. É importante ressaltar que cada AnalysisSample possui um símbolo exclusivo em um projeto (consulte o índice primário). Este é o símbolo em uma linha de grupo de leitura BAM ou em uma linha de amostra VCF. Uma Collection é, na verdade, um arquivo BAM / CRAM. Em teoria, um arquivo BAM pode conter mais de uma amostra (embora rara na prática), que é endereçada por uma tabela ReadGroup separada. Finalmente, um VariantSet é um arquivo VCF. VariantSample informa quais amostras estão incluídas em cada arquivo VCF.

Este é o esqueleto de um esquema completo. Você pode adicionar campos extras às tabelas apropriadas (por exemplo, caminho do arquivo e hg19 / hg38 / etc para Collection , ler comprimento para ReadGroup e ID de família para Sample ). Você também precisa de índices para junção de tabelas eficiente e talvez mais tabelas para estruturas complexas (por exemplo, pedigree).

Para os projetos dos quais participei, esse esquema deve funcionar na maioria das vezes. É inspirado no esquema JSON do GA4GH, mas minha versão é em SQL, é mais simples e também tem uma estrutura um pouco diferente que acho melhor.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...