I've writing test cases for my liftover code and I appear to be failing since the UCSC chain files are not symmetrical:
hg19 chr1 148000001 + uniquely lifts over to hg38 chr1 120845139 -, but when I lift that back over to hg19 it goes to hg19 chr1 148761230 -.
If I lift that back over to hg38, that position goes to hg38 chr1 149559293 -.
Going back to hg38 again takes me to hg19 chr1 148761230 - so at least that cycle is stable.
My question is this: if there are two coordinate that map to a single liftover position, why doesn't the liftover in the opposite direction multimap back to both these coordinates?
1 answer
Most of the positions that don't have uniquely invertible mappings between the two builds overlap either segmental duplications or the contigs that differ between hg19 and hg38 - or the intersection between the two. There are only a small number of such positions: ~0.4% on hg19 and ~0.7% on hg38. My personal preference is to ignore positions that don't have uniquely invertible mappings.
You can read more in our paper here.
Log in to answer this question.