PED/MAP/VCF文件与PLINK-BED/BIM/FAM文件格式相互转换

PED/MAP/VCF文件与PLINK-BED/BIM/FAM文件格式相互转换

1. 主要文件格式简介

1.1 PED/MAP 格式

.ped文件:样本基因型数据

.map文件:SNP 位置信息

1.2 BED/BIM/FAM 格式

.bed文件:二进制基因型数据

.bim文件:SNP 信息

.fam文件:样本信息

2. PLINK过滤参数

2.1 过滤低质量位点

(1)位点缺失率 (–geno): 过滤掉缺失率过高的位点,低深度数据中,位点缺失率较高,适当放宽

阈值以保留更多位点,建议值:–geno 0.1(过滤掉缺失率 >10% 的位点)。

(2)最小等位基因频率 (–maf):过滤掉低频变异位点,因为低频位点可能是测序错误,过滤后可

以提高数据质量,建议值:–maf 0.01(过滤掉最小等位基因频率 <1% 的位点)。

(3)哈迪-温伯格平衡 (–hwe):过滤掉偏离哈迪-温伯格平衡的位点,偏离平衡的位点可能是测序

错误或选择压力的结果,建议值:–hwe 1e-6(过滤掉显著偏离平衡的位点)。

2.2 过滤低质量样本

(1)个体缺失率 (–mind): 过滤掉缺失率过高的个体,低深度数据中,个体缺失率较高,适当放宽

阈值以保留更多样本,建议值:–mind 0.1(过滤掉缺失率 >10% 的个体)。

(2)性别一致性检查 (–check-sex): 检查样本性别与基因型数据的一致性,建议值:结合 –

check-ex 参数使用,手动检查并过滤不一致的样本。

2.3 其他过滤参数

(1)最小分型率 (–geno 和 --mind 结合): 综合过滤位点和个体的缺失率,建议值:根据数据质量

调整,例如 --geno 0.1 --mind 0.1。

(2)连锁不平衡过滤 (–indep-pairwise): 过滤掉高连锁不平衡的位点,适用于后续的 PCA 或关联

分析,建议值:–indep-pairwise 50 5 0.2(窗口大小 50 SNP,滑动步长 5 SNP,LD 阈值 0.2)。

3. VCF转换为PED+MAP

plink --vcf input.vcf --recode --out output

4. PED+MAP转换为BED+BIM+FAM

plink --file input --make-bed --out output

5. BED+BIM+FAM转换为PED+MAP

plink --bfile input --recode --out output

6. 23andMe 格式转换为 PED+MAP

plink --23file input.txt --recode --out output

7. VCF转换BED/BIM/FAM PLINK文件(无参数)

# output_prefix:输出文件前缀
# 压缩VCF
plink --vcf input.vcf.gz --make-bed --out output_prefix

# 未压缩VCF
plink --vcf input.vcf --make-bed --out output_prefix

8. VCF转换为BED/BIM/FAM PLINK文件(过滤参数)

生成output_prefix.fam, output_prefix.bim, output_prefix.bed 三个文件及分析日志log等文件。

plink --vcf input.vcf --make-bed --out output_prefix \
      --geno 0.1 \          # 过滤缺失率 >10% 的位点
      --mind 0.1 \          # 过滤缺失率 >10% 的个体
      --maf 0.01 \          # 过滤最小等位基因频率 <1% 的位点
      --hwe 1e-6 \          # 过滤偏离哈迪-温伯格平衡的位点
      --indep-pairwise 50 5 0.2  # 过滤高连锁不平衡的位点

bim文件:
bim文件内容

VCF(Variant Call Format)是一种用于存储基因组变异信息的文本文件格式,广泛应用于生物信息学领域。对于用户的需求,即将VCF文件转换为其他格式或处理其内容,有多种工具和方法可以实现这一目标,具体取决于所需的输出格式和分析目的。 ### VCF文件转换工具方法 #### 1. 转换为PHYLIP、FASTA、NEXUS或二进制NEXUS格式 对于希望将VCF文件转换为适用于进化分析的格式(如PHYLIP、FASTA、NEXUS或二进制NEXUS)的用户,**vcf2phylip** 是一个非常有用的选择。此工具专为生物信息学家设计,能够处理任意多倍体数据,并且在处理大型VCF矩阵时表现出色。最新版本还增加了更多的输出格式选项,允许用户指定外群序列,以及控制每个SNP位点的最小样本数量,从而更好地管理缺失数据 [^2]。 #### 2. 转换PLINK格式 如果目标是进行关联分析,则可能需要将VCF文件转换PLINK格式。PLINK 是一个广泛使用的关联分析软件,其定义的ped/map文件系统及对应的二进制bed/bim/fam已成为关联分析的标准文件格式转换过程可以通过几种不同的方法完成,包括使用特定的脚本或工具,如 **vcftools** 或 **PLINK** 自身提供的功能 [^3]。 #### 3. 编码格式转换 对于那些遇到VCF文件编码问题的用户,例如从不同设备或软件导入VCF文件时出现的乱码问题,可以使用专门的工具如 **飞翔vcf文件编码转换** 来解决。这款工具能够有效地去除VCF乱码,特别是对于从NOKIA手机导出的VCF联系人信息,能够转换成OUTLOOK等其他软件可以正确识别的信息 [^1]。 ### 示例代码 以下是使用Python的一个简单示例,展示如何手动读取VCF文件并将其转换为另一种格式(以FASTA为例)。请注意,这只是一个基础示例,实际应用中可能需要更复杂的逻辑来处理各种情况。 ```python def vcf_to_fasta(vcf_file, fasta_file): with open(vcf_file, 'r') as vcf, open(fasta_file, 'w') as fasta: for line in vcf: if not line.startswith('#'): parts = line.strip().split('\t') chrom = parts[0] pos = parts[1] ref = parts[3] alt = parts[4] # 假设每个样本的基因型都在第9列之后 genotypes = parts[9:] # 将每个样本的基因型转换为FASTA格式 for i, genotype in enumerate(genotypes): sample_id = f'Sample{i+1}' # 简化处理,假设所有变异都是SNP且没有缺失数据 sequence = ref if genotype == '0' else alt fasta.write(f'>{sample_id}_{chrom}_{pos}\n{sequence}\n') # 使用函数 vcf_to_fasta('example.vcf', 'output.fasta') ``` ### 注意事项 - 在选择转换工具时,请确保所选工具支持您的输入VCF文件版本以及您希望转换的目标格式。 - 对于大规模数据集,考虑使用高效处理工具,如 **vcf2phylip** 或 **PLINK**,它们能够更好地处理大数据量。 - 如果遇到编码问题,尝试使用专门为此目的设计的工具,如 **飞翔vcf文件编码转换**。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值