From b216d46994c6e614bcdc9366d41926fc0255c55f Mon Sep 17 00:00:00 2001
From: ticlla <monicaroxana.ticllaccenhua@unibas.ch>
Date: Fri, 29 Nov 2019 14:16:43 +0100
Subject: [PATCH] add rules for functional profiling with HUMAnN2 and update
 README accordingly

---
 README.md                   |  35 +++++-
 Snakefile                   |  27 ++++-
 images/HUMAnN2Prof_dag.png  | Bin 0 -> 47304 bytes
 report/MetagenomicSnake.rst |  12 +-
 rules/humann2.smk           | 230 ++++++++++++++++++++++++++++++++++++
 slurm_cluster.json          |  22 +++-
 6 files changed, 310 insertions(+), 16 deletions(-)
 create mode 100644 images/HUMAnN2Prof_dag.png
 create mode 100644 rules/humann2.smk

diff --git a/README.md b/README.md
index b4535b5..56e8b0b 100644
--- a/README.md
+++ b/README.md
@@ -11,24 +11,51 @@ MetaSnk is a reproducible and scalable modularized Snakemake workflow for the an
 MetaSnk wraps system and software dependencies within Singularity containers.
 
 ### Modules:
- - [rawQC](README_rawQC.md)
+ - **[rawQC](README_rawQC.md)**:
+ It runs FastQC on a random sample of R1 reads from the paired fastq-format files.
 
  <div style="text-align:center">
    <img src="./images/rawQC_dag.png"  width="130" height="250" />
  </div>
 
- - [preQC](README_preQC.md)
+ - **[preQC](README_preQC.md)**:
+ FastQC only performs a quality check but no QC processing is done. The **preQC**
+ rule runs a multi-step pre-processing of the paired fastq files, it includes:
+
+   - **trim_adapters**: adapter-trimming with "fastp". Fastp performs a quality check
+     and both paired fastq files are processed as follows:
+
+       + remove adapters: here we provide the Nextera XT adapters,
+       + base correction in overlapped regions
+       + trimming of the last base in read 1
+       + discard reads shorter than a minimum length, after trimming
+       + a report with quality check, before and after processing
+   - **filter_human**: removal of reads derived from human DNA with BBTools' [bbsplit](http://seqanswers.com/forums/showthread.php?t=41288)
+   - **dedupe**: removal of duplicated reads with BBTools' [clumpify](https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/clumpify-guide/)
+   - **trim_3end**: 3\'-end quality trimming with "fastp"
+   - **concatenate_fastqs**: merges fastq files corresponding to the same sample into a single pair of fastq files
+   - **summarize_preQC**: creates summarizing tables and plots
 
  <div style="text-align:center">
    <img src="./images/preQC_dag.png"  width="350" height="500" />
  </div>
 
- - [PhlAnProf](README_phlanprof.md)
+ - **[PhlAnProf](README_phlanprof.md)**:
+ It performs taxonmic and strain-level profiling using MetaPhlAn2 and StrainPhlAn.
+ If pre-processing (preQC) was not performed PhlAnProf will trigger its execution.
 
  <div style="text-align:center">
    <img src="./images/PhlAnProf_dag.png"  width="400" height="800" />
  </div>
 
+ - **HUMAnN2Prof**:
+ It performs gene- and pathway-level functional profiling using HUMAnN2. If pre-processing(preQC)
+ and taxonomic profiling with MetaPhlAn2 was not performed it will trigger their execution.
+
+ <div style="text-align:center">
+   <img src="./images/HUMAnN2Prof_dag.png"  width="300" height="800" />
+ </div>
+
 ### Authors
 
 * Monica R. Ticlla (@mticllacc)
@@ -110,7 +137,7 @@ The singularity image files (.sif) will be stored in $METASNK_DBS/singularity.
 MetaSnK uses reference databases that need to be downloaded to the $METASNK_DBS directory:
 
 <div style="text-align:center">
-  <img src="./images/buildDBS_dag.png"  width="500" height="200" />
+  <img src="./images/buildDBS_dag.png"  width="600" height="200" />
 </div>
 
     snakemake --profile ./profiles/local buildDBS
diff --git a/Snakefile b/Snakefile
index d56cc9b..27daeb2 100644
--- a/Snakefile
+++ b/Snakefile
@@ -100,13 +100,15 @@ localrules:
     buildDBS,
     rawQC,
     preQC,
-    PhlAnProf,
     MetaPhlAn2,
     StrainPhlAn,
+    PhlAnProf,
+    HUMAnN2Prof,
     rawQC_make_report,
     preQC_make_report,
     MetaPhlAn2_make_report,
-    PhlAnProf_make_report
+    PhlAnProf_make_report,
+    HUMAnN2Prof_make_report
 ##----------------------------------------------------------------------------##
 ## Run entire workflow
 ##----------------------------------------------------------------------------##
@@ -162,6 +164,9 @@ rule PhlAnProf:
     input:
         expand(OUT_DIR + '/{dataset}/PhlAnProf/metaphlan/profiles_merged/{dataset}_abundances_sp_heatmap.png', dataset=set(DATASETS)),
         expand(OUT_DIR + '/{dataset}/PhlAnProf/strphlan/{dataset}_clades_profiled.tsv', dataset=set(DATASETS))
+rule HUMAnN2Prof:
+    input:
+        expand(OUT_DIR + '/{dataset}/Humann2/all.done', dataset=set(DATASETS))
 
 ##----------------------------------------------------------------------------##
 ## Rules to make reports
@@ -233,7 +238,25 @@ rule PhlAnProf_make_report:
         --report {params.report_path} \
         -s {params.workflow_dir}/Snakefile PhlAnProf) &>{log}
         '''
+rule HUMAnN2Prof_make_report:
+    output:
+        temp(touch(OUT_DIR+'/logs/humann2prof_make_report.done'))
+    log:
+        OUT_DIR+'/logs/humann2prof_make_report.log'
+    params:
+        report_path = OUT_DIR+'/HUMAnN2Prof_report.html',
+        workdir = workdir_path,
+        workflow_dir = workflow_path
+    shell:
+        '''
+        (snakemake \
+        --directory={params.workdir} \
+        --report {params.report_path} \
+        -s {params.workflow_dir}/Snakefile HUMAnN2Prof) &>{log}
+        '''
+
 include: "rules/setup_rules.smk"
 include: "rules/rawQC.smk"
 include: "rules/preprocess.smk"
 include: "rules/phlanprof.smk"
+include: "rules/humann2.smk"
diff --git a/images/HUMAnN2Prof_dag.png b/images/HUMAnN2Prof_dag.png
new file mode 100644
index 0000000000000000000000000000000000000000..05c02300e88bc8a26b8b1fbe9395be42a2e4aeb6
GIT binary patch
literal 47304
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

literal 0
HcmV?d00001

diff --git a/report/MetagenomicSnake.rst b/report/MetagenomicSnake.rst
index 3418a59..3085000 100644
--- a/report/MetagenomicSnake.rst
+++ b/report/MetagenomicSnake.rst
@@ -1,4 +1,4 @@
-Workflow version 0.2
+Workflow version 0.3
 
 MetaSnk
 ================
@@ -29,10 +29,14 @@ Modules
   - **trim_3end**: 3\'-end quality trimming with "fastp"
   - **concatenate_fastqs**: merges fastq files corresponding to the same sample into a single pair of fastq files
   - **summarize_preQC**: creates summarizing tables and plots
-  
+
 **PhlAnProf**
-    performs taxonmic and strain-level profiling using MetaPhlAn2 and StrainPhlAn. 
+    performs taxonmic and strain-level profiling using MetaPhlAn2 and StrainPhlAn.
     If pre-processing was not performed PhlAnProf will trigger execution of preQC.
-    
+
+**HUMAnN2Prof**
+    performs gene- and pathway-level functional profiling using HUMAnN2. If pre-processing(preQC)
+    and taxonomic profiling with MetaPhlAn2 was not performed it will trigger their execution.
+
 .. _bbsplit: http://seqanswers.com/forums/showthread.php?t=41288
 .. _clumpify: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/clumpify-guide/
diff --git a/rules/humann2.smk b/rules/humann2.smk
new file mode 100644
index 0000000..23c4812
--- /dev/null
+++ b/rules/humann2.smk
@@ -0,0 +1,230 @@
+'''
+Author: Monica R. Ticlla
+Afiliation(s): SIB, SwissTPH, UNIBAS
+Description: rules for functional profiling of paired-end shotgun DNA metagenomic
+sequencing data with HUMAnN2.
+'''
+
+##----------------------------------------------------------------------------##
+## Import modules
+##----------------------------------------------------------------------------##
+
+
+##----------------------------------------------------------------------------##
+## Local rules
+##----------------------------------------------------------------------------##
+localrules:
+    humann2_check
+
+##----------------------------------------------------------------------------##
+## Local variables
+##----------------------------------------------------------------------------##
+singularity_humann = METAPROF_SIF
+
+##----------------------------------------------------------------------------##
+## Helper functions
+##----------------------------------------------------------------------------##
+# def get_first_forward_fastq_in_dataset(wildcards):
+#     FIRST_SAMPLE = DATASETS_SAMPLES_DICT[wildcards.dataset][0]
+#     FASTQ_FWD = '{}/{}/preQC/emerged/{}-R1.fastq.gz'.format(OUT_DIR,
+#                                                             wildcards.dataset,
+#                                                             FIRST_SAMPLE)
+#     return FASTQ_FWD
+#
+# def get_first_rev_fastq_in_dataset(wildcards):
+#     FIRST_SAMPLE = DATASETS_SAMPLES_DICT[wildcards.dataset][0]
+#     FASTQ_REV = '{}/{}/preQC/emerged/{}-R2.fastq.gz'.format(OUT_DIR,
+#                                                             wildcards.dataset,
+#                                                             FIRST_SAMPLE)
+#     return FASTQ_REV
+
+def get_all_samples_genefamilies(wildcards):
+    SAMPLES_W_PROF = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles/{sample}/{sample}_genefamilies.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PROF)
+def get_all_samples_genefamilies_relab(wildcards):
+    SAMPLES_W_PROF_RELAB = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles_norm/{sample}/{sample}_genefamilies_relab.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PROF_RELAB)
+def get_all_samples_genefamilies_cpm(wildcards):
+    SAMPLES_W_PROF_CPM = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles_norm/{sample}/{sample}_genefamilies_cpm.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PROF_CPM)
+
+def get_all_samples_pathabundances(wildcards):
+    SAMPLES_W_PATHABUND = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles/{sample}/{sample}_pathabundance.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PATHABUND)
+def get_all_samples_pathabundances_relab(wildcards):
+    SAMPLES_W_PATHABUND_RELAB = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles_norm/{sample}/{sample}_pathabundance_relab.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PATHABUND_RELAB)
+def get_all_samples_pathabundances_cpm(wildcards):
+    SAMPLES_W_PATHABUND_CPM = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles_norm/{sample}/{sample}_pathabundance_cpm.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PATHABUND_CPM)
+
+def get_all_samples_pathcoverage(wildcards):
+    SAMPLES_W_PATHCOV = DATASETS_SAMPLES_DICT[wildcards.dataset]
+    return expand('{out_dir}/{dataset}/Humann2/profiles/{sample}/{sample}_pathcoverage.tsv',
+                  out_dir=OUT_DIR, dataset=wildcards.dataset, sample=SAMPLES_W_PATHCOV)
+
+
+rule humann2_profiling:
+    input:
+        sample_fwd = OUT_DIR + '/{dataset}/preQC/emerged/{sample}-R1.fastq.gz',
+        sample_rev = OUT_DIR + '/{dataset}/preQC/emerged/{sample}-R2.fastq.gz',
+        metaphlan2_abund = OUT_DIR + '/{dataset}/PhlAnProf/metaphlan/profiles_abund/{sample}.txt'
+        #choco_ixs = OUT_DIR + '/{dataset}/Humann2/choco_custom_ixs/choco_humann2_temp'
+    output:
+        genefamilies = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}_genefamilies.tsv',
+        pathabundances = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}_pathabundance.tsv',
+        pathcoverage = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}_pathcoverage.tsv',
+        sample_log = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}.log'
+    log:
+        OUT_DIR + '/{dataset}/Humann2/logs/profiles/{sample}.log'
+    params:
+        fastq_tmp = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}.fastq.gz',
+        prot_db = METASNK_DB_DIR+'/humann2_databases/uniref',
+        nt_db = METASNK_DB_DIR+'/humann2_databases/chocophlan'
+    threads:cpus_avail
+    singularity:singularity_humann
+    message: 'Running HUMAnN2 on sample {wildcards.sample}'
+    group: 'HUMAnN2_prof_norm'
+    shell:
+        '''
+        (bash -c "source activate humann2 && \
+        cat {input.sample_fwd} {input.sample_rev} >{params.fastq_tmp}; \
+        humann2 \
+        --input {params.fastq_tmp} \
+        --output $(dirname {output.genefamilies}) \
+        --o-log {output.sample_log} \
+        --taxonomic-profile {input.metaphlan2_abund} \
+        --protein-database {params.prot_db} \
+        --nucleotide-database {params.nt_db} \
+        --threads {threads} \
+        --remove-temp-output \
+        --memory-use maximum; \
+        rm {params.fastq_tmp}") &>{log}
+        '''
+rule humann2_normalize:
+    input:
+        genefamilies = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}_genefamilies.tsv',
+        pathabundances = OUT_DIR + '/{dataset}/Humann2/profiles/{sample}/{sample}_pathabundance.tsv'
+    output:
+        genefamilies_relab = OUT_DIR + '/{dataset}/Humann2/profiles_norm/{sample}/{sample}_genefamilies_relab.tsv',
+        genefamilies_cpm = OUT_DIR + '/{dataset}/Humann2/profiles_norm/{sample}/{sample}_genefamilies_cpm.tsv',
+        pathabundances_relab = OUT_DIR + '/{dataset}/Humann2/profiles_norm/{sample}/{sample}_pathabundance_relab.tsv',
+        pathabundances_cpm = OUT_DIR + '/{dataset}/Humann2/profiles_norm/{sample}/{sample}_pathabundance_cpm.tsv',
+    log:
+        OUT_DIR + '/{dataset}/Humann2/logs/profiles_norm/{sample}.log'
+    singularity:singularity_humann
+    message: 'Normalizing HUMAnN2 outputs for sample {wildcards.sample}'
+    group: 'HUMAnN2_prof_norm'
+    shell:
+        '''
+        (bash -c "source activate humann2 && \
+        humann2_renorm_table \
+        --input {input.genefamilies} \
+        --output {output.genefamilies_relab} \
+        --units relab \
+        --update-snames; \
+        humann2_renorm_table \
+        --input {input.genefamilies} \
+        --output {output.genefamilies_cpm} \
+        --units cpm \
+        --update-snames; \
+        humann2_renorm_table \
+        --input {input.pathabundances} \
+        --output {output.pathabundances_relab} \
+        --units relab \
+        --update-snames; \
+        humann2_renorm_table \
+        --input {input.pathabundances} \
+        --output {output.pathabundances_cpm} \
+        --units cpm \
+        --update-snames") &>{log}
+        '''
+rule humann2_merging:
+    input:
+        genefamilies = get_all_samples_genefamilies,
+        genefamilies_relab = get_all_samples_genefamilies_relab,
+        genefamilies_cpm = get_all_samples_genefamilies_cpm,
+        pathabundances = get_all_samples_pathabundances,
+        pathabundances_relab = get_all_samples_pathabundances_relab,
+        pathabundances_cpm = get_all_samples_pathabundances_cpm,
+        pathcoverage = get_all_samples_pathcoverage
+    output:
+        genefamilies_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies.tsv',
+                                     category='HUMAnN2Prof'),
+        genefamilies_relab_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies_relab.tsv',
+                                           category='HUMAnN2Prof'),
+        genefamilies_cpm_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies_cpm.tsv',
+                                         category='HUMAnN2Prof'),
+        pathabund_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance.tsv',
+                                  category='HUMAnN2Prof'),
+        pathabund_relab_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance_relab.tsv',
+                                        category='HUMAnN2Prof'),
+        pathabund_cpm_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance_cpm.tsv',
+                                      category='HUMAnN2Prof'),
+        pathcov_merged = report(OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathcoverage.tsv',
+                                category='HUMAnN2Prof')
+    log:
+        OUT_DIR + '/{dataset}/Humann2/logs/humann2_merging.log'
+    singularity:singularity_humann
+    message: 'Joining HUMAnN2 outputs for dataset {wildcards.dataset}'
+    shell:
+        '''
+        (bash -c "source activate humann2 && \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.genefamilies[0]})) \
+        --output {output.genefamilies_merged} \
+        --file_name genefamilies \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.genefamilies_relab[0]})) \
+        --output {output.genefamilies_relab_merged} \
+        --file_name genefamilies_relab \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.genefamilies_cpm[0]})) \
+        --output {output.genefamilies_cpm_merged} \
+        --file_name genefamilies_cpm \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.pathabundances[0]})) \
+        --output {output.pathabund_merged} \
+        --file_name pathabundance \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.pathabundances_relab[0]})) \
+        --output {output.pathabund_relab_merged} \
+        --file_name pathabundance_relab \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.pathabundances_cpm[0]})) \
+        --output {output.pathabund_cpm_merged} \
+        --file_name pathabundance_cpm \
+        --search-subdirectories; \
+        humann2_join_tables \
+        --input $(dirname $(dirname {input.pathcoverage[0]})) \
+        --output {output.pathcov_merged} \
+        --file_name pathcoverage \
+        --search-subdirectories") &>{log}
+        '''
+rule humann2_check:
+    input:
+        genefamilies_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies.tsv',
+        genefamilies_relab_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies_relab.tsv',
+        genefamilies_cpm_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_genefamilies_cpm.tsv',
+        pathabund_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance.tsv',
+        pathabund_relab_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance_relab.tsv',
+        pathabund_cpm_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathabundance_cpm.tsv',
+        pathcov_merged = OUT_DIR + '/{dataset}/Humann2/profiles_merged/{dataset}_pathcoverage.tsv'
+    output:
+        check = OUT_DIR + '/{dataset}/Humann2/all.done'
+    shell:
+        '''
+        touch {output.check}
+        '''
+#rule humann2_renaming:
diff --git a/slurm_cluster.json b/slurm_cluster.json
index 310796a..dfd3be2 100644
--- a/slurm_cluster.json
+++ b/slurm_cluster.json
@@ -1,7 +1,7 @@
 {
     "__default__":{
         "nodes":1,
-        "ntasks":4,
+        "ntasks":1,
         "time":"30",
         "mem" : 8000,
         "qos":"30min"
@@ -41,7 +41,7 @@
     },
     "metaphlan2_profile":{
       "nodes":1,
-      "time":"120",
+      "time":"240",
       "ntasks":20,
       "qos":"6hours",
       "mem":32000
@@ -58,14 +58,24 @@
     },
     "strphlan_clades_detection":{
       "time":"120",
-      "ntasks":20,
-      "mem":32000,
+      "cpus_per_task":20,
+      "mem":64000,
       "qos":"6hours"
     },
     "strphlan_clade_analysis":{
-      "time":"120",
-      "ntasks":20,
+      "time":"359",
+      "cpus_per_task":20,
+      "mem":64000,
+      "qos":"6hours"
+    },
+    "HUMAnN2_prof_norm":{
+      "time":"359",
+      "cpus_per_task":20,
       "mem":32000,
       "qos":"6hours"
+    },
+    "humann2_merging":{
+      "nodes":1,
+      "cpus_per_task":2
     }
 }
-- 
GitLab