是否存在类似于PyCogent的库,但是在Java(或Scala)中?

时间:2011-01-17 22:25:57

标签: java scala bioinformatics

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

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

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

谢谢, 罗布

1 个答案:

答案 0 :(得分:0)

对于第二个问题,为什么不使用现有的程序来比较序列和推断系统发育树,比如RAxMLMrBayes并称之为?最大似然和贝叶斯推断是针对这些问题的非常复杂的模型,并且使用它们似乎比自己实现它更好 - 比如最大的parsiomony或neihbour-joining树,这可能是从头开始为这样的项目编写的,进化分析是不够的。除非你只是想要一个非常快速和肮脏的拓扑(并且通过MP或NJ推断的树通常非常错误),你可以使用类似this的东西