BEAST

Descrição

De acordo com a documentação do BEAST, BEAST (Bayesian Evolutionary Analysis Sampling Trees) é um programa multiplataforma para análise Bayesiana de sequências moleculares usando MCMC, focado em filogenias com datação por relógios moleculares.

Versões Disponíveis

  • beast/1.8.4

  • beast/1.10.4

  • beast/2.4.7 (default)

Submissão de Jobs com BEAST 1.x

submit_beast1.sh
#!/bin/bash
#SBATCH -J beast1
#SBATCH -N 1
#SBATCH -c 28
#SBATCH -t 5-00:00:00
#SBATCH --mem=32G

export INPUT="input.xml"
export OUTPUT="*.log *.ops *.trees"

module load beast/1.10.4

# Usando todas as threads disponíveis
job-nanny beast -beagle_instances $SLURM_CPUS_PER_TASK \
                -threads $SLURM_CPUS_PER_TASK \
                -beagle_multipartition on input.xml

Submissão de Jobs com BEAST 2

submit_beast2.sh
#!/bin/bash
#SBATCH -J beast2
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 7-00:00:00
#SBATCH --mem=64G

export INPUT="input.xml"
export OUTPUT="*.log *.ops *.trees"

module load beast/2.4.7

# BEAST 2 usa Java
job-nanny java -jar $BEAST_DIR/lib/beast.jar -threads $SLURM_CPUS_PER_TASK input.xml

Submissão de Jobs com BEAGLE (aceleração)

O BEAGLE é uma biblioteca para aceleração de cálculos filogenéticos, disponível nas versões recentes do BEAST.

submit_beast_beagle.sh
#!/bin/bash
#SBATCH -J beast_beagle
#SBATCH -N 1
#SBATCH -c 28
#SBATCH -t 5-00:00:00
#SBATCH --mem=32G

export INPUT="input.xml"
export OUTPUT="*.log *.ops *.trees"

module load beast/1.10.4

job-nanny beast -beagle -beagle_GPU -beagle_instances $SLURM_CPUS_PER_TASK \
                -threads $SLURM_CPUS_PER_TASK -beagle_multipartition on input.xml

Job Array para Múltiplas Execuções

Para realizar múltiplas execuções independentes (por exemplo, para verificar convergência):

submit_beast_array.sh
#!/bin/bash
#SBATCH -J beast_array
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 5-00:00:00
#SBATCH --mem=32G
#SBATCH --output=beast_%A_%a.out

export INPUT="input.xml"
export OUTPUT="run_${SLURM_ARRAY_TASK_ID}/"

module load beast/2.4.7

# Criar diretório para esta execução
mkdir -p run_${SLURM_ARRAY_TASK_ID}
cp input.xml run_${SLURM_ARRAY_TASK_ID}/

cd run_${SLURM_ARRAY_TASK_ID}
job-nanny java -jar $BEAST_DIR/lib/beast.jar -seed $SLURM_ARRAY_TASK_ID input.xml

Arquivo de Exemplo (XML)

exemplo.xml
<?xml version="1.0" encoding="UTF-8"?>
<beast>
    <taxa id="taxa">
        <taxon id="seq1"/>
        <taxon id="seq2"/>
        <taxon id="seq3"/>
    </taxa>

    <alignment id="alignment" dataType="nucleotide">
        <sequence>
            <taxon idref="seq1"/>
            ATCGATCGATCG...
        </sequence>
        <!-- mais sequências -->
    </alignment>

    <run id="mcmc" chainLength="10000000">
        <state>
            <tree name="tree" id="tree"/>
            <parameter name="kappa" id="kappa" value="2.0"/>
        </state>

        <distribution id="posterior">
            <distribution id="likelihood" spec="TreeLikelihood">
                <data idref="alignment"/>
                <tree idref="tree"/>
                <siteModel id="siteModel">
                    <substModel id="substModel" spec="HKY">
                        <kappa idref="kappa"/>
                    </substModel>
                </siteModel>
            </distribution>
        </distribution>

        <operator id="kappaScaler" spec="ScaleOperator" scaleFactor="0.5" weight="1">
            <parameter idref="kappa"/>
        </operator>

        <logger id="tracelog" fileName="output.log">
            <log idref="kappa"/>
            <log idref="posterior"/>
        </logger>
    </run>
</beast>

Ferramentas de Análise

O pacote BEAST inclui ferramentas para análise dos resultados:

# Tracer - análise de convergência
tracer output.log

# TreeAnnotator - resumo de árvores
treeannotator -heights mean -burnin 1000 trees.tree annotated.tree

# LogCombiner - combinar múltiplas execuções
logcombiner -burnin 1000 -log output1.log -log output2.log -o combined.log

Referências

Ver também