2013-01-19 42 views
0

我有一個很長的字符串包含DNA序列數據,通常約500k到5m字符長。 我想從頭開始剪切前n個字符,並將它們添加到該字符串的末尾。快速字符串拆分和串聯在紅寶石

我需要運行該方法約。 2000 DNA序列 - 這就是爲什麼我擔心速度。我不想整週阻止我的電腦。

什麼是最有效的方式來做到這一點在紅寶石?

一個側面問題是內存效率。因爲我只需要按順序執行一次這個任務,所以對我來說並不重要,但通常快並不意味着更少的內存,對吧?我的電腦有2個可用的RAM(希望它已經足夠了)。

如果你有興趣,爲什麼我需要這樣做:

爲什麼我要做到這一點,我的源材料分析,在DNA的特定點的原因。這一點需要在DNA中間的某個位置,以便在以後的分析中更方便。如果這一點接近末端或開始,我需要分割和連接DNA序列串。序列是循環的,並且點是細菌基因組中的dnaA的最高BLAST命中(來自NCBI數據庫)。由於大多數註釋傾向於使用dnaA基因的位置作爲開始,如果您想與該基因周圍區域一起工作,這非常煩人。

回答

0

聽起來有趣!

您可以運行rubinius基準測試,看看哪種方法是最有效的:https://github.com/rubinius/rubinius/tree/master/benchmark/core/string

您不必安裝了Rubinius爲,但它會給你多線程的紅寶石,就像JRuby的,這可能會更快如果您的計算機上有多個核心。

要了解如何運行基準測試檢查這個位置:http://rubini.us/doc/en/how-to/write-benchmarks/

+0

謝謝你,這聽起來像是正確的方向。我將爲一小部分我的序列對字符串操作進行基準測試。我的第一個分割和連接方法在我的電腦上運行正常,所以我認爲我對速度的擔憂只是消失了。 – adrian