ProtML and NucML deal only with unrooted trees, therefore you *must* have a trichotomy
at the base of your tree. Here is an excerpt of the MOLPHY documentation:
> Note that the machine readable tree is an UNROOTED one, and therefore its base
> must be multifurcation with a multiplicity of greater than or equal to three.
>> Unrooted tree (PROTML & DISTNJ) Rooted tree (not allowed)
> variable rate constant rate
>> ( subtree1, subtree2, subtree3 ); ( subtree1, subtree2 );
>> :-----subtree1
> : :-----subtree1
> :-----subtree2 :
> : :-----subtree2
> :-----subtree3
> ^root
> ^provisional root
Your tree, however, is a rooted one:
((MycTub,ThermTherm,BacSter,StrePneu,Ecoli,ThermAqua,Scer,ThermFlav,MIP1,Hinfl),
(T5,T7,Spo1,Spo2));
If you use a constraint tree to speed up an exhaustive search the syntax is different
from that of a normal user tree (you tree looks like a user tree). Again some words
from the docs:
> Format of CONSTRAINED TREE File
>>> standard CONSTRAINED TREE file format:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ( { HUMAN,CHIMP,PYGMY,GORIL }, ORANG, SIAMA );
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Note, "~~~" is file separater.
>> CONSTRAINED TREE file allow constrained machine readable tree.
> Pair of PARENTHESIS indicates FIX tree structure, but Pair of BRACE indicates
> COMBINATION tree structure in a monophyletic group.
If you look carefully you'll see that there are in addition to normal '(' brackets the
curly ones '{'. If you want to impose a constraint tree you have to write the constraint
tree into a separate file (I call it tree.cns).
Let us now check the syntax of the command:
protml -jf -s -v -i a.phy
You call the STARDECOMPOSITION method (-s) along with the FTT-F model. Instead, you should type
protml -jf -e a.phy tree.cns > output.txt
which performs an exhaustive search considering the constraint file tree.cns writing the output to
output.txt
Korbinian Strimmer