Weiss and von Haessler (2003) test

38 views
Skip to first unread message

vadim.g...@fmach.it

unread,
Aug 15, 2021, 4:52:04 PM8/15/21
to IQ-TREE
Dear IQTREE team

Current IQTREE  manual (available at http://www.iqtree.org/doc/iqtree-doc.pdf)
and command line reference (available at http://www.iqtree.org/doc/Command-Reference) do not  contain mentioning of 
of the test by G.Weiss and A. von Haessler for model fit published in MBE in the paper titled:
Testing Substitution Models Within a Phylogenetic Tree.

However, the github pages for IQTREE still appear to have the code to perform the test, e.g.:
with a number of options (-h -s -a -t -i, etc.)

Could you please tell me if the test was discontinued, and if yes, why?

Currently IQTREE ranges models in terms of fit based on BIC criterion (as the default setting). May I kindly ask you why you do not use the Weiss and A. von Haessler's test for this purpose and why?

I would appreciate if you tell me if the W&H test can be used to range all the DNA models implemented in IQTREE in terms of fit. I also would greatly appreciate if you tell me if there is an implementation of such a procedure in any of your program versions.

The paper by G.Weiss and A. von Haessler mentions: "The program is available free of charge and can be downloaded from www.tree-puzzle.de".  However, I was not able to find the dedicated program on this page or the corresponding option in the Tree-Puzzle options. Could you please tell me if I am missing something?

Best wishes,

Vadim Goremykin
 





Minh Bui

unread,
Aug 17, 2021, 1:47:10 AM8/17/21
to IQ-TREE, Suha Naser, Rob Lanfear
Hi Vadim,

Thanks for your interest. This test is actually available in IQ-TREE, the options were commented out from the code (tools.cpp):

//            << endl << "TEST OF MODEL HOMOGENEITY:" << endl
//            << "  -m WHTEST            Testing model (GTR+G) homogeneity assumption using" << endl
//            << "                       Weiss & von Haeseler (2003) method" << endl
//            << "  -ns <#simulations>   #Simulations to obtain null-distribution (default: 1000)" << endl

The usage is:

iqtree -s ALN_FILE -m WHTEST -n 0

Results will be written to .whtest (main report file), .whsim and .whdist file.

Note that it only works for DNA alignment, without any partitioning.

The reason why this test was implemented but then hidden, is because of numerical issue in eigen-decomposition with parse matrix. In a recent study with Suha and Rob (CC’d here), we found that it works for half of the simulated alignments only. But we also found that when it works, the test is very good and sensitive in detecting model non-homogeneity. We will send a preprint about it soon.

Cheers
Minh

--
You received this message because you are subscribed to the Google Groups "IQ-TREE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to iqtree+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/iqtree/57d92e4b-5223-4eba-a271-475082d4d564n%40googlegroups.com.

vadim.g...@fmach.it

unread,
Aug 17, 2021, 7:02:07 AM8/17/21
to IQ-TREE
Hi Minh

Thank you very much for your reply! I have attempted to use the test as you described with the newest IQTREE version:
iqree2 -s observed_alignment.phy -m WHTEST -n 0
The program quit reporting:

q0_matrix not scaled to 1 total subst. per site (0.997804)

The program did not produce any results.
In order to check if this might be related to eventual code changes from version to version I have repeated the analysis with a number of earlier versions I have.
I have received the same error with every version I have.

My nucleotide alignment is not partitioned (with no gaps, missing and ambiguous characters), thus it should fit the criteria you described.
Do you think the program did not perform the test due to the method-specific feature (the issue with the eigen-decomposition you have mentioned?)

My second question relates to the fixed selection of a GTR+G model to perform the test.
This way the user is informed about the model-data fit of this model only.
Could you tell me why the implementation of the test does not allow to specify any other of many models available in IQTREE in order to test its fit to the input alignment? In model selection you would like to test all models to estimate their fit.

Best wishes,

Vadim

Minh Bui

unread,
Aug 19, 2021, 8:07:16 PM8/19/21
to IQ-TREE, vadim.g...@fmach.it
Hi Vadim,

On 17 Aug 2021, at 9:02 pm, vadim.g...@fmach.it <vadim.g...@fmach.it> wrote:

Hi Minh

Thank you very much for your reply! I have attempted to use the test as you described with the newest IQTREE version:
iqree2 -s observed_alignment.phy -m WHTEST -n 0
The program quit reporting:

q0_matrix not scaled to 1 total subst. per site (0.997804)

Yes, This is exactly what I referred to. How long is your alignment? Because with short alignments, there might not much substitutions between  some pairs of sequences. In that case, it might cause this numerical problem, more specifically with equation (9) in the paper, when the divergence matrix H is not diagonalisable.



The program did not produce any results. 
In order to check if this might be related to eventual code changes from version to version I have repeated the analysis with a number of earlier versions I have.
I have received the same error with every version I have. 

Because there has been no change in the implementation for this test. In fact we are trying to “fix” this test…but if you have any idea, please let me know.


My nucleotide alignment is not partitioned (with no gaps, missing and ambiguous characters), thus it should fit the criteria you described.
Do you think the program did not perform the test due to the method-specific feature (the issue with the eigen-decomposition you have mentioned?)

My second question relates to the fixed selection of a GTR+G model to perform the test. 
This way the user is informed about the model-data fit of this model only.
Could you tell me why the implementation of the test does not allow to specify any other of many models available in IQTREE in order to test its fit to the input alignment? In model selection you would like to test all models to estimate their fit. 

Because the purpose of this test is different from model selection. Model selection is trying to answer: among a pre-defined set of evolutionary models, which one fits best to the data? 

But WHTest is trying to answer: Is it adequate to use a single substitution model across all branches of the tree?

So normal model selection still assumes one single model acting on all branches of the tree (so-called model homogeneity). Whereas WHTest will test this assumption.

Cheers
Minh

Reply all
Reply to author
Forward
0 new messages