还有其他包,尤其是 R 的ape,它们构建了一个无根树,然后允许您通过显式指定一个 outgroup来对其进行根。
相比之下,在 BioPython 中,我可以直接创建一个有根树而不指定根,所以我想知道根是如何确定的,例如从以下代码。
from Bio import AlignIO
alignment = AlignIO.read('mulscle-msa-aligned-105628a58654.fasta', 'fasta')
from Bio.Phylo.TreeConstruction import DistanceCalculator
calculator = DistanceCalculator('ident')
dm = calculator.get_distance(alignment)
from Bio.Phylo.TreeConstruction import DistanceTreeConstructor
constructor = DistanceTreeConstructor()
tree = constructor.upgma(dm)
from Bio import Phylo
Phylo.write(tree, 'phyloxml-7016bed7d42.xml', 'phyloxml')
我在构建树之后在这里制作了序列,但尽管如此,这是一个从该过程构建的有根树。