私は生物進化シミュレーターを書いています。現在、私のコードはすべて Python で書かれています。ほとんどの場合、これは素晴らしいことであり、すべてが十分に機能します。ただし、プロセスには時間がかかり、Scala で書き直したい 2 つのステップがあります。
最初の問題領域は、シーケンスの進化です。タンパク質の大規模なセットに関連する系統樹が与えられたと想像してください。各枝の長さは、親と子の間の進化距離を表します。ツリーのルートには単一のシーケンスがシードされ、進化モデル (例: http://en.wikipedia.org/wiki/Models_of_DNA_evolution ) を使用して、ツリー構造に沿ってシーケンスが進化します。枝の長さを考慮します。PyCogent はこのステップを実行するのに長い時間がかかりますが、合理的な Java/Scala 実装は大幅に高速になると思います。このタイプの機能を実装するライブラリを知っていますか。アプリケーションを Scala で作成したいので、相互運用性のために、任意の Java ライブラリで十分です。
2 番目の問題領域は、生成されたシーケンスの比較です。問題は、多数の異なる現存種のタンパク質の一連の配列が与えられた場合に、その配列を使用して種に関連する系統樹を再構築しようとすることです。基本的に、現存する種のすべての配列間でペアごとの比較を行う必要があるため、この問題は本質的に計算量が多くなります。ただし、ここでもまた、Java/Scala の実装は Python の実装よりもはるかに高速に実行されるように感じます。残念ながら、Python でのループの速度が遅いことだけが理由です。この部分は、シーケンスの進化部分よりも簡単にゼロから作成できましたが、良いライブラリがあれば喜んで使用します。
ありがとう、ロブ