还有其他包,特别是ape for R,它们构建了一个非根树,然后允许您通过显式指定外部组将其根化。
相反,在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')在树建立之后,我在这里合成了序列,但是这是一个基于这个过程的根树。

发布于 2015-05-15 04:13:14
正如@cel所说,这是UPGMA算法的产物。UPGMA通过从当前(或在数据来自任何时候)向后工作来创建树。它从找到两个最相似的物种开始。从理论上讲,这些物种比其他任何一对物种都有一个更新的共同祖先,因此它们被聚在一起。它们的共同祖先与树中其他物种的相似性是通过平均每个物种与该群体的所有成员的相似性来粗略估计的。
这一过程继续进行,在每一步将树中两个最相似的物种(或推定的共同祖先)分组,然后重新计算相似性,直到只剩下两组。其中一个组可能只有一个成员,在这种情况下,可以有效地将其视为外部组,但它们也可能都有许多成员。树的根是这两个群体的共同祖先。
https://stackoverflow.com/questions/30247359
复制相似问题