Pular para o conteúdo principal

snippy

Tags: snp variant-calling phylogeny core-genome snippy bactopia-tool

Chamada rápida de variantes de haplótipos e alinhamento do genoma central.

Esta Ferramenta Bactopia utiliza o Snippy para encontrar SNPs entre um genoma de referência e um conjunto de reads, realizar alinhamento do genoma central e gerar árvores filogenéticas. Inclui detecção opcional de recombinação com Gubbins e construção de árvore filogenética com IQ-Tree.

Uso

Bactopia CLI:

bactopia --wf snippy \
--bactopia /path/to/your/bactopia/results

Nextflow:

nextflow run bactopia/bactopia/workflows/bactopia-tools/snippy/main.nf \
--bactopia /path/to/your/bactopia/results

Saídas

Arquivos de Saída Esperados

<BACTOPIA_DIR>
├── <SAMPLE_NAME>
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── <SAMPLE_NAME>.aligned.fa.gz
│ ├── <SAMPLE_NAME>.annotated.vcf.gz
│ ├── <SAMPLE_NAME>.bam
│ ├── <SAMPLE_NAME>.bam.bai
│ ├── <SAMPLE_NAME>.bed.gz
│ ├── <SAMPLE_NAME>.consensus.fa.gz
│ ├── <SAMPLE_NAME>.consensus.subs.fa.gz
│ ├── <SAMPLE_NAME>.consensus.subs.masked.fa.gz
│ ├── <SAMPLE_NAME>.coverage.txt.gz
│ ├── <SAMPLE_NAME>.csv.gz
│ ├── <SAMPLE_NAME>.filt.vcf.gz
│ ├── <SAMPLE_NAME>.gff.gz
│ ├── <SAMPLE_NAME>.html
│ ├── <SAMPLE_NAME>.raw.vcf.gz
│ ├── <SAMPLE_NAME>.subs.vcf.gz
│ ├── <SAMPLE_NAME>.tab
│ ├── <SAMPLE_NAME>.txt
│ ├── <SAMPLE_NAME>.vcf.gz
│ └── logs
│ ├── <SAMPLE_NAME>.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── ERR6005894
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── ERR6005894.aligned.fa.gz
│ ├── ERR6005894.annotated.vcf.gz
│ ├── ERR6005894.bam
│ ├── ERR6005894.bam.bai
│ ├── ERR6005894.bed.gz
│ ├── ERR6005894.consensus.fa.gz
│ ├── ERR6005894.consensus.subs.fa.gz
│ ├── ERR6005894.consensus.subs.masked.fa.gz
│ ├── ERR6005894.coverage.txt.gz
│ ├── ERR6005894.csv.gz
│ ├── ERR6005894.filt.vcf.gz
│ ├── ERR6005894.gff.gz
│ ├── ERR6005894.html
│ ├── ERR6005894.raw.vcf.gz
│ ├── ERR6005894.subs.vcf.gz
│ ├── ERR6005894.tab
│ ├── ERR6005894.txt
│ ├── ERR6005894.vcf.gz
│ └── logs
│ ├── ERR6005894.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── ERR6005894SE
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── ERR6005894SE.aligned.fa.gz
│ ├── ERR6005894SE.annotated.vcf.gz
│ ├── ERR6005894SE.bam
│ ├── ERR6005894SE.bam.bai
│ ├── ERR6005894SE.bed.gz
│ ├── ERR6005894SE.consensus.fa.gz
│ ├── ERR6005894SE.consensus.subs.fa.gz
│ ├── ERR6005894SE.consensus.subs.masked.fa.gz
│ ├── ERR6005894SE.coverage.txt.gz
│ ├── ERR6005894SE.csv.gz
│ ├── ERR6005894SE.filt.vcf.gz
│ ├── ERR6005894SE.gff.gz
│ ├── ERR6005894SE.html
│ ├── ERR6005894SE.raw.vcf.gz
│ ├── ERR6005894SE.subs.vcf.gz
│ ├── ERR6005894SE.tab
│ ├── ERR6005894SE.txt
│ ├── ERR6005894SE.vcf.gz
│ └── logs
│ ├── ERR6005894SE.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── SRR2838702
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── SRR2838702.aligned.fa.gz
│ ├── SRR2838702.annotated.vcf.gz
│ ├── SRR2838702.bam
│ ├── SRR2838702.bam.bai
│ ├── SRR2838702.bed.gz
│ ├── SRR2838702.consensus.fa.gz
│ ├── SRR2838702.consensus.subs.fa.gz
│ ├── SRR2838702.consensus.subs.masked.fa.gz
│ ├── SRR2838702.coverage.txt.gz
│ ├── SRR2838702.csv.gz
│ ├── SRR2838702.filt.vcf.gz
│ ├── SRR2838702.gff.gz
│ ├── SRR2838702.html
│ ├── SRR2838702.raw.vcf.gz
│ ├── SRR2838702.subs.vcf.gz
│ ├── SRR2838702.tab
│ ├── SRR2838702.txt
│ ├── SRR2838702.vcf.gz
│ └── logs
│ ├── SRR2838702.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── SRR2838702SE
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── SRR2838702SE.aligned.fa.gz
│ ├── SRR2838702SE.annotated.vcf.gz
│ ├── SRR2838702SE.bam
│ ├── SRR2838702SE.bam.bai
│ ├── SRR2838702SE.bed.gz
│ ├── SRR2838702SE.consensus.fa.gz
│ ├── SRR2838702SE.consensus.subs.fa.gz
│ ├── SRR2838702SE.consensus.subs.masked.fa.gz
│ ├── SRR2838702SE.coverage.txt.gz
│ ├── SRR2838702SE.csv.gz
│ ├── SRR2838702SE.filt.vcf.gz
│ ├── SRR2838702SE.gff.gz
│ ├── SRR2838702SE.html
│ ├── SRR2838702SE.raw.vcf.gz
│ ├── SRR2838702SE.subs.vcf.gz
│ ├── SRR2838702SE.tab
│ ├── SRR2838702SE.txt
│ ├── SRR2838702SE.vcf.gz
│ └── logs
│ ├── SRR2838702SE.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── SRR2838702SE_2
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── SRR2838702SE_2.aligned.fa.gz
│ ├── SRR2838702SE_2.annotated.vcf.gz
│ ├── SRR2838702SE_2.bam
│ ├── SRR2838702SE_2.bam.bai
│ ├── SRR2838702SE_2.bed.gz
│ ├── SRR2838702SE_2.consensus.fa.gz
│ ├── SRR2838702SE_2.consensus.subs.fa.gz
│ ├── SRR2838702SE_2.consensus.subs.masked.fa.gz
│ ├── SRR2838702SE_2.coverage.txt.gz
│ ├── SRR2838702SE_2.csv.gz
│ ├── SRR2838702SE_2.filt.vcf.gz
│ ├── SRR2838702SE_2.gff.gz
│ ├── SRR2838702SE_2.html
│ ├── SRR2838702SE_2.raw.vcf.gz
│ ├── SRR2838702SE_2.subs.vcf.gz
│ ├── SRR2838702SE_2.tab
│ ├── SRR2838702SE_2.txt
│ ├── SRR2838702SE_2.vcf.gz
│ └── logs
│ ├── SRR2838702SE_2.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── SRR2838702_2
│ └── tools
│ └── snippy-<TIMESTAMP>
│ └── GCF_000292685
│ ├── SRR2838702_2.aligned.fa.gz
│ ├── SRR2838702_2.annotated.vcf.gz
│ ├── SRR2838702_2.bam
│ ├── SRR2838702_2.bam.bai
│ ├── SRR2838702_2.bed.gz
│ ├── SRR2838702_2.consensus.fa.gz
│ ├── SRR2838702_2.consensus.subs.fa.gz
│ ├── SRR2838702_2.consensus.subs.masked.fa.gz
│ ├── SRR2838702_2.coverage.txt.gz
│ ├── SRR2838702_2.csv.gz
│ ├── SRR2838702_2.filt.vcf.gz
│ ├── SRR2838702_2.gff.gz
│ ├── SRR2838702_2.html
│ ├── SRR2838702_2.raw.vcf.gz
│ ├── SRR2838702_2.subs.vcf.gz
│ ├── SRR2838702_2.tab
│ ├── SRR2838702_2.txt
│ ├── SRR2838702_2.vcf.gz
│ └── logs
│ ├── SRR2838702_2.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
└── bactopia-runs
└── snippy-<TIMESTAMP>
├── GCF_000292685.samples.txt
├── core-snp-clean.full.aln.gz
├── core-snp.distance.tsv
├── core-snp.full.aln.gz
├── core-snp.masked.aln.gz
├── core-snp.masked.distance.tsv
├── gubbins
│ ├── core-snp.branch_base_reconstruction.embl.gz
│ ├── core-snp.filtered_polymorphic_sites.fasta.gz
│ ├── core-snp.filtered_polymorphic_sites.phylip
│ ├── core-snp.final_tree.tre
│ ├── core-snp.node_labelled.final_tree.tre
│ ├── core-snp.per_branch_statistics.csv
│ ├── core-snp.recombination_predictions.embl.gz
│ ├── core-snp.recombination_predictions.gff.gz
│ ├── core-snp.summary_of_snp_distribution.vcf.gz
│ └── logs
│ ├── core-snp.log
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── nf-reports
│ ├── snippy-dag.dot
│ ├── snippy-report.html
│ └── snippy-timeline.html
├── snippy-core
│ ├── core-snp.aln.gz
│ ├── core-snp.tab.gz
│ ├── core-snp.txt
│ ├── core-snp.vcf.gz
│ └── logs
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── snpdists
│ └── logs
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
└── snpdists-masked
└── logs
├── nf.command.{begin,err,log,out,run,sh,trace}
└── versions.yml

Chamada de Variantes

ArquivoDescrição
*.vcfChamadas de variantes em formato VCF
*.bamArquivo de alinhamento
*.txtRelatório resumido do Snippy

Alinhamento do Genoma Central

ArquivoDescrição
core.full.alnAlinhamento completo do genoma central
core.snps.alnAlinhamento de SNPs do genoma central

Análise de Recombinação

Nota

Criado apenas se a análise de recombinação estiver habilitada

ArquivoDescrição
*.filtered.alnAlinhamento com regiões de recombinação removidas
*.gffPredições de recombinação

Filogenia

Nota

Criado apenas se a análise filogenética estiver habilitada

ArquivoDescrição
*.treefileÁrvore filogenética no formato Newick

Resultados Consolidados

ArquivoDescrição
snippy.tsvResumo consolidado das análises do Snippy

Trilha de Auditoria

Abaixo estão os arquivos que podem ajudar você a entender quais parâmetros e versões de programas foram utilizados.

Logs

Cada processo executado terá uma pasta chamada logs. Nesta pasta há arquivos úteis para você revisar caso necessário.

ExtensãoDescrição
.beginArquivo vazio utilizado para indicar que o processo foi iniciado
.errContém as saídas STDERR do processo
.logContém as saídas STDERR e STDOUT do processo
.outContém as saídas STDOUT do processo
.runO script que o Nextflow usa para preparar/liberar arquivos e enfileirar processos com base no perfil definido
.shO script executado pelo bash para o processo
.traceO relatório de rastreamento do Nextflow para o processo
versions.ymlUm arquivo no formato YAML com as versões dos programas

Relatórios do Nextflow

Esses relatórios do Nextflow fornecem um excelente resumo da sua execução. Eles podem ser usados para otimizar o uso de recursos e estimar os custos esperados ao utilizar plataformas de nuvem.

Nome do ArquivoDescrição
snippy-dag.dotA visualização DAG do Nextflow
snippy-report.htmlO Relatório de Execução do Nextflow
snippy-timeline.htmlO Relatório de Linha do Tempo do Nextflow
snippy-trace.txtO relatório de Rastreamento do Nextflow

Parâmetros

Parâmetros Obrigatórios

Define onde o pipeline deve encontrar os dados de entrada e salvar os dados de saída.

ParâmetroTipoPadrãoDescrição
--bactopiastringO caminho para os resultados do bactopia a serem usados como entradas

Parâmetros de Download de Genomas do NCBI

ParâmetroTipoPadrãoDescrição
--speciesstringNome da espécie para baixar montagens
--accessionstringUm número de acesso de montagem do NCBI para ser baixado
--accessionsstringUm arquivo com números de acesso de montagens do NCBI (um por linha) para serem baixados
--formatstringfastaLista de formatos separados por vírgula para baixar
--sectionstringrefseqSeção do NCBI para download
--assembly_levelstringcompleteLista de níveis de montagem separados por vírgula para baixar
--kingdomstringbacteriaLista de formatos separados por vírgula para baixar
--limitstringLimitar o número de montagens a serem baixadas
--keep_downloadsbooleanfalseSalvar os arquivos baixados na pasta bactopia-runs

Parâmetros de Execução do Snippy

ParâmetroTipoPadrãoDescrição
--referencestringGenoma de referência no formato GenBank
--snippy_mapqualinteger60Qualidade mínima de mapeamento de reads a considerar
--snippy_basequalinteger13Qualidade mínima de base a considerar
--snippy_mincovinteger10Profundidade mínima do sítio para chamada de alelos
--snippy_minfracinteger0Proporção mínima para evidência de variante (0=AUTO)
--snippy_minqualinteger100QUALIDADE mínima na coluna 6 do VCF
--snippy_maxsoftinteger10Máximo de soft clipping permitido
--snippy_bwaoptstringOpções extras do BWA MEM, ex.: -x pacbio
--snippy_fboptstringOpções extras do Freebayes, ex.: --theta 1E-6 --read-snp-limit 2
--snippy_remove_bambooleanfalseExcluir arquivos BAM após a chamada de variantes
--snippy_optsstringOpções extras entre aspas para o Snippy

Parâmetros do Snippy-Core

ParâmetroTipoPadrãoDescrição
--snippy_core_maxhapinteger100Maior haplótipo a decompor
--snippy_core_maskstringArquivo BED de sítios a mascarar
--snippy_core_mask_charstringXCaractere de mascaramento
--snippy_core_optsstringOpções extras entre aspas para o snippy-core

Parâmetros do SNP-Dists

ParâmetroTipoPadrãoDescrição
--snpdists_abooleanfalseContar todas as diferenças, não apenas [AGTC]
--snpdists_bbooleanfalseManter a célula do canto superior esquerdo
--snpdists_csvbooleanfalseGerar saída em CSV em vez de TSV
--snpdists_kbooleanfalseManter capitalização, não converter todas as letras para maiúsculas

Parâmetros do Gubbins

ParâmetroTipoPadrãoDescrição
--gubbins_iterationsinteger5Número máximo de iterações
--gubbins_min_snpsinteger3Mínimo de SNPs para identificar um bloco de recombinação
--gubbins_min_window_sizeinteger100Tamanho mínimo da janela
--gubbins_max_window_sizeinteger10000Tamanho máximo da janela
--gubbins_filter_percentagenumber25.0Filtrar taxa com mais do que esta porcentagem de lacunas
--gubbins_remove_identical_sequencesbooleanfalseRemover sequências idênticas
--gubbins_optsstringOpções extras do Gubbins entre aspas
--skip_recombinationbooleanfalsePular a execução do Gubbins nos subworkflows

Parâmetros do IQ-TREE

ParâmetroTipoPadrãoDescrição
--iqtree_modelstringHKYNome do modelo de substituição
--iqtree_bbinteger1000Réplicas de bootstrap ultrarrápido
--iqtree_alrtinteger1000Réplicas do teste de razão de verossimilhança aproximado tipo SH
--iqtree_asrbooleanfalseReconstrução de estado ancestral por Bayes empírico
--iqtree_optsstringOpções extras do IQ-TREE entre aspas.
--skip_phylogenybooleanfalsePular a execução do IQ-TREE nos subworkflows
Parâmetros de Filtragem

Use estes parâmetros para especificar quais amostras incluir ou excluir.

ParâmetroTipoPadrãoDescrição
--includestringUm arquivo de texto contendo nomes de amostras (um por linha) a incluir na análise
--excludestringUm arquivo de texto contendo nomes de amostras (um por linha) a excluir da análise
Parâmetros Opcionais

Estes parâmetros opcionais podem ser úteis em determinadas situações.

ParâmetroTipoPadrãoDescrição
--outdirstringbactopiaDiretório base para gravar os resultados
--skip_compressionbooleanfalseOs arquivos de saída não serão comprimidos
--datasetsstringO caminho para armazenar em cache os conjuntos de dados
--keep_all_filesbooleanfalseMantém todos os arquivos de análise criados
Parâmetros de Requisição Máxima de Recursos

Define o limite máximo de recursos solicitados para qualquer tarefa individual.

ParâmetroTipoPadrãoDescrição
--max_retryinteger3Número máximo de tentativas de um processo antes de permitir que ele falhe.
--max_cpusinteger4Número máximo de CPUs que podem ser solicitadas para qualquer tarefa individual.
--max_memorystring128.GBQuantidade máxima de memória que pode ser solicitada para qualquer tarefa individual.
--max_timestring240.hTempo máximo que pode ser solicitado para qualquer tarefa individual.
--max_downloadsinteger3Número máximo de amostras a baixar simultaneamente
Parâmetros de Configuração do Nextflow

Parâmetros para ajustar a configuração do Nextflow.

ParâmetroTipoPadrãoDescrição
--nfconfigstringUm arquivo de configuração compatível com Nextflow para perfis personalizados, carregado por último e que substituirá variáveis existentes se definido.
--publish_dir_modestringcopyMétodo usado para salvar os resultados do pipeline no diretório de saída. (opções: symlink, rellink, link, copy, copyNoFollow, move)
--infodirstring${params.outdir}/pipeline_infoDiretório para manter os logs e relatórios do Nextflow do pipeline.
--forcebooleanfalseO Nextflow irá sobrescrever arquivos de saída existentes.
--cleanup_workdirbooleanfalseApós a execução bem-sucedida do Bactopia, o diretório work será excluído.
Opções de configuração institucional

Parâmetros usados para descrever perfis de configuração centralizados. Estes não devem ser editados.

ParâmetroTipoPadrãoDescrição
--custom_config_versionstringmasterID de commit Git para configurações institucionais.
--custom_config_basestringhttps://raw.githubusercontent.com/nf-core/configs/masterDiretório base para configurações institucionais.
--config_profile_namestringNome do perfil de configuração institucional.
--config_profile_descriptionstringDescrição do perfil de configuração institucional.
--config_profile_contactstringInformações de contato do perfil de configuração institucional.
--config_profile_urlstringLink URL do perfil de configuração institucional.
Parâmetros de Perfil do Nextflow

Parâmetros para ajustar a configuração do Nextflow.

ParâmetroTipoPadrãoDescrição
--condadirstringDiretório que o Nextflow deve usar para os ambientes Conda
--registrystringquay.ioRegistro de onde baixar os contêineres Docker.
--datasets_cachestring<HOME>/.bactopia/datasetsDiretório onde os conjuntos de dados baixados devem ser armazenados.
--singularity_cachestringDiretório onde as imagens Singularity remotas são armazenadas.
--singularity_pull_docker_containerbooleanEm vez de baixar diretamente as imagens Singularity, força o fluxo de trabalho a baixar e converter contêineres Docker.
--force_rebuildbooleanfalseForçar a substituição de ambientes pré-construídos existentes.
--queuestringgeneral,high-memoryNome(s) da(s) fila(s) separados por vírgula a serem usados por um agendador de tarefas (ex.: AWS Batch ou SLURM)
--cluster_optsstringOpções adicionais a passar para o executor. (ex.: SLURM: '--account=my_acct_name'
--container_optsstringOpções adicionais a passar para Apptainer, Docker ou Singularity. (ex.: Singularity: '-D pwd'
--disable_scratchbooleanfalseTodos os arquivos intermediários criados nos nós de trabalho serão transferidos para o nó principal.
Parâmetros Úteis

Parâmetros raramente utilizados que podem ser convenientes em alguns casos.

ParâmetroTipoPadrãoDescrição
--monochrome_logsbooleanNão usar saídas de log coloridas.
--nfdirbooleanExibir o diretório para o qual o Nextflow baixou o Bactopia
--sleep_timeinteger5O tempo (em segundos) que o Nextflow aguardará após configurar os conjuntos de dados antes da execução.
--validate_paramsbooleantrueBooleano para validar os parâmetros em relação ao esquema em tempo de execução
--helpbooleanExibir texto de ajuda.
--wfstringbactopiaEspecificar qual fluxo de trabalho ou Ferramenta Bactopia executar
--list_wfsbooleanListar os fluxos de trabalho e Ferramentas Bactopia disponíveis para usar com '--wf'
--show_hidden_paramsbooleanMostrar todos os parâmetros ao usar --help
--help_allbooleanUm alias para --help --show_hidden_params
--versionbooleanExibir texto de versão.

Composição

Este fluxo de trabalho utiliza os seguintes subworkflows:

  • gubbins - Detectar e filtrar regiões de recombinação em alinhamentos bacterianos.
  • iqtree - Construir árvores filogenéticas de máxima verossimilhança a partir de alinhamentos.
  • ncbigenomedownload - Baixar genomas bacterianos do banco de dados RefSeq do NCBI.
  • snippy_core - Gerar alinhamento de SNPs do genoma central a partir das saídas por amostra do Snippy.
  • snippy_run - Chamar variantes em relação a um genoma de referência usando o Snippy.

Citações

Se você usar este fluxo de trabalho em sua análise, por favor cite os seguintes trabalhos.

Fonte

Ver código-fonte no GitHub