我正在编写一个生物进化模拟器。目前,我的所有代码都是用Python编写的。大部分情况下,这很好,一切都运行得足够顺利。然而,在此过程中有两个步骤需要很长时间,我想用Scala重新编写它们。
第一个问题区域是序列进化。想象一下,你得到了一个关系了众多蛋白质的系统树。每个分支的长度表示父节点和子节点之间的进化距离。树的根以单个序列为种子,然后使用进化模型(例如http://en.wikipedia.org/wiki/Models_of_DNA_evolution)沿着树结构演化序列;考虑到分支长度。PyCogent在执行此步骤时需要很长时间,我相信合理的Java/Scala实现将更快。您知道实现此类功能的任何库吗?我想用Scala编写应用程序,因此由于互操作性,任何Java库都可以胜任。
第二个问题是生成序列的比较。问题是,给定一组不同现存物种蛋白质的序列,尝试使用这些序列来重构关联物种的系统发育树。这个问题本质上需要进行所有现存物种序列之间的成对比较,因此在计算上要求很高。然而,在这里,如果仅仅是由于Python中循环速度缓慢的不幸情况下,我认为Java/Scala实现会比Python实现快得多。这部分我可以更容易地从头开始编写,但如果存在好的库,我也愿意使用它。谢谢,Rob
第一个问题区域是序列进化。想象一下,你得到了一个关系了众多蛋白质的系统树。每个分支的长度表示父节点和子节点之间的进化距离。树的根以单个序列为种子,然后使用进化模型(例如http://en.wikipedia.org/wiki/Models_of_DNA_evolution)沿着树结构演化序列;考虑到分支长度。PyCogent在执行此步骤时需要很长时间,我相信合理的Java/Scala实现将更快。您知道实现此类功能的任何库吗?我想用Scala编写应用程序,因此由于互操作性,任何Java库都可以胜任。
第二个问题是生成序列的比较。问题是,给定一组不同现存物种蛋白质的序列,尝试使用这些序列来重构关联物种的系统发育树。这个问题本质上需要进行所有现存物种序列之间的成对比较,因此在计算上要求很高。然而,在这里,如果仅仅是由于Python中循环速度缓慢的不幸情况下,我认为Java/Scala实现会比Python实现快得多。这部分我可以更容易地从头开始编写,但如果存在好的库,我也愿意使用它。谢谢,Rob