2017-12-13 10 views
-2
class RNAtoAA 
    def self.rna_convert(rna) 
    rna.slice!"AUG" 
    end 
end 

「AUG」を削除しようとしましたが(もう2つの繰り返しパターンを削除する必要があります)、希望の結果が得られませんでした。また、私はこれを使用し、更新された文字列を返すようにしたい場合は
を期待通りに動作するようです.gsub("AUG", "UAA")Rubyを使用してビッグテキストから複数の繰り返しトリプレットを削除するにはどうすればよいですか?

+1

_「希望の結果が得られませんでした」_希望の結果は何ですか? 'rna'はどのように見え、' rna_convert'は何を返すのですか? – Stefan

+0

ご意見ありがとうございます。所望の結果は、 "AUG"、 "UAA"、 "UAG"、 "UGA"が削除された文字の新しいシーケンスを有する.datファイルを生成することである。そして私の試行はすべて結果をもたらさなかった。私がこの方法を適用したいファイルの長さもかなり大きいです(.dat) –

+2

"望みの結果が得られませんでした"というのは、私たちがあなたに助けてくれる十分なエラー記述ではありません。 *何がうまくいかない? *どのように動作しませんか?あなたのコードにはどんな問題がありますか?エラーメッセージが表示されますか?エラーメッセージとは何ですか?結果はあなたが期待している結果を得ていないのですか?あなたはどんな結果を期待していますか、そしてなぜ、あなたはどのような結果を得ていますか、そしてその二つの違いは何ですか?あなたが観察している行動は、望ましい行動ではありませんか?望ましい行動とは何か、なぜ行動が観察され、どのように違うのですか? –

答えて

0
string = 'AAAAUG' 
RNAtoAA.rna_convert(string) 
puts string 
# AAA 

を試してみました:

class RNAtoAA 
    def self.rna_convert(rna) 
    rna.slice!"AUG" 
    return rna 
    end 
end 
+0

ご意見ありがとうございます。所望の結果は、 "AUG"、 "UAA"、 "UAG"、 "UGA"が削除された文字の新しいシーケンスを有する.datファイルを生成することである。そして私の試行はすべて結果をもたらさなかった。このメソッドを適用したいファイルの長さはかなり大きい –

0

あなたはチャンク内のファイルを読み取る必要がメモリISNように、うんざりした。 この例では、テストファイルを作成し、フィルタされたバージョンのソースとして使用します。 ギガバイトの大きなテストファイルを作成する場合は、テストファイルを作成するために同じことをする必要があります。 ファイルに改行が含まれている場合、これは行を遅延読み込みする方が簡単かもしれませんが、私はそれがないと仮定します。

# create a testfile 
patterns = ["AUG", "UAA", "UAG", "UGA","AAA", "BBB", "CCC"] 
large_string = "" 
1_000_000.times{large_string << patterns.sample} 
File.write("rna.dat", large_string) 

#read the file, remove some patterns and write in a new file 
filtered = ["AUG", "UAA", "UAG", "UGA"] 
File.open("filtered.dat", "w") do |out_file| 
    File.open("rna.dat", "r") do |in_file| 
    while chunk = in_file.read(3) 
     # Read small chunks of 3 bytes to limit memory usage 
     out_file.write chunk unless filtered.include? chunk 
    end 
    end 
end 
関連する問題