137d847d5d74037f32026ad75a55d219c2abbb1f hiram Thu Jan 30 17:21:31 2020 -0800 protect against empty result refs #23891 diff --git src/hg/utils/automation/doSimpleRepeat.pl src/hg/utils/automation/doSimpleRepeat.pl index 1512371..2325f74 100755 --- src/hg/utils/automation/doSimpleRepeat.pl +++ src/hg/utils/automation/doSimpleRepeat.pl @@ -335,66 +335,78 @@ # Use symbolic link created in cluster step: my $partDir = "$buildDir/TrfPart"; if ($useCluster) { $bossScript->add(<<_EOF_ cat $partDir/???/*.bed > simpleRepeat.bed endsInLf simpleRepeat.bed if (\$status) then echo Uh-oh -- simpleRepeat.bed fails endsInLf. Look at $partDir/ bed files. exit 1 endif _EOF_ ); } $bossScript->add(<<_EOF_ +if ( -s simpleRepeat.bed ) then awk '{if (\$5 <= 12) print;}' simpleRepeat.bed > trfMask.bed awk 'BEGIN{OFS="\\t"}{name=substr(\$16,0,16);\$4=name;printf "%s\\n", \$0}' \\ simpleRepeat.bed | sort -k1,1 -k2,2n > simpleRepeat.bed16.bed twoBitInfo $unmaskedSeq stdout | sort -k2nr > tmp.chrom.sizes bedToBigBed -tab -type=bed4+12 -as=\$HOME/kent/src/hg/lib/simpleRepeat.as \\ simpleRepeat.bed16.bed tmp.chrom.sizes simpleRepeat.bb rm -f tmp.chrom.sizes simpleRepeat.bed16.bed tmp.chrom.sizes +else + echo empty simpleRepeat.bed - no repeats found +endif _EOF_ ); if ($chromBased) { $bossScript->add(<<_EOF_ +if ( -s trfMask.bed ) then splitFileByColumn trfMask.bed trfMaskChrom/ +else + echo empty trfMask.bed - no repeats found +endif _EOF_ ); } $bossScript->execute(); } # doFilter ######################################################################### # * step: load [dbHost] sub doLoad { my $runDir = "$buildDir"; &HgAutomate::checkExistsUnlessDebug('filter', 'load', "$buildDir/simpleRepeat.bed"); my $whatItDoes = "It loads simpleRepeat.bed into the simpleRepeat table."; my $bossScript = new HgRemoteScript("$runDir/doLoad.csh", $dbHost, $runDir, $whatItDoes); $bossScript->add(<<_EOF_ +if ( -s "simpleRepeat.bed" ) then hgLoadBed $db simpleRepeat simpleRepeat.bed \\ -sqlTable=\$HOME/kent/src/hg/lib/simpleRepeat.sql featureBits $db simpleRepeat >& fb.simpleRepeat cat fb.simpleRepeat +else + echo empty simpleRepeat.bed - no repeats found +endif _EOF_ ); $bossScript->execute(); } # doLoad ######################################################################### # * step: cleanup [fileServer] sub doCleanup { my $runDir = "$buildDir"; my $whatItDoes = "It cleans up or compresses intermediate files."; my $fileServer = &HgAutomate::chooseFileServer($runDir); my $bossScript = new HgRemoteScript("$runDir/doCleanup.csh", $fileServer, $runDir, $whatItDoes); $bossScript->add(<<_EOF_