使用多棵树制作一棵共识树生物.phy

2024-05-14 22:45:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对肠杆菌基因组中的4个管家基因感兴趣

所以我有我的管家基因,我在NR上做了一个爆炸,下载了对齐的序列。在

我用MEGA7软件和极大似然法制作了系统发育树。bootrap法采用200次迭代。在

我将我的树导出为newick文件。在

所以现在,我有4棵树来表达我的4个管家基因。我想创建一个我的4棵树的共识树。在

就我个人而言,我试图使用生物系统学(http://biopython.org/DIST/docs/api/Bio.Phylo.Consensus-module.html#strict_consensus)(http://biopython.org/wiki/Phylo)。 我选择了“多数意见一致”函数,它的效果很好。但我有个问题。在

我的“剧本”是这样的:

import os

import sys

from Bio import Phylo

from Bio.Phylo.Consensus import *

fichier=sys.argv[1]

fichier2=sys.argv[2]

fichier3=sys.argv[3]

fichier4=sys.argv[4]

tree1=Phylo.read(fichier, 'newick')

tree2=Phylo.read(fichier2, 'newick')

tree3=Phylo.read(fichier3, 'newick')

tree4=Phylo.read(fichier4, 'newick')

trees=tree1,tree2,tree3,tree4

majority_tree = majority_consensus(trees, 0.5)

Phylo.draw(majority_tree)

问题是共识树依赖于顺序。 例如,当我try trees = tree1,tree2,tree3,tree4trees = tree2,tree4,tree1,tree3时,我得到了不同的结果

有人知道从newick文件制作共识树的另一个软件吗?在

我需要Bio.Phylo的帮助。如果有人知道更多关于这个包将是伟大的。在


Tags: importreadsystreesbioargv共识tree2
1条回答
网友
1楼 · 发布于 2024-05-14 22:45:28

因为您没有发布newick文件,所以让我们尝试重现您的问题,这样我们就有一个Minimal, Complete, and Verifiable example来表明一致性树依赖于顺序。在

我们从以下三棵树开始:

three trees

它们以newick格式表示如下:

newicks = {1: '((A,B,C),(D,(E,F)))',
           2: '(((A,B),C),(D,(E,F)))',
           3: '((A,B,C),(E,(D,F)))'}

现在我们尝试这三棵树的所有可能的排列,创建一致性树,看看它们是否都相同:

^{pr2}$

结果:

majority consensus for order: (1, 2, 3)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ D
 |________________________|
                          |                         ________________________ E
                          |________________________|
                                                   |________________________ F

majority consensus for order: (1, 3, 2)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ D
 |________________________|
                          |                         ________________________ E
                          |________________________|
                                                   |________________________ F

majority consensus for order: (2, 1, 3)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ D
 |________________________|
                          |                         ________________________ E
                          |________________________|
                                                   |________________________ F

majority consensus for order: (2, 3, 1)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ D
 |________________________|
                          |                         ________________________ E
                          |________________________|
                                                   |________________________ F

majority consensus for order: (3, 1, 2)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ E
 |________________________|
                          |                         ________________________ D
                          |________________________|
                                                   |________________________ F

majority consensus for order: (3, 2, 1)
                           ________________________ A
                          |
  ________________________|________________________ B
 |                        |
_|                        |________________________ C
 |
 |                         ________________________ E
 |________________________|
                          |                         ________________________ D
                          |________________________|
                                                   |________________________ F

因此,最后两棵一致树与前四棵一致树不同。在

为了理解为什么会发生这种情况,我们查看majority_consensus()的源代码。我们看到第一步是创建根类。终端clades的顺序由提供的第一个树决定。在

因此对于(tree1, tree2, tree3),第一个提供的树是tree1,根clade是{}。但是对于(tree3, tree2, tree1),提供的第一棵树是tree3,根clade变成{}EDF。在

因此,这是算法本身的一个限制,任何多数一致性的实现都会根据第一个提供的树给您不同的顺序。在

相关问题 更多 >

    热门问题