b9ab779d8b7fdc353e57f056522f60c20e4e15a3 hiram Mon Apr 12 10:48:27 2021 -0700 correct recover from nestedRepeats problem no redmine diff --git src/hg/utils/automation/doRepeatMasker.pl src/hg/utils/automation/doRepeatMasker.pl index 35bf619..d27099e 100755 --- src/hg/utils/automation/doRepeatMasker.pl +++ src/hg/utils/automation/doRepeatMasker.pl @@ -508,61 +508,61 @@ # of levels from the partitioning. If $levels is 1, no foreach required. for (my $l = $levels - 2; $l >= 0; $l--) { my $dir = ($l == ($levels - 2)) ? $partDir : "\$d" . ($l + 1); $bossScript->add(<<_EOF_ ${indent}for d$l in $dir/??? do _EOF_ ); $indent .= ' '; $path .= "\$d$l/"; } for (my $l = 0; $l <= $levels - 2; $l++) { $bossScript->add(<<_EOF_ ${indent} liftUp ${path}cat.out /dev/null carry ${path}???/*.out ${indent} liftUp ${path}cat.align /dev/null carry ${path}???/*.align -${indent}done +done _EOF_ ); $indent =~ s/ //; $path =~ s/\$d\d+\/$//; } $bossScript->add(<<_EOF_ liftUp $db.fa.out /dev/null carry $partDir/???/*.out liftUp $db.fa.align /dev/null carry $partDir/???/*.align head -3 $db.fa.out > $db.sorted.fa.out tail -n +4 $db.fa.out | sort -k5,5 -k6,6n >> $db.sorted.fa.out _EOF_ ); } $bossScript->add(<<_EOF_ # Use the ID column to join up fragments of interrupted repeats for the # Nested Repeats track. Try to avoid the Undefined id errors. ($Bin/extractNestedRepeats.pl $db.sorted.fa.out 2> nestRep.err || true) | sort -k1,1 -k2,2n > $db.nestedRepeats.bed if [ -s "nestRep.err" ]; then export lineCount=`(grep "Undefined id, line" nestRep.err || true) | cut -d' ' -f6 | wc -l` if [ "\${lineCount}" -gt 0 ]; then if [ "\${lineCount}" -gt 10 ]; then printf "ERROR: too many Undefined id lines (> 10) reported by extractNestedRepeats.pl" 1>&2 exit 255 fi export sedExpr=`grep "Undefined id, line" nestRep.err | cut -d' ' -f6 | sed -e 's/\$/d;/;' | xargs echo` export sedCmd="sed -i.broken -e '\$sedExpr'" - eval \$sedCmd $db.fa.out - ($Bin/extractNestedRepeats.pl $db.fa.out 2> nestRep2.err || true) | sort -k1,1 -k2,2n > $db.nestedRepeats.bed + eval \$sedCmd $db.sorted.fa.out + ($Bin/extractNestedRepeats.pl $db.sorted.fa.out 2> nestRep2.err || true) | sort -k1,1 -k2,2n > $db.nestedRepeats.bed if [ -s "nestRep2.err" ]; then printf "ERROR: the attempt of cleaning nestedRepeats did not work" 1>&2 exit 255 fi fi fi _EOF_ ); $bossScript->execute(); } # doCat ######################################################################### # * step: mask [workhorse] sub doMask { my $runDir = "$buildDir";