基因组坐标系统
基因组文件各式各样,但是主要呈现的还是序列的相关信息;但是各类注释文件采用的坐标系统却存在差异, 0-based和1-based坐标均被使用。在计算机中,不同计算机语言对字符串索引采用的规则也存在0-based和1-based, 因此,选择正确的索引规则会影响着序列处理的准确性。 常用的基因组文件格式如下: file format
0-based: 0 1 2 3 4 (UCSC, BED, bedGraph, narrowPeak, BAM)
1-based: 1 2 3 4 (NCBI, Ensembl, GFF, GTF, VCF, SAM, wiggle)
sequence: A T C G
0-based文件第一个碱基前面的间隔为0,第二个间隔为1,依次类推,数字记录的是碱基之间的间隔的顺序。
1-based文件第一个碱基为1, 第二个碱基为1,依次类推,数字记录的碱基本身的顺序。
索引
序列\(ATCG\)中\(TC\)的索引坐标分别为 ## 计算机语言1
2
3
4
5
6
7$ # 索引坐标
$ 0-based: [1, 3) # 左闭右开
$ 1-based: [2, 3] # 左闭右闭
$
$ # 长度计算
$ 0-based: 3 - 1 = 2 # stop - start
$ 1-based: 3 - 2 + 1 = 2 # stop - start + 1
不同的计算机语言对字符串的索引不同。
1 | $ # C C++ Python Java 等语言字符串/数组索引采用0-based |
1 | $ # R Matlab Julia COBOL等语言字符串/数组索引采用1-based |
0-based/1-based 转化
0-based --> 1-based, start+1, stop保持不变
1-based --> 0-based, start-1, stop保持不变