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 "