Necessary changes for using Slurm job scheduler rather than PBS in the I-TASSER Suite package

In the I-TASSER Suite package, when the option -runstyle is set to "parallel", the threading and simulation jobs will be submitted
by the "qsub" command from the default PBS job scheduler. This significantly speeds up the I-TASSER running by more than 10 times. However,
we noticed that there are some users who do not use PBS job scheduler but others, such as, SGE ( and Slurm ( To make the package work with other job schedulers,
it is necessary to make some changes. Thanks to Dr. Benjamin P. Roberts of the New Zealand eScience Infrastructure, below is a brief summary about his changes from PBS to Slurm. We also attach his full change log in this post, in case someone needs it.

1. Check of job scheduler

if ( !( `which qstat` ) || !( `which qsub` ))

should be changed to

if ( system("which squeue") != 0 || system("which sbatch") != 0)

2. qstat-->squeue

$runningjobs=`qstat -f`;

should be changed to

$runningjobs=`squeue --format="%24j"`;

3. qsub-->sbatch

$walltime ="walltime=72:00:00,mem=1000mb";
`qsub -e $errfile -o $outfile -l $walltime -N $tag $jobname`;

should be changed to

$walltime = "72:00:00";
$mem = "1000MB";
`sbatch -e $errfile -o $outfile --time=$walltime --mem=$mem -J $tag $jobname`;

4. I-TASSERmod/zysubmod


should be changed to