iqtree / piqtree2

a python library that exposes features from iqtree2 - efficient software for phylogenomic inference
GNU General Public License v2.0
13 stars 3 forks source link

AGENDA: For discussion #50

Closed GavinHuttley closed 1 month ago

GavinHuttley commented 3 months ago
thomaskf commented 2 months ago

Yes, IQTREE2 can take model parameters as input. The parameters will be assigned and fixed as the input values.

Substitution model

For example, to assign the parameters a,b,c,d,e of the GTR model to 0.1, 0.2, 0.3, 0.4, 0.5 (where f is always set to 1) then the model should be written as GTR{0.1,0.2,0.3,0.4,0.5}

In general, the syntax is: [model name]{set of model parameters} The number of input parameters should match the number of parameters of the model.

Another example: K80{0.2} is to set the transition/transversion rate as 0.2 in the K80 model.

DNA Model Number of parameters
JC 0
F81 0
K80 1
HKY 1
TN 2
TNe 2
K81 2
K81u 2
TPM2 2
TPM2u 2
TPM3 2
TPM3u 2
TIM 3
TIMe 3
TIM2 3
TIM2e 3
TIM3 3
TIM3e 3
TVM 4
TVMe 4
SYM 5
GTR 5

Frequency array

Similar to the DNA frequencies, the user can set the DNA frequency with the syntax: F{x1,x2,x3,x4} where x1,x2,x3,x4 are the frequency of A,C,G and T.

For example, HKY{0.3}+F{0.1,0.2,0.3,0.4} defines the transition/transversion rate in HKY as 0.3 with nucleotide frequencies FA = 0.1, FC = 0.2, FG = 0.3, FT = 0.4.

Note that IQTREE will normalise the input frequency array if the sum of frequency rates is not 1.

RHAS (Rate Heterogeneity Across Site) model

Similarly, one can define the values of the parameters inside the {}.

RHAS Model Description
+G +G{alpha value} or +Gx{alpha value} where x is the number of categories
+I +I{invariable site proportion}
+R +Rx{r1,w1,r2,w2,...,rk,wk} where x is the number of categories, and ri, wi are the category i's rate and weight

For example, +I{0.1}+G3{0.4} represents invariable proportion 0.1 and 3-category Gamma with alpha 0.4.

The user can specify the parameters for all substitution model, frequency array, and RHAS model at the same time. For example: HKY{0.2}+F{0.1,0.2,0.3,0.6}+I{0.1}+G3{0.4}.

GavinHuttley commented 1 month ago

superseded by other issues.