fasta序列长度低的过滤命令linux
fasta序列长度低的过滤命令linux详细介绍
以下是用于过滤 FASTA 序列中长度低于指定阈值的 Linux 命令及脚本,使用awk实现:
V1
使用说明:
- 保存脚本:将上述代码保存为
filter_fasta_by_length.awk,并赋予执行权限:
bash+x filter_fasta_by_length.awk - 执行过滤:
bashfilter_fasta_by_length.awk input.fasta output.fasta-v min_len=100:设定最小保留长度(示例为 100bp,可根据需求修改)input.fasta:输入的 FASTA 文件路径output.fasta:输出的过滤后文件路径
脚本逻辑说明:
- 逐行读取 FASTA 文件,遇到
>开头的行时视为新序列的开始,先处理上一个已缓存的序列(计算长度并判断是否保留)。 - 非
>行时,自动合并同一序列的多行(FASTA 序列可能跨多行存储)。 - 最后处理文件末尾未闭合的序列(避免遗漏最后一个序列)。
- 若未指定
min_len参数,脚本会报错并退出。