删除重复序列

我是Ruby新手,我喜欢一些指示。 我有一个包含以下许多内容的文件:

更新:

+ ?@??>=???>?>??>?>=9>>==?2>====== @IL9_2657:1:1:1:1217/1 TTTTCCGTGCTTTTTTTTTCGGTTCGATCCCCTCTTT + 

我想要一个脚本,对每个包含+到+的块说,如果序列有一个,则删除块

 TTTTTTTTT. 

提前致谢。

标记

这应该做:

 s = 'preceding_string+ ?@??>=???>?>??>?>=9>>==?2>===<=>=== @IL9_2657:1:1:1:1217/1 TTTTCCGTGCTTTTTTTTTCGGTTCGATCCCCTCTTT +following_string' s.gsub!(/\+[^+]*TTTTTTTTT[^+]*\+/, '') ps # => "preceding_stringfollowing_string" 

首先将数据拆分为数组。 scan可以使用简单的正则表达式执行此操作。 然后,您可以删除不需要的项目reject! 。 例如:

 data = "+x+ +y+ +TTTTTTTTT+ +z+" blocks = data.scan(/\+[^+]+\+/) blocks.reject! { |b| b.include? "TTTTTTTTT" } p blocks # => ["+x+", "+y+", "+z+"] 
 ruby -0777 -ne 'puts $_.split(/\+/).reject{|x| x[/TTTTTTT/] }.join("+")' file 

序列中是否含有过多的腺嘌呤? 如果是这样,使用bioruby获得序列的反向补码。