TrimGalore

Descrição

De acordo com a Documentação do TrimGalore, esta é uma ferramenta para corte consistente de adaptadores e remoção de bases de baixa qualidade em dados de sequenciamento de nova geração (NGS). Possui tratamento especial para bibliotecas RRBS (Reduced Representation Bisulfite Sequencing).

Ela automatiza a detecção de adaptadores, oferece corte por qualidade baseado em Phred, suporte para dados paired-end e paralelização para processamento eficiente.

Versões Disponíveis

  • trim_galore/2.2.0 (default)

Nota

Para verificar as versões disponíveis:

module avail trim_galore

Carregando o Módulo

# Carregar TrimGalore
module load trim_galore/2.2.0

# Verificar instalação
trim_galore --version

# Verificar ajuda
trim_galore --help

Submissão de Jobs

Abaixo estão exemplos de scripts para usar o TrimGalore no GridUnesp. Lembre-se sempre de definir INPUT e OUTPUT para o job-nanny.

Exemplo 1: Processamento Single-end

submit_trimgalore_se.sh
#!/bin/bash
#SBATCH -J trim_se
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 12:00:00
#SBATCH --mem=8G

export INPUT="amostra.fastq.gz"
export OUTPUT="amostra_trimmed.fq.gz"
# Use asterisco (*) caso haja mais resultados
# export OUTPUT="*"

module load trim_galore/2.2.0

job-nanny trim_galore --fastqc amostra.fastq.gz

Exemplo 2: Processamento Paired-end

submit_trimgalore_pe.sh
#!/bin/bash
#SBATCH -J trim_pe
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 24:00:00
#SBATCH --mem=16G

export INPUT="amostra_R1.fastq.gz amostra_R2.fastq.gz"
export OUTPUT="amostra_R1_val_1.fq.gz amostra_R2_val_2.fq.gz"
# Use asterisco (*) caso haja mais resultados
# export OUTPUT="*"

module load trim_galore/2.2.0

job-nanny trim_galore --paired --cores $SLURM_CPUS_PER_TASK \
                      --fastqc amostra_R1.fastq.gz amostra_R2.fastq.gz

Exemplo 3: Processamento Paired-end com Arquivos Descompactados

submit_trimgalore_pe_uncompressed.sh
#!/bin/bash
#SBATCH -J trim_pe_uncomp
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 24:00:00
#SBATCH --mem=16G

export INPUT="amostra_R1.fastq amostra_R2.fastq"
export OUTPUT="amostra_R1_val_1.fq amostra_R2_val_2.fq"

module load trim_galore/2.2.0

job-nanny trim_galore --paired --cores $SLURM_CPUS_PER_TASK \
                      amostra_R1.fastq amostra_R2.fastq

Nota

Por padrão, a compressão da saída reflete a compressão da entrada: - Entrada .fastq.gz → saída .fq.gz - Entrada .fastq → saída .fq

Exemplo 4: Modo RRBS (Bisulfite-seq)

submit_trimgalore_rrbs.sh
#!/bin/bash
#SBATCH -J trim_rrbs
#SBATCH -N 1
#SBATCH -c 4
#SBATCH -t 24:00:00
#SBATCH --mem=16G

export INPUT="bisulfite_R1.fastq.gz bisulfite_R2.fastq.gz"
export OUTPUT="bisulfite_R1_val_1.fq.gz bisulfite_R2_val_2.fq.gz"

module load trim_galore/2.2.0

job-nanny trim_galore --paired --rrbs --cores $SLURM_CPUS_PER_TASK \
                      bisulfite_R1.fastq.gz bisulfite_R2.fastq.gz

Exemplo 5: Otimização de Tamanho com --clumpify

Para dados como ATAC-seq ou amplicons, que se beneficiam da reordenação para melhor compressão:

submit_trimgalore_clumpify.sh
#!/bin/bash
#SBATCH -J trim_clump
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 12:00:00
#SBATCH --mem=16G

export INPUT="dados_amplicon.fastq.gz"
export OUTPUT="amplicon_trimmed.fq.gz"

module load trim_galore/2.2.0

# Para arquivos intermediários: --clumpify
# Para armazenamento: adicione --compression 6
job-nanny trim_galore --clumpify --cores $SLURM_CPUS_PER_TASK \
                      --compression 6 dados_amplicon.fastq.gz

Exemplo 6: Remoção de Poli-A

Para bibliotecas de RNA-seq enriquecidas com poli-A:

submit_trimgalore_polya.sh
#!/bin/bash
#SBATCH -J trim_polya
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 12:00:00
#SBATCH --mem=16G

export INPUT="rna_sample_R1.fastq.gz rna_sample_R2.fastq.gz"
export OUTPUT="rna_sample_R1_val_1.fq.gz rna_sample_R2_val_2.fq.gz"

module load trim_galore/2.2.0

job-nanny trim_galore --paired --polyA --cores $SLURM_CPUS_PER_TASK \
                      --fastqc rna_sample_R1.fastq.gz rna_sample_R2.fastq.gz

Exemplo 7: Forçar Saída Descompactada

submit_trimgalore_dont_gzip.sh
#!/bin/bash
#SBATCH -J trim_nogzip
#SBATCH -N 1
#SBATCH -c 4
#SBATCH -t 12:00:00
#SBATCH --mem=8G

export INPUT="amostra.fastq.gz"
export OUTPUT="amostra_trimmed.fq"

module load trim_galore/2.2.0

job-nanny trim_galore --dont_gzip --cores $SLURM_CPUS_PER_TASK \
                      amostra.fastq.gz

Job Array para Múltiplas Amostras

submit_trimgalore_array.sh
#!/bin/bash
#SBATCH -J trim_array
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -c 4
#SBATCH -t 12:00:00
#SBATCH --mem=8G

SAMPLES=(
    "amostra1"
    "amostra2"
    "amostra3"
    "amostra4"
    "amostra5"
    "amostra6"
    "amostra7"
    "amostra8"
    "amostra9"
    "amostra10"
)

SAMPLE=${SAMPLES[$SLURM_ARRAY_TASK_ID-1]}
export INPUT="${SAMPLE}.fastq.gz"
export OUTPUT="${SAMPLE}_trimmed.fq.gz"

module load trim_galore/2.2.0

job-nanny trim_galore --fastqc ${SAMPLE}.fastq.gz

Job Array para Paired-end (Múltiplas Amostras)

submit_trimgalore_array_pe.sh
#!/bin/bash
#SBATCH -J trim_array_pe
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 24:00:00
#SBATCH --mem=16G

SAMPLES=(
    "amostra1"
    "amostra2"
    "amostra3"
    "amostra4"
    "amostra5"
    "amostra6"
    "amostra7"
    "amostra8"
    "amostra9"
    "amostra10"
)

SAMPLE=${SAMPLES[$SLURM_ARRAY_TASK_ID-1]}
export INPUT="${SAMPLE}_R1.fastq.gz ${SAMPLE}_R2.fastq.gz"
export OUTPUT="${SAMPLE}_R1_val_1.fq.gz ${SAMPLE}_R2_val_2.fq.gz"

module load trim_galore/2.2.0

job-nanny trim_galore --paired --cores $SLURM_CPUS_PER_TASK \
                      --fastqc ${SAMPLE}_R1.fastq.gz ${SAMPLE}_R2.fastq.gz

Principais Opções e Funcionalidades

Opções do TrimGalore

Opção

Abrev./Valor

Descrição

--paired

Modo paired-end

--cores N

-j N

Número de núcleos para processamento paralelo (até ~8)

--fastqc

Executa FastQC integrado nos arquivos trimados

--rrbs

Modo especial para bibliotecas RRBS

--polyA

Remove caudas poli-A (recomendado para RNA-seq)

--nextseq N

Corte de qualidade específico para equipamentos de 2 cores

--clumpify

Reordena reads para melhor compressão (requer --cores >= 2)

--compression N

Nível de compressão gzip (1 a 9). Padrão: 1 (mais rápido)

--retain_unpaired

Mantém reads não pareados em arquivos separados

--dont_gzip

Gera saída em texto simples (não compactada)

--length N

Descarta reads com tamanho menor que N (padrão: 20)

--quality N

Qualidade Phred para corte (padrão: 20)

Dica

Para dados paired-end, considere usar --retain_unpaired para não perder reads que perderam seu par durante o corte.

Arquivos de Saída

Arquivos gerados pelo TrimGalore

Modo

Arquivos de saída

Single-end

*_trimmed.fq.gz, *_trimming_report.txt, *_trimming_report.json

Paired-end

*_val_1.fq.gz, *_val_2.fq.gz (pares válidos)

Paired-end (com --retain_unpaired)

*_unpaired_1.fq.gz, *_unpaired_2.fq.gz (reads não pareados)

FastQC

Relatório HTML e arquivo ZIP com qualidade pós-trimagem

Dicas de Otimização

  1. Paralelismo: Use --cores até 8 para ganho próximo-linear

  2. Compressão: --compression 1 (padrão) é mais rápida; --compression 6-9 reduz tamanho

  3. Clumpify: Beneficia ATAC-seq, amplicons, RNA-seq; requer --cores >= 2

  4. Memória: O TrimGalore é leve, mas o FastQC integrado pode consumir mais memória

Referências

Ver também