Github开源生信云平台 DEMO
是的,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 前是否需要合并,取决于后续软件。
现代 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
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
由于你的 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
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
Michigan Imputation Server 和 Minimac 官方推荐:
你的:
--min-r2 0.8
已经比较严格。
但通常仍建议:
awk '$7 >= 0.8'
R2 > 0.3
保留。
zcat chr1.info.gz | head
格式类似:
SNP Ref Alt MAF Rsq
其中:
Rsq = Imputation INFO
GWAS前:
plink2 \ --pfile all_imputed \ --maf 0.01 \ --make-pgen \ --out all_imputed.maf01
plink2 \ --pfile all_imputed.maf01 \ --hwe 1e-6 \ --make-pgen \ --out all_imputed.final
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 最常见的流程。