有没有类似于PyCogent的Java(或Scala)库?

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

在这里提问:http://biostar.stackexchange.com/ - dalloliogm
谢谢,我已经在那里发布了,并且已经得到了答案! - nomad
1个回答

0
针对第二个问题,为什么不利用现有的序列比对和推断进化树的程序,比如RAxMLMrBayes来解决呢?最大似然和贝叶斯推断是这些问题的非常复杂的模型,使用它们似乎比自己实现更好 - 诸如最大简约法或邻接法树这样的东西,可能需要从头开始编写,对于进化分析来说是不足够的。除非你只想要一个非常快速但不准确的拓扑结构(通过MP或NJ推断的树经常是错误的),在这种情况下可以尝试使用this之类的工具。

嗨pyvi,感谢你的回答。我会考虑像MrBayes这样的程序进行系统发育推断。然而,我的直接目标是运行一些实验,将其与文献中使用NJ树进行系统发育推断的先前工作进行比较。我意识到像NJ和UPGMA这样的算法远非理想的系统发育重建方法,但它们为与使用NJ树的先前工作(http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2770073/)进行比较提供了公平的指标。我会看一下你提供的第二个库,谢谢! - nomad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接