Command line interface
After completing the configuration files and placing input data in the correct folders, you can executing simulation of TEFLoN2 :
$ snakemake --configfile config.yaml -s Snakefile -np -j $MAX_JOBS
If all went well, execute TEFLoN2 :
$ snakemake --configfile config.yaml -s Snakefile -p -j $MAX_JOBS
To make TEFLoN2 work, you may need to configure your cluster.
For more information on the launch, go to SnakeMake documentation.
SingularityCE
If tou use TEFLoN2.simg container, completing the configuration files and placing input data in the correct folders, you can executing simulation of TEFLoN2 :
singularity exec TEFLoN2.simg snakemake --configfile config.yaml -s Snakefile -np -j $MAX_JOBS
If all went well, execute TEFLoN2 :
singularity exec TEFLoN2.simg snakemake --configfile config.yaml -s Snakefile -np -j $MAX_JOBS
Cluster
A launch file (submit.sh) is provided, but it is not exhaustive and is specific to the cluster we have used. The workload manager used is SLURM.
#!/bin/bash
#SBATCH --job-name=TEFLoN2_Snakemake # job name (-J)
#SBATCH --cpus-per-task=1 # max nb of cores (-c)
#SBATCH --mem= 2000 # max memory (-m)
#SBATCH --output=/path/tmp/teflon2.%j.out
#SBATCH --error=/path/tmp/teflon2.%j.err
#SBATCH --partition=long
#SBATCH --account=your_project
#SBATCH --mail-type=ALL
#SBATCH --mail-user=your.mail.gmail.com
###Charge module
module purge
module load samtools/1.14
module load repeatmasker/4.1.2.p1
module load python/3.9
module load bwa/
module load snakemake
######################################################################
########################## On ifb-core ###############################
## Uncomment the next line
#module load snakemake
######################################################################
# Using external rules in the main Snakefile (minimal Snakefile)
RULES=Snakefile
ACCOUNT=your_project
# Or with all rules included in one snakemake file:
#RULES=Snakefile.smk
# config file to be edited
CONFIG=config.yaml
# slurm directive by rule (can be edited if needed)
CLUSTER_CONFIG=cluster.yaml
# sbatch directive to pass to snakemake
CLUSTER='sbatch --account=your_project --mem={cluster.mem} -c {cluster.cpus} -o {cluster.output} -e {cluster.error}'
# Maximum number of jobs to be submitted at a time (see cluster limitation)
MAX_JOBS=100
# Full clean up:
#rm -fr .snakemake logs *.out *.html *.log *.pdf
# Clean up only the .snakemake
#rm -fr .snakemake
# Dry run (simulation)
#snakemake --configfile $CONFIG -s $RULES -np -j $MAX_JOBS --cluster-config $CLUSTER_CONFIG --cluster "$CLUSTER"
# Full run (if everething is ok: uncomment it)
snakemake --configfile $CONFIG -s $RULES -p -j $MAX_JOBS --cluster-config $CLUSTER_CONFIG --cluster "$CLUSTER"
# If latency problem add to the run:
# --latency-wait 60
exit 0
To run submit.sh, run :
sbatch submit.sh
For more information on Slurm, go to SLURM documentation.
Log files
After each stage of Snakemake, log and benchmark files are created. To consult you can run:
cat .logs/[name_step]/[name_run].[name_sample].err
cat .logs/[name_step]/[name_run].[name_sample].err
cat .benchmarks/[name_step]/[name_run].[name_sample].benchmark.txt