0

我有一个很长的字符串,其中包含 DNA 序列数据,通常大约 500k 到 5m 个字符长。我想从头开始剪切前 n 个字符并将它们添加到该字符串的末尾。

我需要运行该方法大约。2000 个 DNA 序列——这就是我担心速度的原因。我不想整周都在阻塞我的电脑。

在 ruby​​ 中最有效的方法是什么?

一个附带问题是内存效率。因为我只需要每个序列运行一次这个任务,这对我来说并不重要,但通常快速并不意味着更少的内存,对吧?我的电脑有 2 个可用的 RAM(希望它足够了)。

如果你有兴趣为什么我需要这样做:

我想这样做的原因是,我的源材料是针对 DNA 中的特定点进行分析的。这一点需要位于 DNA 中间的某个位置,以便在以后的分析中更加方便。如果该点接近结尾或开头,我需要拆分并连接 DNA 序列字符串。序列是圆形的,该点是细菌基因组中 dnaA 的顶部 BLAST 命中(来自 NCBI 数据库)。由于大多数注释倾向于使用 dnaA 基因的位置作为开始,如果您想使用该基因周围的区域,这将非常烦人。

4

1 回答 1

0

听起来不错!

您可以运行rubinius基准测试,看看哪种方法最有效:https ://github.com/rubinius/rubinius/tree/master/benchmark/core/string

您不必为此安装 rubinius,但它会为您提供多线程 ruby​​,就像 jruby 一样,如果您的计算机上有多个内核,它可能会更快。

要了解如何运行基准测试,请在此处查看:http ://rubini.us/doc/en/how-to/write-benchmarks/

于 2013-01-19T15:05:00.817 回答