Tool: Converting Genome Coordinates From One Genome Version To Another (Ucsc Liftover, Ncbi Remap, Ensembl Api)
gravatar for Malachi Griffith
5.3 years ago by
Washington University School of Medicine, St. Louis, USA
Malachi Griffith16k wrote:

Some recent posts reminded me that it might be useful for us to review the options for converting between genome coordinate systems.

This comes up in several contexts. Probably the most common is that you have some coordinates for a particular version of a reference genome and you want to determine the corresponding coordinates on a different version of the reference genome for that species. For example, you have a bed file with exon coordinates for human build GRC37 (hg19) and wish to update to GRCh38. By the way, for a nice summary of genome versions and their release names refer to the Assembly Releases and Versions FAQ

Or perhaps you have coordinates of a gene and wish to determine the corresponding coordinates in another species. For example, you have coordinates of a gene in human GRCh38 and wish to determine corresponding coordinates in mouse mm10.

Finally you may wish to convert coordinates between coordinate systems within a single assembly. For example, you have the coordinates of a series of exons and you want to determine the position of these exons with respect to the transcript, gene, contig, or entire chromosome.

There are now several well known tools that can help you with these kinds of tasks:

  1. UCSC liftOver. This tool is available through a simple web interface or it can be downloaded as a standalone executable. To use the executable you will also need to download the appropriate chain file. Each chain file describes conversions between a pair of genome assemblies. Liftover can be used through Galaxy as well. There is a python implementation of liftover called pyliftover that does conversion of point coordinates only.

  2. NCBI Remap. This tool is conceptually similar to liftOver in that in manages conversions between a pair of genome assemblies but it uses different methods to achieve these mappings. It is also available through a simple web interface or you can use the API for NCBI Remap.

  3. The Ensembl API. The final example I described above (converting between coordinate systems within a single genome assembly) can be accomplished with the Ensembl core API. Many examples are provided within the installation, overview, tutorial and documentation sections of the Ensembl API project. In particular, refer to these sections of the tutorial: 'Coordinates', 'Coordinate systems', 'Transform', and 'Transfer'.

  4. Assembly Converter. Ensembl also offers their own simple web interface for coordinate conversions called the Assembly Converter.

  5. Bioconductor rtracklayer package. For R users, Bioconductor has an implementation of UCSC liftOver in the rtracklayer package. To see documentation on how to use it, open an R session and run the following commands.


  6. CrossMap. A standalone open source program for convenient conversion of genome coordinates (or annotation files) between different assemblies. It supports most commonly used file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF. CrossMap is designed to liftover genome coordinates between assemblies. It’s not a program for aligning sequences to reference genome. Not recommended for converting genome coordinates between species.

  7. Flo. A liftover pipeline for different reference genome builds of the same species. It describes the process as follows: "align the new assembly with the old one, process the alignment data to define how a coordinate or coordinate range on the old assembly should be transformed to the new assembly, transform the coordinates."

  8. Picard Liftover VCF. Lifts over a VCF file from one reference build to another. This tool adjusts the coordinates of variants within a VCF file to match a new reference. The tool is based on the UCSC liftOver and uses a UCSC chain file to guide its operation.

ADD COMMENTlink modified 9 weeks ago • written 5.3 years ago by Malachi Griffith16k

CrossMap is a program for convenient conversion of genome coordinates between assemblies. It supports most commonly used file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.

ADD REPLYlink written 4.6 years ago by wangliguo7870

neat tool, should add this to my toolbelt

ADD REPLYlink written 4.6 years ago by Istvan Albert ♦♦ 77k

By default i use liftOver and haven't really ever considered using the other offering, so thanks for the summary. I wonder, at least for the common genomes like hg19 or mm9, whether anyone has tested to see whether any of the tools outperform the others. I know UCSC uses "chains", but presumably the other methods differ.

ADD REPLYlink written 5.3 years ago by Ian5.2k

Thanks for summarizing these. We need to start linking to this post when this question pops up again.

ADD REPLYlink modified 5.3 years ago • written 5.3 years ago by Istvan Albert ♦♦ 77k

I'll just add that for R/Bioc users, the rtracklayer has an implementation of liftOver, but it is native to R, so the UCSC liftOver tool is not needed directly. The Bioc version is said to be faster than the UCSC version, but I have not tested this myself.

ADD REPLYlink modified 5.3 years ago • written 5.3 years ago by Sean Davis24k

Thanks. I have now added a brief intro to this in the original post.

ADD REPLYlink written 5.3 years ago by Malachi Griffith16k

Thanks for informative post

ADD REPLYlink modified 2.0 years ago • written 3.2 years ago by morteza.mahmoudisaber50

rtracklayer's description seems incomplete.

ADD REPLYlink written 2.3 years ago by Anurag Priyam40

With the release of hg38 need to revisit contents of this post!! :)

ADD REPLYlink written 2.3 years ago by manojkumar_bhosale60

I have updated the example, but it should be noted that the majority of these tools generically support all major builds for multiple species (not just human). When a new build comes out, the "chain" files that explain how to convert to/from that build are usually released soon after.

ADD REPLYlink written 9 months ago by Malachi Griffith16k

Thanks for the informative post, I wanna convert SNPs file for maize from V2 to V3. How can I create the chain file to perform this conversion?

ADD REPLYlink written 2.1 years ago by Medhat7.6k

Any updates? I'm trying to find a reliable tool fr cross-species mapping. Unfortunately I can;'t find a bench mark on the tools that are out there. Suggestions welcome.

ADD REPLYlink written 12 months ago by YaGalbi1.3k

Hey! did you find anything? I have a still unpublished assembly that I used to align, map and annotate my Seq data, and would need to have the zebra-finch ref assembly converted to its coordinates, so that I can use the zebra finche as my ref in my evo analysis. :/

ADD REPLYlink written 12 weeks ago by madzayasodara0

We've recently posted the segment_liftover tool to biorxiv The name is rather descriptive of aim & methodology (the paper has a bit more :-) ).

ADD REPLYlink written 3 months ago by mbaudis0

Thanks for this summary list

ADD REPLYlink written 29 days ago by gsr999970
gravatar for Giovanni M Dall'Olio
4.5 years ago by
London, UK
Giovanni M Dall'Olio26k wrote:

This new tool seems to be interesting: Crossmap. It allows to convert many formats, like SAM and wiggle.

ADD COMMENTlink written 4.5 years ago by Giovanni M Dall'Olio26k

In fact Ensembl's tool uses CrossMap

ADD REPLYlink written 2.8 years ago by Eli Korvigo120
gravatar for devikaparvathy
8 months ago by
devikaparvathy10 wrote:

Can I use this liftover to map co-ordinates between bacterial subspecies? My aim is to do an integrative analysis of certain public RNA-seq data available for a particular bacterial species S. aureus. But each experiment are done in different strains/subspecies.

What I plan to do is to align the reads to their respective reference genomes, and for further analysis, create an annotation file (GFF/GTF) - based on one of the selected subspecies (chosen "target" for lift over) and combine it with the mapped annotation of other subspecies ("source" for lift over).

Is this procedure right? Or are there any other alternatives? I do not wish to do all RNA-seq analysis separately and then simply compare the results of differential expressed gene lists.

ADD COMMENTlink written 8 months ago by devikaparvathy10
gravatar for mgdias.jose
7 months ago by
mgdias.jose0 wrote:

Hello, thankyou for the amazing work compiling all these different tools.

For what I got, most of this tools work well between different assembly versions (let's say 37 vs 38), BUT if I want to compare data within the same assembly but different releases do you have any suggestion of the best approach? I need to compare data from mouse assembly 38, ensembl release 73 with the latest release - Ensembl 90. I have the transposon data with the coordinates of the hit and information about the genome region it hit (gene X/intergenic) Thank you !

ADD COMMENTlink written 7 months ago by mgdias.jose0

converting coordinates across assemblies is the easy bit. That is the basic function of most of these tools.

ADD REPLYlink written 7 months ago by YaGalbi1.3k

My problem here is that I want to make comparisons within the same assembly, but just different releases. And for that none of these tools will work. Or is there any way to do it?

Thank you !

ADD REPLYlink written 7 months ago by mgdias.jose0

What exactly is it that you want to compare? What difference are you hoping to show between releases?

Have you taken a look at Ensembl Biomarts archive?

ADD REPLYlink written 7 months ago by YaGalbi1.3k

I have transposons data organised in the following manner (txt)

chr start end hit 1 111 130 geneXXX 2 1546 1867 intergenic 3 123 234 geneYYY

this is for the assembly 38, Ensembl release 73.

I want to compare it now with the release 90 of Ensembl to confirm if the hits of the transposon are still accurate with most updated version. (e.g. to know if the transposon on chr 2 is still hitting on an intergenic region or if that region is now attributed to a gene. Or if the region in chr 3 where my transposon hit is still annotated as geneYYY and so on.


ADD REPLYlink written 6 months ago by mgdias.jose0

Comparing annotations within the same assembly (which is what you are asking, I think) is a problem unrelated to converting genomic coordinates. I'd suggest asking a new question, taking care to describe specifically what you want to do.

ADD REPLYlink written 7 months ago by Sean Davis24k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 906 users visited in the last hour