teton
Tags: metagenomics classification kraken2 bracken abundance profiling named-workflow
Classificação taxonômica e perfilamento de abundância de reads metagenômicos.
Este fluxo de trabalho realiza classificação metagenômica usando Kraken2 e Bracken, com remoção opcional de reads do hospedeiro usando deacon (padrão), nohuman, ou SRA Human Scrubber. Ele processa reads de sequenciamento metagenômico para estimar tamanhos de genomas bacterianos e separar organismos bacterianos de não bacterianos.
Uso
CLI do teton:
teton \
--input samples.csv \
--outdir results/
Nextflow:
nextflow run bactopia/bactopia/workflows/teton/main.nf \
--input samples.csv \
--outdir results/
Saídas
Arquivos de Saída Esperados
<BACTOPIA_DIR>
├── <SAMPLE_NAME>
│ ├── teton-<TIMESTAMP>
│ │ ├── main
│ │ │ └── gather
│ │ │ ├── <SAMPLE_NAME>-meta.tsv
│ │ │ └── logs
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── teton-prepare
│ │ │ ├── <SAMPLE_NAME>-sizemeup.txt
│ │ │ ├── <SAMPLE_NAME>.bacteria.tsv
│ │ │ ├── <SAMPLE_NAME>.nonbacteria.tsv
│ │ │ └── logs
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ └── tools
│ │ └── bracken
│ │ ├── <SAMPLE_NAME>.bracken.abundances.txt
│ │ ├── <SAMPLE_NAME>.bracken.adjusted.abundances.txt
│ │ ├── <SAMPLE_NAME>.bracken.classification.txt
│ │ ├── <SAMPLE_NAME>.bracken.krona.html
│ │ ├── <SAMPLE_NAME>.bracken.report.txt
│ │ ├── <SAMPLE_NAME>.bracken.tsv
│ │ ├── <SAMPLE_NAME>.kraken2.krona.html
│ │ ├── <SAMPLE_NAME>.kraken2.report.txt
│ │ └── logs
│ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ └── versions.yml
│ └── tools
│ └── scrubber
│ ├── <SAMPLE_NAME>.deacon.json
│ ├── <SAMPLE_NAME>.scrub.report.tsv
│ ├── <SAMPLE_NAME>_R1.scrubbed.fastq.gz
│ ├── <SAMPLE_NAME>_R2.scrubbed.fastq.gz
│ └── logs
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
├── bactopia-runs
│ └── teton-<TIMESTAMP>
│ ├── merged-results
│ │ ├── bracken-adjusted.tsv
│ │ ├── bracken-species-abundance.tsv
│ │ ├── logs
│ │ │ ├── bracken-adjusted-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── bracken-species-abundance-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── meta-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── scrubber-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── sizemeup-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── teton-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ ├── teton-prepare-concat
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ └── teton-prepare-nonbacteria-concat
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── meta.tsv
│ │ ├── scrubber.tsv
│ │ ├── sizemeup.tsv
│ │ ├── teton-prepare-nonbacteria.tsv
│ │ ├── teton-prepare.tsv
│ │ └── teton.tsv
│ └── nf-reports
│ ├── teton-dag.dot
│ ├── teton-report.html
│ └── teton-timeline.html
└── merged-results
├── <SAMPLE_NAME>.tsv
└── logs
└── <SAMPLE_NAME>-join
├── nf.command.{begin,err,log,out,run,sh,trace}
└── versions.yml
Resultados por Amostra
| Arquivo | Descrição |
|---|---|
bacteria.tsv | Arquivos TSV por amostra contendo organismos bacterianos e suas propriedades |
nonbacteria.tsv | Arquivos TSV por amostra contendo organismos não bacterianos |
sizemeup.tsv | Arquivos TSV por amostra com estimativas de tamanho de genoma |
Resultados Consolidados
| Arquivo | Descrição |
|---|---|
merged-bacteria.tsv | Arquivo TSV consolidado de todos os organismos bacterianos entre amostras |
merged-nonbacteria.tsv | Arquivo TSV consolidado de todos os organismos não bacterianos entre amostras |
merged-sizemeup.tsv | Arquivo TSV consolidado de estimativas de tamanho de genoma entre amostras |
report.tsv | Arquivo TSV combinado unindo resultados de scrubber e classificação |
Trilha de Auditoria
A seguir estão os arquivos que podem ajudá-lo a entender quais parâmetros e versões de programas foram utilizados.
Logs
Cada processo executado terá uma pasta chamada logs. Nessa pasta há arquivos úteis
para revisar caso seja necessário.
| Extensão | Descrição |
|---|---|
| .begin | Um arquivo vazio usado para indicar que o processo foi iniciado |
| .err | Contém as saídas STDERR do processo |
| .log | Contém as saídas STDERR e STDOUT do processo |
| .out | Contém as saídas STDOUT do processo |
| .run | O script que o Nextflow usa para preparar/desfazer arquivos e enfileirar processos com base no perfil fornecido |
| .sh | O script executado pelo bash para o processo |
| .trace | O relatório de rastreamento do Nextflow para o processo |
| versions.yml | Um arquivo formatado em 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 custos esperados ao utilizar plataformas em nuvem.
| Nome do arquivo | Descrição |
|---|---|
| teton-dag.dot | A visualização DAG do Nextflow |
| teton-report.html | O Relatório de Execução do Nextflow |
| teton-timeline.html | O Relatório de Linha do Tempo do Nextflow |
| teton-trace.txt | O relatório de Rastreamento do Nextflow |
Parâmetros
Parâmetros Obrigatórios
Os parâmetros a seguir são como você fornecerá amostras locais ou remotas para serem processadas pelo Bactopia.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--samples | string | Um FOFN (via bactopia prepare) com nomes de amostras e caminhos para FASTQ/FASTAs a processar | |
--r1 | string | Primeiro conjunto de reads Illumina paired-end comprimidos (gzip) (requer --r2 e --sample) | |
--r2 | string | Segundo conjunto de reads Illumina paired-end comprimidos (gzip) (requer --r1 e --sample) | |
--se | string | Reads Illumina single-end comprimidos (gzip) (requer --sample) | |
--ont | string | Reads Oxford Nanopore comprimidos (gzip) (requer --sample) | |
--hybrid | boolean | false | Criar montagem híbrida usando Unicycler. (requer --r1, --r2, --ont e --sample) |
--short_polish | boolean | false | Criar montagem híbrida a partir de montagem de reads longos e polimento com reads curtos. (requer --r1, --r2, --ont e --sample) |
--sample | string | Nome da amostra a ser usado para as sequências de entrada | |
--accessions | string | Um arquivo contendo acessões de Experimento ENA/SRA ou acessões de Assembly NCBI para processar | |
--accession | string | Nome da amostra a ser usado para as sequências de entrada | |
--assembly | string | Um genoma montado em formato FASTA comprimido. (requer --sample) | |
--check_samples | boolean | false | Validar o FOFN de entrada fornecido por --samples |
Parâmetros de Coleta
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--skip_fastq_check | boolean | Ignorar verificações de requisitos mínimos para FASTQs de entrada | |
--min_basepairs | integer | 2241820 | A quantidade mínima de pares de bases necessária para continuar as análises posteriores. |
--min_reads | integer | 7472 | A quantidade mínima de reads necessária para continuar as análises posteriores. |
--min_coverage | integer | 10 | A cobertura mínima necessária para continuar as análises posteriores. |
--min_proportion | number | 0.5 | A proporção mínima de pares de bases para reads paired-end continuar as análises posteriores. |
--min_genome_size | integer | 100000 | O tamanho mínimo estimado do genoma permitido para a sequência de entrada continuar as análises posteriores. |
--max_genome_size | integer | 18040666 | O tamanho máximo estimado do genoma permitido para a sequência de entrada continuar as análises posteriores. |
--attempts | integer | 3 | Número máximo de tentativas de download |
--use_ena | boolean | Baixar FASTQs da ENA | |
--no_cache | boolean | Ignorar o cache do arquivo de resumo de montagem do ncbi-genome-download |
Parâmetros do csvtk concat
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--csvtk_concat_opts | string | Opções extras do csvtk concat entre aspas |
Parâmetros do csvtk join
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--csvtk_join_opts | string | Opções extras do csvtk join entre aspas |
Parâmetros do SRA Human Scrubber
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--use_srascrubber | boolean | false | Usar SRAHumanScrubber para remover reads humanos |
Parâmetros de Download do Nohuman
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--nohuman_db | string | Caminho para o banco de dados nohuman ou diretório para baixá-lo | |
--nohuman_db_version | string | Versão do banco de dados para baixar (padrão: versão mais recente do HPRC) | |
--nohuman_save_as_tarball | boolean | false | Salvar o banco de dados nohuman como um tarball |
--download_nohuman | boolean | false | Baixar o banco de dados nohuman para o caminho fornecido por --nohuman_db |
Parâmetros de Execução do Nohuman
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--nohuman_db | string | Caminho para o diretório do banco de dados nohuman ou tarball | |
--nohuman_confidence | number | 0.0 | Pontuação mínima de confiança do Kraken2 para classificação (0.0-1.0) |
--nohuman_human | boolean | false | Inverter saída para manter apenas reads humanos em vez de removê-los |
--nohuman_save_report | boolean | false | Salvar o relatório de classificação do Kraken2 |
Parâmetros de Obtenção do Deacon
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--deacon_index_name | string | panhuman-1 | Nome do índice deacon pré-construído a ser obtido |
--download_deacon | boolean | false | Baixar o índice deacon para o cache de datasets |
--use_deacon | boolean | false | Usar deacon para filtragem de reads do hospedeiro |
Parâmetros de Filtragem do Deacon
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--deacon_abs_threshold | integer | 2 | Número absoluto mínimo de acertos de minimizadores para uma correspondência |
--deacon_db | string | Caminho para um índice deacon pré-existente (.idx) para filtragem de reads do hospedeiro | |
--deacon_deplete | boolean | true | Descartar sequências correspondentes em vez de mantê-las |
--deacon_opts | string | Opções adicionais do deacon filter não cobertas por outros parâmetros | |
--deacon_prefix_length | integer | 0 | Pesquisar apenas os primeiros N nucleotídeos por sequência (0 para todos) |
--deacon_rel_threshold | number | 0.01 | Proporção relativa mínima (0.0-1.0) de acertos de minimizadores para uma correspondência |
Parâmetros do Kraken2 e Bracken
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--kraken2_db | string | Um único tarball ou caminho para um banco de dados no formato Kraken2 | |
--kraken2_quick_mode | boolean | false | Operação rápida (usar primeiro acerto ou acertos) |
--kraken2_confidence | number | 0.0 | Limiar de pontuação de confiança entre 0 e 1 |
--kraken2_minimum_base_quality | integer | 0 | Qualidade mínima de base usada na classificação |
--kraken2_use_mpa_style | boolean | false | Formatar saída do relatório como o kraken-mpa-report do Kraken 1 |
--kraken2_report_zero_counts | boolean | false | Reportar contagens para TODOS os táxons, mesmo que as contagens sejam zero |
--kraken2_report_minimizer_data | boolean | false | Incluir informações de minimizadores e contagem de minimizadores distintos no relatório |
--kraken2_use_names | boolean | false | Imprimir nomes científicos em vez de apenas taxids |
--kraken2_memory_mapping | boolean | false | Evitar carregar o banco de dados na RAM |
--kraken2_minimum_hit_groups | integer | 2 | Número mínimo de grupos de acertos necessários para fazer uma classificação |
--kraken2_keep_filtered_reads | boolean | false | Manter os FASTQs classificados e não classificados produzidos pelo Kraken2 |
--kraken2_keep_raw_output | boolean | false | Manter o arquivo STDOUT produzido pelo Kraken2 |
--bracken_read_length | integer | 0 | Comprimento de read para obter todas as classificações (0 = determinar em tempo de execução) |
--bracken_level | string | S | Nível para estimar a abundância |
--bracken_threshold | integer | 0 | Reads necessários ANTES da estimativa de abundância para realizar a reestimativa |
--bracken_max_secondary_percent | number | 0.01 | A porcentagem máxima de abundância para a espécie secundária; se excedida, a amostra permanecerá não classificada |
--bracken_skip_krona | boolean | false | Ignorar a criação de um relatório Krona |
Parâmetros de Dataset
Define onde o pipeline deve encontrar os dados de entrada e salvar os dados de saída.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--species | string | Nome da espécie para usar o dataset específico da espécie | |
--ask_merlin | boolean | Pedir ao Merlin para executar ferramentas Bactopia específicas para a espécie com base nas distâncias Mash | |
--coverage | integer | 100 | Reduzir amostras a uma dada cobertura, requer um tamanho de genoma |
--genome_size | integer | 0 | Tamanho esperado do genoma (bp) para todas as amostras, necessário para correção de erros de leitura e subamostragem de reads |
--use_bakta | boolean | Usar Bakta para anotação, em vez de Prokka |
Parâmetros Opcionais
Esses parâmetros opcionais podem ser úteis em determinadas situações.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--outdir | string | bactopia | Diretório base para salvar os resultados |
--skip_compression | boolean | false | Os arquivos de saída não serão comprimidos |
--datasets | string | O caminho para armazenar em cache os datasets | |
--keep_all_files | boolean | false | Mantém todos os arquivos de análise criados |
Parâmetros de Requisição Máxima de Jobs
Define o limite máximo de recursos solicitados para qualquer job individual.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--max_retry | integer | 3 | Número máximo de tentativas de um processo antes de permitir que ele falhe. |
--max_cpus | integer | 4 | Número máximo de CPUs que podem ser solicitadas para qualquer job individual. |
--max_memory | string | 128.GB | Quantidade máxima de memória que pode ser solicitada para qualquer job individual. |
--max_time | string | 240.h | Quantidade máxima de tempo que pode ser solicitada para qualquer job individual. |
--max_downloads | integer | 3 | Número máximo de amostras para baixar ao mesmo tempo |
Parâmetros de Configuração do Nextflow
Parâmetros para ajustar a configuração do Nextflow.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--nfconfig | string | Um arquivo de configuração compatível com Nextflow para perfis personalizados, carregado por último e que substituirá variáveis existentes se definido. | |
--publish_dir_mode | string | copy | Método usado para salvar os resultados do pipeline no diretório de saída. (opções: symlink, rellink, link, copy, copyNoFollow, move) |
--infodir | string | ${params.outdir}/pipeline_info | Diretório para manter os logs e relatórios do Nextflow do pipeline. |
--force | boolean | false | O Nextflow substituirá arquivos de saída existentes. |
--cleanup_workdir | boolean | false | Apó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âmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--custom_config_version | string | master | ID de commit Git para configurações institucionais. |
--custom_config_base | string | https://raw.githubusercontent.com/nf-core/configs/master | Diretório base para configurações institucionais. |
--config_profile_name | string | Nome do perfil de configuração institucional. | |
--config_profile_description | string | Descrição do perfil de configuração institucional. | |
--config_profile_contact | string | Informações de contato do perfil de configuração institucional. | |
--config_profile_url | string | URL do perfil de configuração institucional. |
Parâmetros de Perfil do Nextflow
Parâmetros para ajustar a configuração do Nextflow.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--condadir | string | Diretório que o Nextflow deve usar para ambientes Conda | |
--registry | string | quay.io | Registro para baixar contêineres Docker. |
--datasets_cache | string | <HOME>/.bactopia/datasets | Diretório onde os datasets baixados devem ser armazenados. |
--singularity_cache | string | Diretório onde imagens Singularity remotas são armazenadas. | |
--singularity_pull_docker_container | boolean | Em vez de baixar imagens Singularity diretamente para uso com Singularity, forçar o fluxo de trabalho a baixar e converter contêineres Docker. | |
--force_rebuild | boolean | false | Forçar a substituição de ambientes pré-construídos existentes. |
--queue | string | general,high-memory | Nome(s) separado(s) por vírgula da(s) fila(s) a ser(em) usada(s) por um agendador de jobs (ex.: AWS Batch ou SLURM) |
--cluster_opts | string | Opções adicionais para passar ao executor. (ex.: SLURM: '--account=my_acct_name') | |
--container_opts | string | Opções adicionais para passar ao Apptainer, Docker ou Singularity. (ex.: Singularity: '-D pwd') | |
--disable_scratch | boolean | false | Todos os arquivos intermediários criados nos nós de trabalho serão transferidos para o nó principal. |
Parâmetros Úteis
Parâmetros raramente usados que podem ser úteis.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
--monochrome_logs | boolean | Não usar saídas de log coloridas. | |
--nfdir | boolean | Imprimir o diretório para o qual o Nextflow baixou o Bactopia | |
--sleep_time | integer | 5 | O tempo (em segundos) que o Nextflow aguardará após configurar os datasets antes da execução. |
--validate_params | boolean | true | Booleano que indica se os parâmetros devem ser validados contra o esquema em tempo de execução |
--help | boolean | Exibir texto de ajuda. | |
--wf | string | bactopia | Especificar qual fluxo de trabalho ou Bactopia Tool executar |
--list_wfs | boolean | Listar os fluxos de trabalho e Bactopia Tools disponíveis para usar com '--wf' | |
--show_hidden_params | boolean | Mostrar todos os parâmetros ao usar --help | |
--help_all | boolean | Um alias para --help --show_hidden_params | |
--version | boolean | Exibir texto da versão. |
Composição
Este fluxo de trabalho usa os seguintes subworkflows:
- bactopia_gather - Pesquisar, validar, coletar e padronizar amostras de entrada.
- teton - Realizar classificação taxonômica e estimar tamanhos de genomas bacterianos.
Citações
Se você usar este fluxo de trabalho em sua análise, por favor cite os seguintes trabalhos.
-
Bactopia
Petit III RA, Read TD Bactopia - a flexible pipeline for complete analysis of bacterial genomes. mSystems 5 (2020) -
Bracken
Lu J, Breitwieser FP, Thielen P, and Salzberg SL Bracken: estimating species abundance in metagenomics data. PeerJ Computer Science, 3, e104. (2017) -
deacon
Bede N. deacon: SIMD-accelerated filtering of DNA sequences using minimizer-based comparison. (GitHub) -
Kraken2
Wood DE, Lu J, Langmead B Improved metagenomic analysis with Kraken 2. Genome Biology, 20(1), 257. (2019) -
SRA Human Scrubber
Katz KS, Shutov O, Lapoint R, Kimelman M, Brister JR, and O'Sullivan C STAT: a fast, scalable, MinHash-based k-mer tool to assess Sequence Read Archive next-generation sequence submissions. Genome Biology, 22(1), 270 (2021)