#!/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/job093/run.err
#SBATCH --output=Refine3D/job093/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/job093/run --auto_refine --split_random_halves --i CtfRefine/job092/particles_ctf_refine.star --ref Refine3D/job086/run_half1_class001_unfil.mrc --ini_high 4.5 --dont_combine_weights_via_disc --scratch_dir $RELION_SCRATCH_DIR --pool 30 --pad 2  --skip_gridding  --ctf --particle_diameter 220 --flatten_solvent --zero_mask --solvent_mask MaskCreate/job067/mask.mrc --solvent_correct_fsc  --oversampling 1 --healpix_order 4 --auto_local_healpix_order 5 --offset_range 5 --offset_step 2 --sym C1 --low_resol_join_halves 40 --norm --scale  --helix --helical_outer_diameter 200 --helical_nr_asu 3 --helical_twist_initial -0.8857 --helical_rise_initial 4.78191 --helical_z_percentage 0.15 --helical_symmetry_search --helical_twist_min -0.6 --helical_twist_max -1.2 --helical_twist_inistep 0.01 --helical_rise_min 4.65 --helical_rise_max 4.95 --helical_rise_inistep 0.01 --sigma_tilt 2.33333 --sigma_psi 3.33333 --sigma_rot 1.66667 --helical_sigma_distance 1 --helical_keep_tilt_prior_fixed --j 8 --gpu ""  --pipeline_control Refine3D/job093/

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