22125620d4dc7d776599c3bf6e99932ba43a6db5 hiram Thu Sep 26 10:28:21 2024 -0700 allow an assembly to work even if it has no repeatMasker result refs #34337 diff --git src/hg/utils/automation/doAssemblyHub.pl src/hg/utils/automation/doAssemblyHub.pl index 3d32a7c..bc23bd2 100755 --- src/hg/utils/automation/doAssemblyHub.pl +++ src/hg/utils/automation/doAssemblyHub.pl @@ -1491,65 +1491,68 @@ touch -r \$twoBit \$asmId.keySignature.txt else printf "# idKeys step previously completed\\n" 1>&2 exit 0 fi _EOF_ ); $bossScript->execute(); } # doIdKeys ######################################################################### # * step: addMask [workhorse] sub doAddMask { my $runDir = "$buildDir/trackData/addMask"; + my $atLeast1 = 0; my $goNoGo = 0; if (! $noRmsk) { if ( ! -s "$buildDir/trackData/repeatMasker/$defaultName.rmsk.2bit" ) { printf STDERR "ERROR: repeatMasker step not completed\n"; printf STDERR "can not find: $buildDir/trackData/repeatMasker/$defaultName.rmsk.2bit\n"; - $goNoGo = 1; + $atLeast1 += 1; } } if ( ! -s "$buildDir/trackData/windowMasker/$defaultName.cleanWMSdust.2bit" ) { printf STDERR "ERROR: windowMasker step not completed\n"; printf STDERR "can not find: $buildDir/trackData/windowMasker/$defaultName.cleanWMSdust.2bit\n"; - $goNoGo = 1; + $atLeast1 += 1; } if ( ! -s "$buildDir/trackData/simpleRepeat/doCleanup.csh" ) { printf STDERR "ERROR: simpleRepeat step not completed\n"; printf STDERR "can not find: $buildDir/trackData/simpleRepeat/doCleanup.csh\n"; $goNoGo = 1; } - if ($goNoGo) { + if ($atLeast1 && $goNoGo) { printf STDERR "ERROR: must complete repeatMasker, windowMasker and simpleRepeat before addMask\n"; exit 255; } &HgAutomate::mustMkdir($runDir); my $whatItDoes = "add together (windowMasker or repeatMasker) and trf/simpleRepeats to construct masked 2bit file"; my $bossScript = newBash HgRemoteScript("$runDir/doAddMask.bash", $workhorse, $runDir, $whatItDoes); my $wmMasked=`grep "masked total" $buildDir/trackData/windowMasker/faSize.$defaultName.cleanWMSdust.txt | awk '{print \$1}' | sed -e 's/%//;'`; chomp $wmMasked; $wmMasked = 0 if ($wmMasked > 98); my $rmMasked = 0; if (! $noRmsk) { + if ( -s "$buildDir/trackData/repeatMasker/faSize.rmsk.txt" ) { $rmMasked=`grep "masked total" $buildDir/trackData/repeatMasker/faSize.rmsk.txt | awk '{print \$1}' | sed -e 's/%//;'`; } + } my $src2BitToMask = "../repeatMasker/$defaultName.rmsk.2bit"; if ($noRmsk || ($wmMasked > $rmMasked)) { $src2BitToMask = "../windowMasker/$defaultName.cleanWMSdust.2bit"; } my $accessionId = $defaultName; if ($accessionId =~ m/^GC[AF]_/) { my @a = split('_', $defaultName); $accessionId = sprintf("%s_%s", $a[0], $a[1]); } $bossScript->add(<<_EOF_ export asmId=$defaultName export src2Bit=$src2BitToMask