revbayes / revbayes.archive

GNU General Public License v3.0
68 stars 37 forks source link

conflicting monophyletic clade constraint error #126

Open LizEve opened 6 years ago

LizEve commented 6 years ago

Tautonyms such as Gorilla_gorilla raise an error when used in clade constraints for unrooted trees. Here is an example of how I set up my topological constraints.

cladeA=("Gorilla_gorilla")
cladeB=("Homo_sapiens")
constraints=[cladeA,cladeB]
topology ~ dnUniformTopology(names,constraints=constraints)

When I run with both clades as constraints, I get the following error.

Error:       Cannot simulate tree: conflicting monophyletic clade constraints. Check that all clade constraints are properly nested.

When I only use cladeB, I do not get this error.

I tested with some made up species name ("Banana_banana") that I know isn't in my data set and I got the same error message.

milliescient commented 6 years ago

Hi Genevieve,

Could you share a complete script? I couldn't reproduce your error with the snippet you posted (I had to modify it slightly to get it to run: names wasn't declared, and you can't specify clade constraints as strings). The following doesn't produce an error with the latest development code.

names=v(taxon("Gorilla_gorilla"), taxon("Homo_sapiens"), taxon("Bos_taurus"))
cladeA=clade("Gorilla_gorilla")
cladeB=clade("Homo_sapiens")
constraints=[cladeA,cladeB]
topology ~ dnUniformTopology(names,constraints=constraints)
LizEve commented 6 years ago

Hi Will,

I did some more playing around with this and I think I've nailed down the issue. It seems that only tautonyms that start with the letter "A" have issues. I tried using "Allen_allen" instead of "Ameiva_ameiva" and it raised the same error. Then I tried "Eameiva_eameiva" and had no issues. Setting "Ameiva_ameiva" as a single taxon clade raises no issues, only when combined with other taxa.

Here is the code I used

names=v(taxon("Gallus_gallus"), taxon("Anolis_brasiliensis"), taxon("Anolis_meridionalis"), taxon("Tropidurus_oreadicus"), taxon("Colobosaura_modesta"), taxon("Micrablepharus_maximiliani"), taxon("Ameivula_mumbuca"), taxon("Kentropyx_calcarata"), taxon("Emeiva_emeiva"),taxon("Ameiva_ameiva"),taxon("Amphisbaena_alba"))

outgroup=clade("Gallus_gallus")
iguania=clade("Anolis_brasiliensis", "Anolis_meridionalis", "Tropidurus_oreadicus")
gymno=clade("Colobosaura_modesta", "Micrablepharus_maximiliani")
teiid=clade("Ameivula_mumbuca", "Kentropyx_calcarata","Ameiva_ameiva")
amphi=clade("Amphisbaena_alba")

constraints=[outgroup,iguania,gymno,amphi,teiid]
topology ~ dnUniformTopology(names,constraints=constraints)
LizEve commented 6 years ago

I have run into this issue again recently. Currently using mpi version, RevBayes version (1.0.9), Build from master (cfccd8) on Mon Nov 12.

It appears that the issue is with any constraints put on the taxon that is alphabetically first.

For example, using cladeA and cladeB as constraints works, however clade C gives seg-fault and cladeD gives a non-monophyly error.

names=v(taxon("Gorilla_gorilla"), taxon("Homo_sapiens"), taxon("Bos_taurus"))
cladeA=clade("Gorilla_gorilla")
cladeB=clade("Homo_sapiens")
cladeC=clade("Bos_taurus")
cladeD=clade("Homo_sapiens","Bos_taurus")
constraints=[cladeA,cladeB]
topology ~ dnUniformTopology(names,constraints=constraints)

Also, my bad for accidentally closing this error, clicked the wrong button. Oops.