用grep 筛选fastq 序列

grep 从文件中筛选出 包含指定的字符或者正则表达式的行;默认只打印匹配到的行,

比如一个文件 test.txt, 其内容为:

abc

def

ghi

jkl

grep a test.txt, 输出内容为: 

abc 

指定了-A参数后可以输出匹配行以及后面的几行

grep -A 3 a  test.txt, 输出内容为

abc

def

ghi

jkl

-f 参数可以指定一个文件, 其中文件的每一行指定了需要匹配的内容, 比如

grep.txt ,内容为:

a

d

grep -f grep.txt test.txt , 输出内容为

abc

def

今天遇到个问题,从fastq 文件中根据seq id 进行筛选, 就可以结合上面的用法来完成, 首先将seq id 放到一个seq.id.txt;

然后运行

grep -f seq.id.txt -A 3 test.fq 

即可输出结果,而且如果seq id 有重复,也只会输出一次。需要注意的就是每一个seq id 必须能够唯一标识一行。

原文地址:https://www.cnblogs.com/xudongliang/p/5028737.html