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

如何正确匹配同后缀_filteredSNPs.txt文件解决plink调用报错

问题说明

你现有15个命名格式为[个体名]_filteredSNPs.txt的输入文件,需要批量运行plink的clump分析,要求输出文件以对应个体名为前缀,统一加_clumped后缀。当前运行脚本时报错无法打开输入文件。

排查步骤

首先解决「正确列出所有目标文件」的需求,同时定位报错原因:

  • 进入工作目录后执行通配符查询,直接列出所有符合后缀规则的文件:
cd /data/PRS
ls *_filteredSNPs.txt

执行后如果能返回15个文件路径,说明文件都在当前目录;如果返回数量不对,说明文件存储路径和脚本里的cd路径不一致,先把所有输入文件移到/data/PRS目录下再跑。

  • 提取所有个体名列表,确认和PBS数组的ID对应关系:
# 提取所有文件名里的个体名部分,输出到列表文件
ls *_filteredSNPs.txt | sed 's/_filteredSNPs.txt//' > sample_list.txt
# 统计个体数量,确认返回值为15
wc -l sample_list.txt
脚本修正方案

核心报错原因:你直接把$PBS_ARRAYID当个体名用,只有当个体名是和数组ID完全一致的连续数字(比如1到15)时这个写法才成立,如果个体名是字符串编号、或者数组ID范围没覆盖所有样本,就会找不到文件。根据你的个体名格式二选一即可:

方案1:个体名是1-15的连续数字

提交PBS任务时指定数组范围为1-15,脚本里增加文件存在校验,避免空跑:

#!/bin/bash
#PBS -t 1-15  # 数组ID对应15个样本序号
cd /data/PRS/

i=$PBS_ARRAYID
file="${i}_filteredSNPs.txt"
out="${i}_clumped"

# 校验输入文件存在,不存在直接报错退出
if [ ! -f "$file" ]; then
    echo "Error: 输入文件 $file 不存在,请检查文件名和路径"
    exit 1
fi

./plink \
    --bfile filesforPRS \
    --clump-p1 1 \
    --clump-r2 0.1 \
    --clump-kb 250 \
    --clump "$file" \
    --clump-snp-field ID \
    --clump-field P \
    --out "$out"

方案2:个体名是非数字的样本编号

用之前生成的sample_list.txt按数组ID取对应个体名,不需要手动匹配ID和样本名:

#!/bin/bash
#PBS -t 1-15  # 数组ID对应sample_list.txt的行号
cd /data/PRS/

# 读取当前数组ID对应行的个体名
i=$(sed -n "${PBS_ARRAYID}p" sample_list.txt)
file="${i}_filteredSNPs.txt"
out="${i}_clumped"

if [ ! -f "$file" ]; then
    echo "Error: 输入文件 $file 不存在,请检查文件名和路径"
    exit 1
fi

./plink \
    --bfile filesforPRS \
    --clump-p1 1 \
    --clump-r2 0.1 \
    --clump-kb 250 \
    --clump "$file" \
    --clump-snp-field ID \
    --clump-field P \
    --out "$out"
注意事项
  • 提交数组任务前,先手动选一个个体名替换脚本里的$i,单跑一次命令确认plink能正常读取输入、bfile文件路径正确,没有参数错误再批量提交
  • 提前确认filesforPRS.bed、filesforPRS.bim、filesforPRS.fam三个文件都在/data/PRS目录下,否则plink会报bfile相关的文件找不到错误。

内容的提问来源于stack exchange,提问作者AvniKaur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:18:19