awk筛选FASTA文件时如何保留符合长度要求的序列及对应ID行
筛选FASTA符合长度序列及对应标识行的awk命令
你可以通过临时存储标识行的方式实现需求,修正后的命令如下:
awk '/^>/{head=$0;next} length($0)>50 && length($0)<=800 {print head;print $0}' sample.txt
命令逻辑说明
- 遇到以
>开头的标识行时,将该行内容存入变量head,执行next直接跳转处理下一行,不做输出 - 处理序列行时判断长度是否满足区间要求,符合条件则先打印之前存储的对应标识行,再打印当前序列行
另外你之前写的原始命令多了一个多余的右括号,会触发语法错误,上述命令已经修复了该问题。
内容的提问来源于stack exchange,提问作者Caterina
相关产品推荐
相关产品推荐

