Newer
Older
Nicolas FERNANDEZ NUÑEZ
committed
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
53
54
55
#!/bin/bash
##### About #####
echo ""
echo "##### ABOUT #####"
echo "-----------------"
echo "Name: Reads Quality Control Pipeline"
echo "Author: Nicolas Fernandez"
echo "Affiliation: IRD_U233_TransVIHMI"
echo "Aim: Reads Quality Control and Cleaning"
echo "Date: 2021.04.30"
echo "Run: snakemake --use-conda -s readsquality_control_pipeline.smk --cores"
echo "Latest modification: 2021.10.05"
echo "Todo: na"
echo "________________________________________________________________________"
###### Hardware check #####
echo ""
echo "##### HARDWARE #####"
echo "--------------------"
physicalcpu=$(sysctl -n hw.physicalcpu) # Get physical cpu
echo "Physical CPU: ${physicalcpu}" # Print physical cpu
logicalcpu=$(sysctl -n hw.logicalcpu) # Get logical cpu
echo "Logical CPU: ${logicalcpu}" # Print logical cpu
hwmemsize=$(sysctl -n hw.memsize) # Get memory size
ramsize=$(expr $hwmemsize / $((1024**3))) # 1024**3 = GB
echo "System Memory: ${ramsize} GB" # Print RAM size
echo "________________________________________________________________________"
###### Working directory
echo ""
echo "##### WORKING DIRECTORY #####"
echo "-----------------------------"
WORKDIR=${0%/*}
echo "CWD: ${WORKDIR}"
echo "________________________________________________________________________"
###### Rename samples, comment first line if you want do keep barcode-ID in name
rename -v 's/_S\d+_/_/' ${WORKDIR}/resources/reads/*.fastq.gz 2> /dev/null # Remove barcode-ID like {_S001_}
rename -v 's/_L\d+_/_/' ${WORKDIR}/resources/reads/*.fastq.gz 2> /dev/null # Remove line-ID ID like {_L001_}
rename -v 's/_\d+.fastq.gz/.fastq.gz/' ${WORKDIR}/resources/reads/*.fastq.gz 2> /dev/null # Remove end-name ID like {_001}.fastq.gz
###### Create links for rax samples
mkdir ${WORKDIR}/results/ ${WORKDIR}/results/reads/ ${WORKDIR}/results/reads/raw/ 2> /dev/null
for FASTQ in ${WORKDIR}/resources/reads/*.fastq.gz ; do ln -s $FASTQ ${WORKDIR}/results/reads/raw/$(basename $FASTQ) 2> /dev/null ; done # Create Symbol links
##### Create dir for QC
mkdir ${WORKDIR}/results/reads/cutadapt/ ${WORKDIR}/results/reads/sickle-trim/ ${WORKDIR}/results/reads/fastq-join/ 2> /dev/null
###### Call snakemake pipeline
snakemake --directory ${WORKDIR} --use-conda --keep-going --rerun-incomplete -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --cores --unlock # unlock first, if previous error
snakemake --directory ${WORKDIR} --use-conda --keep-going --rerun-incomplete -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --cores --dryrun # then dry run, check error like missing file
snakemake --directory ${WORKDIR} --use-conda --keep-going --rerun-incomplete -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --cores # at last, real run
###### Create usefull graphs and summary
Nicolas FERNANDEZ NUÑEZ
committed
mkdir ${WORKDIR}/results/graphs/ 2> /dev/null
snakemake --directory ${WORKDIR} --use-conda -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --dag | dot -Tpdf > ${WORKDIR}/results/graphs/DAGraph.pdf
snakemake --directory ${WORKDIR} --use-conda -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --rulegraph | dot -Tpdf > ${WORKDIR}/results/graphs/RuleGraph.pdf
snakemake --directory ${WORKDIR} --use-conda -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --filegraph | dot -Tpdf > ${WORKDIR}/results/graphs/FileGraph.pdf
snakemake --directory ${WORKDIR} --use-conda -s ${WORKDIR}/workflow/rules/reads_quality_control_pipeline.smk --summary > ${WORKDIR}/results/graphs/Summary.txt