TraitRateProp Logo Detecting trait-dependent
evolutionary rate shifts
in sequence sites


The purpose of the code is to infer associations between transitions in the trait (character) state and the rate of sequence evolution. Inference can be performed for three models: 'null', 'TR', and 'TRP'.
Through its configuration file it receives various parameters needed for its run. These include: The program outputs result files with the inferred model parameter values and the log-likelihood of the fitted models.
When citing the program, please use TraitRateProp credits.

  1. Downloading and compiling the program
  2. Usage

Downloading and compiling the program

The current version is from December 2016.
Follow these steps to compile the program in a UNIX system:
  1. Download the TraitRateProp source code or a pre-compiled version for UNIX

  2. If you choose to use the pre-compiled file you might need to set execution permissions for it (chmod +x PRE-COMPILED)

    If you choose to compile yourself, follow these steps:

  3. In order to unzip and untar the files, type:
  4. tar -xzf TraitRateProp_source_20161221.tar.gz

    This will create the directory TraitRateProp_source_20161221

  5. Compile the software by typing (we used the gcc620 compiler, you'll need at least gcc480):
  6. cd TraitRateProp_source_20161221/libs/phylogeny
    make doubleRep
    cd ../../programs/TraitRateProp/
    make doubleRep

    (Running 'make' takes a while, warnings issued can be ignored)


The executable traitRate.doubleRep will be created under TraitRateProp_source_20161221/programs/TraitRateProp/

Small run example

As a first step we recommend running a toy example, following these steps:
  1. Create a directory for the example (mkdir EXAMPLE_DIRECTORY)
  2. Download the example input MSA file to EXAMPLE_DIRECTORY
  3. Download the example input trait states file to EXAMPLE_DIRECTORY
  4. Download the example input tree file to EXAMPLE_DIRECTORY
  5. Download the example input TraitRateProp configuration file to EXAMPLE_DIRECTORY
  6. Edit the example TraitRateProp configuration file by replacing "FULL_PATH_TO_YOUR_EXAMPLE_DIRECTORY" with the full path to the example directory you created
    This edit will require 5 changes in the example TraitRateProp configuration file
  7. Run TraitRateProp with the edited configuration file:
    TraitRateProp_source_20161221/programs/TraitRateProp/traitRate.doubleRep EXAMPLE_DIRECTORY/example_TRP_configuration_file.txt
The outputs of the run will be written in FULL_PATH_TO_YOUR_EXAMPLE_DIRECTORY/result/

TraitRateProp's output files

TraitRateProp produces three output files of interest:

  1. The alternative results file (set in _outFile ) – contains information about the parameter estimations under the alternative model (TR or TRP) and the log-likelihood scores of the null model (model 0) and the alternative model. These scores can be used for the chi-sq LRT.
  2. The null results file (set in _outFileNullParams) – contains the null model parameter estimations.
  3. The position likelihoods file (set in _LLPerPositionFile) – in the TRP alternative model, the likelihood of each position is computed once with no association between the rate and the phenotypic trait and once with such an association. This file contains these computations for each position and the ratio between them (= the Bayes factor).

Summarizing the results of the first two output files in a friendly format is possible with this Perl script.
Running this script will produce an output in this format.

Summarizing the per-position predictions based on the second two output files is possible with this Perl script.
Running this script will produce an output in this format.

Running TraitRateProp on your own input

We refer you to the TraitRateProp manual where you can find a full description of the program's input configuration.
We also provide a set of template configuration files. The details concerning these also appear in the manual.

Copyright (C) 2016 Itay Mayrose

For any problems or questions please contact us at