hi, all

I have several single-copy gene families identified from 12 genomes, Now I want to know evolution rate differences between these gene families, I got average DN/DS from PAML package: average DN/DS can be calculated through codeml 's M0 model (model=0, NSsites=0),

but how to calculate average DN and average DS?

should I run codeml using runmode=-2 to get all pairwise DN and DS estimates, then average between them? or using the "tree length for DN" "tree length for DS" in M0 model output?

FWIW, that will get the pairwise dNs and dSs for the alignment, the same result as the -2 mode in

`codeml`

. I think the OP is asking for an estimate of dN and dS across the tree? Which is subtly different and something I'm surprised to see does come in all the layers of guff`codeml`

spits outcodeml reports DN or DS in each branch on the tree, but without average estimates. One simple methods was calculate averages values by summing all branch DN or DS values, then divided by branch numbers. I also calcuated the average DN and DS using codeml's runmode "-2", then averaging the values come from all pairwise comparisons. But the two method gave out quite different results.

I would rather average values with the dN and dS values from the branches rather than averaging on the pairwise comparisons. Somehow, because pairwise computations are combinatorial in the number of sequences, averaging does not seem like the appropriate mathematical tool to me (because of intrinsic correlation between values).