From be5578e24f854364eeae00fa71a8259e143dffd0 Mon Sep 17 00:00:00 2001
From: Cedric Midoux <cedric.midoux@inra.fr>
Date: Fri, 29 Jan 2021 14:02:02 +0100
Subject: [PATCH] conda migale

---
 RunSnake.sh     |  1 +
 affiliation.smk | 59 ++++++++++++++++++++++++++-----------------------
 global.smk      |  3 +++
 preprocess.smk  | 36 ++++++++++++++++--------------
 quality.smk     |  8 +++++++
 5 files changed, 63 insertions(+), 44 deletions(-)

diff --git a/RunSnake.sh b/RunSnake.sh
index 536c232..77636ab 100755
--- a/RunSnake.sh
+++ b/RunSnake.sh
@@ -11,6 +11,7 @@ snakemake \
 --cluster-config cluster.json \
 --cluster "qsub -V -cwd -N {rule} -o {cluster.out} -e {cluster.err} -q {cluster.queue} -pe thread {threads} {cluster.cluster}" \
 --keep-going \
+--restart-times 5 \
 --jobs 80 \
 --wait-for-files \
 --latency-wait 150 \
diff --git a/affiliation.smk b/affiliation.smk
index 6cfddd6..a74736b 100644
--- a/affiliation.smk
+++ b/affiliation.smk
@@ -1,38 +1,28 @@
-rule blastn:
+rule addAffi:
 	input:
+		biom = "work/dada/dada.biom",
 		fasta = "work/dada/seqtab.fasta"
 	output:
-		blast = "work/BLAST/seqtab.fasta.blast"
+		biom = "work/FROGS/affiliation.biom",
+		html = "work/FROGS/affiliation.html",
+		log = "work/FROGS/affiliation.log"
 	threads:
 		config["THREADS"]
 	params:
 		database = config["DATABASE"]
 	shell:
-		"blastn "
-		"-num_threads {threads} "
-		"-task megablast "
-		"-word_size 38 "
-		"-max_target_seqs 500 "
-		"-outfmt '6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qlen' "
-		"-query {input.fasta} "
-		"-out {output.blast} "
-		"-db {params.database} "
-
-rule addAffi:
-	input:
-		biom = "work/dada/dada.biom",
-		fasta = "work/dada/seqtab.fasta",
-		blast = "work/BLAST/seqtab.fasta.blast"
-	output:
-		biom = "work/FROGS/affiliation.biom"
-	params:
-		database = config["DATABASE"]
-	shell:
-		"addAffiliation2biom.py "
+		"conda activate frogs-3.2.0 "
+		"&& "
+		"affiliation_OTU.py "
+		"--input-fasta {input.fasta} "
+		"--input-biom {input.biom} "
+		"--nb-cpu {threads} "
+		"--log-file {output.log} "
+		"--output-biom {output.biom} "
+		"--summary {output.html} "
 		"--reference {params.database} "
-		"--blast-file {input.blast} "
-		"--biom-in {input.biom} "
-		"--biom-out {output.biom} "
+		"&& "
+		"conda deactivate"
 
 rule stats:
 	input:
@@ -41,10 +31,12 @@ rule stats:
 		html_cluster = "work/FROGS/clusters_metrics.html",
 		html_affiliations = "work/FROGS/affiliations_metrics.html"
 	shell:
+		"conda activate frogs-3.2.0 "
+		"&& "
 		"clusters_stat.py "
 		"--input-biom {input.biom} "
 		"--output-file {output.html_cluster}"
-		" ; "
+		"&& "
 		"affiliations_stat.py "
 		"--input-biom {input.biom} "
 		"--output-file {output.html_affiliations} "
@@ -54,6 +46,8 @@ rule stats:
 		"--tax-consensus-tag blast_taxonomy "
 		"--identity-tag perc_identity "
 		"--coverage-tag perc_query_coverage"
+		"&& "
+		"conda deactivate"
 
 rule tree:
 	input:
@@ -65,12 +59,16 @@ rule tree:
 	threads:
 		config["THREADS"]
 	shell:
-		"/projet/galaxyprod/galaxy/tools/FROGS/app/tree.py "
+		"conda activate frogs-3.2.0 "
+		"&& "
+		"tree.py "
 		"--nb-cpus {threads} "
 		"--input-otu {input.fasta} "
 		"--biomfile {input.biom} "
 		"--html {output.html} "
 		"--out-tree {output.nwk}"
+		"&& "
+		"conda deactivate"
 
 rule stdBIOM:
 	input:
@@ -79,11 +77,16 @@ rule stdBIOM:
 		biom = "work/FROGS/abundance.biom",
 		tsv = "work/FROGS/multihits.tsv"
 	shell:
+		"conda activate frogs-3.2.0 "
+		"&& "
 		"biom_to_stdBiom.py "
 		"--input-biom {input.biom} "
 		"--output-biom {output.biom} "
 		"--output-metadata {output.tsv}"
+		"&& "
+		"conda deactivate"
 
+localrules: copy
 rule copy:
 	input:
 		"work/FROGS/{file}"
diff --git a/global.smk b/global.smk
index 4218d09..c239dc2 100644
--- a/global.smk
+++ b/global.smk
@@ -1,3 +1,6 @@
+shell.executable("/bin/bash")
+shell.prefix("source /usr/local/genome/Anaconda2-5.1.0/etc/profile.d/conda.sh;")
+
 configfile: "./config.json"
 
 SAMPLES=config["SAMPLES"]
diff --git a/preprocess.smk b/preprocess.smk
index 047b13b..5d09261 100644
--- a/preprocess.smk
+++ b/preprocess.smk
@@ -1,20 +1,24 @@
 rule cutadapt:
-    input:
-        "DATA/{sample}.fastq.gz" 
-    output:
-        "work/cutadapt/{sample}.fastq.gz" 
-    params:
-    	five = lambda wildcards: config["FIVE_PRIMER"][wildcards.sample],
-    	three = lambda wildcards: config["THREE_PRIMER"][wildcards.sample]
-    shell:
-        "cutadapt "
-        "-g {params.five} "
-        "-a {params.three} "
-        "--error-rate 0.1 " 
-        "--discard-untrimmed " 
-        "--match-read-wildcards " 
-        "-o {output} " 
-        "{input} "
+	input:
+		"DATA/{sample}.fastq.gz"
+	output:
+		"work/cutadapt/{sample}.fastq.gz"
+	params:
+		five = lambda wildcards: config["FIVE_PRIMER"][wildcards.sample],
+		three = lambda wildcards: config["THREE_PRIMER"][wildcards.sample]
+	shell:
+		"conda activate cutadapt-2.5 "
+		"&& "
+		"cutadapt "
+		"-g {params.five} "
+		"-a {params.three} "
+		"--error-rate 0.1 "
+		"--discard-untrimmed "
+		"--match-read-wildcards "
+		"-o {output} "
+		"{input} "
+		"&& "
+		"conda deactivate"
 
 rule filter:
 	input:
diff --git a/quality.smk b/quality.smk
index aca3d4f..346084a 100644
--- a/quality.smk
+++ b/quality.smk
@@ -7,10 +7,14 @@ rule fastqc:
 	params:
 		output = "work/fastqc/"
 	shell:
+		"conda activate fastqc-0.11.8 "
+		"&& "
 		"fastqc "
 		"{input} "
 		"--noextract "
 		"--outdir {params.output} "
+		"&& "
+		"conda deactivate "
 
 rule multiqc:
 	input:
@@ -20,7 +24,11 @@ rule multiqc:
 	params:
 		output = "report/"
 	shell:
+		"conda activate multiqc-1.8 "
+		"&& "
 		"multiqc "
 		"--no-data-dir "
 		"--outdir {params.output} "
 		"{input} "
+		"&& "
+		"conda deactivate "
-- 
GitLab