#!/bin/tcsh
#
# RELION 4.0 job submission template for SLURM at MRC-LMB cluster
# This script is maintained by Takanori Nakane.
#
#SBATCH --job-name=RELION4.0
#SBATCH --error=Refine3D/job063/run.err
#SBATCH --output=Refine3D/job063/run.out
#SBATCH --open-mode=append
#SBATCH --time=2-00:00:00 # TODO: should be enough for most jobs but consider
#SBATCH --mail-type=FAIL
##SBATCH --partition=cpu
##SBATCH --gres=gpu:0
##SBATCH --ntasks=5
##SBATCH --cpus-per-task=8
##SBATCH --mem=60G #TODO: --mem-per-cpu=2500M might be better but user have to worry...
#SBATCH --partition=gpu
#SBATCH --gres=gpu:4
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=32
#SBATCH --mem=128G

source /public/EM/RELION/relion-4.0-dev.csh

# This is created by the job prolog script.
# For some reason, the environmental variable is not properly set,
# so I do here.
set  RELION_SCRATCH_DIR=/ssd/${SLURM_JOB_USER}-${SLURM_JOBID}

echo "* RELION 4.0 JOB ENVIRONMENT *" # csh expands * ...
echo
echo PATH TO mpiexec: `which mpiexec`
echo PATH TO relion_refine_mpi: `which relion_refine_mpi`
echo LIBRARIES FOR relion_refine_mpi:
ldd  `which relion_refine_mpi`
echo RELION_EXTERNAL_RECONSTRUCT_EXECUTABLE: $RELION_EXTERNAL_RECONSTRUCT_EXECUTABLE
echo SIDESPLITTER: $SIDESPLITTER
echo

set  STARTTIME = `date +%s`
echo RUN STARTED AT `date -d@${STARTTIME}`
echo TO KILL THIS JOB, RUN: scancel $SLURM_JOB_ID
echo ------------------------------------------------------------------------------------

# --oversubscribe is intentional to allow almost idle rank 0
mpiexec --oversubscribe -n 5  `which relion_refine_mpi` --o Refine3D/job063/run --auto_refine --split_random_halves --i Extract/job062/particles.star --ref ini4refine/testB-950CO.mrc --firstiter_cc --ini_high 10 --dont_combine_weights_via_disc --scratch_dir $RELION_SCRATCH_DIR --pool 30 --pad 2  --skip_gridding  --ctf --ctf_intact_first_peak --particle_diameter 220 --flatten_solvent --zero_mask --oversampling 1 --healpix_order 3 --auto_local_healpix_order 4 --offset_range 5 --offset_step 2 --sym C1 --low_resol_join_halves 40 --norm --scale  --helix --helical_outer_diameter 180 --helical_nr_asu 3 --helical_twist_initial -0.9 --helical_rise_initial 4.75 --helical_z_percentage 0.2 --sigma_tilt 5 --sigma_psi 3.33333 --sigma_rot 0 --helical_keep_tilt_prior_fixed --j 8 --gpu ""  --pipeline_control Refine3D/job063/

echo ------------------------------------------------------------------------------------
set  ENDTIME = `date +%s`
echo RUN FINISHED AT `date -d@${ENDTIME}`
echo ELAPSED WALL CLOCK TIME IN SECONDS: `echo $ENDTIME - $STARTTIME | bc`

exit 0