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);