Skip to content
Snippets Groups Projects
Commit 8e7e191f authored by Julien  GUGLIELMINI's avatar Julien GUGLIELMINI
Browse files

bug fixes

parent 5fe4ab26
No related branches found
No related tags found
No related merge requests found
...@@ -156,7 +156,7 @@ echo "[INFO] -- wGRR version ${VERSION}" ...@@ -156,7 +156,7 @@ echo "[INFO] -- wGRR version ${VERSION}"
if [[ $BATCHFLAG == 0 ]] ; then if [[ $BATCHFLAG == 0 ]] ; then
echo "[INFO] -- The command is:" echo "[INFO] -- The command is:"
echo "[INFO] -- ./wGRR $@" echo "[INFO] -- ./wGRR "$@
if [[ $THREADS -gt $(nproc) ]] ; then if [[ $THREADS -gt $(nproc) ]] ; then
echo "[ERROR] -- You required $THREADS threads but your machine has $(nproc) cores." echo "[ERROR] -- You required $THREADS threads but your machine has $(nproc) cores."
...@@ -229,7 +229,7 @@ if [[ -f $OUT.m8 ]] ; then ...@@ -229,7 +229,7 @@ if [[ -f $OUT.m8 ]] ; then
else else
MIDENT=$($AWKEXE '!/^>/{a[$0]++}END{for(i in a){if(a[i]>m){m=a[i]}}print m}' $PRT) MIDENT=$($AWKEXE '!/^>/{a[$0]++}END{for(i in a){if(a[i]>m){m=a[i]}}print m}' $PRT)
if [[ $((MIDENT*2)) -gt "$MMS_DEF_MAX_SEQS" ]] ; then if [[ $((MIDENT*2)) -gt "$MMS_DEF_MAX_SEQS" ]] ; then
MMS_MAX_SEQ_PARAM=$(echo $((MIDENT*2)) | awk '{c=substr($1,2);gsub(/[0-9]/,0,c);print "--max-seqs "substr($1,1,1)+1""c}') MMS_MAX_SEQ_PARAM=($(echo $((MIDENT*2)) | awk '{c=substr($1,2);gsub(/[0-9]/,0,c);print "--max-seqs "substr($1,1,1)+1""c}'))
echo "[INFO] -- Setting MMseqs parameter $MMS_MAX_SEQ_PARAM" echo "[INFO] -- Setting MMseqs parameter $MMS_MAX_SEQ_PARAM"
fi fi
...@@ -295,28 +295,24 @@ if [[ $BATCHFLAG == 0 ]] ; then ...@@ -295,28 +295,24 @@ if [[ $BATCHFLAG == 0 ]] ; then
for i in {1..$NJOBS} ; do for i in {1..$NJOBS} ; do
echo $i echo $i
done | xargs -n 1 -P $THREADS sh -c 'arg=$5; NJOBS=$2 ; printf "\r[PROGRESS] -- [%-40s]" $(head -c $((arg*40/NJOBS+1)) < /dev/zero | tr "\0" "=") ; ./wGRR_worker.zsh $0 $1 $NJOBS $arg $3 $4' $ARRAYSIZE $OUT $NJOBS $PRT $tmp done | xargs -n 1 -P $THREADS sh -c 'arg=$5; NJOBS=$2 ; printf "\r[PROGRESS] -- [%-40s]" $(head -c $((arg*40/NJOBS+1)) < /dev/zero | tr "\0" "=") ; ./wGRR_worker.zsh $0 $1 $NJOBS $arg $3 $4' $ARRAYSIZE $OUT $NJOBS $PRT $tmp
printf "\n"
fi fi
else else
REQMEM="" REQMEM=""
echo "[INFO] -- Estimating required memory" echo "[INFO] -- Estimating required memory"
M1=$(awk -f wGRR_mem.awk -v MINP=1 -v MAXP=10 -v OUT=$OUT $OUT.allpairs.txt $PRT $OUT.m8) M1=$(awk -f wGRR.awk -v MINP=1 -v MAXP=10 -v OUT=$OUT -v MEM=1 $OUT.allpairs.txt $PRT $OUT.m8)
REQMEM=$(bc -l <<< $(numfmt --from=iec $M1)*($ARRAYSIZE/10) | numfmt --to=iec | awk '{U=$0;gsub(/[^A-Za-z]/,"",U);V=$0;gsub(/[A-Za-z]+$/,"",V);split(V,a,".");n=split(a[1],b,"");c=b[1]+1;i=1;while(++i<=n){c=c"0"}print c""U}') REQMEM=$(bc -l <<< $(numfmt --from=iec $M1)*($ARRAYSIZE/10) | numfmt --to=iec | awk '{U=$0;gsub(/[^A-Za-z]/,"",U);V=$0;gsub(/[A-Za-z]+$/,"",V);split(V,a,".");n=split(a[1],b,"");c=b[1]+1;i=1;while(++i<=n){c=c"0"}print c""U}')
echo "[INFO] -- $REQMEM per job required" echo "[INFO] -- $REQMEM per job required"
duration=$SECONDS duration=$SECONDS
printf "%-10s -- %s\n" "[TIME]" $(textifyDuration $duration) printf "%-10s -- %s\n" "[TIME]" $(textifyDuration $duration)
echo "[INFO] -- Submitting $NJOBS jobs for wGRR calculation" echo "[INFO] -- Submitting $NJOBS jobs for wGRR calculation"
if [[ $PARTITION == "common" ]] ; then
FAST_PART="common,dedicated"
else
FAST_PART=$PARTITION
fi
if [[ $MAXJOBS -gt 0 ]] && [[ $MAXJOBS -lt $NJOBS ]] ; then if [[ $MAXJOBS -gt 0 ]] && [[ $MAXJOBS -lt $NJOBS ]] ; then
echo "[INFO] -- Limiting the number of simultaneous jobs to $MAXJOBS" echo "[INFO] -- Limiting the number of simultaneous jobs to $MAXJOBS"
JOBARRAY="1-${NJOBS}%${MAXJOBS}" JOBARRAY="1-${NJOBS}%${MAXJOBS}"
else else
JOBARRAY="1-${NJOBS}" JOBARRAY="1-${NJOBS}"
fi fi
JID=$(sbatch --parsable --wait -p "$FAST_PART" --array="$JOBARRAY" -c 1 -J "wGRR_worker" --mem=$REQMEM --wrap="./wGRR_worker.zsh $ARRAYSIZE $OUT $NJOBS 1 $PRT $tmp") JID=$(sbatch --parsable --wait -p "$PARTITION" --array="$JOBARRAY" -c 1 -J "wGRR_worker" --mem=$REQMEM --wrap="./wGRR_worker.zsh $ARRAYSIZE $OUT $NJOBS 1 $PRT $tmp")
PQT=$(sacct -X -j $JID -o Reserved -n | awk 'NR==1{prevt=0}{t=0;n=split($1,a,"-");if(n>1){t=t+a[1]*86400};split(a[n],b,":");t=t+b[1]*3600+b[2]*60+b[3];if(t<prevt){tt=tt+prevt}prevt=t}END{print tt+t}') PQT=$(sacct -X -j $JID -o Reserved -n | awk 'NR==1{prevt=0}{t=0;n=split($1,a,"-");if(n>1){t=t+a[1]*86400};split(a[n],b,":");t=t+b[1]*3600+b[2]*60+b[3];if(t<prevt){tt=tt+prevt}prevt=t}END{print tt+t}')
echo "[INFO] -- The job $JID has been "$(textifyDuration $PQT) "in queue" echo "[INFO] -- The job $JID has been "$(textifyDuration $PQT) "in queue"
QT=$((QT+PQT)) QT=$((QT+PQT))
......
...@@ -267,7 +267,7 @@ END { ...@@ -267,7 +267,7 @@ END {
if(gi==gj){ if(gi==gj){
lc = length(cluster) lc = length(cluster)
if(MEM){ if(!MEM){
print gi,gj,sumidR/mp,ncommonR/li,li,lj,sumidR/minprot,ncommonR/((lli+llj)/2),lli,llj,sumidC/lc,length(bbh_clust)/lc,lc,lc print gi,gj,sumidR/mp,ncommonR/li,li,lj,sumidR/minprot,ncommonR/((lli+llj)/2),lli,llj,sumidC/lc,length(bbh_clust)/lc,lc,lc
} }
} }
...@@ -278,7 +278,7 @@ END { ...@@ -278,7 +278,7 @@ END {
avg_wgrr3=(part_wgrr3[gj":"gi]+sumidC/lc)/2 avg_wgrr3=(part_wgrr3[gj":"gi]+sumidC/lc)/2
split(final_out[gj":"gi],ff,"\t") split(final_out[gj":"gi],ff,"\t")
# Print twice for both directions of the wGRR # Print twice for both directions of the wGRR
if(MEM){ if(!MEM){
print ff[1],ff[2],avg_wgrr1,ff[4],ff[5],ff[6],avg_wgrr2,ff[8],ff[9],ff[10],avg_wgrr3,ff[12],ff[13],ff[14] print ff[1],ff[2],avg_wgrr1,ff[4],ff[5],ff[6],avg_wgrr2,ff[8],ff[9],ff[10],avg_wgrr3,ff[12],ff[13],ff[14]
print gi,gj,avg_wgrr1,ncommonR/((li+lj)/2),li,lj,avg_wgrr2,ncommonR/((lli+llj)/2),lli,llj,avg_wgrr3,length(bbh_clust)/((lci+lcj)/2),lci,lcj print gi,gj,avg_wgrr1,ncommonR/((li+lj)/2),li,lj,avg_wgrr2,ncommonR/((lli+llj)/2),lli,llj,avg_wgrr3,length(bbh_clust)/((lci+lcj)/2),lci,lcj
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment