6359c2dd09c8520e2a03b14d916f1f23deac63ed hiram Fri Sep 11 09:55:28 2026 -0700 correct reference to the mergeTrf script refs #38321 diff --git src/hg/utils/automation/doSimpleRepeat.pl src/hg/utils/automation/doSimpleRepeat.pl index 1cf4ef1790f..ac6dba532b5 100755 --- src/hg/utils/automation/doSimpleRepeat.pl +++ src/hg/utils/automation/doSimpleRepeat.pl @@ -8,30 +8,31 @@ use Getopt::Long; use warnings; use strict; use Carp; use FindBin qw($Bin); use lib "$Bin"; use HgAutomate; use HgRemoteScript; use HgStepManager; # Hardcoded (for now): my $chunkSize = 50000000; # will be readjusted if seqCount > 100000 my $trfChunkSize = 500000; # new argument to trfBig Sept 2026 my $singleRunSize = 200000000; my $clusterBin = qw(/cluster/bin/$MACHTYPE); +my $clusterScripts = qw(/cluster/bin/scripts); # Option variable names, both common and peculiar to this script: use vars @HgAutomate::commonOptionVars; use vars @HgStepManager::optionVars; use vars qw/ $opt_buildDir $opt_unmaskedSeq $opt_trf409 /; # Specify the steps supported with -continue / -stop: my $stepper = new HgStepManager( [ { name => 'trf', func => \&doTrf }, { name => 'filter', func => \&doFilter }, { name => 'load', func => \&doLoad }, @@ -328,31 +329,31 @@ 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 + $clusterScripts/mergeTrf.py 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 @@ -379,31 +380,31 @@ 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 + $clusterScripts/mergeTrf.py simpleRepeat.bed > simpleRepeat.merge.bed else touch -r simpleRepeat.bed simpleRepeat.merge.bed endif _EOF_ ); } $bossScript->add(<<_EOF_ 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.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