2021-07-30 liftOver坐标转换问题

当我们对vcf的数据标准化,往往会涉及hg19向hg38坐标的转换。
使用的工具基本是liftOver
输入也很方便:

  1. 需要转换的坐标,bed文件
  2. 构建好的over chain文件(也可以自己使用lastz制作)
    但是当我使用时候会发现对snp的坐标转换会出现问题:
chr12      12870910        12870910 
chr2       99013489        99013489 
chr11      107966268       107966268
chr2       172309702       172309702
chr18      50683792        50683792 

由于bed文件是0-based的所以不支持单一位置。但是我的问题是既然要求的输入是bed格式,那坐标到底是以0为首位还是以1呢?
因为这涉及到我转换的方式:

switch (首坐标){
case 以0为第一位:start-1
case 以1为第一位:end+1
}

所以我进行了如下测验:

#maf with hg19
#48295477        48295477        +       missense_variant        Missense_Mutation       SNP     T
liftOver <(echo -e "chr16\t48295477\t48295478") hg19ToHg38.over.chain.gz t.map t.unmap
#chr16   48261566        48261567
facut <(echo -e "chr16\t48261565\t48261567") GRCh38_perChr/chr16
#>chr16:48261565-48261567
#GTC

可以看出使用end+1的方式,得到的48295477对应hg38的48261566 。而48261566的前后均不是T碱基,因此没有歧义
所以虽然输入是bed文件,但是liftover处理的数据还是以1为首坐标的~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容