【发布时间】:2015-06-02 02:58:26
【问题描述】:
我有一份 DNA 序列列表(每行一个):
ACTGCTCGGGGGG.....
CGCTCGCTTCTCTC...
等
大多数序列包含两个特定的基序,一个靠近开头,一个靠近结尾。我正在提取中间的序列:
- 使用 grep:
grep "motif1.*motif2" inputfile > outputfile -
在带有扫描的 ruby 中,
sequences是一个 DNA 序列数组:sequences.each do |seq| tmp=seq.scan(/motif1.*motif2/)[0] outputfile << tmp if tmp end
问题是我得到了不同数量的提取序列。 为什么?
【问题讨论】:
-
每一个输出得到什么?
-
我对 ruby 不熟悉,但我猜 ruby 可能只返回匹配的部分,而 grep 默认不返回? -- 不管怎样,试试
grep -o "pattern" infile > outfile。