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

使用plink1.9拆分VCF多等位位点为双等位位点的问题求助

解决方法

plink默认拆分多等位变异时,仅会复制原变异ID到拆分后的所有行,不会自动拆分ID列,可通过以下两种方式解决:


方案1:直接用plink1.9一步完成拆分+ID修正

通过参数配置可以在拆分的同时直接生成符合预期的ID格式,命令如下:

# 输出ped/map格式示例
plink --vcf 输入文件.vcf \
  --biallelic-split \
  --set-missing-var-ids @:#:\$r:\$a \
  --keep-allele-order \
  --recode \
  --out 输出文件前缀

# 输出VCF格式示例,仅需要修改--recode参数即可
plink --vcf 输入文件.vcf \
  --biallelic-split \
  --set-missing-var-ids @:#:\$r:\$a \
  --keep-allele-order \
  --recode vcf-iid \
  --out 输出文件前缀

参数说明:

  • --biallelic-split:plink1.9专属参数,用于将多等位位点拆分为多个双等位位点,每个位点对应一个ALT等位
  • --set-missing-var-ids @:#:\$r:\$a:自动按照「染色体:位置:参考等位:变异等位」的格式重新生成变异ID,完全匹配预期的ID规则
  • --keep-allele-order:避免plink自动翻转参考/变异等位,保证ID和实际位点等位信息一致

方案2:已有拆分后的错误文件,手动修正ID列

如果已经完成了拆分流程,不想重新跑计算,可以直接用awk命令修正ID列:

修正map文件

awk '{
  split_num = split($2, id_arr, /;/);
  for(i=1; i<=split_num; i++){
    print $1"\t"id_arr[i]"\t"$3"\t"$4
  }
}' 错误的.map > 修正后.map

ped文件不需要修改,和修正后的map文件可以直接配套使用。

修正VCF文件

awk '
/^##/ {print $0; next}
/^#CHROM/ {print $0; next}
{
  split($3, id_arr, /;/);
  for(i=1; i<=length(id_arr); i++){
    $3 = id_arr[i];
    print $0;
  }
}' 错误的.vcf > 修正后.vcf

内容的提问来源于stack exchange,提问作者M.Vu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:15:03