minimac4 结束后得到 23个文件,后续 gwas分析如何操作需要合成一个文件吗,需要格式转换吗

最后发布时间 : 2026-06-24 15:07:20 浏览量 :

是的,Minimac4 按染色体(1-22、X)填充后,通常会得到 23 个结果文件:

chr1.imputed.dose.vcf.gz
chr2.imputed.dose.vcf.gz
...
chr22.imputed.dose.vcf.gz
chrX.imputed.dose.vcf.gz

以及对应的:

*.info.gz

文件。

GWAS 前是否需要合并,取决于后续软件。


方案1:直接转换为 PLINK2(推荐)

现代 GWAS(特别是 UKB、TOPMed、1000G 填充后)通常:

VCF → PGEN → GWAS

而不是继续使用 VCF。

先查看填充结果

样本数:

bcftools query -l chr1.imputed.dose.vcf.gz | wc -l

SNP数:

bcftools index -t chr1.imputed.dose.vcf.gz

bcftools index -n chr1.imputed.dose.vcf.gz

或者:

bcftools view -H chr1.imputed.dose.vcf.gz | wc -l

方案2:先合并23条染色体

建立文件列表

ls *.dose.vcf.gz > vcf.list

合并

bcftools concat \
    -f vcf.list \
    -Oz \
    -o all.imputed.vcf.gz

建立索引:

tabix -p vcf all.imputed.vcf.gz

查看:

bcftools stats all.imputed.vcf.gz

转换为 PLINK2

由于你的 VCF 里面有:

GT
DS
GP

推荐直接使用 DS(Dosage)。

plink2 \
    --vcf all.imputed.vcf.gz dosage=DS \
    --make-pgen \
    --out gwas_input

生成:

gwas_input.pgen
gwas_input.pvar
gwas_input.psam

方案3:不合并,直接导入全部染色体(更推荐)

PLINK2 支持逐染色体导入:

for chr in {1..22} X
do
    plink2 \
        --vcf chr${chr}.imputed.dose.vcf.gz dosage=DS \
        --make-pgen \
        --out chr${chr}
done

然后合并:

ls chr*.pgen | sed 's/.pgen//' > merge_list.txt

plink2 \
    --pmerge-list merge_list.txt \
    --make-pgen \
    --out all_imputed

得到:

all_imputed.pgen
all_imputed.pvar
all_imputed.psam

填充后还要做一次 Variant QC

Michigan Imputation Server 和 Minimac 官方推荐:

INFO过滤

你的:

--min-r2 0.8

已经比较严格。

但通常仍建议:

awk '$7 >= 0.8'

或者:

R2 > 0.3

保留。

查看:

zcat chr1.info.gz | head

格式类似:

SNP Ref Alt MAF Rsq

其中:

Rsq = Imputation INFO

MAF过滤

GWAS前:

plink2 \
    --pfile all_imputed \
    --maf 0.01 \
    --make-pgen \
    --out all_imputed.maf01

HWE过滤

plink2 \
    --pfile all_imputed.maf01 \
    --hwe 1e-6 \
    --make-pgen \
    --out all_imputed.final

最终用于 GWAS

Logistic

plink2 \
    --pfile all_imputed.final \
    --glm \
    --covar covar.txt \
    --pheno pheno.txt \
    --out gwas

Linear

plink2 \
    --pfile all_imputed.final \
    --glm \
    --covar covar.txt \
    --pheno pheno.txt \
    --out gwas

对于你这种 890个样本 + 1000G Phase3 + Minimac4 填充 的场景,我建议采用:

23个 dose.vcf.gz
    ↓
plink2 --vcf dosage=DS
    ↓
23个 PGEN
    ↓
pmerge-list 合并
    ↓
MAF/HWE过滤
    ↓
PCA
    ↓
GWAS

这样避免先生成一个数百 GB 的总 VCF,速度和磁盘利用率都更好,也是目前大规模 GWAS 最常见的流程。