Difference between revisions of "MrBayes"

From UFRC
Jump to navigation Jump to search
m (Text replacement - "#uppercase" to "uc")
(23 intermediate revisions by 5 users not shown)
Line 2: Line 2:
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
[[Category:Software]][[Category:Phylogenetics]]
 
[[Category:Software]][[Category:Phylogenetics]]
<!-- ########  Template Configuration ######## -->
+
{|<!--Main settings - REQUIRED-->
<!--Edit definitions of the variables used in template calls
 
Required variables:
 
app - lowercase name of the application e.g. "amber"
 
url - url of the software page (project, company product, etc) - e.g. "http://ambermd.org/"
 
Optional variables:
 
INTEL - Version of the Intel Compiler e.g. "11.1"
 
MPI - MPI Implementation and version e.g. "openmpi/1.3.4"
 
-->
 
{|
 
<!--Main settings - REQUIRED-->
 
 
|{{#vardefine:app|mrbayes}}
 
|{{#vardefine:app|mrbayes}}
 
|{{#vardefine:url|http://mrbayes.sourceforge.net/}}
 
|{{#vardefine:url|http://mrbayes.sourceforge.net/}}
<!--Compiler and MPI settings - OPTIONAL -->
 
|{{#vardefine:intel|10.1}} <!-- E.g. "11.1" -->
 
|{{#vardefine:mpi|openmpi/1.2.7}} <!-- E.g. "openmpi/1.3.4" -->
 
<!--Choose sections to enable - OPTIONAL-->
 
|{{#vardefine:mod|1}} <!--Present instructions for running the software with modules -->
 
 
|{{#vardefine:exe|}} <!--Present manual instructions for running the software -->
 
|{{#vardefine:exe|}} <!--Present manual instructions for running the software -->
 
|{{#vardefine:conf|}} <!--Enable config wiki page link - {{#vardefine:conf|1}} = ON/conf|}} = OFF-->
 
|{{#vardefine:conf|}} <!--Enable config wiki page link - {{#vardefine:conf|1}} = ON/conf|}} = OFF-->
|{{#vardefine:pbs|1}} <!--Enable PBS script wiki page link-->
+
|{{#vardefine:pbs|}} <!--Enable PBS script wiki page link-->
 
|{{#vardefine:policy|}} <!--Enable policy section -->
 
|{{#vardefine:policy|}} <!--Enable policy section -->
 
|{{#vardefine:testing|}} <!--Enable performance testing/profiling section -->
 
|{{#vardefine:testing|}} <!--Enable performance testing/profiling section -->
Line 31: Line 16:
 
<!--Description-->
 
<!--Description-->
 
{{#if: {{#var: url}}|
 
{{#if: {{#var: url}}|
{{App_Description|app={{#var:app}}|url={{#var:url}}}}|}}
+
{{App_Description|app={{#var:app}}|url={{#var:url}}|name={{#var:app}}}}|}}
 +
 
 
MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. MrBayes uses Markov chain Monte Carlo (MCMC) methods to estimate the posterior distribution of model parameters.
 
MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. MrBayes uses Markov chain Monte Carlo (MCMC) methods to estimate the posterior distribution of model parameters.
  
<!--Location-->
+
In addition to the official MrBayes distribution, a modified version that uses the Gamma-Dirichlet and Inverse Gamma-Dirichlet priors for branch lengths (Rannala et al. in press; Zhang et al. 2012). This also includes the two exponential priors on internal and external branch lengths described by Yang & Rannala (2005) and Yang (2007). Please see [http://abacus.gene.ucl.ac.uk/software.html Ziheng Yang's site] for more information and citations. The modified version is only installed for openmpi and is called mb_Dirichlet. To run this version, simply replace mb with mb_Dirichlet in the examples below.
{{App_Location|app={{#var:app}}|{{#var:ver}}}}
 
<!--Versions-->
 
==Available versions==
 
* 3.1.2
 
<!-- -->
 
==Running the application using modules==
 
 
 
Multiple versions of MrBayes are installed in /apps/mrbayes/3.1.2/, and can be used through loading different sets of module files.
 
 
 
For information about the MrBayes module options, run the module spider command:
 
$module spider mrbayes/3.1.2
 
 
 
'''All versions are compiled with Intel 10.1, so load this first in all cases.'''
 
 
 
For the serial (single core) version load MrBayes:
 
$module load intel/10.1 mrbayes
 
  
The recommended MPI version is the OpenMPI 1.2.7 compiled version. To use this load:
+
<!--Modules-->
$module load intel/10.1 openmpi/1.2.7 mrbayes
+
==Required Modules==
 
+
[[Modules|modules documentation]]
We also have an MPI version compiled with MVAPICH/0.9.9
+
===Serial===
$module load intel/10.1 mvapich/0.9.9 mrbayes
+
*{{#var:app}}
 
+
===Parallel (OpenMP)===
{{#if: {{#var: exe}}|==How To Run==
+
*intel
 +
*{{#var:app}}
 +
===Parallel (OpenMPI)===
 +
*intel
 +
*openmpi
 +
*{{#var:app}}
 +
==System Variables==
 +
* HPC_{{uc:{{#var:app}}}}_DIR - installation directory
 +
<!--Additional-->
 +
{{#if: {{#var: exe}}|==Additional Information==
 
WRITE INSTRUCTIONS ON RUNNING THE ACTUAL BINARY|}}
 
WRITE INSTRUCTIONS ON RUNNING THE ACTUAL BINARY|}}
 
{{#if: {{#var: conf}}|==Configuration==
 
{{#if: {{#var: conf}}|==Configuration==
 
See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.|}}
 
See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.|}}
 
{{#if: {{#var: pbs}}|==PBS Script Examples==|}}
 
{{#if: {{#var: pbs}}|==PBS Script Examples==|}}
 
 
For MPI jobs: Remember that the total number of cores cannot be greater than the total number of chains MrBayes is using. For example, if you have 2 runs, each with 4 chains, the maximum number of cores to request is 2*4=8 cores. As long as the number of cores is under 12, it is best to keep nodes=1 (nodes = physical machines) as that will keep all communication within a single node. If you need more than 12 cores, you will probably want to add :infiniband to the request. (e.g. nodes=4:ppn=8:infiniband).
 
For MPI jobs: Remember that the total number of cores cannot be greater than the total number of chains MrBayes is using. For example, if you have 2 runs, each with 4 chains, the maximum number of cores to request is 2*4=8 cores. As long as the number of cores is under 12, it is best to keep nodes=1 (nodes = physical machines) as that will keep all communication within a single node. If you need more than 12 cores, you will probably want to add :infiniband to the request. (e.g. nodes=4:ppn=8:infiniband).
  
 +
<!--
 
{{#fileAnchor: mrbayes.MPI.pbs}}
 
{{#fileAnchor: mrbayes.MPI.pbs}}
 
Download raw source of the [{{#fileLink: mrbayes.MPI.pbs}} mrbayes.MPI.pbs]
 
Download raw source of the [{{#fileLink: mrbayes.MPI.pbs}} mrbayes.MPI.pbs]
Line 80: Line 59:
 
#PBS -l walltime=01:00:00
 
#PBS -l walltime=01:00:00
 
#
 
#
 
+
# Change to the directory from which the job was submitted
#Change to the directory where the job was launched from
+
#
 
cd $PBS_O_WORKDIR
 
cd $PBS_O_WORKDIR
 
+
#
#Use modules to load the environment for MrBayes
+
# Use modules to configure your environment for mrbayes
module load intel/10.1
+
#
module load openmpi/1.2.7
+
module load intel
 +
module load openmpi
 
module load mrbayes
 
module load mrbayes
 +
#
 +
# Run MrBayes using the command line from documentation.
 +
#
 +
mpiexec mb my_nexus.nex
 +
</source>
  
# Define number of processors
 
NPROCS=`wc -l < $PBS_NODEFILE`
 
  
IbEnabled=`/usr/local/sbin/IbEnabled`
 
if [ $IbEnabled -gt 0 ]; then
 
  echo "Running on IB-enabled node set"
 
  MPIRUN="mpirun --mca btl openib"
 
else
 
  echo "Running on GigE-enabled node set"
 
  MPIRUN="mpirun --mca btl ^udapl,openib --mca btl_tcp_if_include eth0"
 
fi
 
 
echo This job has allocated $NPROCS nodes
 
echo $MPIRUN -np $NPROCS mb my_nexus.nex
 
 
#Run MrBayes using the command line from documentation.
 
$MPIRUN -np $NPROCS mb my_nexus.nex
 
  
 +
'''Script for serial (single core) MrBayes job:'''
 +
{{#fileAnchor: mrbayes.serial.pbs}}
 +
Download raw source of the [{{#fileLink: mrbayes.serial.pbs}} mrbayes.serial.pbs]
 +
<source lang=bash>
 +
#!/bin/bash
 +
#
 +
#PBS -N mrbayes
 +
#PBS -M <your e-mail>
 +
#PBS -m abe
 +
#PBS -o mb.$PBS_JOBID.out
 +
#PBS -e mb.$PBS_JOBID.err
 +
#PBS -l nodes=1:ppn=1
 +
#PBS -l pmem=500mb
 +
#PBS -l walltime=01:00:00
 +
#
 +
# Change to the directory from which the job was submitted
 +
#
 +
cd $PBS_O_WORKDIR
 +
#
 +
# Use modules to configure your environment for mrbayes
 +
#
 +
module load mrbayes
 +
#
 +
# launch the executable
 +
#
 +
mb my_nexus.nex
 
</source>
 
</source>
{{#if: {{#var: policy}}|==Usage policy==
+
-->
 +
{{#if: {{#var: policy}}|==Usage Policy==
 
WRITE USAGE POLICY HERE (perhaps templates for a couple of main licensing schemes can be used)|}}
 
WRITE USAGE POLICY HERE (perhaps templates for a couple of main licensing schemes can be used)|}}
 
{{#if: {{#var: testing}}|==Performance==
 
{{#if: {{#var: testing}}|==Performance==

Revision as of 21:23, 6 December 2019

Description

mrbayes website  

MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. MrBayes uses Markov chain Monte Carlo (MCMC) methods to estimate the posterior distribution of model parameters.

In addition to the official MrBayes distribution, a modified version that uses the Gamma-Dirichlet and Inverse Gamma-Dirichlet priors for branch lengths (Rannala et al. in press; Zhang et al. 2012). This also includes the two exponential priors on internal and external branch lengths described by Yang & Rannala (2005) and Yang (2007). Please see Ziheng Yang's site for more information and citations. The modified version is only installed for openmpi and is called mb_Dirichlet. To run this version, simply replace mb with mb_Dirichlet in the examples below.

Required Modules

modules documentation

Serial

  • mrbayes

Parallel (OpenMP)

  • intel
  • mrbayes

Parallel (OpenMPI)

  • intel
  • openmpi
  • mrbayes

System Variables

  • HPC_MRBAYES_DIR - installation directory


For MPI jobs: Remember that the total number of cores cannot be greater than the total number of chains MrBayes is using. For example, if you have 2 runs, each with 4 chains, the maximum number of cores to request is 2*4=8 cores. As long as the number of cores is under 12, it is best to keep nodes=1 (nodes = physical machines) as that will keep all communication within a single node. If you need more than 12 cores, you will probably want to add :infiniband to the request. (e.g. nodes=4:ppn=8:infiniband).