I am using positive selection analysis for each leaves in a phylogenetic tree.

In the routine calculation via codeml, I will be running model zero for all leaves and then model 2 for each leaves as foreground (marking leaves as #1 in phylogenetic tree), then calculate selection using a likelihood ratio test.

Is there a method for using FastCodeML for each leaves as foreground instead of the branch?


1 Answer 1


First and foremost, the fastcodeml guys didn't replace codeml via refactorising all the functionality of codeml, they refactorised one particular calculation and hence the confusion. fastcodeml isn't a particularly name helpful in truth, because it is not a faster version of all the functionality codeml, its just one of the calculations.

In the authors defence they (notably) improved the runtime of the most intensive calculation in codeml and thats their point - its proof of concept.

Thus, basically no fastcodeml can not be used in this context. fastcodeml runs the branch-site model of codeml only.

What the OP describes isn't how the branch-sites model works, they are describing the branch model.

The branch-site null model sets dN/dS to 1, and the LRT compares dN/dS likelihood between the designated branch(es) between dN/dS fixed to neutral against allowing dN/dS to be any value. Thus it's measuring whether the branch (branches) deviate from neutrality. What the OP describes via, model 0 one rate for the tree versus model 2 meaning two or more rates for the tree (basically two rates) and that is a different analysis and it is called a branch model.

If fastcodeml can be shoehorned to perform sites and branch-models that would be good to know.

There is an issue about 'tip selection' but the key answer concerns the basic difference between codeml and fastcodeml.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.