Chromosome coordinate systems: 0-based, 1-based

I’ve had hard time figuring out that different website and file formats are using different systems to represent genome coordinate.

Basically, the bases can be numerated in two way: starting at 0 or starting at 1. Those are the 0-based and 1-based coordinate system.





Then you say that the system is inclusive if the last index is part of the sequence or exclusive if it is not.

For instance to represent the sequence TGAC:

0-based inclusive: 2-5
1-based inclusive: 3-6
1-based exclusive: 3-7

I’ve tried to figure out which website-application are using each coordinate system. The results can be found bellow. For each source, I provide the URL of the reference website where I found the information, and a caption where the system is described.

I found most of those links in Biostar ( and on the blog of Casey M. Bergman (, who also wrote an article about this argument:

“I am confused about the start coordinates for items in the refGene table. It looks like you need to add “1” to the starting point in order to get the same start coordinate as is shown by the Genome Browser. Why is this the case?”Response:
Our internal database representations of coordinates always have a zero-based start and a one-based end. We add 1 to the start before displaying coordinates in the Genome Browser. Therefore, they appear as one-based start, one-based end in the graphical display. The refGene.txt file is a database file, and consequently is based on the internal representation.We use this particular internal representation because it simplifies coordinate arithmetic, i.e. it eliminates the need to add or subtract 1 at every step. Unfortunately, it does create some confusion when the internal representation is exposed or when we forget to add 1 before displaying a start coordinate. However, it saves us from much trickier bugs. If you use a database dump file but would prefer to see the one-based start coordinates, you will always need to add 1 to each start coordinate.

If you submit data to the browser in position format (chr#:##-##), the browser assumes this information is 1-based. If you submit data in any other format (BED (chr# ## ##) or otherwise), the browser will assume it is 0-based. You can see this both in our liftOver utility and in our search bar, by entering the same numbers in position or BED format and observing the results. Similarly, any data returned by the browser in position format is 1-based, while data returned in BED format is 0-based.


BED format uses zero-based, half-open coordinates, so the first 25 bases of a sequence are in the range 0-25 (those bases being numbered 0 to 24)

The first three required BED fields are:

chrom – The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671).
chromStart – The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0.
chromEnd – The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99.
Lowest numeric position of the reported variant on the genomic reference sequence. start:  Mutation start coordinate (1-based coordinate system), end: Highest numeric genomic position of the reported variant on the genomic reference sequence. Mutation end coordinate (inclusive, 1-based coordinate system).

6 thoughts on “Chromosome coordinate systems: 0-based, 1-based

  1. There is also a “File Formats Task Team” working at “The Global Alliance Data Working Group File Formats Task Team are the custodians of the SAM/BAM,CRAM and VCF/BCF file formats. The File Formats Task team works on the definition, standardisation, and improvement of basic file formats for sequence and variation data, and for associated infrastructure such as index formats.”

  2. Thanks for compiling this information, its very useful. As per the specifications, SAM and VCF are 1-based while BAM is 0-based. So, if we are using the same file formats created from different databases, i.e. BAM file created with UCSC and BAM file created with Ensembl, then we should not be worried about coordinates as they are taken care by the BAM format? Is this correct?

    1. The coordinates should depend on the format, not on who generate the file, so as long as the format is respected you should not worry, even more for binary files like BAM that are likely to be generated by the same standard tools across different institutes. I would worry more about files like bed that may have been manually created by users not necessarily aware of the coordinate conventions.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s