#!/bin/zsh textifyDuration() { local duration=$1 local shiff=$duration local secs secs=$((shiff % 60)); shiff=$((shiff / 60)); local mins mins=$((shiff % 60)); shiff=$((shiff / 60)); local hours hours=$((shiff % 24)); shiff=$((shiff / 24)); local days=$shiff if [[ $days -gt 0 ]]; then txt="${days}D-${hours}h:${mins}m:${secs}s" elif [[ $hours -gt 0 ]]; then txt="${hours}h:${mins}m:${secs}s" elif [[ $mins -gt 0 ]]; then txt="${mins}m:${secs}s" else txt="${secs}s" fi echo "$txt" } alias awk=$1 ARRAYSIZE=$2 OUT=$3 NJOBS=$4 arg=$5 PRT=$6 TMP=$7 STIME=$8 COVT=$9 IDT=${10} if [[ `hostname` != "maestro-"* ]] || [[ ${SLURM_ARRAY_TASK_ID} == "" ]] ; then SLURM_ARRAY_TASK_ID=$5 fi OUTFILE="$TMP"/$OUT.wgrr_part.${SLURM_ARRAY_TASK_ID} MAXP=$((ARRAYSIZE*SLURM_ARRAY_TASK_ID)) MINP=$((MAXP-ARRAYSIZE+1)) if [[ $STIME != "" ]] ; then CTIME=$(date +%s) printf "\r\033[K%-17s -- [%-50s] %s/%s %s" "[PROGRESS]" $(C=$((arg*50/NJOBS)) ; if [ $C -eq 0 ] ; then printf "=" ; else head -c $C < /dev/zero | tr "\0" "=" ; fi) $arg $NJOBS $(textifyDuration $((CTIME-STIME))) fi awk -v COV=${COVT} -v ID=${IDT} -v MINP=$MINP -v MAXP=$MAXP -v OBBH=${OUT}.bbh_part.${SLURM_ARRAY_TASK_ID} -f wGRR.awk $OUT.allpairs.txt $PRT $OUT.m8 | sort -k1,1V -k2,2V > $OUTFILE exit 0