Thanks for highlighting the paper, Erik! I hope to extend this to more complex models of positive selection in the future. The software works well (I think), but it doesn't yet report which sites have undergone positive selection, partially because sites aren't fixed with a variable alignment, and partly because I haven't developed a simple and generic way to specify that site class 4 (say) is the interesting one. I guess its part of the model... unless its part of the post-processing.
You can specify somewhat generic substitution models for positive selection -- for example M8[4,HKY,F61], but also M8[6,GTR,MG94]. I hope to add more in the future, especially models for codon frequencies with an intermediate number of parameters between F3x4 and F61.
The code that specifies substitution models is here, and uses Haskell syntax:
This should make rapid development of new models easier. The scripting language is still evolving.