You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套循环中BCFtools无法读取区域的问题求助

VCF文件区域过滤脚本执行异常问题

待处理文件内容

我有一个包含区域信息的文本文件,内容如下:

chr2:1-26910392
chr2:26910393-53820784
chr2:53820785-80731176
chr2:80731177-107641568

执行的过滤脚本

我编写了一段Bash脚本,逐行读取上述文件的区域信息,用于过滤VCF文件:

count=0
for i in 2; do
    while IFS= read -r line; do
    ((count+=1))
    echo "$i"
    echo "$line"
    echo "$count"
    bcftools view -Oz --regions $line /scratch4/chr"$i"_nsconcat2.ALLChr.vcf.gz > /scratch4/split_contig/split_"$count"_"$i"_nsconcat2.ALLChr.vcf.gz
    done < /scratch4/chr"$i".txt
done

报错信息

脚本执行后抛出错误:

无法读取区域:chr2:1-26910392
[E::_regions_init_string] 无法解析区域:chr2:1-26910392

排查细节

  1. 手动执行对应命令可正常运行:
bcftools view -Oz --regions chr2:1-26910392  /scratch4/chr2_nsconcat2.ALLChr.vcf.gz >/scratch4/split_contig/split_0_2_nsconcat2.ALLChr.vcf.gz
  1. 脚本中echo输出内容正常,显示结果如下:
2
chr2:1-26910392
0
2
chr2:26910393-53820784
1
2
chr2:53820785-80731176
3
2
chr2:80731177-107641568
4
  1. 修改while循环条件为while IFS= read -r line || [[ -n "$line" ]]; do后,最后一行区域的过滤命令可正常执行。
  2. 已确认文本文件中每行仅包含一个区域字符串。

内容的提问来源于stack exchange,提问作者Gabriel G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:32:47