2d6c8b5aa593976bc312cb3111d9d4cd7b46938a jcasper Wed Oct 2 09:29:18 2024 -0700 Position liftovers need to clean up temp files when they're done, refs #28023 diff --git src/hg/liftOver/tests/makefile src/hg/liftOver/tests/makefile index 22d8b6a..815281f 100644 --- src/hg/liftOver/tests/makefile +++ src/hg/liftOver/tests/makefile @@ -1,256 +1,253 @@ 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 zeroWidth \ bed12PreserveInput bed3PreserveInput gffPreserveInput pslPreserveInput samplePreserveInput \ - genePredPreserveInput gtfPreserveInput -# omitting positionPreserveInput right now because it creates extra junk files in the current directory + genePredPreserveInput gtfPreserveInput positionPreserveInput # tests too slow to use in default test suite testSlow: mm3 multiple liftOver=${DESTBINDIR}/liftOver liftOverMerge=${DESTBINDIR}/liftOverMerge # use local binaries if available ifneq ($(wildcard ../liftOver),) liftOver=../liftOver endif ifneq ($(wildcard ../liftOverMerge),) liftOverMerge=../liftOverMerge endif zeroWidth: mkdirs ${liftOver} \ input/zeroWidth.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg19ToHg38.over.chain.gz \ output/zeroWidth.good.bed output/zeroWidth.bad.bed 2> /dev/null cat output/zeroWidth.{good,bad}.bed | \ diff - expected/zeroWidth.bed 1>&2 bed12: mkdirs ${liftOver} \ input/bed12.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr16.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr6.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr7.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/mm2.mm5.chr19.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/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, also missing the input/m7rat.bed file ? m7rat: mkdirs ${liftOver} ${VERBOSE} -minMatch=.01 minSizeT=4000 minSizeQ=20000 -multiple \ input/m7rat.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg16.rn3.chr19.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr22.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chrX.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr2.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/chr6.chain.gz \ 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}\ encodeRegions.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg16ToMm3.chain.gz \ 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 \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg16ToMm3.chain.gz \ output/mm3.multiple.good.bed \ output/mm3.multiple.bad.bed cat output/mm3.multiple.{good,bad}.bed | \ diff - expected/mm3.multiple.bed 1>&2 bed12PreserveInput: mkdirs ${liftOver} -preserveInput \ input/bed12Preserve.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/bed12Preserve.good.bed output/bed12Preserve.bad.bed 2> /dev/null cat output/bed12Preserve.{good,bad}.bed | \ diff - expected/bed12Preserve.bed 1>&2 bed3PreserveInput: mkdirs ${liftOver} -preserveInput \ input/bed3Preserve.bed \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/bed3Preserve.good.bed output/bed3Preserve.bad.bed 2> /dev/null cat output/bed3Preserve.{good,bad}.bed | \ diff - expected/bed3Preserve.bed 1>&2 genePredPreserveInput: mkdirs ${liftOver} -preserveInput -genePred \ input/genePredPreserve.gp \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/genePredPreserve.good.gp output/genePredPreserve.bad.gp 2> /dev/null cat output/genePredPreserve.{good,bad}.gp | \ diff - expected/genePredPreserve.gp 1>&2 gtfPreserveInput: mkdirs ${liftOver} -preserveInput -gff \ input/gtfPreserve.gtf \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/gtfPreserve.good.gtf output/gtfPreserve.bad.gtf 2> /dev/null cat output/gtfPreserve.{good,bad}.gtf | \ diff - expected/gtfPreserve.gtf 1>&2 pslPreserveInput: mkdirs ${liftOver} -preserveInput -pslT \ input/pslPreserve.psl \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/pslPreserve.good.psl output/pslPreserve.bad.psl 2> /dev/null cat output/pslPreserve.{good,bad}.psl | \ diff - expected/pslPreserve.psl 1>&2 gffPreserveInput: mkdirs ${liftOver} -preserveInput -gff \ input/gffPreserve.gff \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/gffPreserve.good.gff output/gffPreserve.bad.gff 2> /dev/null cat output/gffPreserve.{good,bad}.gff | \ diff - expected/gffPreserve.gff 1>&2 samplePreserveInput: mkdirs ${liftOver} -preserveInput -sample \ input/samplePreserve.sample \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/samplePreserve.good.sample output/samplePreserve.bad.sample 2> /dev/null cat output/samplePreserve.{good,bad}.sample | \ diff - expected/samplePreserve.sample 1>&2 -# this isn't being tested right now because liftOver -positions creates temp bed files in the current -# directory and then never cleans them up positionPreserveInput: mkdirs ${liftOver} -preserveInput -positions \ input/positionPreserve.pos \ https://hgdownload.soe.ucsc.edu/admin/exe/testFiles/liftOver/hg38ToPanTro6.over.chain.gz \ output/positionPreserve.good.pos output/positionPreserve.bad.pos 2> /dev/null cat output/positionPreserve.{good,bad}.pos | \ diff - expected/positionPreserve.pos 1>&2 mkdirs: mkdir -p output clean: rm -fr output