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

如何去除PLINK格式1000G数据集中名称为.的SNP?

当然可以用PLINK轻松解决这个问题!我之前处理1000G数据时也碰到过不少SNP名称为.的情况,确实会给后续分析带来麻烦,下面给你分享两种高效的处理方式,分PLINK 1.9和2.0版本来说:

方法1:生成排除列表后过滤

首先从你的PLINK .bim文件中提取所有名称为.的SNP,生成一个排除列表文件:

awk '$2 == "." {print $2}' your_data.bim > exclude_dot_snps.txt

然后用PLINK加载原始数据并排除这些SNP:

plink --bfile your_data --exclude exclude_dot_snps.txt --make-bed --out filtered_data

执行完后,filtered_data.bed/bim/fam就是去除了无效名称SNP的数据集。

方法2:直接用管道过滤(无需临时文件)

如果用的是Linux/macOS系统,可以用管道直接传递排除列表,省去生成临时文件的步骤:

plink --bfile your_data --exclude <(awk '$2 == "." {print $2}' your_data.bim) --make-bed --out filtered_data

PLINK 2.0支持直接用表达式过滤,命令更简洁:

plink2 --bfile your_data --exclude 'ID=="."' --make-bed --out filtered_data
关于你用bcftool view未成功的可能原因

bcftool是针对VCF格式的工具,如果你直接用它处理PLINK格式的文件肯定不行。需要先把PLINK数据转成VCF,过滤后再转回PLINK,步骤会更繁琐:

# 先转VCF
plink --bfile your_data --recode vcf --out temp_data
# 过滤ID为.的SNP
bcftools view -i 'ID != "." ' temp_data.vcf -Oz -o filtered_temp.vcf.gz
# 转回PLINK格式
plink --vcf filtered_temp.vcf.gz --make-bed --out filtered_data

这种方法绕了一圈,不如直接用PLINK处理高效,所以更推荐前面的PLINK原生命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:36:05