基因组的坐标系统:0-based与1-based

在现实生活中,我们经常会遇到从0开始计数还是从1开始计数的问题。此处先从现实生活中的实例说起,过渡到电脑编程,然后再详细解释基因组的坐标问题,最后列出一些有用的网址,感兴趣的可以继续阅读、加深理解。

  • first floor的问题

In British English the floor of a building at street level is the ground floor and the floor above that is the first floor.
在英式英语中, 楼房地面与街道相平的楼层叫ground floor, ground floor上面的一层叫first floor.

In US English the street-level floor is the first floor and the one above is the second floor.
在美式英语中, 与街道相平的楼层叫first floor, 其上面的一层叫second floor.
注:以上解释来源于《牛津英汉双解美化版》。

  • 程序中的计数

在多数程序(此处以Perl为例)中,计数都是(此处以数组为例)从0开始的。比如,对于数组@array来说,它的第一个元素是$array[0],第二个元素是$array[1],……

正因为这种程序与现实的差异,导致了程序员们养成了从0开始数数的习惯。(参看:9条编程带给程序员的坏习惯;

  • 基因组坐标

在生物学的基因组坐标的表示中,有两种方法:一种是大家比较容易理解的全包含的1-based(one-based, fully-closed),如[start, end];另一种是容易引起迷惑但却常用而且易用的半包含的0-based(zero-based, half-open),如[start, end)。下面仅根据我的理解通过一个简单的例子来说明一下。至于这两种方法的详细区别以及各自的优缺点,请参考后面给出的链接。

Sequence:ATGC
1-Index:1234
0-Index:0123

其中TG的坐标位置如何表示呢?

1-based:[2,3]
0-based:[1,3)

还有一种不同的(真正的?)解释方法如下:

interbase
注意:0-based有时候也称为以0-based开始、1-based结束(zero-based start, one-based end )。
(注意:还有一种很少使用的坐标表示法,就是全包含的0-based,如[start, end];此时TG的坐标为[1,2]。)

我们常用的数据格式及数据库中,那些使用的1-based,那些使用的0-based?
UCSC的Tables使用的是0-based;
UCSC的Genome Browser使用的是1-based;
NCBI的dbSNP使用的是0-based;
BED、BAM格式使用的是0-based;
VCF、GFF格式使用的是1-based。

  • 扩展阅读

Coordinate Transforms
(UCSC)Database/browser start coordinates differ by 1 base
What are the advantages/disadvantages of one-based vs. zero-based genome coordinate systems
On genome coordinate systems and transposable element annotation
dbSNP 0-based (zero based) vs. 1-based Coordinate Representation
DbSNP Track Notes

备注:如果你发现本文有错误,或者有需要修改、添加的内容,请通知我。先行谢过!

补充(20110506)

Explanation from “The SAM Format Specification“.

  • 1-based coordinate system

A coordinate system where the first base of a sequence is one. In this coordinate system, a region is specified by a closed interval. For example, the region between the 3rd and the 7th bases inclusive is [3, 7]. The SAM, GFF and Wiggle formats are using the 1-based coordinate system.

  • 0-based coordinate system

A coordinate system where the first base of a sequence is zero. In this coordinate system, a region is specified by a half-closed-half-open interval. For example, the region between the 3rd and the 7th bases inclusive is [2, 7). The BAM, BED, and PSL formats are using the 0-based coordinate system.