Hi Ugo,
> Hello Alexandros, Olexsey and all staff,
> first of all thank you very much for developing and maintaining raxml, great job.
thank you!
> I try as BU parameter both the site-specific rate and its inverse. I then run raxml with the option
> --brlen scaled --opt-model off. How is this instruction actually executed by raxml? I asked it long
> ago, but perhaps not through the proper channel, and I am realizing that I am not completely sure.
> Reading the manual, I interpreted that raxml computes a unique set of branch lengths for all
> partitions and then rescales the branch lengths of each partition and recomputes the likelihood.
not quite, "scaled" means that one global set of branch lengths is computed, and then multiplied
with individual scaling factors for every partition. Please see here:
https://github.com/amkozlov/raxml-ng/wiki/Tutorial#branch-length-linkage
> Both the final likelihood and the final tree are not too much dependent on whether I use rate or
> 1/rate as the BU parameter, and they change little if I rescale all partitions with a constant
> parameter (say +BU{2}), therefore I think that raxml must do some internal rescaling for avoiding
> that the likelihood changes much with a constant scale, but I am not very sure on which computation
Yes, branch length scalers are normalized such as the weighted (w.r.t. number of sites) average of
scalers is 1.0. You can see the respective code here:
https://codeberg.org/togkousa/coraxlib/src/branch/dev/src/corax/tree/treeinfo.c#L1154
This normalization will happen during branch length optimization, so technically you can disable it
with "--opt-branches off".
Hope this helps,
Oleksiy