Open Puguang-Zhao opened 8 months ago
This is almost certainly an issue with your constraints. Normally the problem is, e.g., an ancestral node that is constrained to be younger than its descendant. I have code (somewhere!) to check for these kinds of errors; I'll try to find it and post it somewhere useful, as this seems to be a common problem.
In other instances (and yours, I suspect) it has to do with monophyly problems. For instance, in bootstrap replicate trees you cannot guarantee that "clade X" will form an exclusive clade in any given tree. In your case, I suspect that there is a problem (either a typo or a 'rogue taxon') involved with either (or both) Eudicots or Monocots; one species in the wrong clade will mean the analysis cannot even start. If a typo is the culprit, then the solution is simple: make your mrca statements more concise. A given statement is use to identify a single node, so you need only provide 2 tip names (i.e., that share a mrca at the node of interest). Your Eudicot statement has 1152 names!
Also, is your numsites value (1601) correct? That is the exact same number as the number of tip on your tree, which seems suspicious.
Anyway, I will try to find my constraint-checker code and report back :)
I notice that your tree is unrooted, which might be the entire problem (but still, simplify your mrca statements!). The tip labels are indecipherable to me, so I don't know how it should be rooted. If you could provide this information (either a single tip, or an outgroup clade that you know is present in the tree) then this will speedup the troubleshooting.
My constraint-checking code requires a correctly-rooted tree, so I am not able to proceed with checking either the clade definitions or a possible incompatibility amongst constraints.
I tried rerooting myself using tips labelled as 'Angiosperms_base', but things still did not run. I suspect that there is an error in either Eudicots or Monocots, as when I comment out the constraint for one of these at a time (say, on this semi-intelligently rooted tree) then things run fine.
Isso é quase certamente um problema com suas restrições. Normalmente o problema é, por exemplo, um nó ancestral que é restrito a ser mais jovem que seu descendente. Eu tenho o código (em algum lugar!) para verificar esses tipos de erros ; Tentei encontrá-lo e postá-lo em algum lugar útil, pois esse parece ser um problema comum.
Em outros casos (e no seu, eu suspeito) tem a ver com problemas de monofilia. Por exemplo, em árvores replicadas bootstrap você não pode garantir que o "clado X" formará um clado exclusivo em qualquer árvore dada. No seu caso, eu suspeito que há um problema (um erro de digitação ou um "táxon desonesto") envolvido com (ou ambos) Eudicots ou Monocots; uma espécie no clade errado significa que a análise não pode nem começar. Se um erro de digitação for o culpado, então a solução é simples: torne suas declarações mrca mais concisas. Uma declaração dada é usada para identificar um único nó, então você precisa fornecer apenas 2 nomes de ponta (ou seja, que inclua um mrca no nó de interesse). Sua declaração Eudicot tem 1152 nomes!
Além disso, seu valor numsites (1601) está correto? Esse é exatamente o mesmo número que o número de pontas na sua árvore, o que parece suspeito.
De qualquer forma, tentarei encontrar meu código selecionado de restrições e informarei novamente :)
Hi, can you share the R script with me? I have the same problem.
@TiagoBelintani I will search for it tomorrow. Please ping me if I take too long to respond ;)
@TiagoBelintani I found the code. It is currently part of a very specific pipeline, so I will have to edit it to be more generally useful. I hope to post it later today.
@TiagoBelintani @Puguang-Zhao I've added the (hurriedly-edited) constraint checking R code here. If checks for redundancies (i.e., constraints that apply to the same node; often an issue with defining MRCAs) and invalid constraints (e.g., a descendant node with a larger minimum age than that of one of its calibrated ancestral nodes).
There are example data in that directory, so you will know how to format your own data to run the code. The tree contains node labels (you can view these in FigTree) which match the constraint data so you can follow what is going on / understand why decisions are reached.
The codes only really checks minimum ages (not maximum ages) because these concern issues of consistency (i.e., will treePL run at all?). Maximum ages are a different beast; overlapping maximum ages does not necessarily invalidate things like conflicting minimum ages does. If I can think of an intelligent way to deal with maximum ages, I will update the code, and put new problems in the example data.
I hope this is readable. The pipeline to which the code originally belonged involved a taxonomic database, choosing representative taxa with the most genetic coverage, etc. It seems to run with the barebones example data. If you find something missing, or something you would like added, please let me know.
@josephwb Thank you very much!!
Hi Stephen,
We have a problem here, which has been seen in other posts, but we still don't know how to solve it for our own situation. Here are my files and error prompts.
my treefile: TPSa-bootst100-RAxML_bipartitions.txt
my configuration file: TPSa_treefile.txt
In order to facilitate the upload, I changed the suffix name to txt
And this is the treePL log:
In order to avoid the problem caused by too many sequences, I also used another tree file: TPSc.raxml_bs_tree.txt
my configuration file: TPSc_treefile.txt
And this is the treePL log:
We guessed that it might be calibration points or tree file problem. Thank you very much. Hope you can see the question and reply to my question.