Kraken2

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

Ver também