da79c37696a46e9978a93218407e6afcdc71326c galt Fri Aug 14 17:45:37 2020 -0700 Fixed bug in hgLiftOver CGI and liftOver utility reported by user. Also tested liftability of knwonGene on Chr1 to panTro6. All remining cases of Boundary error are real and not due to a bug. Added test cases, especially for BED12 which had been oddly missing. refs #26057. diff --git src/hg/liftOver/tests/makefile src/hg/liftOver/tests/makefile index 4180f68..e862075 100644 --- src/hg/liftOver/tests/makefile +++ src/hg/liftOver/tests/makefile @@ -1,171 +1,171 @@ kentSrc = ../../.. include ../../../inc/common.mk # make VERBOSE=-verbose=2 will echo out positions as they convert -test: bin bedPlus3 bed8 simpleTest minus enm001 chuckTest chuckBigTest enr223 scaffoldEndBug +test: bin bedPlus3 bed8 bed12 simpleTest minus enm001 chuckTest chuckBigTest enr223 scaffoldEndBug # tests too slow to use in default test suite testSlow: mm3 multiple liftOver=${DESTBINDIR}/liftOver liftOverMerge=${DESTBINDIR}/liftOverMerge bed12: mkdirs - ${liftOver} -hasBin -bedPlus=12 \ + ${liftOver} \ input/bed12.bed \ - /cluster/data/hg16/bed/liftOver/hg16ToHg17.over.chain \ + /cluster/data/hg38/bed/liftOver/hg38ToPanTro6.over.chain.gz \ output/bed12.good.bed output/bed12.bad.bed 2> /dev/null cat output/bed12.{good,bad}.bed | \ diff - expected/bed12.bed 1>&2 bed8: mkdirs ${liftOver} \ input/bed8.bed \ /cluster/data/hg16/bed/liftOver/hg16ToHg17.over.chain.gz \ output/bed8.good.bed output/bed8.bad.bed 2> /dev/null cat output/bed8.{good,bad}.bed | \ diff - expected/bed8.bed 1>&2 bin: mkdirs ${liftOver} -hasBin -bedPlus=6\ input/bin.bed \ /cluster/data/mm2/bed/liftOver/mm2ToMm5.over.chain.gz \ output/bin.good.bed output/bin.bad.bed 2> /dev/null cat output/bin.{good,bad}.bed | \ diff - expected/bin.bed 1>&2 bedPlus3: mkdirs ${liftOver} -bedPlus=3 \ input/bedPlus.bed \ /cluster/data/mm2/bed/liftOver/mm2ToMm5.over.chain.gz \ output/bedPlus3.good.bed output/bedPlus3.bad.bed 2> /dev/null cat output/bedPlus3.{good,bad}.bed | \ diff - expected/bedPlus3.bed 1>&2 simpleTest: mkdirs ${liftOver} \ input/mouseRegions.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chr16.chain \ output/mouseRegions.good.bed \ output/mouseRegions.bad.bed 2> /dev/null cat output/mouseRegions.{good,bad}.bed | \ diff - expected/mouseRegions.bed 1>&2 minus: mkdirs ${liftOver} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple ${VERBOSE} \ input/enr223.S.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chr6.chain \ output/enr223.S.good.bed \ output/enr223.S.bad.bed 2> /dev/null cat output/enr223.S.{good,bad}.bed | \ diff - expected/enr223.S.bed 1>&2 # test w/o multiple enm001: mkdirs ${liftOver} -minMatch=.01 \ input/enm001.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chr7.chain \ output/enm001.good.bed output/enm001.bad.bed 2> /dev/null cat output/enm001.{good,bad}.bed | \ diff - expected/enm001.bed 1>&2 chuckTest: mkdirs ${liftOver} \ input/chuckTest.bed \ /cluster/data/mm2/bed/liftOver/mm2.mm5.liftOver/over/chr19.chain \ output/chuckTest.good.bed output/chuckTest.bad.bed 2> /dev/null cat output/chuckTest.{good,bad}.bed | \ diff - expected/chuckTest.bed 1>&2 chuckBigTest: mkdirs ${liftOver} \ input/chuckBigTest.bed \ /cluster/data/mm2/bed/liftOver/mm2ToMm5.over.chain.gz \ output/chuckBigTest.good.bed output/chuckBigTest.bad.bed 2> /dev/null cat output/chuckBigTest.{good,bad}.bed | \ diff - expected/chuckBigTest.bed 1>&2 # missing expected file m7rat: mkdirs ${liftOver} ${VERBOSE} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple \ input/m7rat.bed \ /cluster/data/hg16/bed/blastz.rn3/axtChain/subset/chr19.chain \ output/m7rat.good.bed output/m7rat.bad.bed 2> /dev/null ${liftOverMerge} ${VERBOSE} -mergeGap=2000 \ output/m7rat.good.bed output/m7rat.merged.bed cat output/m7rat.merged.bed | \ diff - expected/m7rat.bed 1>&2 # problem with config setting needed to access chain table m4mouse: mkdirs ${liftOver} ${VERBOSE} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple -chainTable=hg16.chainMm5\ input/m4mouse.bed \ /cluster/data/hg16/bed/blastz.mm5/axtChain/subset/chr22.chain \ output/m4mouse.good.bed output/m4mouse.bad.bed 2> /dev/null cat output/m4mouse.{good,bad}.bed | \ diff - expected/m4mouse.bed 1>&2 # differs from expected -- it doesn't merge (this function done by # liftOverMerge now ? mergeTest: enm006 enm006: mkdirs ${liftOver} ${VERBOSE} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple \ input/enm006.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chrX.chain \ output/enm006.good.bed output/enm006.bad.bed 2> /dev/null cat output/enm006.{good,bad}.bed | \ diff - expected/enm006.bed 1>&2 # missing expected file enr112: mkdirs ${liftOver} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple ${VERBOSE} \ input/enr112.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chr2.chain \ output/enr112.good.bed \ output/enr112.bad.bed 2> /dev/null cat output/enr112.{good,bad}.bed | \ diff - expected/enr112.bed 1>&2 # bug where genePred going at the exact end of a scaffold was not mapped scaffoldEndBug: ${liftOver} -genePred ${VERBOSE} input/scaffoldEndBug.gp input/scaffoldEndBug.chain \ output/$@.good.gp output/$@.bad.gp 2> /dev/null cat output/$@.{good,bad}.gp | diff - expected/$@.gp 1>&2 orderTest: enr223 enr223: mkdirs ${liftOver} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple ${VERBOSE} \ input/enr223.bed \ /cluster/data/hg16/bed/blastz.mm3/axtChain/subset/chr6.chain \ output/enr223.good.bed \ output/enr223.bad.bed 2> /dev/null cat output/enr223.{good,bad}.bed | \ diff - expected/enr223.bed 1>&2 # too slow -- don't use in default test suite mm3: mkdirs ${liftOver} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple ${VERBOSE}\ /cluster/data/hg16/bed/encodeRegions/encodeRegions.bed \ /cluster/data/hg16/bed/liftOver/hg16Tomm3.chain \ output/mm3.all.good.bed \ output/mm3.all.bad.bed cat output/mm3.all.{good,bad}.bed | \ diff - expected/mm3.all.bed 1>&2 # too slow -- don't use in default test suite multiple: mkdirs ${liftOver} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple ${VERBOSE}\ input/mm3.multiple.bed \ /cluster/data/hg16/bed/liftOver/hg16Tomm3.chain \ output/mm3.multiple.good.bed \ output/mm3.multiple.bad.bed cat output/mm3.multiple.{good,bad}.bed | \ diff - expected/mm3.multiple.bed 1>&2 mkdirs: mkdir -p output clean: rm -fr output