Skip to content


jModelTest2 is a tool to carry out statistical selection of best-fit models of nucleotide substitution by implementing five different model selection strategies; hierarchical and dynamical likelihood ratio tests, Akaike and Bayesian information criteria and a decision theory method.

jModelTest2 is available as a module on Apocrita.


To run the default installed version of jModelTest2, simply load the jmodeltest2 module:

$ module load jmodeltest2
$ java -jar ${JMODELTEST2_JAR} -help

java -jar jModelTest.jar -d sequenceFileName
                        [-ckp checkpointFileName.ckp]
                        [-t fixed|BIONJ|ML] [-u userTreeFileName] [-o outputFileName]
                        [-tr numberOfThreads] [-machinesfile machinesFileName]

For full usage documentation, run java -jar ${JMODELTEST2_JAR} -help.

Environment variable for path to jModelTest.jar

Loading the jmodeltest2 module will set the JMODELTEST2_JAR environment variable which should be used to reference the path to jModelTest.jar.

Example jobs

Serial job

Here is an example job running on 1 core and 5GB of memory:

#$ -cwd
#$ -j y
#$ -pe smp 1
#$ -l h_rt=1:0:0
#$ -l h_vmem=5G

module load jmodeltest2

java -Xmx5G \
     -jar ${JMODELTEST2_JAR} \
     -tr ${NSLOTS} \
     -d input.fasta \
     -o output/test.out

Setting the thread and memory limits

When requesting less than one entire node in the smp parallel environment, add the -tr ${NSLOTS} and -Xmx options to limit the number of threads and amount of memory jModelTest2 can use, respectively. For more information regarding the VM memory allocation, see here.

Parallel job

Here is an example job running on 96 cores across 2 ddy nodes using MPI:

#$ -cwd
#$ -j y
#$ -pe parallel 96
#$ -l h_rt=240:0:0
#$ -l infiniband=ddy-i

module load jmodeltest2

java -jar ${JMODELTEST2_JAR} \
     -d input.fasta \
     -o output/test.out