The step by step guide to Modeltest

Updated 14 Jan 2023

This guide is somewhat historic and focuses on using the windows command-line version of Modeltest to find the best parameters to construct a phylogenetic trees. You probably want to use a more modern version:

  •  jModeltest2 - a graphical version running in java (last release 2016)
  • ModelTest-NG - a rewritten version for Linux (last release 2021)

MODELTEST is a computer programme by David Posada and Keith A Crondall. The program is used to calculate the best model of DNA evolution to use in constructing phylogenetic trees in PAUP* or MrBayes. For more information read their publication or  download my archived copy of modeltest 3.7. When I started to use this program I found there was little detailed information about to help newbies use it, so I wrote this tutorial to remind me of the steps, and to help some graduate students in my lab. The latest version of Modeltest is 3.7 released on July 29, 2005. However David Posada now recommends you use jModeltest which is a java version of the programme with even more models.

To use the Modeltest program you need the application (available from the authors website), and the phlyogenetics package PAUP* (this is not free unfortunately, hopefully your university or company has a license) [note jModeltest does not require PAUP]. I will be referring to the windows command line version in this document, but these files will work on all versions. Finally you will need a fast computer, I used a 2.4 GHz Pentium 4 laptop, on this it took about an hour to work through 50 taxa of 1300 bp. You also need the file: modelblockPAUPb10.txt (to run modeltest) and optionally ML-search.txt to build a ML tree in PAUP*. modelblockPAUPb10.txt was written by David Posada and is a copy of the file found in the paupblock folder that is included in the download. ML-search was written by me, modify this for you own use.

I also assume that at this point you have a sequence alignment in the NEXUS format (this is critical). The easiest way to do this is use the "save as" command in ClustalX Open up this file in a text editor and replace the "-" (gap) symbol with the missing data symbol "?" where appropriate. It is getting out of the scope of this document to explain this, but typically this is at the ends of the alignment when you don't have full sequence for all taxa. One handy hint don't use the "-" symbol in taxa names, use "_" instead. I use my own file-naming scheme to keep track of things. I suggest replacing the word "test" below with the name of your gene, i.e.: "" Finally I highly recommend you read the documentation file: modeltest3.6.pdf found in the doc folder of the download.


Step by step MODELTEST for the windows version

  1. Start with a nexus file of your alignment in this document it will be called "test.aln.nex".
  2. Add the PAUP*-block to the end of this file. The sample block is called "modelblockPAUPb10.txt" This has changed from previous versions, by adding the command "default lscores longfmt=yes;" this is due to a bug in PAUP* 4.10b. If you use the PAUP-block that came with earlier versions of Modeltest it won't work!
  3. Save this file as "test.model.nex" (keeping the original). Drag this new file on to the paupstar.exe executable. Or if you have a version with a graphical user interface (GUI), execute the file using the menu system.
  4. All going well a DOS-like window will open up and PAUP* will begin to test your data against 56 different models of DNA evolution.
  5. At the end (this can take a while), there will be a file called model.scores (this is often in the drive root i.e. "C:\" or in the profile root ie. "C:\Documents and Settings\Your Name" do a search if you can't find it).
  6. Now use MODELTEST to find the best model follow the steps below (This requires some knowledge of simple DOS commands read this page if you are unfamiliar with DOS.
  7. Open up a command window (type "cmd" on win2000 to win7).
  8. Navigate to the program (make sure your model.scores file is in this directory too).
  9. Type this: " < model.scores > test.outfile".
  10. Open up test.outfile in notepad. This file explains which model is the best. See a sample Modeltest output. I suggest you read this publication on model selection. Copy the parameters from the file (found between the BEGIN PAUP; and END; commands).
  11. Add this to into the clearly marked line in the ML-search.txt file that I have written and copy this to the end your original test.aln.nex file and drag to the paupstar.exe file (or use the menu as above). Note that this is just to get you started, read up yourself about PAUP* commands. Not all data can be treated in the same way.
  12. All going well PAUP* will save your completed tree files.


Bootstrapping a ML tree is possible, but very very time consuming. If you do wish to do this add: "bootstrap search=Heuristic nreps=100;" near the end of the file. (search=Heuristic is the default, other possibilities are: BandB, FastStep, NJ, and UPGMA — but don't use those).