如何从一个序列文件中批量去掉特定序列?

比如我有一包含许多基因的ID文件,和所有ID对应的序列文件,文件内容如下

cat geneid.txt

gene1

gene11

gene34

gene57

gene78

gene789

less -S gene.fa

>gene1 length=2

AT

>gene2 length=6

ATCGGT

>gene3 length=8

ATATATCG

>gene4 length=15

ATATATATATATATC

如果我想去掉geneid.txt里面所有基因对应的序列该怎么做?

用seqkit软件就可轻松解决

1.去掉单个序列

seqkit grep -v -p "gene2" gene.fa>nogene2.fa

2.去掉一批序列

seqkit grep -v -f geneid.txt gene.fa >nogeneid.fa

相比于grep命令与python脚本,seqkit软件节省了时间,是一个非常不错的选择!