我正在尝试创建一个自举的系统进化树,但不是使用原始的多序列比对数据和标准的评分系统,我想使用我自己创建的自定义距离矩阵。我目前查看了http://biopython.org/wiki/Phylo,并能够使用我自己的自定义距离矩阵创建一棵树,使用以下代码:
dm = TreeConstruction._DistanceMatrix(tfs,dmat)
treeConstructor = DistanceTreeConstructor(method = 'upgma')
upgmaTree = treeConstructor.upgma(dm)
Phylo.draw(upgmaTree)
其中,dmat是下三角距离矩阵,tfs是用于列/行的名称列表。在看引导示例时,似乎所有的输入都需要是原始序列数据,而不是像我上面使用的距离矩阵,有人知道解决这个问题的方法吗? 谢谢!在
简而言之:不,您不能使用距离矩阵来引导系统发育。在
长回答: 引导系统发育的第一步需要创建一组数据伪复制。对于DNA序列,核苷酸位置是从排列(整个列)中随机抽取的,重复次数达到排列的总长度。在
让我们假设一个10 bp长的序列与两个突变不同的序列。为了简单起见,它们的距离是d=0.2。在
引导这样的数据集需要位置3、8、5、9、10、1、6、9、6、5来表示伪复制。在
^{pr2}$我们获得了一个数据集,其中的变量(列)与原始对齐方式相同,但出现频率不同。注意在引导对齐中d=0.3。在
使用这种方法,我们可以引导任何变量或包含多个变量的数据集。距离矩阵不能以这种方式使用,因为它表示已经处理过的信息。在
解决方案:
重复在您自己的数据伪复制上计算自定义距离矩阵的过程。在
相关问题 更多 >
编程相关推荐