awk处理FASTA格式文件

从一个文件(input.fasta)提取第10至20个序列存到另一个文件(output.fasta)

awk -v RS='>' 'NR>1{i++}i>=10&&i<=20{print ">"$0}' input.fasta | sed '/^$/d' > output.fasta

将某一文件(input.fasta)中每一条序列保存到一个文件中

# 输出文件名是1.fasta, 2.fasta, 3.fasta...
awk '/^>/{f=++d".fasta"} {print > f}' input.fasta 
# 输出文件名是序列ID
awk '/^>/ {fout=sprintf("%s.fasta",substr($0,2));}{print >> fout;}' input.fasta

根据IDs(id.txt)从fasta文件(input.fasta)中提取序列

awk -F'>' 'NR==FNR{ids[$0]; next} NF>1{f=($2 in ids)} f' id.txt seq.fasta

你可能感兴趣的:(awk处理FASTA格式文件)