MetaPhase: Uma ferramenta de software para desconvolução metagenômica com Hi-C.
Criado por Josh Burton ( jnburton at uw.edu
) no Departamento de Ciências do Genoma da Universidade de Washington, Seattle, WA, EUA
Publicação no G3: Genes | Genomas | Genética (cite) está aqui: http://dx.doi.org/10.1534/g3.114.011825
O que é MetaPhase e por que me importo?
O que preciso ter para usar o MetaPhase?
Requisitos do sistema
Baixando o pacote MetaPhase
Compilando o pacote MetaPhase
Passo a passo: experimente o MetaPhase em um conjunto de dados de amostra
Lista de arquivos de entrada
Criando o rascunho da montagem do metagenoma
Alinhando as leituras de Hi-C com o rascunho da montagem do metagenoma
Fornecendo genomas de referência
Criando arquivos TSV
Argumentos de linha de comando obrigatórios
Argumentos opcionais de linha de comando
Argumentos de linha de comando de saída (todos alternadores opcionais)
Gráficos
Imagens
Arquivos no diretório de saída
Correndo LACHESIS
MetaPhase não funciona!
MetaPhase está travando!
MetaPhase está produzindo um resultado estranho!
MetaPhase é uma ferramenta de software para realizar desconvolução metagenômica. Ou seja, ele insere uma montagem de metagenoma – uma montagem criada a partir de uma amostra genômica mista, geralmente de muitas espécies microbianas diferentes – e determina quais contigs nessa montagem pertencem juntos nos mesmos genomas. Uma montagem de metagenoma não contém os genomas completos de nenhuma espécie na amostra mista, mas a montagem desconvolutada pode conter genomas quase completos de muitas espécies individuais. MetaPhase depende de dados gerados por Hi-C, uma técnica molecular estabelecida para estudar a conformação da cromatina (papel).
Você deseja usar o MetaPhase se estiver estudando uma comunidade microbiana e quiser conhecer os genomas de espécies microbianas individuais. MetaPhase funciona bem em comunidades bastante complexas e pode estudar eucariontes e procariontes igualmente bem. MetaPhase não pode deconvoluir cepas intimamente relacionadas da mesma espécie; isso colocará todas essas cepas em um único cluster. O MetaPhase não foi testado em comunidades com milhares de espécies, como o microbioma intestinal humano, nem consegue detectar de forma confiável espécies com abundâncias bem abaixo de 1%. (Observe que a limitação aqui está na incapacidade do software padrão de montagem de metagenoma de novo de gerar um rascunho de montagem de metagenoma contendo contigs de espécies raras, em vez da capacidade do MetaPhase de deconvoluir esses contigs.)
Você não deseja usar o MetaPhase se estiver estudando a variação de deformação dentro de uma única espécie. Ou se você estiver estudando rearranjos genômicos em genomas de câncer humano. Você também não deseja usar o MetaPhase, a menos que tenha um conjunto de dados metagenômico Hi-C ou esteja disposto a criar um; Hi-C não é uma técnica trivial de aprender. A deconvolução metagenômica puramente computacional (em vez de molecular) é difícil, mas não impossível: veja os artigos citados na introdução do artigo MetaPhase.
Em um nível superior, você só precisa de duas coisas para executar o MetaPhase:
Um rascunho de montagem de metagenoma de novo . Isso pode ser criado a partir de uma biblioteca de sequenciamento de metagenoma shotgun por qualquer número de ferramentas de montagem, como Velvet, IDBA-UD, ABySS ou SPAdes.
Uma biblioteca de sequenciamento Hi-C criada a partir de uma amostra de metagenoma - de preferência a mesma amostra que foi usada para criar a montagem de metagenoma de novo , ou uma muito semelhante.
Em um nível baixo, o MetaPhase requer vários arquivos de entrada diferentes, bem como algumas entradas opcionais. Para mais detalhes sobre os arquivos de entrada, consulte a seção C1, "Lista de arquivos de entrada".
Para configurar e executar o MetaPhase, você precisará de um computador rodando em ambiente UNIX com pelo menos 16 GB de memória, com o seguinte software instalado:
gcc, o compilador C++ (http://gcc.gnu.org/)
A biblioteca de compactação zlib (http://www.zlib.net/)
Você também pode precisar do seguinte software:
O alinhador de leitura curta BWA (http://bio-bwa.sourceforge.net/) ou outro alinhador semelhante
O alinhador BLAST em formato de linha de comando (http://www.ncbi.nlm.nih.gov/books/NBK1763/), incluindo os comandos blastn
, tblastx
e makeblastdb
O software bmtagger para remover leituras humanas de conjuntos de dados metagenômicos (//biowulf.nih.gov/apps/bmtagger.html)
O MetaPhase também requer as bibliotecas boost C++ (http://www.boost.org/) e o kit de ferramentas SAMtools (http://samtools.sourceforge.net/), mas estas estão incluídas no pacote de instalação do MetaPhase.
Baixe o pacote MetaPhase em https://github.com/shendurelab/MetaPhase/archive/master.zip em um sistema de arquivos UNIX. Se você fizer download do tarball ( MetaPhase.tar.gz
), descompacte-o usando os seguintes comandos UNIX:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
De agora em diante, estou me referindo ao diretório principal do MetaPhase como <MetaPhase>
.
Para compilar o MetaPhase, basta digitar make
no diretório <MetaPhase>
. Para executar o MetaPhase, você também pode precisar adicionar <MetaPhase>/include/boost_1_47_0/stage/lib
ao seu $LD_LIBRARY_PATH
(para evitar um problema: cannot open shared object file...
) Por último, certifique-se de executar MetaPhase do diretório <MetaPhase>
ou adicione esse diretório ao seu $PATH
. Isso é importante porque alguns módulos MetaPhase precisam acessar os scripts executáveis FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
e MakeClusteringResultHeatmap.R
, que estão incluídos no pacote MetaPhase.
O pacote MetaPhase inclui um pequeno caso de teste que você pode executar para ter uma ideia de como o MetaPhase funciona. Está contido no diretório test_case
, que possui os seguintes subdiretórios:
<MetaPhase>/test_case/assembly/
: Contém um rascunho da montagem do metagenoma de novo , assembly.fasta
. Esta montagem consiste em 20 contigs retirados de uma montagem muito maior de uma amostra de vaginose bacteriana. Ele serve aqui como um exemplo de brinquedo de montagem de metagenoma.
<MetaPhase>/test_case/HiC/
: Contém 2 arquivos fastq, BV.H3.head.bmt.1.fq e BV.H3.head.bmt.2.fq. Essas leituras são um subconjunto de um conjunto de dados Hi-C muito maior, sequenciado a partir de uma amostra de vaginose bacteriana. Eles já foram filtrados com bmtagger para remover leituras humanas.
<MetaPhase>/test_case/refs/
: Contém um genoma de referência disponível publicamente, LI.fasta
, para a bactéria Lactobacillus iners . Esta é uma entrada opcional que o MetaPhase usará para verificar se seus clusters correspondem ao genoma de L. iners .
<MetaPhase>/test_case/tsvs/
: Contém dois arquivos TSV que descrevem a localização de outros arquivos de entrada e são usados pelo MetaPhase.
<MetaPhase>/test_case/out/
: Este diretório não existe inicialmente. Quando o MetaPhase for executado no caso de teste, ele criará este diretório e colocará sua saída aqui.
A única entrada (opcional) que falta no test_case é um banco de dados BLAST de sequências de nucleotídeos. Este banco de dados, que permite consultar os contigs do assembly do metagenoma em relação a todas as sequências conhecidas, é grande demais para um pacote de teste, mas pode ser baixado do site do BLAST. Para usar este banco de dados, você precisará definir o argumento de linha de comando --blast_dir
.
Para aplicar MetaPhase ao test_case, execute os seguintes comandos:
Prepare o rascunho da montagem do metagenoma de novo para alinhamento com bwa. Observe que bwa
deve estar no seu $PATH
. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Alinhe as leituras de Hi-C com a montagem de rascunho. Isso usa align.sh
, um script que já é fornecido, que executa bwa aln
e bwa sampe
e cria um arquivo BAM que o MetaPhase usará. Observe que você deve usar bwa aln
e bwa sampe
, não bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
Examine os arquivos TSV para ter certeza de que entende o que eles estão fazendo. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
Agora, execute o caso de teste MetaPhase com um conjunto básico de argumentos de linha de comando. Os propósitos de todos esses argumentos de linha de comando são explicados abaixo na seção D, "Executando o MetaPhase". cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
A primeira coisa que o MetaPhase fará é alinhar os contigs da montagem preliminar com o genoma de referência LI.fasta. Isso pode levar vários minutos, mas é uma espera única: os resultados serão armazenados em cache em um arquivo especial. Em seguida, o MetaPhase agrupará os 20 contigs na montagem preliminar por suas ligações Hi-C, criando 3 clusters (por causa de -N 3
). Por último, o MetaPhase reportará estatísticas básicas sobre os clusters que criou.
Agora tente executar o MetaPhase novamente, adicionando um ou mais dos seguintes argumentos de linha de comando: --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
. Cada uma dessas opções resultará na saída de mais informações em vários formatos: na tela, em arquivos ou em imagens. Consulte a seção D2, "Argumentos opcionais de linha de comando" para obter mais informações.
Agora olhe em test_case/out/test_case
. Este é o diretório de saída criado pela execução do MetaPhase. Ele contém vários arquivos de saída. Os arquivos cluster.*.fasta
são seus fastas de cluster (eles existem apenas se você tiver executado com --output_cluster_fastas
.) O subdiretório cached_data
contém arquivos de dados armazenados em cache , que incluem os resultados de execuções do BLAST e clusterings MetaPhase.
Observe que test_case é um conjunto de dados muito pequeno e seus resultados não são biologicamente úteis ou típicos. Por exemplo, existem tão poucos pares de leitura Hi-C que 10 dos 20 contigs estão completamente desvinculados, e aqueles que estão vinculados estão em três clusters separados (portanto, é impossível produzir menos de 3 clusters). recurso do MetaPhase, que é que podemos usá-lo para prever o número de clusters. Na sua amostra (embora, infelizmente, não no test_case), você pode executar o MetaPhase com -N 1
e ele gerará uma curva de enriquecimento E(N) , assim como a da Figura S4 do artigo MetaPhase. Isso permitirá que você determine o número aproximado de espécies em sua montagem de metagenoma e, portanto, o número ideal de clusters.
MetaPhase usa os seguintes arquivos de entrada diretamente. Para obter uma ilustração da aparência de todos esses arquivos, consulte test_case.
Arquivos necessários:
Um rascunho de montagem de metagenoma, em formato fasta
Um ou mais arquivos SAM/BAM que descrevem alinhamentos de leituras Hi-C para um rascunho de montagem de metagenoma. Observe que esses arquivos SAM/BAM devem ter cada leitura listada apenas uma vez, o que significa que eles devem ser gerados com bwa aln e bwa sampe, NÃO bwa mem.
Dois arquivos TSV, <scenario>.HiC_libs.tsv
e <scenario>.refs.tsv
, que descrevem o conjunto de arquivos de entrada BAM e o conjunto de genomas de referência, respectivamente. Arquivos opcionais:
Um banco de dados BLAST que descreve todas as sequências conhecidas de nucleotídeos ( nt
) e/ou proteínas ( nr
). Uma versão atualizada desse banco de dados pode ser baixada do site do BLAST, que também contém instruções sobre como instalar os utilitários de linha de comando blastn
e tblastx
necessários. Observe que esses bancos de dados são grandes (em 2015, nt
tem aproximadamente 25 Gb e nr
tem aproximadamente 50 Gb).
Um conjunto de genomas de referência em formato fasta, descrevendo espécies que você acredita estarem em sua amostra ou relacionadas a coisas em sua amostra. Se você não sabe tudo em sua amostra (e provavelmente não sabe), então você pode esperar até já ter alinhado seu conjunto de metagenoma com uma pesquisa BLAST e então aceitar sugestões desses resultados de pesquisa. Para encontrar um conjunto de genoma de referência para uma espécie, pesquise no banco de dados do NCBI Assembly.
Um arquivo SAM/BAM que descreve alinhamentos de leituras de espingarda para um rascunho de montagem de metagenoma. As leituras da espingarda são as mesmas usadas para criar a montagem. MetaPhase pode usar este arquivo para estimar a abundância em sua amostra de cada contig e, portanto, de cada cluster. Atualmente não está disponível sem hackear um pouco o MetaPhase.cc (desculpe.)
Uma das entradas mais importantes para o MetaPhase é o rascunho da montagem do metagenoma de novo . Você mesmo deve criar esta montagem usando leituras shotgun de sua amostra. Existem muitas ferramentas de montagem de metagenoma de novo disponíveis publicamente que funcionam muito bem, incluindo Velvet, IDBA-UD, ABySS e SPAdes. Usei IDBA-UD durante o desenvolvimento do MetaPhase.
É importante perceber que MetaPhase não produz nenhuma sequência nova; ele apenas agrupa a sequência que já está na montagem. Se alguma sequência de sua amostra não for incluída na montagem preliminar - porque é muito rara, muito desequilibrada por GC, muito repetitiva ou por qualquer outro motivo - então o MetaPhase não poderá agrupá-la em um genoma. Pode valer a pena experimentar muitas opções diferentes em seu montador de metagenoma, ou muitas ferramentas diferentes de montagem de metagenoma, para obter uma montagem com a maior quantidade de sequência e o contig N50 mais longo.
O MetaPhase tem um desempenho muito melhor quando seus contigs de entrada são mais longos, porque há um sinal mais claro de ligação Hi-C para uso. Em particular, o MetaPhase não pode agrupar um contig que não contenha nenhum local de enzima de restrição , porque uma leitura Hi-C não pode se alinhar de forma confiável a ele. Tenha esse fato em mente ao escolher qual enzima de restrição usar em seu experimento Hi-C. Se o seu conjunto de metagenoma tiver um N50 pequeno, você pode querer usar uma enzima de restrição de 4 cortadores em vez de uma de 6 cortadores. (Por exemplo, se o seu conjunto de metagenoma tiver um N50 de apenas 4 Kb, então uma biblioteca Hi-C feita com um cortador de 6 - que corta aproximadamente a cada 4 Kb - será completamente incapaz de agrupar 50% da sequência do conjunto.)
Além da montagem do metagenoma em si, o MetaPhase insere um alinhamento das leituras Hi-C com a montagem do metagenoma. Este arquivo deve estar no formato SAM ou BAM e deve conter cada leitura Hi-C apenas uma vez. Você pode usar qualquer alinhador que produza arquivos SAM/BAM; Usei o bwa durante o desenvolvimento do MetaPhas; se você usar bwa, certifique-se de usar bwa aln e bwa sampe, não bwa mem, que gera cada leitura várias vezes!)
As leituras Hi-C são únicas: são deliberadamente quiméricas, com um sítio de ligação quimérico cuja sequência é conhecida a partir da enzima de restrição (por exemplo, HindIII corta em AAGCTT e produz AAGCTAGCTT após religação). perca muitos pares Hi-C úteis. Você pode querer projetar um pipeline de alinhamento personalizado para maximizar seu rendimento; em caso afirmativo, dê uma olhada no script align.iter.interactive.sh
, que usei em meu próprio desenvolvimento e pode lhe dar ideias para seu pipeline personalizado.
Fornecer genomas de referência para MetaPhase é totalmente opcional, mas muito útil. O MetaPhase pode alinhar os contigs da montagem preliminar para obter uma pista de quais espécies eles provavelmente pertencem. Existem duas maneiras de fazer isso: alinhando-se a um banco de dados BLAST contendo todas as sequências conhecidas; e alinhamento a um arquivo fasta local contendo uma única montagem de genoma de referência. O primeiro método é útil para explorar a questão de quais táxons estão na sua amostra; o último método é útil para se concentrar em espécies individuais que você sabe que estão em sua amostra (ou relacionadas a itens em sua amostra) e para criar o mapa de calor e imagens de rede de cluster (consulte a seção E2, "Imagens"). Você pode começar apenas com um alinhamento do BLAST, depois usar os resultados daí para determinar quais espécies você provavelmente encontrará, depois baixar essas referências e alimentá-las no MetaPhase. A lista de conjuntos de genoma de referência é fornecida ao MetaPhase no arquivo <scenario>.refs.tsv
.
A MetaPhase realizará todos os alinhamentos tanto com o banco de dados BLAST quanto com os genomas de referência. MetaPhase pode chamar os comandos do BLAST blastn
, tblastx
e makeblastdb
, todos os quais fazem parte do pacote de código de linha de comando do BLAST; certifique-se de que esses comandos estejam em seu $PATH
. Observe que o BLAST pode usar muito tempo de execução, especialmente se você definir --use-tblastx
. No entanto, o MetaPhase armazena em cache os resultados das execuções do BLAST em <out_dir>/cached_data
para salvar o tempo de execução posteriormente.
MetaPhase requer dois arquivos de entrada TSV (valores separados por tabulação): um para fornecer o conjunto de arquivos de alinhamento SAM/BAM e outro para fornecer o conjunto de conjuntos de genoma de referência. Esses arquivos são pequenos e você vai querer fazê-los manualmente, especialmente porque eles podem precisar de modificação manual posteriormente. A coisa mais fácil a fazer é seguir o exemplo dos arquivos TSV em test_case/tsvs
.
Para obter um resumo rápido de todos os argumentos de linha de comando do MetaPhase, execute MetaPhase -help
. Uma explicação mais detalhada está aqui.
-s
<string>
: nome do cenário. Isso é usado pelo MetaPhase para nomear sua execução. É usado como início do nome dos arquivos tsv (veja -i
abaixo) e também como nome do diretório de saída (veja -o
abaixo). Por último, você pode ignorar isso, mas existem alguns nomes de cenários que possuem opções de linha de comando conectadas que usei no desenvolvimento (é, por exemplo, por que -a
não está listado como um argumento "obrigatório" no MetaPhase -help
comando MetaPhase -help
.)
-a
<string>
: A localização do rascunho do arquivo fasta de montagem do metagenoma de novo . Este deve ser um caminho absoluto, não um caminho relativo - ou seja , deve começar com /
.
-N
<integer>
: o número de clusters a serem criados. Se você definir como 1, o MetaPhase agrupará tudo em um único cluster e calculará E(N), o enriquecimento do link intra-cluster, ao longo do caminho e, em seguida, gravará um arquivo enrichment_curve.jpg
que pode fornecer uma estimativa do número de espécies em sua amostra. Não defina como 0 ou um número maior que o número de contigs.
Alguns desses argumentos incluem $HOME
em seus valores padrão. Isso se refere ao diretório inicial do UNIX (o lugar para onde você vai quando digita cd ~
ou cd $HOME
.)
-i
<string>
: diretório de entrada. Este é o diretório que contém os arquivos tsv, <scenario>.HiC_libs.tsv
e <scenario>.refs.tsv
. Padrão: ./input
.
-o
<string>
: diretório raiz de saída. Os arquivos de saída desta execução irão para <out_dir>/<scenario>
. Padrão: $HOME/MP/out
.
--blast_dir
<string>
: Diretório contendo os bancos de dados BLAST ( nt.*
e nr.*
) que o MetaPhase usa para alinhamentos. Você pode baixar esses arquivos no site do BLAST. Padrão: $HOME/extern/blast
.
--refs_dir
<string>
: diretório que contém os conjuntos de genoma de referência listados no arquivo refs.tsv
. Os arquivos de saída desta execução irão para <out_dir>/<scenario>
. Padrão: $HOME/MP/refs
.
--use_tblastx
: Alternar. Se definido, o MetaPhase realizará seus alinhamentos BLAST usando tblastx
em vez de blastn
- que, em vez de alinhar as sequências de nucleotídeos dos contigs com um banco de dados de nucleotídeos, traduz os nucleotídeos em aminoácidos e os alinha a um banco de dados de proteínas. Como as sequências de proteínas são mais conservadas do que as sequências de nucleotídeos, tblastx
capta relações filogenéticas mais distantes - ou seja , no nível de família ou gênero em vez de espécie - que você pode ou não querer. tblastx
também é muito mais lento que blastn
.
--force_blast_realign
: Alternar. Se definido, o MetaPhase irá ignorar e sobrescrever quaisquer arquivos em cache que descrevam alinhamentos do BLAST.
-b
: Alternar. Aplique bootstrapping estatístico à matriz de links. Em outras palavras, uma vez criada a matriz de links Hi-C (e antes de ser normalizada), faça uma nova amostragem da matriz com substituição, criando uma nova matriz com o mesmo número total de links, mas uma variação aleatória no posicionamento exato dos links. Se você quiser testar a robustez do resultado do seu clustering, execute o MetaPhase com -b
várias vezes e compare os resultados, que devem ser estocasticamente diferentes.
--isolated_component_size <integer>
: Depois de criar o gráfico de conectividade contig a partir da matriz de links, descarte qualquer componente no gráfico com menos que esse número de contigs. Na maioria dos conjuntos de dados, tais componentes consistem em ruído que não pode ser colocado de forma confiável em nenhuma espécie e, como esses componentes nunca podem ser combinados com outros componentes, eles podem prejudicar o número aparente do cluster. No entanto, se os dados do seu link Hi-C forem esparsos, pode ser necessário reduzi-los para evitar o descarte de clusters reais. Padrão: 100
.
--jarvis_patrick_K <integer>
: O valor de K usado na etapa de pré-clustering Jarvis-Patrick. Valores mais altos aumentam o tempo de execução, mas podem aumentar a precisão. Para entender esse número em detalhes, acesse Jarvis e Patrick, "Clustering Using a Similarity Measure Based on Shared Near Neighbors", 1973. Padrão: 100
.
--min_cluster_norm <integer>
: A norma mínima de um cluster permitido. A "norma" de um contig é o número de sítios de enzimas de restrição (RE) que ele contém, e a norma de um cluster é a soma das normas de seus contigs. Este parâmetro pode ter um grande efeito na saída: aumentar o min_cluster_norm
aumentará o tamanho mínimo possível de um cluster, potencialmente destruindo clusters que representam espécies pequenas; mas também evita a formação de pequenos miniclusters irritantes contendo apenas um pequeno número de contigs (2-3) que geralmente resultam de ruído nos dados e/ou de contigs repetitivos. Se você estiver obtendo um cluster enorme com a maioria dos seus contigs e todos os outros clusters forem pequenos, será necessário aumentá-lo. Tenha em mente que a norma de um cluster é aproximadamente igual ao seu comprimento em bp dividido pela frequência do local de RE, portanto o número ideal pode ser diferente para diferentes tipos de REs. Padrão: 25
.
-merge
: Alternar. Aplique alguns algoritmos experimentais de agrupamento para mesclar vários agrupamentos independentes decorrentes de diferentes bibliotecas Hi-C. Não recomendado.
--load_cached_clusters
: Alternar. Se definido, em vez de realizar clustering, o MetaPhase procurará um arquivo em cache em <out_dir>/<scenario>.cached_data
que contenha resultados de clustering calculados anteriormente. Este arquivo existirá se o MetaPhase tiver sido executado anteriormente neste cenário com o mesmo valor de -N
de agora e sem o sinalizador --dont_output_cache
. Essa é uma maneira de economizar tempo se você quiser analisar os resultados do cluster sem executar novamente o cluster.
--dont_output_cache
: Alternar. Não crie (ou substitua) um arquivo de cache de cluster que possa ser carregado posteriormente com --load_cached_clusters
. Esta opção é substituída por --load_cached_clusters
.
--report_unclustered
: Alternar. Se definido, o MetaPhase produz um relatório final sobre os contigs que não foram agrupados: a quais espécies eles se alinham, quantas delas não foram agrupadas porque estão totalmente desvinculadas, etc.
--output_cluster_fastas
: Alternar. Se definido, grave os arquivos cluster.*.fasta
e unclustered.fasta
em <out_dir>/<scenario>/
. Esses são arquivos fasta que indicam como o MetaPhase agrupou os contigs.
--output_network_image
: Alternar. Se definido, execute o script Fig2a.R
e crie uma imagem de rede de cluster como a que aparece na Figura 2A do artigo MetaPhase.
--output_heatmaps
: Alternar. Se definido, execute o script MakeClusteringResultHeatmap.R
e crie imagens de mapa de calor como as que aparecem na Figura 2B e na Figura S5 do artigo MetaPhase.
--reorder_clusters_by_refs
: Alternar. Se definido, reordena os clusters de modo a maximizar o sinal nas diagonais dos mapas de calor criados com --output_heatmaps
. Observe que isso dependerá de quais genomas de referência estão em seu arquivo refs.tsv
e da ordem em que aparecem no arquivo. Se você deseja ter números de cluster consistentes, não defina isso.
A saída mais básica do MetaPhase é para a tela. MetaPhase fornecerá relatórios detalhados sobre seu progresso à medida que executa pré-processamento, alinhamentos BLAST, clustering e análise pós-clustering. Supondo que não trave, o MetaPhase produz um gráfico prático e agradável de seus resultados de cluster. As colunas deste gráfico são:
Número do cluster
Número de contigs neste cluster
Comprimento total de todos os contigs neste cluster
Abundância: uma estimativa da abundância de DNA (não da abundância de espécies) deste cluster. Definido como a porcentagem de leituras shotgun que se alinham aos contigs neste cluster. Requer um arquivo SAM/BAM de abundância de espingarda, que atualmente requer hacking.
Referência de pluralidade: a montagem do genoma de referência (entre aqueles listados no arquivo refs.tsv
) à qual uma pluralidade da sequência se alinha
% eucariótico, % rDNA, % tRNA, % mtDNA: anotações previstas do conteúdo da sequência neste cluster. Baseado em alinhamentos do BLAST com o banco de dados do BLAST.
Taxonomia de pluralidade: os posicionamentos taxonômicos mais comuns do conteúdo da sequência neste cluster. Baseado em alinhamentos do BLAST com o banco de dados do BLAST.
Se você definir --report_unclustered
, o MetaPhase também criará um gráfico muito menor e mais simples descrevendo os contigs não clusterizados.
Você pode criar imagens bonitas como as da Figura 2A e 2B do artigo MetaPhase. Para criar a imagem de rede ou o mapa de calor, defina --output_network_image
ou --output_heatmap
, respectivamente. Os arquivos são criados pelos scripts Fig2a.R
e MakeClusteringResultHeatmap.R
, respectivamente. Estes são scripts R bastante simples usando ggplot2; se você quiser ajustar a aparência das imagens, basta ajustar os scripts. Esses arquivos, por padrão, são criados em $HOME/public_html
; pode ser necessário criar este diretório para que os arquivos apareçam.
MetaPhase criará os seguintes arquivos em <out_dir>/<scenario>
:
assembly.blastn_report
: um arquivo legível que resume convenientemente os alinhamentos do BLAST do rascunho da montagem para o banco de dados nt.
result.human_readable.txt
: um arquivo legível por humanos listando cada contig no rascunho da montagem do metagenoma e indicando como ele foi agrupado.
cluster.*.fasta
e unclustered.fasta
: arquivos Fasta contendo os contigs em cada cluster. Criado apenas se você executar com --output_cluster_fastas
.
Subdiretório cached_data
: Contém arquivos de cache que descrevem alinhamentos do BLAST para referenciar genomas (MapToRefs.txt*); Alinhamentos do BLAST com o banco de dados NT (assembly. _blast); e agrupamento de resultados (clusters. ). Esses arquivos podem não ser particularmente legíveis por humanos.
Subdiretório LACHESIS
: Vazio, a menos que você execute o Lachesis após executar o MetaPhase (veja a próxima seção).
Conforme demonstrado no artigo MetaPhase, é possível executar o MetaPhase para criar clusters separados para cada espécie e, posteriormente, executar o LACHESIS para criar estruturas em escala cromossômica dos contigs nesse cluster, gerando assim uma montagem de espécie única de alta qualidade a partir do nada. mas dados metagenômicos. No entanto, várias advertências se aplicam:
É provável que isto só funcione para eucariontes, porque o método LACHESIS não se aplica realmente a genomas procarióticos.
Você terá que saber o número de cromossomos de sua espécie, porque o LACHESIS não pode prever o número de cromossomos com a mesma precisão que o MetaPhase pode prever o número de espécies.
Você terá que realinhar suas leituras de Hi-C com os contigs no cluster que está estudando.
Nas espécies de levedura, tome cuidado para não agrupar todos os contigs contendo centrômero em um único cromossomo. Você terá que usar a opção CLUSTER_CONTIGS_WITH_CENS
do LACHESIS.
Deve haver um arquivo executável chamado MetaPhase
. Digite MetaPhase
na linha de comando. Se você receber um erro como "comando não encontrado", então você não está no diretório MetaPhase correto ou não concluiu a compilação com êxito. Se o MetaPhase estiver pronto para ser executado, digitar MetaPhase
produzirá um PARSE ERROR
e o MetaPhase descreverá para você os argumentos de linha de comando necessários.
Se você receber o seguinte erro: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
, então você precisa adicionar o diretório que contém libboost_filesystem.so.1.47.0
para sua variável de ambiente $LD_LIBRARY_PATH
. Digite este comando: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
Se o MetaPhase travar, a primeira coisa que você deve fazer é observar cuidadosamente sua saída. Pode fornecer uma explicação detalhada do que deu errado e dar uma boa ideia de como consertar. O problema mais comum é que um dos arquivos de entrada não pode ser encontrado ou contém dados sem sentido.
Você também pode receber um "erro de asserção", semelhante a este: Assertion ... failed.
Isso significa que em algum estágio do algoritmo, o MetaPhase encontrou algo específico que não esperava. Um erro de asserção virá com uma referência ao arquivo ( *.cc
ou *.h
) e o número da linha onde ocorreu o erro. Tente olhar aquela linha no arquivo, que deve conter a função assert()
. Deve haver alguns comentários nessa linha que explicam o que pode estar causando o erro de asserção.
Em geral, fizemos um grande esforço para tornar o MetaPhase um código bem projetado e bem comentado. Se você estiver familiarizado com C++, poderá fuçar no código-fonte e ter uma ideia do que está acontecendo. Recomendamos começar com o módulo de nível superior, MetaPhase.cc
, e trabalhar a partir daí.
Depois de fazer o MetaPhase funcionar corretamente, dê uma boa olhada nas saídas, especialmente no gráfico do relatório. Se você estiver obtendo um resultado estranho - por exemplo, muito pouca sequência está sendo montada ou a maior parte da sequência está agrupada em um único cluster (um problema comum) - talvez seja necessário ajustar o desempenho do MetaPhase. Dê uma boa olhada na seção D2, "Argumentos opcionais de linha de comando".
O pacote de software MetaPhase e todo o software e documentação contidos nele são protegidos por copyright © 2013-2014 de Josh Burton e da Universidade de Washington. Todos os direitos são reservados.
Este software é fornecido 'no estado em que se encontra', sem qualquer garantia ou garantia de suporte. A Universidade de Washington não é responsável pelo seu uso, uso indevido ou funcionalidade. Em nenhum caso os autores ou detentores dos direitos autorais serão responsáveis por qualquer reclamação, dano ou outra responsabilidade decorrente de, ou em conexão com este software.
Obrigado a Ivan Liachko por tornar possível o projeto MetaPhase e por gerar todos os dados Hi-C usados pelo software MetaPhase.
Obrigado a Maitreya Dunham e Jay Shendure pela liderança, gestão e ideias.
Obrigado a Kathryn Bushley, David Fredricks, Steve Salipante, Laura Sycuro e Andrew Wiser por me ajudarem pacientemente a testar e solucionar problemas do MetaPhase.
Obrigado a Aaron McKenna por ajudar a disponibilizar o MetaPhase no GitHub.
(de Andrew) você está oferecendo aos usuários uma instalação nova e limitada do BOOST que eles podem não querer interagir com o resto do sistema adicionando ao LD_LIBRARY_PATH. Minha sugestão seria recomendar que o usuário adicione o diretório include/boost_1_47_0/stage/lib ao seu LD_LIBRARY_PATH, se possível, mas também forneça um script wrapper que definirá a variável ambiental em tempo de execução. Um programa Python que verifica se o caminho correto está no usuário LD_LIBRARY_PATH, define-o se não for encontrado e depois executa o programa seria muito fácil de preparar rapidamente.