93bdf148d3a0408d7e668190c5046fd3b34eef90 galt Tue Feb 23 22:32:50 2021 -0800 Fixing some bugs in liftOver. Increased max fields from 64 to 256. Now it requires 3 or more fields. It detects if the field counts are not consistent for all rows. And it detects if there are too many fields. Fixes annoying bug in bed 1 or bed 2 that would confabulate output. refs #27023 diff --git src/hg/liftOver/tests/makefile src/hg/liftOver/tests/makefile index e862075..858b79f 100644 --- src/hg/liftOver/tests/makefile +++ src/hg/liftOver/tests/makefile @@ -1,21 +1,21 @@ kentSrc = ../../.. include ../../../inc/common.mk # make VERBOSE=-verbose=2 will echo out positions as they convert -test: bin bedPlus3 bed8 bed12 simpleTest minus enm001 chuckTest chuckBigTest enr223 scaffoldEndBug +test: bin bedPlus3 bedPlus3-200 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} \ input/bed12.bed \ /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 @@ -31,30 +31,38 @@ ${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 +bedPlus3-256: mkdirs + ${liftOver} -bedPlus=3 \ + input/bedPlus-256.bed \ + /cluster/data/mm2/bed/liftOver/mm2ToMm5.over.chain.gz \ + output/bedPlus3-256.good.bed output/bedPlus3-256.bad.bed 2> /dev/null + cat output/bedPlus3-256.{good,bad}.bed | \ + diff - expected/bedPlus3-256.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