【发布时间】:2014-01-16 19:56:03
【问题描述】:
我目前正在尝试解析以下文件类型 (.fasta):
>SeqID=0001__GroupID=0001
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0002__GroupID=0001
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0003__GroupID=0002
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0004__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0005__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0006__GroupID=0004
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
通过组 ID 提取序列。我有一个要按以下格式提取的 ID 文件:
GroupID=0002
GroupID=0003
我一直在使用以下命令:
$ grep -A 1 -f groupIDs_to_extract.txt sequences_file.fasta > output.txt
这个想法是对输入文本文件中的每个 ID 执行 grep,并包含以下上下文行以实际提取序列。因此,在我的示例中,输出将是第 2 组和第 3 组的所有序列:
>SeqID=0003__GroupID=0002
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0004__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>SeqID=0005__GroupID=0003
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
但是,它只是在最后输出整个sequence_file.fasta,我不知道为什么。有人可以帮忙吗?
【问题讨论】:
-
您的
grep二进制文件中是否支持grep -A 1? -
您可能在
groupIDs_to_extract.txt中有一个空行(很可能在文件末尾)。空行表示“匹配所有内容”。 -
我意识到我的文件实际上并没有像我想象的那样格式化(见我的回答)。但是,是的,我的
groupIDs_to_extract.txt中确实有一个空行。只有一次我修复了这两个问题,所以谢谢!
标签: grep bioinformatics