diff --git a/RunSnake.sh b/RunSnake.sh
index 536c232a3d7650ca889838cdb656fc5422662f1f..77636ab89b812337af962c82341e54b90a365b72 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 6cfddd66ac47e4262c722a72eb6561116786337b..a74736ba252b08a8d46e260453e759d9d29e9e1c 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 4218d09864b3d24ed51cff2c499d5269790b2596..c239dc2edff20c299716e470413e91a58ca79dcf 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 047b13b89845df07f35685255c5fbf29c0afe9ee..5d09261d0e2741e79c4155a6c0b5710411ca8123 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 aca3d4f985b724e5a25b6ffc2fda60a8eba5eedc..346084a41e85b9e3b5a5d0d5856ea637ac6e9b1a 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 "