Difference between revisions of "MrBayes"

From UFRC
Jump to navigation Jump to search
m (Text replacement - "#uppercase" to "uc")
(20 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|11.1}} <!-- E.g. "11.1" -->
 
|{{#vardefine:mpi|openmpi/1.4.3}} <!-- 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
 
* 3.2.1
 
<!-- -->
 
==Running the application using modules==
 
 
 
Multiple versions of MrBayes are installed in /apps/mrbayes/, 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.2.1
 
or
 
$module spider mrbayes/3.1.2
 
 
 
'''MrBayes 3.2.1 versions are compiled with Intel 11.1, while MrBayes 3.1.2 versions are compiled with Intel 10.1.''' In either case, you will need to load the Intel module first.
 
 
 
 
 
For the serial (single core) version load MrBayes:
 
$module load intel/11.1 mrbayes
 
 
 
The recommended MPI version is the OpenMPI 1.4.3 compiled version. To use this load:
 
$module load intel/11.1 openmpi/1.4.3 mrbayes
 
 
 
For MrBayes 3.1.2, we also have an MPI version compiled with MVAPICH/0.9.9
 
$module load intel/10.1 mvapich/0.9.9 mrbayes
 
  
{{#if: {{#var: exe}}|==How To Run==
+
<!--Modules-->
 +
==Required Modules==
 +
[[Modules|modules documentation]]
 +
===Serial===
 +
*{{#var:app}}
 +
===Parallel (OpenMP)===
 +
*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 84: 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/11.1
+
#
module load openmpi/1.4.3
+
module load intel
 +
module load openmpi
 
module load mrbayes
 
module load mrbayes
 
+
#
# Define number of processors
+
# Run MrBayes using the command line from documentation.
NPROCS=`wc -l < $PBS_NODEFILE`
+
#
 
+
mpiexec mb my_nexus.nex
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 -i my_nexus.nex
 
 
 
 
</source>
 
</source>
  
Line 130: Line 91:
 
#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/11.1
+
#
 
module load mrbayes
 
module load mrbayes
 
+
#
mb -i my_nexus.nex
+
# 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).