---
tags: pipeline
---
# nf-core/differentialabundance
## Attendees
Jonathan Manning, Oskar Wacker, Gisela Gabernet, Alexander Peltzer
## General Discussion
* @JonathanManning created a module for differential expression analysis with DESeq2
* Uses template to side-step lack of module bin/ dir, which has side benefits in not requiring a CLI or associated libraries (optparse), allowing direct use of the DESeq2 biocontainer
* Separates plotting functionality. I think that makes the code more maintainable an allows for reuse by non-DESeq code in future (but others may disagree!). - Jon
* There is a qbic/rnadeseq pipeline from qbic which can serve as a starting point
* I'm not precious about the DESeq2 PR if it creates difficulties in porting existing pipeline. - Jon
* I do think modules should be generic though - i.e. make few assumptions about the upstream pipeline. - Jon
## Action points
* Oskar will go through PR from Jonathan
* Oskar will get the qbic pipeline to nf-core now
* Agreed on name:differentialabundance
* Gisela will add the slack channel etc pp
## Workflow concept
```mermaid
flowchart TD
Module{Module} & fileORfolder[fileORfolder] & RobjectFile[[RobjectFile]] & param([param])
```
```mermaid
flowchart TD
CountTable[CountTable.txt] --> Input_FeatureCounts{Input_FeatureCounts}
StarRsemFolder[StarRsemFolder] --> Input_StarRsem{Input_StarRsem}
StarSalmonFolder[StarSalmonFolder] --> Input_StarSalmon{Input_StarSalmon}
Input_FeatureCounts & Input_StarRsem & Input_StarSalmon --- empty1(( )) --> StandardInput[StandardInput]
design[design.txt] & StandardInput & meta[meta.tsv] --- empty2(( )) --> DESeq2{DESeq2}
DESeq2 --- empty3(( )) --> sizeFactors[sizeFactors.tsv] & plotDispEst[plotDispEst.png/pdf/svg] & RSummarizedExp1[[RSummarizedExp1]] & counts[counts]
RSummarizedExp1 & rlog/vst/both([rlog/vst/both]) --- empty4(( ))
empty4 --> Transform{Transform}
empty4 -.-> Plots{Plots*}
Transform --- empty5(( )) --> RSummarizedExp2[[RSummarizedExp2]] & normalizedCounts[normalizedCounts]
RSummarizedExp2 --> BatchCorrect{BatchCorrect}
BatchCorrect --> RSummarizedExp3[[RSummarizedExp3]]
RSummarizedExp3
empty4 & contrastfile[contrastfile.txt] & logFCthreshold([logFCthreshold]) & pvalthreshold([pvalthreshold]) --- empty7(( )) --> Contrast{Contrast}
Contrast --- empty8(( ))
empty8 --> final_table[final_table.tsv] & DE_table_contrast[DE_table_contrast.tsv]
RSummarizedExp3 & otherstuff[otherstuff] & report.rmd[report.rmd] --- empty9(( )) --> WriteReportMakePlots{WriteReportMakePlots}
WriteReportMakePlots --- empty10(( )) --> report.html[report.html] & plots[plots]
```