RAxML

Descrição

De acordo com a página do RAxML, RAxML (Randomized Axelerated Maximum Likelihood) é um programa popular para análises filogenéticas de grandes conjuntos de dados sob máxima verossimilhança.

Versões Disponíveis

  • raxml/8.2.11 (default)

Carregando o Módulo

# Carregar RAxML
module load raxml/8.2.11

# Verificar executáveis disponíveis
ls $RAXML_DIR

Submissão de Jobs Seriais

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

export INPUT="alignment.phy"
export OUTPUT="RAxML_*"

module load raxml/8.2.11

job-nanny raxmlHPC-PTHREADS-SSE3 -T $SLURM_CPUS_PER_TASK \
                 -p 12345 -m PROTGAMMAWAG -s alignment.phy \
                 -n raxml_output -# 100

Submissão de Jobs MPI

submit_raxml_mpi.sh
#!/bin/bash
#SBATCH -J raxml_mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 48:00:00
#SBATCH --mem-per-cpu=2G

export INPUT="alignment.phy"
export OUTPUT="RAxML_*"

module load raxml/8.2.11

job-nanny srun -n $SLURM_NTASKS raxmlHPC-MPI-SSE3 \
                 -p 12345 -m PROTGAMMAWAG -s alignment.phy \
                 -n raxml_mpi -# 100

Submissão de Jobs com Bootstrap

submit_raxml_bootstrap.sh
#!/bin/bash
#SBATCH -J raxml_boot
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 72:00:00
#SBATCH --mem-per-cpu=2G

export INPUT="alignment.phy"
export OUTPUT="RAxML_*"

module load raxml/8.2.11

# Passo 1: Busca pela melhor árvore
job-nanny srun -n $SLURM_NTASKS raxmlHPC-MPI-SSE3 \
                 -p 12345 -m PROTGAMMAWAG -s alignment.phy \
                 -n best_tree -# 20

# Passo 2: Bootstrap
job-nanny srun -n $SLURM_NTASKS raxmlHPC-MPI-SSE3 \
                 -p 12345 -b 12345 -m PROTGAMMAWAG -s alignment.phy \
                 -n bootstrap -# 100

# Passo 3: Árvore de consenso
job-nanny raxmlHPC-SSE3 -m PROTGAMMAWAG -J MR -z RAxML_bootstrap.bootstrap \
                 -n consense_tree

Exemplo de Arquivo de Entrada (PHYLIP)

alignment.phy
4 100
Taxa1      ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG...
Taxa2      ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG...
Taxa3      ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG...
Taxa4      ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG...

Principais Opções

Opções do RAxML

Opção

Descrição

-s

Arquivo de alinhamento

-n

Nome da execução (sufixo dos arquivos de saída)

-m

Modelo de evolução (PROTGAMMAWAG, GTRGAMMA, etc.)

-p

Semente aleatória para parcimônia

-b

Semente aleatória para bootstrap

-#

Número de buscas/replicatas

-T

Número de threads (versão PTHREADS)

-f a

Busca rápida de bootstrap e melhor árvore

-f b

Desenhar bipartições na árvore

-f j

Calcular árvore de consenso

-x

Semente para rapid bootstrap

Análise Rápida com Bootstrap

submit_raxml_fast.sh
#!/bin/bash
#SBATCH -J raxml_fast
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 48:00:00
#SBATCH --mem-per-cpu=2G

export INPUT="alignment.phy"
export OUTPUT="RAxML_*"

module load raxml/8.2.11

# Opção -f a: análise completa com bootstrap
job-nanny srun -n $SLURM_NTASKS raxmlHPC-MPI-SSE3 \
                 -f a -x 12345 -p 12345 -# 100 \
                 -m PROTGAMMAWAG -s alignment.phy \
                 -n complete_analysis

Job Array para Múltiplos Genes

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

GENES=(
    "gene1.phy"
    "gene2.phy"
    "gene3.phy"
    "gene4.phy"
    "gene5.phy"
    "gene6.phy"
    "gene7.phy"
    "gene8.phy"
    "gene9.phy"
    "gene10.phy"
)

GENE=${GENES[$SLURM_ARRAY_TASK_ID-1]}
export INPUT="$GENE"
export OUTPUT="raxml_${GENE%.phy}/"

module load raxml/8.2.11

mkdir -p raxml_${GENE%.phy}
cd raxml_${GENE%.phy}
cp ../$GENE .

job-nanny raxmlHPC-PTHREADS-SSE3 -T $SLURM_CPUS_PER_TASK \
                 -p 12345 -m PROTGAMMAWAG -s $GENE \
                 -n ${GENE%.phy} -# 100

Análise de Resultados

analyze_raxml.sh
#!/bin/bash
#SBATCH -J analyze_raxml
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 01:00:00
#SBATCH --mem=2G

# Extrair likelihood final
grep "Final GAMMA" RAxML_*.out | awk '{print $6}' > likelihoods.txt

# Extrair suporte de bootstrap
grep "bootstrap" RAxML_bipartitions.* > bootstrap_support.txt

# Converter para Newick (já está no formato)
cat RAxML_bestTree.* > best_trees.nwk

# Gerar estatísticas
echo "Estatísticas das análises:" > stats.txt
echo "==========================" >> stats.txt

for tree in RAxML_bestTree.*; do
    echo "Arquivo: $tree" >> stats.txt
    echo "Comprimento:" $(grep -o ")" $tree | wc -l) "ramos" >> stats.txt
    echo "" >> stats.txt
done

Referências

Ver também