f271ed112e3a9facaebc08ec6d05e463790988e0 hiram Wed Sep 9 16:34:19 2026 -0700 now using the merged trf output from the 500 kb operation refs #38321 diff --git src/hg/utils/automation/doSimpleRepeat.pl src/hg/utils/automation/doSimpleRepeat.pl index 2f896d52671..1cf4ef1790f 100755 --- src/hg/utils/automation/doSimpleRepeat.pl +++ src/hg/utils/automation/doSimpleRepeat.pl @@ -327,30 +327,35 @@ setenv TMPDIR "/scratch/tmp" else set tmpSz = `df --output=avail -k /tmp | tail -1` set shmSz = `df --output=avail -k /dev/shm | tail -1` if ( "\${shmSz}" > "\${tmpSz}" ) then mkdir -p /dev/shm/tmp chmod 777 /dev/shm/tmp setenv TMPDIR "/dev/shm/tmp" else setenv TMPDIR "/tmp" endif endif twoBitToFa $unmaskedSeq stdout \\ | $clusterBin/trfBig -chunkMaxSize=$trfChunkSize $trf409Option -trf=$clusterBin/$trfCmd \\ stdin /dev/null -bedAt=simpleRepeat.bed -tempDir=\$TMPDIR +if ( -s simpleRepeat.bed ) then + $clusterBin/mergeTrf simpleRepeat.bed > simpleRepeat.merge.bed +else + touch -r simpleRepeat.bed simpleRepeat.merge.bed +endif _EOF_ ); $bossScript->execute(); } # doSingle sub doTrf { if ($useCluster) { &doCluster(); } else { &doSingle(); } } # doTrf ######################################################################### @@ -373,81 +378,86 @@ } my $fileServer = &HgAutomate::chooseFileServer($runDir); my $bossScript = new HgRemoteScript("$runDir/doFilter.csh", $fileServer, $runDir, $whatItDoes); # Use symbolic link created in cluster step: my $partDir = "$buildDir/TrfPart"; if ($useCluster) { $bossScript->add(<<_EOF_ find $partDir/??? -type f | grep lst.bed | xargs cat > simpleRepeat.bed endsInLf simpleRepeat.bed if (\$status) then echo Uh-oh -- simpleRepeat.bed fails endsInLf. Look at $partDir/ bed files. exit 1 endif +if ( -s simpleRepeat.bed ) then + $clusterBin/mergeTrf simpleRepeat.bed > simpleRepeat.merge.bed +else + touch -r simpleRepeat.bed simpleRepeat.merge.bed +endif _EOF_ ); } $bossScript->add(<<_EOF_ -if ( -s simpleRepeat.bed ) then - awk '{if (\$5 <= 12) print;}' simpleRepeat.bed > trfMask.bed +if ( -s simpleRepeat.merge.bed ) then + awk '{if (\$5 <= 12) print;}' simpleRepeat.merge.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 + simpleRepeat.merge.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 else - echo empty simpleRepeat.bed - no repeats found + echo empty simpleRepeat.merge.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 \\ +if ( -s "simpleRepeat.merge.bed" ) then + hgLoadBed $db simpleRepeat simpleRepeat.merge.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 + echo empty simpleRepeat.merge.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);