美文网首页
如何反向推断基因型文件中的参考碱基(REF/ALT)?

如何反向推断基因型文件中的参考碱基(REF/ALT)?

作者: 生物信息与育种 | 来源:发表于2021-03-18 17:56 被阅读0次

需求

客户随手丢来一个基因型文件,类似于hapmap格式,只是少了中间多余的那几列,像这种类hapmap格式文件,往往是芯片数据。


image.png

这样的数据因为缺乏等位基因:参考碱基和变异碱基信息,对应在vcf文件中就是REF和ALT,导致后续一些分析没法进行。

那么,问题来了:怎么根据这个基因型文件来推断参考和变异等位基因?

样本量大的时候是否能通过计算等位基因频率来判断?推断出来的结果不一定准确,鬼知道你的变异多不多?

解决

在网上查了下,不能只通过基因型文件来推断,还需要依赖一个参考变异文件,有两条途径:

方法一

在ensembl中下载参考变异文件:
http://ftp.ebi.ac.uk/ensemblgenomes/pub/plants/current/variation/vcf/
但愿有你的物种吧,记得注意版本。

国内根本访问不了,我游遍世界下了半天才下下来。
以玉米为例:


image.png

这其实相当于一个单倍型的参考文件,再次强调注意版本和你的基因型文件一致。

有了这个文件就可以和基因型文件的位置相匹配,然后得到参考和变异碱基了。

示例代码:

awk 'NR==FNR{line[$1" "$2]=$5" "$6; next} ($0 in line){print $0" "line[$0]; next} {print $0, "NA"}' zea_mays.vcf pos.txt

这个代码是错误的,awk数组的值不能连接两个字段,只能等于$5,而非想要的$5" "$6。还是不熟悉,放弃,希望有高手指点下。
写了个长长的垃圾perl代码:

#! /usr/bin/perl -w
use strict;

my %hash;
my %pos;
open(IN,"<$ARGV[0]") or die $!; 
while(<IN>){
    chomp;
    next if /^#/;
    my @F = split/\s+/;
    my $key = "$F[0]\t$F[1]";
    my $value = "$F[3]\t$F[4]";
    $hash{$key}=$value;
}

open(ID,"<$ARGV[1]") or die $!; 
while(<ID>){
    chomp;
    my @F = split/\s+/;
    my $key = "$F[0]\t$F[1]";
    $pos{$key}=1;
}

foreach my $id(keys %pos){
    if(exists($hash{$id})){
        print "$id\t$hash{$id}\n";    
    }else{
        print "$id\t-\t-\n";    
    }   
}
    
close IN; 
close ID;

最后的结果要排下序:

perl map.pl zea_mays.vcf pos.txt >out
sort -nk 1 -nk 2 out >ref_res.txt

注意,因为是参考单倍型,不一定包含了基因型文件中的所有位点。后续要怎么搞?如果缺失不多,就删了那些位点吧。

如果你的基因型文件本身是vcf格式,那用vcftools就有这种取交集位点的功能,很方便。

方法二

Ensembl 有REST API 接口,需要准备好对应的json格式文件,进行调取。
GET overlap/region/:species/:region
http://rest.ensembl.org/documentation/info/overlap_region

提供小麦的一个示例:
http://rest.ensembl.org/overlap/region/triticum_aestivum/4A:714193714-714193714?content-type=application/json;feature=variation

可能更慢更复杂些,这里不尝试了。

Ref:Question: How to get REF and ALT alleles from a genotype data?

相关文章

  • 如何反向推断基因型文件中的参考碱基(REF/ALT)?

    需求 客户随手丢来一个基因型文件,类似于hapmap格式,只是少了中间多余的那几列,像这种类hapmap格式文件,...

  • vcf 格式

    CHROM 染色体编号 POS 位置 ID 基因ID REF 参考基因组碱基 ALT 样本碱基 QUAL 变异可信...

  • GWAS分析

    首先准备输入文件(vcf文件和表型文件) 基因型推断 格式转换 会生成 tfam、tped、map文件根据tfam...

  • 用Beagle做基因型填充(Imputation)

    在学习基因型填充之前需要了解一下什么是Phasing(基因定相、单倍体分型),主要是参考公众号碱基矿工中的一篇文章...

  • snp

    保留ALT列只突变为一个碱基的行1.1 查看snp原文件ALT列的内容 1.2 删除ALT列大于一个突变的行1.2...

  • 制作fasta文件(标准化)

    该教材是如何制作固定每行70碱基的fasta文件,主要设计如何将特别长的碱基序列均匀切割成每行70个碱基的文件。代...

  • 推断与控制的关系

    推断 = 规划 如何推断? 计算反向消息: 计算策略(最优策略): 计算前向消息: 其中,Optimal变量服从伯...

  • 共读第三天

    1、书籍名称:《营养师必读》 2.提取关键词: DNA结构营养 VDR基因因碱基突变:bb基因型,BB基因型,Bb...

  • 关于BWA-MEM算法中关于O表的压缩算法

    假设当前的碱基序列为 ref=ATTCCAGTCGGGTATCCAAGGACT,根据Burrows-Wheeler...

  • AmyTree算法

    1. input要求:四个文件,Y-SNP基因型, 树文件, 编译名称文件,参考序列 2. Call Qualit...

网友评论

      本文标题:如何反向推断基因型文件中的参考碱基(REF/ALT)?

      本文链接:https://www.haomeiwen.com/subject/polpcltx.html