Kraken2
Nesta seção:
Descrição
De acordo com a Documentação do Kraken2, Kraken2 é um sistema de classificação taxonômica para sequências de DNA, usando k-mers e um banco de dados para atribuir reads a táxons. É amplamente utilizado em metagenômica para identificar organismos presentes em amostras.
Versões Disponíveis
kraken2/2.1.3 (default)
Submissão de Jobs Seriais
submit_kraken2.sh
#!/bin/bash
#SBATCH -J kraken2
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 12:00:00
#SBATCH --mem=32G
export INPUT="reads.fastq"
export OUTPUT="kraken_output.txt kraken_report.txt"
module load kraken2/2.1.3
job-nanny kraken2 --db /path/to/kraken2_database \
--threads 1 \
--output kraken_output.txt \
--report kraken_report.txt \
reads.fastq
Submissão de Jobs com Múltiplas Threads
submit_kraken2_omp.sh
#!/bin/bash
#SBATCH -J kraken2_omp
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 06:00:00
#SBATCH --mem=64G
export INPUT="reads.fastq"
export OUTPUT="kraken_output.txt kraken_report.txt"
module load kraken2/2.1.3
job-nanny kraken2 --db /path/to/kraken2_database \
--threads $SLURM_CPUS_PER_TASK \
--output kraken_output.txt \
--report kraken_report.txt \
reads.fastq
Classificação Paired-end
submit_kraken2_paired.sh
#!/bin/bash
#SBATCH -J kraken2_paired
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 12:00:00
#SBATCH --mem=64G
export INPUT="reads_1.fastq reads_2.fastq"
export OUTPUT="kraken_output.txt kraken_report.txt"
module load kraken2/2.1.3
job-nanny kraken2 --db /path/to/kraken2_database \
--threads $SLURM_CPUS_PER_TASK \
--paired \
--output kraken_output.txt \
--report kraken_report.txt \
reads_1.fastq reads_2.fastq
Construção de Banco de Dados
submit_kraken2_build.sh
#!/bin/bash
#SBATCH -J kraken2_build
#SBATCH -N 1
#SBATCH -c 28
#SBATCH -t 72:00:00
#SBATCH --mem=256G
export INPUT="library/"
export OUTPUT="custom_db/"
module load kraken2/2.1.3
job-nanny kraken2-build --download-taxonomy --db custom_db
job-nanny kraken2-build --download-library bacteria --db custom_db
job-nanny kraken2-build --download-library viral --db custom_db
job-nanny kraken2-build --build --db custom_db --threads $SLURM_CPUS_PER_TASK
Job Array para Múltiplas Amostras
submit_kraken2_array.sh
#!/bin/bash
#SBATCH -J kraken2_array
#SBATCH --array=1-20
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 12:00:00
#SBATCH --mem=64G
SAMPLES=(
"sample_01" "sample_02" "sample_03" "sample_04" "sample_05"
"sample_06" "sample_07" "sample_08" "sample_09" "sample_10"
"sample_11" "sample_12" "sample_13" "sample_14" "sample_15"
"sample_16" "sample_17" "sample_18" "sample_19" "sample_20"
)
SAMPLE=${SAMPLES[$SLURM_ARRAY_TASK_ID-1]}
export INPUT="${SAMPLE}_R1.fastq ${SAMPLE}_R2.fastq"
export OUTPUT="${SAMPLE}_kraken/"
module load kraken2/2.1.3
mkdir -p ${SAMPLE}_kraken
cd ${SAMPLE}_kraken
job-nanny kraken2 --db /path/to/kraken2_database \
--threads $SLURM_CPUS_PER_TASK \
--paired \
--output ${SAMPLE}_kraken.out \
--report ${SAMPLE}_report.txt \
../${SAMPLE}_R1.fastq ../${SAMPLE}_R2.fastq
Filtragem e Pós-processamento
process_kraken_output.sh
#!/bin/bash
#SBATCH -J process_kraken
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 02:00:00
#SBATCH --mem=8G
export INPUT="kraken_output.txt"
export OUTPUT="filtered/"
module load kraken2/2.1.3
mkdir -p filtered
# Extrair reads classificados em nível de espécie
awk '$1 == "C" && $4 == "S" {print $2}' kraken_output.txt > classified_reads.txt
# Extrair reads de uma taxonomia específica (ex: Escherichia coli - 562)
grep -w "562" kraken_output.txt > ecoli_reads.txt
# Gerar relatório detalhado com krakentools (se disponível)
# kreport2mpa.py -r kraken_report.txt -o mpa_report.txt
Análise Visual com Krona
submit_krona.sh
#!/bin/bash
#SBATCH -J krona
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 01:00:00
#SBATCH --mem=4G
export INPUT="kraken_report.txt"
export OUTPUT="krona.html"
module load kraken2/2.1.3
# Converter para formato Krona
cat kraken_report.txt | cut -f2-3 | tail -n +2 > kraken.krona
# Gerar gráfico Krona (requer KronaTools instalado)
# ktImportText kraken.krona -o krona.html
Referências
Documentação: https://github.com/DerrickWood/kraken2/wiki
Manual: https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown
Bancos de dados: https://benlangmead.github.io/aws-indexes/k2
Ver também
blast - Busca por homologia
MetaPhlAn - Alternativa para perfil metagenômico
Processando Simulações - Como submeter jobs