【ROSALIND】【练Python,学生信】62 包含分枝长度信息的Newick格式

如果第一次阅读本系列文档请先移步阅读【ROSALIND】【练Python,学生信】00 写在前面 谢谢配合~

题目:
包含分枝长度信息的Newick格式(Newick Format with Edge Weights)
Given: A collection of n weighted trees (n≤40) in Newick format, with each tree containing at most 200 nodes; each tree Tk is followed by a pair of nodes xk and yk in Tk.
所给:n个(不超过40个)以Newick格式表示的进化树,每棵树包含的结点不超过200个;所给文件的形式为一棵树Tk,后面跟随着这棵树中的一对结点xk和yk。
Return: A collection of n numbers, for which the kth number represents the distance between xk and yk in Tk.
需得:n个正整数,分别代表xk和yk在Tk内的距离。
测试数据
(dog:42,cat:33);
cat dog
((dog:4,cat:3):74,robot:98,elephant:58);
dog elephant
测试输出
75 136
生物学背景
在生物学研究中,建立进化树的最终目的是构建一个分子钟,从而定量表示进化树中两个成员之间的进化距离。进化树上每个叶子结点代表一个物种,叶子结点之间的距离可以代表两个物种之间的差异程度。如此,我们只需要把两个结点之间每个边上的数字相加,就可以得到两个物种的进化距离。
在48 Newick格式与进化树中,我们已经接触到了Newick 这种表示进化树的格式,区别只在于48 Newick格式与进化树忽略了各边上的距离,我们这里只需要添加上即可,也就是把Newick格式推广应用到加权树上。表示方法为:(v1:d1,v2:d2,…,vn:dn)u,其中v1,v2,…,vn是树T中的相邻结点,这些结点又都与结点u相连, di则为边{vi,u}的长度。
思路
在这里先请大家原谅,由于自身工作问题,这几个月我几乎没有再碰过生信,我的能力也快发挥到极限了,后面的题只会越做越艰难。这道题我只用现成的工具包得到正确答案,没有扎扎实实的自己写代码解决。这里的解决方法同48 Newick格式与进化树里的方法1一模一样,我这里就偷懒了。如果有同学自己写了代码又想与别人分享,也欢迎私信我呀,我整理之后再补充到这里,希望能和大家共同学习讨论(>▽<)。
代码