-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWRAPPER_SLURM
executable file
·52 lines (46 loc) · 1.18 KB
/
WRAPPER_SLURM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
#SBATCH --job-name="lcdb-vc-test-data"
#SBATCH --partition="norm"
#SBATCH --time=48:00:00
SNAKEFILE=./Snakefile
if [ -z "$LCDBWF_SNAKEMAKE_PROFILE" ]; then
if [ -z "$SNAKEMAKE_PROFILE" ]; then
# no snakemake profile found
PROFILE_CMD=""
echo "No environment variable SNAKEMAKE_PROFILE or LCDBWF_SNAKE_PROFILE found."
echo "snakemake will run in single job."
else
# generic SNAKEMAKE_PROFILE found
PROFILE_CMD="--profile $SNAKEMAKE_PROFILE"
fi
else
# LCDBWF_SNAKEMAKE_PROFILE found, this takes priority if both profile variables are set
PROFILE_CMD="--profile $LCDBWF_SNAKEMAKE_PROFILE"
fi
# Run snakemake
(
time snakemake \
-p \
-s $SNAKEFILE \
-k \
--directory $PWD \
--restart-times 3 \
--rerun-incomplete \
--jobname "s.{rulename}.{jobid}.sh" \
-j 999 \
--verbose \
--use-conda \
$PROFILE_CMD \
--max-jobs-per-second 1 \
--max-status-checks-per-second 0.01 \
--latency-wait=300 \
"$@" \
) > "${SNAKEFILE}.log" 2>&1
SNAKE_PID=$!
finish(){
echo 'Stopping running snakemake job.'
kill -SIGINT $SNAKE_PID
exit 0
}
trap finish SIGTERM
wait $SNAKE_PID