地球上各個分支的生物都包含染色體序列,生物信息學可以方便地將這樣的一條堿基序列錄入電腦中進行研究。參考基因組作為坐標系統(tǒng)來定位所有我們需要描述的東西。通過線性染色體序列的區(qū)域關聯(lián)很多類型的基因組數(shù)據(jù),例如基因模塊,變異的位置等等。
指定染色體的一個區(qū)域需要指定3個信息:
- 染色體名:每個基因組都包含一系列的染色體,需要指定我們說的是哪一條。不幸的是沒有一個統(tǒng)一的命名模式,不同的數(shù)據(jù)與不同的版本可能采用不同的說法,有可能是:"chr22",“12”, "chrX",“MT”,“scaffold_1648”等等。
- 范圍:一組起點與終點坐標,例如112,333,444到222,333,444
- 鏈:分為正義鏈與反義鏈,染色體體由兩條互補的堿基序列組成。很多特征是鏈特異的,例如蛋白編碼基因只有在某一條鏈上才有生物學意義。
注意,使用基因組坐標系統(tǒng)的時候一定要注意數(shù)據(jù)的版本,人類參考基因組序列一直在完善,不同版本間的堿基位置可能完全不同。
基因組坐標第2個令人頭疼的地方在于坐標起始位置的編號。有的數(shù)據(jù)采用基于0起始,前閉后開(例如[2,3),包含2不包含3),而有的采用基于1起始,閉區(qū)間(例如[2,3],2和3都包括)(見下圖)

圖1 兩種坐標系統(tǒng)
兩種編號方式都有其優(yōu)點,例如使用0為起點更好計算序列的長度(終止位置- 開始位置,而使用1為起點則是:終止位置-開始位置+1),使用1作為起點更符合我們的直覺。
對于字符串來說Python采用的是0起點,而R采用的是1起點。基于0的[1,5)與基于1的[2,5]是一致的區(qū)域:
# python
>>> "CTTACTTCGAAGGCTG"[1:5]
'TTAC'
# R
> substr("CTTACTTCGAAGGCTG", 2, 5)
[1] "TTAC"
下表給出了不同的文件采用的編號起始數(shù)字,使用的時候多加注意:

表1 常見文件采用的坐標編號