class RNAtoAA
def self.rna_convert(rna)
rna.slice!"AUG"
end
end
我试过删除“AUG”(我还需要删除2个以上的重复模式)但是它没有产生所需的结果。我也试过.gsub("AUG", "UAA")
答案 0 :(得分:0)
string = 'AAAAUG'
RNAtoAA.rna_convert(string)
puts string
# AAA
似乎按预期工作了 如果要返回更新的字符串,请使用:
class RNAtoAA
def self.rna_convert(rna)
rna.slice!"AUG"
return rna
end
end
答案 1 :(得分:0)
您需要以块的形式读取文件,以免内存被淹没。 此示例创建一个测试文件,并将其用作过滤版本的源。 如果你要创建一个千兆字节的大型测试文件,你需要为创建测试文件做同样的事情。 如果您的文件包含换行符,则可以通过延迟加载行来更简单,但我会假设它没有。
# 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