我有一个Newick树是通过比较4-9bp长DNA序列的推定DNA调节基序的位置权重矩阵(PWM或PSSM)的相似性(欧氏距离)而构建的。
这个树的交互式版本在iTol(here)上可以自由使用 - 只需在设置参数后按“更新树”:
我的特定目标:如果它们到最近的父进化枝的平均距离<1,则将图案(尖端/末端节点/叶子)折叠在一起。 X(ETE2 Python package)。这在生物学上是有意义的,因为一些基因调控DNA基序可以彼此同源(旁系同源物或直向同源物)。这种折叠可以通过上面链接的iTol GUI完成,例如,如果你选择X = 0.001,那么一些图案会变成三角形(图案族)。
我的问题:有人会建议一种能够输出或帮助可视化X的哪个值适合“最大化折叠图案的生物或统计相关性”的算法吗?理想情况下,当对X绘制时,树的某些属性会有一些明显的阶跃变化,这表明算法是一个合理的X.是否有任何已知的算法/脚本/包?也许代码会针对X的值绘制一些统计数据?我已经尝试绘制X与平均簇大小(matplotlib),但我没有看到明显的“步骤增加”来通知我使用X的值:
我的代码和数据:我的Python脚本的链接是[这里] [8],我已经对它进行了大量评论,它将为您生成树数据和上图(使用参数d_from,d_to和d_step探索距离截止,X)。如果你有简易安装和Python,你需要通过简单地执行这两个bash命令来安装ete2:
apt-get install python-setuptools python-numpy python-qt4 python-scipy python-mysqldb python-lxml
easy_install -U ete2
答案 0 :(得分:1)
我认为在提出具体建议之前我需要了解更多信息。但也许这会有所帮助。我假设每个终端节点都是一个序列,每个内部节点都是PSSM。
X的计算是特定于应用程序的。例如,如果要折叠ultraparalogs,你获得的X与你想要折叠所有同系物时获得的X不同。
由于通过重复和物种形成不断创造基因,因此X没有单一的值可以通过进化关系区分序列。因此,我不期望通过仅查看聚类统计数据来找到满足序列之间进化关系的令人满意的代理。
更严格的方法是从每个调控基序的基因构建基因树,并将其与物种树进行协调。那里有软件,还有直系同源/内部识别的其他启发式方法。
如果这样做,树的内部节点将用推断的进化事件(例如,复制,物种形成)进行修饰。然后,您可以向上走动树折叠节点,用于您不关心的分支。
答案 1 :(得分:0)
您可以尝试使用与@Jeff提到的类似树协调的内容。但标准树协调实际上会失败。
和解涉及首先添加代表&#34;损失&#34;整个目标树中的进化特征然后指示&#34;重复&#34;的节点。已经发生了进化特征。损失和重复的加权和提供了优化的成本函数。
但是在你的情况下,你要解决的问题是&#34;将这个超级树分解成适当大小的直系同源子树&#34;。这意味着你并不像重复一样真正想要获得损失。您想要一种对树进行评分的方法,以便揭示有多少直系同源子树合并到您的超树中。因此,您可以尝试这种评分方法:
如果我们将此分数称为&#34;子树因子&#34;然后它等同于:
S1 - S2 / N
推论:
如果S1-S2 = S1则意味着你的超级树在其中有大约一个真正的子树,所有多种物种的出现都是由于最近的旁系同源而产生的。
如果S1 - S2 = 0则表示您的超级树中有大约S1个真正的子树。