3

我正在写一个生物进化模拟器。目前,我所有的代码都是用 Python 编写的。在大多数情况下,这很棒,并且一切都运行良好。然而,这个过程中有两个步骤需要很长时间,我想用 Scala 重写。

第一个问题领域是序列进化。想象一下,给你一个系统发育树,它与大量蛋白质相关联。每个分支的长度代表父子之间的进化距离。树的根以单个序列为种子,然后使用进化模型(例如http://en.wikipedia.org/wiki/Models_of_DNA_evolution)沿树结构进化序列;考虑到分支长度。PyCogent 需要很长时间来执行这一步,我相信一个合理的 Java/Scala 实现会明显更快。您是否知道任何实现此类功能的库。我想用 Scala 编写应用程序,因此,由于互操作性,任何 Java 库都足够了。

第二个问题领域是生成序列的比较。问题是,给定许多不同现存物种中蛋白质的一组序列,尝试使用该序列来重建与物种相关的系统发育树。这个问题本质上是计算要求高的,因为基本上必须在现存物种的所有序列之间进行成对比较。然而,在这里,我觉得 Java/Scala 实现的执行速度要比 Python 快得多,如果只是不幸地 Python 中的循环速度很慢的话。这部分我可以比序列进化部分更容易地从头开始编写,但如果存在一个好的库,我也愿意为它使用一个库。

谢谢,罗伯

4

1 回答 1

0

对于第二个问题,为什么不使用现有的程序来比较序列和推断系统发育树,比如RAxMLMrBayes并调用它?最大似然和贝叶斯推理是解决这些问题的非常复杂的模型,使用它们似乎比自己实现要好得多——比如最大简约或邻接树,对于这样的项目,可能可以从头开始编写,不足以进行进化分析。除非您只想要一个非常快速和肮脏的拓扑(并且通过 MP 或 NJ 推断的树通常非常错误),否则您可能可以使用这样的东西

于 2011-01-18T07:03:03.330 回答