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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容