plink常用命令

本文介绍了PLINK工具中常见的格式转换操作,包括ped/map到bed/bim/fam、tped/tfam等,以及如何进行SNP质量和性别检查,同时提供了使用Python脚本更新bim文件的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

格式转换

plink常见格式类型

ped/map -> bed/bim/fam、tped/tfa

bed/bim/fam -> ped/map、tped/tfam、vcf、bgen

tped/tfam -> bed/bim/fam、ped/map

vcf -> ped/map、bed/bim/fam、tped/tfam

质量控制

清除SNP位点

bim文件: rs编号 <-> SNP染色体/位置


格式转换

plink常见格式类型
  • 一般格式:ped/map
  • 二进制格式:bed/bim/fam (建议)
  • 转置格式:tped/tfam

ped/map -> bed/bim/fam、tped/tfa
# ped/map -> bed/bim/fam
plink --file arab --make-bed --out arab
# ped/map -> tped/tfam
plink --file arab --recode --transpose --out arab 
bed/bim/fam -> ped/map、tped/tfam、vcf、bgen
# bed/bim/fam -> ped/map
plink --bfile arab --recode --out arab
# bed/bim/fam -> tped/tfam
plink --bfile arab --recode --transpose --out arab

# bed/bim/fam -> vcf
plink --bfile arab --export vcf --out arab
# bed/bim/fam -> bgen
plink2 --bfile arab --export bgen-1.2 --out arab
tped/tfam -> bed/bim/fam、ped/map
# tped/tfam -> bed/bim/fam
plink --tfile arab --make-bed --out arab
# tped/tfam -> ped/map
plink --tfile arab --recode --out arab   
vcf -> ped/map、bed/bim/fam、tped/tfam
# vcf -> ped/map
plink --vcf arab.vcf --recode --out arab
# vcf -> bed/bim/fam
plink --vcf arab.vcf --make-bed --out arab
# vcf -> tped/tfam
plink --vcf arab.vcf --recode --transpose --out arab
  • --file/bfile/tfile 定义输入格式为ped/map、bed,bim,fam  、bed,bim,fam  
  • --vcf 定义输入格式为vcf, 压缩(.vcf.gz)或者不压缩(.vcf)都可以接受 
  • --recode 定义输出格式为ped/map 
  • --make-bed 定义输出格式为bed,bim,fam
  • --recode --transpose 定义输出格式为tped/tfam
  • --export  指定输出的格式

质量控制

# 第一次筛选
plink --file input --geno 0.05 --mind 0.1 --maf 0.05  --hwe 0.000001 --make-bed --out output
# 性别检测
plink --file output --check-sex   # 生成plink.sexcheck
grep "PROBLEM" plink.sexcheck| awk '{print$1,$2}'> sex_discrepancy.txt
plink --file output --remove sex_discrepancy.txt --make-bed --out output2
# 再次筛选
plink --file output2 --geno 0.05 --mind 0.1 --maf 0.05  --hwe 0.000001 --make-bed --out output3
  • --file/bfile/tfile 定义输入格式为ped/map、bed,bim,fam  、bed,bim,fam   
  • --geno 指定SNP缺失阈值。如果一个SNP在超过5%的sample中都是缺失的,那么就删掉该SNP。
  • --mind 指定sample缺失阈值。如果一个sample有超过5%的SNP都是缺失的,那么就删掉该sample
  • --hwe 哈代平衡。根据基因型频率进行筛选。
  • --check-sex 生成性别检测的结果,输出默认名为removesample.txt
  • --remove 根据removesamp.txt将性别出错的样本剔除。
  • --make-bed 定义输出格式为bed,bim,fam。

删除特定SNP位点

plink --file input --exclude xxx.txt --make-bed --out output
  • --file/bfile/tfile 定义输入格式为ped/map、bed,bim,fam  、bed,bim,fam   
  • --exclude 指定描述了需要删除的SNP的文件
  • --make-bed 定义输出格式为bed,bim,fam

xxx.txt为一列特定SNP identity的纯文本文件:

bim文件: rs编号 <-> SNP染色体/位置

1、从UCSC下载纯文本格式的dbSNP release 151 并解压。二选一hg19/hg38、snp151/snp151Common

#hg19 版本

#snp151.txt.gz 包含所有SNPs,共12G
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/snp151.txt.gz
gzip snp151.txt.gz -d

# snp151Common.txt.gz包含常见SNPs,共748M
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/snp151Common.txt.gz
gzip snp151Common.txt.gz -d

#hg38 版本

wget http://hgdownload.cse.ucsc.edu/goldenPath/hg38/database/snp151.txt.gz
gzip snp151.txt.gz -d

wget http://hgdownload.cse.ucsc.edu/goldenPath/hg38/database/snp151Common.txt.gz
gzip snp151Common.txt.gz -d

注意:下载的xxx.txt的 chromStart 列是 0-based 的。

二、编写 Python 脚本,脚本名字为 update.py

import sys

snps_dic = {}
for item,row in enumerate(open(UCSC_path, encoding="utf-8")): # 载入字典 0-base
    list = row.strip().split("\t") 
    snps_dic[list[4]] = list[2]  
      
bim = open(sys.argv[2], encoding="utf-8")
new = open(sys.argv[3], 'w')
for row in bim:
    list = row.strip().split("\t") 
    list[1] = snps.get(list[1]+1, list[1])  # 替换 0-base->1-base
    new.write('\t'.join(list) + '\n')
new.close()
bim.close()

运行脚本文件,original.bim为原本的bim文件, new.bim为更新后的bim文件。

python update.py snp151.txt original.bim new.bim

由于snp151.txt内含有超过6亿个SNP信息,建议根据本模板重新编写脚本以实现分段读取snp151.txt

### 使用Plink进行全基因组关联分析 #### 准备工作 为了使用Plink执行全基因组关联研究(GWAS),需准备特定格式的输入文件。这些文件通常包括`.bed`、`.bim` 和 `.fam` 文件,它们分别存储基因型数据、SNP位置信息以及个体及其表型信息[^3]。 #### 数据质量控制 在正式开展GWAS之前,应对原始数据实施严格的质量控制措施。这一步骤旨在去除低质量样本和标记,从而减少假阳性发现的可能性并提升统计功效。具体操作如下: - **过滤缺失率高的样本/位点** 可利用 `--mind` 参数设定最小允许的样本缺失比例;而 `--geno` 则用于指定最大可接受的SNP缺失频率。 - **移除偏离哈迪-温伯格平衡定律严重的SNPs** 应用 `--hardy` 命令检测各多态性位点是否遵循此遗传学基本原理,并借助 `--hwe` 排除非随机交配群体中的异常变异体。 - **排除连锁不平衡区域内高度相似的SNPs** 执行LD pruning可以通过命令 `--indep-pairwise` 来实现,它有助于降低多重测试惩罚的影响。 ```bash plink --bfile HapMap_3_r3_13 \ --make-bed \ --out filtered_data \ --mind 0.1 \ --geno 0.05 \ --hardy \ --hwe 1e-6 \ --indep-pairwise 50 5 0.2 ``` #### 协变量调整 考虑到潜在混杂因素可能干扰真实效应估计,在构建回归模型前还需引入额外协变量加以校正。例如,基于MDS分析得到的空间结构特征可以有效缓解种群分层带来的偏差问题。 ```bash plink --bfile filtered_data \ --logistic \ --covar covar_mds.txt \ --model \ --adjust \ --out gwas_results_with_covariates ``` #### 关联检验 完成上述预处理之后,即可着手于核心环节—即针对目标性状施行单核苷酸多态性的关联测试。对于二元结局变量而言,逻辑斯蒂回归是最常用的方法之一;而对于连续型响应,则推荐采用线性回归策略。 ```bash # 对于病例对照设计 plink --bfile filtered_data \ --assoc \ --pheno HapMap_3_r3_13.fam \ --allow-no-sex \ --out case_control_gwas_result # 或者使用Logistic Regression plink --bfile filtered_data \ --logistic \ --ci 0.95 \ --hide-covar \ --allow-no-sex \ --out logistic_regression_gwas_result ``` #### 后续高级分析 除了传统的单个SNP层面外,还可以探索更复杂的模式如gene-based或gene-set-based方法来增强解释力和生物学意义。前者聚焦于单一基因内部多位点联合评估其整体贡献度;后者则试图揭示整个通路乃至网络层次上的变化规律[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值