RAxML-NG
Nesta seção:
Descrição
De acordo com a página do RAxML-NG, RAxML-NG é uma ferramenta de inferência filogenética que usa o critério de optimalidade de máxima verossimilhança (ML). É o sucessor do RAxML, oferecendo melhorias em velocidade, flexibilidade e usabilidade.
Versões Disponíveis
raxml-ng/1.0.3 (default)
Carregando o Módulo
# Carregar RAxML-NG
module load raxml-ng/1.0.3
# Verificar instalação
raxml-ng --version
raxml-ng-mpi --version
Submissão de Jobs
#!/bin/bash
#SBATCH -J raxmlng
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 24:00:00
#SBATCH --mem=16G
export INPUT="test.fa"
export OUTPUT="test.fa.raxml.*"
module load raxml-ng/1.0.3
job-nanny raxml-ng --msa test.fa --model GTR+G --threads $SLURM_CPUS_PER_TASK
Busca pela Melhor Árvore
#!/bin/bash
#SBATCH -J raxmlng_search
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 48:00:00
#SBATCH --mem=32G
export INPUT="alignment.phy"
export OUTPUT="RAxMLNG_*"
module load raxml-ng/1.0.3
job-nanny raxml-ng --msa alignment.phy --model GTR+G \
--threads $SLURM_CPUS_PER_TASK \
--prefix RAxMLNG --seed 12345
Bootstrap
#!/bin/bash
#SBATCH -J raxmlng_boot
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 72:00:00
#SBATCH --mem=32G
export INPUT="alignment.phy"
export OUTPUT="RAxMLNG_*"
module load raxml-ng/1.0.3
# Bootstrap
job-nanny raxml-ng --bootstrap --msa alignment.phy --model GTR+G \
--threads $SLURM_CPUS_PER_TASK \
--prefix boot --seed 12345 --bs-trees 100
# Mapear bootstrap na melhor árvore
job-nanny raxml-ng --support --tree boot.raxml.bestTree \
--bs-trees boot.raxml.bootstraps \
--prefix support --threads $SLURM_CPUS_PER_TASK
Análise Completa (Busca + Bootstrap)
#!/bin/bash
#SBATCH -J raxmlng_all
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 96:00:00
#SBATCH --mem=32G
export INPUT="alignment.phy"
export OUTPUT="RAxMLNG_*"
module load raxml-ng/1.0.3
job-nanny raxml-ng --all --msa alignment.phy --model GTR+G \
--threads $SLURM_CPUS_PER_TASK \
--prefix complete --seed 12345 \
--bs-trees 100
Modelos Disponíveis
Modelo |
Descrição |
|---|---|
|
General Time Reversible com distribuição gamma |
|
GTR com 4 categorias gamma |
|
GTR com proporção invariável + gamma |
|
Jukes-Cantor 1969 |
|
Hasegawa-Kishino-Yano 1985 |
|
Tamura-Nei 1993 |
|
Kimura 2-parâmetros |
|
Felsenstein 1981 |
Job Array para Múltiplos Alinhamentos
#!/bin/bash
#SBATCH -J raxmlng_array
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 48:00:00
#SBATCH --mem=32G
FILES=($(ls *.phy *.fa *.fasta))
FILE=${FILES[$SLURM_ARRAY_TASK_ID-1]}
PREFIX="raxmlng_${FILE%.*}"
export INPUT="$FILE"
export OUTPUT="${PREFIX}_*"
module load raxml-ng/1.0.3
job-nanny raxml-ng --msa $FILE --model GTR+G \
--threads $SLURM_CPUS_PER_TASK \
--prefix $PREFIX --seed 12345
Análise de Resultados
#!/bin/bash
#SBATCH -J analyze_raxmlng
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 01:00:00
#SBATCH --mem=4G
module load raxml-ng/1.0.3
# Verificar convergência do bootstrap
raxml-ng --bsconvergence --bs-trees boot.raxml.bootstraps \
--prefix convergence --seed 12345
# Calcular árvore de consenso
raxml-ng --consense --tree boot.raxml.bootstraps \
--prefix consense --seed 12345
# Extrair estatísticas
for f in *.raxml.log; do
echo "Arquivo: $f"
grep "Final log likelihood" $f
grep "Tree length" $f
grep "Number of distinct tree topologies" $f
echo "---"
done > stats.txt
# Gerar PDF da árvore (requer Python com ete3)
cat > plot_tree.py << 'EOF'
from ete3 import Tree, TreeStyle
import glob
for tree_file in glob.glob("*.raxml.bestTree"):
t = Tree(tree_file)
ts = TreeStyle()
ts.show_leaf_name = True
ts.show_branch_length = True
ts.show_branch_support = True
outfile = tree_file.replace("bestTree", "tree.pdf")
t.render(outfile, tree_style=ts)
EOF
python plot_tree.py 2>/dev/null || echo "ete3 não instalado"
Referências
Documentação: https://github.com/amkozlov/raxml-ng/wiki
Manual: https://github.com/amkozlov/raxml-ng/blob/master/README.md
Tutorial: https://github.com/amkozlov/raxml-ng/wiki/Tutorial
Ver também
RAxML - Versão anterior
BEAST - Análise Bayesiana
ExaBayes - Alternativa Bayesiana
Processando Simulações - Como submeter jobs