我有一个Newick http://en.wikipedia.org/wiki/Newick_format通过比较 4-9 bp 长 DNA 序列的假定 DNA 调控基序的位置权重矩阵(PWM 或 PSSM)的相似性(欧几里德距离)而构建的树。
iTol 上有该树的交互式版本(),您可以随意使用 - 设置参数后只需按“更新树”:
我的具体目标:如果它们到最近亲本进化枝的平均距离 ETE2 Python 包)。这在生物学上是很有趣的,因为一些基因调控 DNA 基序可能彼此同源(旁系同源物或直向同源物)。这种折叠可以通过上面链接的 iTol GUI 来完成,例如如果您选择 X = 0.001,则某些图案会折叠成三角形(图案族)。
我的问题:有人能提出一种算法,可以输出或帮助可视化哪个 X 值适合“最大化折叠主题的生物学或统计相关性”吗?理想情况下,当针对 X 绘制时,树的某些属性会出现一些明显的阶跃变化,这向算法表明了一个合理的 X。是否有任何已知的算法/脚本/包?也许代码会根据 X 的值绘制一些统计数据?我尝试绘制 X 与平均簇大小(绘图库 http://matplotlib.org/)但我没有看到明显的“步长增加”来告诉我要使用哪个 X 值:
我的代码和数据:我的 Python 脚本的链接是 [here][8],我对其进行了大量评论,它将生成树数据并为您绘制上面的图(使用参数 d_from、d_to 和 d_step 来探索距离截止值 X) 。如果您有 easy-install 和 Python,则只需执行这两个 bash 命令即可安装 ete2:
apt-get install python-setuptools python-numpy python-qt4 python-scipy python-mysqldb python-lxml
easy_install -U ete2
您可以尝试使用类似于 @Jeff 提到的树协调的方法。但标准树协调实际上会失败。
协调首先涉及添加代表整个目标树中进化特征“丢失”的分支。然后指出进化特征发生“重复”的节点。损失和重复的加权和提供了优化的成本函数。
但就您而言,您想要解决的问题是“将这棵超级树分解为适当大小的同源子树”。这意味着您并不想像重复一样遭受损失。您需要一种对树进行评分的方法,以便揭示有多少同源子树合并到您的超级树中。因此,您可以尝试以下评分方法:
- 取一棵超级树,计算重复物种的数量 S1。
- 折叠所有属于旁系同源物的顶生叶,并计算重复物种的新数量 S2。
- S1 和 S2 之间的差异揭示了超级树中大约有多少个子树。
- 为了纠正由不同大小的超级树引起的任何偏差,除以超级树 N 中代表的独特物种的数量。
如果我们将此分数称为“子树因子”,那么它等于:
S1 - S2 / N
推论:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)