From 54dacb9a7c2414eddb53701c778202126442fb22 Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Thu, 17 Oct 2024 16:13:05 +0200
Subject: [PATCH 1/9] Change email fields to coherent with AViTi data

	Ref: #114
---
 assets/begin_template.txt       | 2 +-
 assets/final_email_template.txt | 2 +-
 conf/functions.config           | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/assets/begin_template.txt b/assets/begin_template.txt
index 69415f3..719c716 100644
--- a/assets/begin_template.txt
+++ b/assets/begin_template.txt
@@ -1,7 +1,7 @@
 ----------------------------------------------------------------------------------
 ==================================================
 ------------------------------- get-nf workflow ----------------------------
-	          I L L U M I N A - N F   P I P E L I N E    
+	        S H O R T  R E A D S  - N F   P I P E L I N E    
      			      V$version
 ==================================================
 ----------------------------------------------------------------------------------
diff --git a/assets/final_email_template.txt b/assets/final_email_template.txt
index f31632f..1edfcc2 100644
--- a/assets/final_email_template.txt
+++ b/assets/final_email_template.txt
@@ -1,7 +1,7 @@
 ----------------------------------------------------------------------------------
 ==================================================
 ------------------------------- get-nf workflow ----------------------------
-	         I L L U M I N A - N F   P I P E L I N E    
+	         S H O R T  R E A D S  - N F   P I P E L I N E    
      			    V$version
 ==================================================
 ----------------------------------------------------------------------------------
diff --git a/conf/functions.config b/conf/functions.config
index 7c8b722..67f0543 100644
--- a/conf/functions.config
+++ b/conf/functions.config
@@ -103,7 +103,7 @@ def sendBeginMail(formatted_date) {
     def pipeline_project = pipeline_info[1]
     def pipeline_techno = pipeline_project.split('-')[1]
 
-    def begin_subject = "[" + pipeline_techno + "] [" + pipeline_group + "] " + params.inputdir.split('/')[-1]
+    def begin_subject = "[" + params.sequencer + "] [" + pipeline_group + "] " + params.inputdir.split('/')[-1]
     def begin_email_fields = [:]
     begin_email_fields['version'] = workflow.manifest.version
     begin_email_fields['wfRunName'] = workflow.runName
@@ -140,7 +140,7 @@ def sendFinalMail(formatted_date, summary) {
     def pipeline_project = pipeline_info[1]
     def pipeline_techno = pipeline_project.split('-')[1]
 
-    def subject = "[" + pipeline_techno + "] [" + pipeline_group + "] " + params.inputdir.split('/')[-1]
+    def subject = "[" + params.sequencer + "] [" + pipeline_group + "] " + params.inputdir.split('/')[-1]
     if (workflow.success) {
         subject += " : Successful"
     } else {
-- 
GitLab


From 9e2e7ba05b903e988d49b173d96d45099d9278c4 Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Thu, 17 Oct 2024 16:14:43 +0200
Subject: [PATCH 2/9] Resource factor are now correct in cas of simplex
 sequencing

	And deals with subset with AViTi data

	Ref: #113
---
 nextflow.config | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/nextflow.config b/nextflow.config
index 1a5d1b7..a736cab 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -31,6 +31,7 @@ params {
 	large_sampling_threshold = 200							// 200 samples run is high multiplexed
 	miseq_subset_seq = "50000"								// in reads must be a string
 	nova_subset_seq = "50000000"							// in reads 
+	aviti_subset_seq = "50000000"							// in reads 
 	large_indexing_nova_subset_seq = "500000"				// in reads
 	coverage = 0											// coverage in X
 	len_r1 = 150
@@ -112,7 +113,8 @@ def n_read_files = Files.walk(Paths.get(params.inputdir.toString()), 3)
 // on retire les 2 fichiers undetermined
 def n_samples = ( n_read_files - 2 ) / 2 	
 System.out.println "\nNombre d'échantillons trouvés sur cette lane : $n_samples"
-params.resource_factor = java.lang.Math.round(0.1 * n_samples)
+def factor = java.lang.Math.round(0.1 * n_samples)
+params.resource_factor =  factor > 1 ? factor : 1
 
 import java.text.SimpleDateFormat
 SimpleDateFormat uniqueness_format = new SimpleDateFormat("yyyyMMddHHmmss")
@@ -125,12 +127,15 @@ params {
 	outdir = inputdir + "/nextflow/" + run_name + "/" + outdir_prefix + "_" + nf_uniqueness
 
 	subset_seq = miseq_subset_seq	
-	if ( sequencer =~ /NovaSeq.*/ ) {
+	if ( sequencer =~ /NovaSeq.*/ || sequencer =~ /AVITI.*/ ) {
 		if ( n_samples >= large_sampling_threshold ) {
 			nova_subset_seq = large_indexing_nova_subset_seq
 		}
 		subset_seq = nova_subset_seq
 	}
+	if ( DTM_mode ) {
+		subset_seq = "1000000000"
+	}
 }
 
 // ========================================
-- 
GitLab


From 83d0333bd4d11fefbc50bc2b968930976a74961c Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Thu, 17 Oct 2024 16:19:22 +0200
Subject: [PATCH 3/9] Detect Amplicon data_nature

---
 workflow/short_reads_qc.nf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/workflow/short_reads_qc.nf b/workflow/short_reads_qc.nf
index f393c3d..79115bb 100644
--- a/workflow/short_reads_qc.nf
+++ b/workflow/short_reads_qc.nf
@@ -182,7 +182,7 @@ workflow SHORT_READS_QC {
 		)
 		ch_versions = ch_versions.mix(RNA_QC.out.versions)
 
-	} else if (params.data_nature =~ "16S|Amplicon|METAGENOMIC|METATRANSCRIPTOMIC") {
+	} else if (params.data_nature =~ "16S|AMPLICON|METAGENOMIC|METATRANSCRIPTOMIC") {
 		DIVERSITY_QC(fastq
 			.collect{it[1]}
 			.flatten()
-- 
GitLab


From 9872e44f1e3075c3364f81046c3ffd0810139ee3 Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Fri, 18 Oct 2024 13:57:58 +0200
Subject: [PATCH 4/9] AllOther Undetermined sequences have the rigth amount

	Ref: #115
---
 bin/demuxStatsFromXML.R | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/bin/demuxStatsFromXML.R b/bin/demuxStatsFromXML.R
index 3c5c1ff..b526179 100755
--- a/bin/demuxStatsFromXML.R
+++ b/bin/demuxStatsFromXML.R
@@ -178,7 +178,7 @@ tabDemuxSum<-read.table(opt$demuxSum, skip=linesToSkip, col.names=c("Index", "Co
 
 tabUndetermined<-tabDemuxSum[which(tabDemuxSum$Count >= bcCount.threshold),]
 
-cat("\tRésumé des inforamtions extraites :\n")
+cat("\tRésumé des informations extraites :\n")
 cat(paste0("\tNombre d'index indéterminés retrouvés :\t", dim(tabUndetermined)[1], "\n"))
 if(nrow(tabUndetermined) > 0) { head(tabUndetermined) }
 
@@ -194,7 +194,6 @@ if (dim(tabUndetermined)[1] != 0) {
 		df.tabUndetermined.tmp<-data.frame("default", "Undetermined", tabUndetermined[i, "Index"], tabUndetermined[i, "Count"], NA, NA)
 		df.tabUndetermined<-concat_df(df.tabUndetermined, df.tabUndetermined.tmp, vec.names)
 	}
-	
 	df2<-concat_df(df2, df.tabUndetermined, vec.names)
 	cat("\tLes index indéterminés ont été ajouté au data.table.\n")
 } else {
@@ -207,7 +206,7 @@ cat("\nQuelques calculs sur les données avant de les exporter.\n")
 cat("\tActualisation du nombre d'index 'AllOthers'.\n")
 undertermined.count<-sum(as.numeric(tabUndetermined[,"Count"]))
 df2[which(df2$Barcode == "unknown"), "bcCount"]<-as.numeric(df2[which(df2$Barcode == "unknown"), "bcCount"])-undertermined.count
-
+df2[which(df2$Barcode == "unknown"), "bcPerfect"]<-0	# C'est la somme de tous les undermined récupéré depuis le XML
 # Calcul pourcentages de chaque barcode
 cat("\tCalcul du pourcentage sur le nombre de fragments total.\n")
 totalOfFragments<-sum(as.numeric(df2$bcCount))
-- 
GitLab


From 04fca066a7f41a6702c7cdca05a74da005284e7d Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Fri, 18 Oct 2024 14:02:43 +0200
Subject: [PATCH 5/9] Emit versions channels in DNA module

	Ref: #116
---
 modules/local/module_dna.nf | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/local/module_dna.nf b/modules/local/module_dna.nf
index 66fc4e2..7355e77 100644
--- a/modules/local/module_dna.nf
+++ b/modules/local/module_dna.nf
@@ -13,7 +13,7 @@ process BWA_ALIGNMENT {
 	output:
 		tuple val(sample), path("*.log"), emit: log
 		tuple val(sample), path("*.sam"), emit: sam
-		path("versions.yml"), versions
+		path("versions.yml"), emit: versions
 		
 	script:
 	def reference = params.reference_genome ?: params.reference_transcriptome
@@ -38,7 +38,7 @@ process SAMTOOLS_VIEW {
 		
 	output:
 		tuple val(sample), path("*.bam"), emit: bam
-		path("versions.yml"), versions
+		path("versions.yml"), emit: versions
 		
 	script:
 	def analyse_type = task.ext.analyse_type ?: params.default_label
@@ -63,7 +63,7 @@ process SAMTOOLS_SORT {
 	output:
 		tuple val(sample), path("*.log"), emit: log
 		tuple val(sample), path("*.bam"), emit: bam
-		path("versions.yml"), versions
+		path("versions.yml"), emit: versions
 		//path("*.bam"), emit: bam
 
 	script:	// Pourquoi unmerged ??? https://forgemia.inra.fr/genotoul-bioinfo/ng6/-/blob/master/workflows/components/bwa.py#L97
@@ -89,7 +89,7 @@ process SAMTOOLS_FLAGSTATS {
 	output:
 		tuple val(sample), path("*.log"), emit: log
 		tuple val(sample), path("*.txt"), emit: txt
-		path("versions.yml"), versions
+		path("versions.yml"), emit: versions
 
 	script:
 	def analyse_type = task.ext.analyse_type ?: params.default_label
-- 
GitLab


From 6465b1cba0890d39c75dc23c185e7e68df616b88 Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Fri, 18 Oct 2024 14:56:34 +0200
Subject: [PATCH 6/9] elembio demultiplexStat run correctly

	Ref: #112
---
 bin/demuxStatsElement.R              | 16 +++++++++-------
 modules/local/module_core_element.nf |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/bin/demuxStatsElement.R b/bin/demuxStatsElement.R
index 7e25e17..c622209 100755
--- a/bin/demuxStatsElement.R
+++ b/bin/demuxStatsElement.R
@@ -60,7 +60,7 @@ unassigned <- opt$unassigned
 runManifestJson <- opt$runManifest
 lane <- opt$lane
 threshold <- opt$threshold
-demultiplexStat <- paste0(launchDir,"/demultiplexStat.csv")
+demultiplexStat <- paste0(launchDir,"/demultiplexStat_", lane,".csv")
 demultiplex_stat <- data.frame(
     Project = character(),
     Sample = character(),
@@ -88,8 +88,7 @@ for (i in 1:nrow(assigned_filtered)) {
     sample <- assigned_filtered[i, 2]
     bc1 <- assigned_filtered[i, 3]
     bc2 <- assigned_filtered[i, 4]
-    bcCount <- assigned_filtered[i, 5]
-    perc <- assigned_filtered[i, 6]
+    bcCount <- assigned_filtered[i, 5]*2
   
     project <- run_manifest$Samples %>%
         filter(SampleName == sample) %>%
@@ -100,7 +99,7 @@ for (i in 1:nrow(assigned_filtered)) {
         Sample = sample,
         Barcode = paste(bc1, bc2, sep = "-"),
         bcCount = bcCount,
-        percOfFrag = perc,
+        percOfFrag = NA,
         stringsAsFactors = FALSE
     )
 
@@ -118,8 +117,7 @@ for (i in 1:nrow(unassigned_filtered)) {
     sample <- "Undetermined"
     bc1 <- unassigned_filtered[i, 1]
     bc2 <- unassigned_filtered[i, 2]
-    bcCount <- unassigned_filtered[i, 4]
-    perc <- unassigned_filtered[i, 3]
+    bcCount <- unassigned_filtered[i, 4]*2
   
     project <- "DefaultProject"
   
@@ -128,7 +126,7 @@ for (i in 1:nrow(unassigned_filtered)) {
         Sample = sample,
         Barcode = paste(bc1, bc2, sep = "-"),
         bcCount = bcCount,
-        percOfFrag = perc,
+        percOfFrag = NA,
         stringsAsFactors = FALSE
     )
 
@@ -138,6 +136,10 @@ for (i in 1:nrow(unassigned_filtered)) {
 }
 cat("\n")
 
+# Calcul perfOfFrag
+totalFrag <- sum(demultiplex_stat$bcCount)
+demultiplex_stat$percOfFrag <- (100 * demultiplex_stat$bcCount) / totalFrag
+
 # Filtrer les lignes selon le seuil de bcCount
 initial_nrow <- nrow(demultiplex_stat)
 demultiplex_stat <- demultiplex_stat %>%
diff --git a/modules/local/module_core_element.nf b/modules/local/module_core_element.nf
index c1e26a2..a8ff5da 100644
--- a/modules/local/module_core_element.nf
+++ b/modules/local/module_core_element.nf
@@ -12,7 +12,7 @@ process DEMUX_STATS {
         path unassigned
 	
 	output:
-		path "demultiplexStat.csv", emit: csv
+		path "demultiplexStat_*.csv", emit: csv
 	
 	script:
     def threshold = task.ext.threshold ?: ''
-- 
GitLab


From 6f02b72898668665c08e7f4d95bee9513237b98e Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Mon, 21 Oct 2024 14:44:24 +0200
Subject: [PATCH 7/9] Move every NGL process into new subworkflow

	- Better ergonomy
	- Better readability of procvess names

	Ref: #117
---
 conf/base.config                     |  8 ++-
 sub-workflows/local/core_element.nf  | 21 ++-----
 sub-workflows/local/core_illumina.nf | 12 ----
 sub-workflows/local/ngl.nf           | 82 ++++++++++++++++++++++++++++
 workflow/short_reads_qc.nf           | 73 ++++++++++++-------------
 5 files changed, 128 insertions(+), 68 deletions(-)
 create mode 100644 sub-workflows/local/ngl.nf

diff --git a/conf/base.config b/conf/base.config
index 965385f..49d7135 100644
--- a/conf/base.config
+++ b/conf/base.config
@@ -255,6 +255,12 @@ process {
 //			   SHARED MODULES
 //=========================================
 process {
+	withName: CREATE_ANALYSIS {
+		def techno = params.sequencer =~ "MiSeq|NovaSeq" ? 'illumina' : params.sequencer =~ "AVITI" ? 'elembio' : 'other'
+		ext.args = "--techno $techno "
+		ext.args += params.project_hash ? "--projectDir '${params.project}-${params.project_hash}'" : ''
+	}
+
 	withName: CREATE_READSETS {
 		ext.args = [
 			params.run_name ? "--poolName '${params.run_name}'" : '',
@@ -262,7 +268,7 @@ process {
 		].join(' ')
 	}
 
-	withName: TREATMENT_DEMUX_RUN {
+	withName: ILLUMINA_TREATMENT_DEMUX_RUN {
 		ext.args = [
 			"--lane '${params.lane}'",
 		].join(' ')
diff --git a/sub-workflows/local/core_element.nf b/sub-workflows/local/core_element.nf
index 6207685..9cb970d 100644
--- a/sub-workflows/local/core_element.nf
+++ b/sub-workflows/local/core_element.nf
@@ -12,11 +12,6 @@ include {
 	DEMUX_STATS
 } from "$baseDir/modules/local/module_core_element.nf"
 
-include {	
-	TREATMENT_DEMUXSTAT_ELEMENT as TREATMENT_DEMUX_RUN;
-	TREATMENT_DEMUXSTAT_ELEMENT as TREATMENT_DEMUX_READSETS;
-} from "$baseDir/modules/local/module_NGL-Bi.nf"
-
 // -------------------------------------------------
 // 					LOCAL PARAMS
 // -------------------------------------------------
@@ -27,21 +22,15 @@ include {
 // -------------------------------------------------
 
 workflow CORE_ELEMENT {
-   take:
-        runManifestJson
-        assigned
-        unassigned
-        nglBiRunCode
-		readsetsFile
+  take:
+    runManifestJson
+    assigned
+    unassigned
 		
 	main:		
 		// ----------- DemultiplexStat
 		DEMUX_STATS(runManifestJson, assigned, unassigned)
 
-		// ----------- NGL-Bi
-		TREATMENT_DEMUX_RUN(nglBiRunCode, DEMUX_STATS.out.csv)
-		TREATMENT_DEMUX_READSETS(readsetsFile, DEMUX_STATS.out.csv)
-
-    emit:
+  emit:
 		demuxStat = DEMUX_STATS.out.csv
 }
\ No newline at end of file
diff --git a/sub-workflows/local/core_illumina.nf b/sub-workflows/local/core_illumina.nf
index bb1c476..4fd8542 100644
--- a/sub-workflows/local/core_illumina.nf
+++ b/sub-workflows/local/core_illumina.nf
@@ -15,10 +15,6 @@ include {
 	ILLUMINA_FILTER;
 } from "$baseDir/modules/local/module_core.nf"
 
-include {	
-	TREATMENT_DEMUXSTAT_ILLUMINA as TREATMENT_DEMUX_RUN;
-	TREATMENT_DEMUXSTAT_ILLUMINA as TREATMENT_DEMUX_READSETS;
-} from "$baseDir/modules/local/module_NGL-Bi.nf"
 
 // -------------------------------------------------
 // 					LOCAL PARAMS
@@ -35,8 +31,6 @@ workflow CORE_ILLUMINA {
 		demuxStatXML
 		demuxSummary
 		fastq
-		nglBiRunCode
-		readsetsFile
 		
 	main:		
 		ch_versions = Channel.empty()
@@ -55,12 +49,6 @@ workflow CORE_ILLUMINA {
 			ch_versions = ch_versions.mix(ILLUMINA_FILTER.out.versions)
 		}
 
-		if (params.insert_to_ngl){
-			// Add demultiplexStat treatments
-			TREATMENT_DEMUX_RUN(nglBiRunCode, DEMUX_STATS.out.demultiplexStatsTSV, params.lane)
-			TREATMENT_DEMUX_READSETS(readsetsFile, DEMUX_STATS.out.demultiplexStatsTSV, '')
-		}
-
     emit:
         fastq = fastq_good
 		demuxStat = DEMUX_STATS.out.demultiplexStatsTSV
diff --git a/sub-workflows/local/ngl.nf b/sub-workflows/local/ngl.nf
new file mode 100644
index 0000000..d5102d5
--- /dev/null
+++ b/sub-workflows/local/ngl.nf
@@ -0,0 +1,82 @@
+// -------------------------------------------------
+// 					NGL
+// -------------------------------------------------
+/*
+ * Tout process en lien avec NGL (Bi ou SQ)
+ * 		
+ * 		
+*/
+
+// -------------------------------------------------
+// 					MODULES
+// -------------------------------------------------
+include {	BEGIN_NGLBI as BEGIN							} from "${params.shared_modules}/workflows/begin_nglbi.nf"
+include {	COPY_TO_SAVE									} from "${params.shared_modules}/workflows/copy_to_save.nf"
+include { 	MD5SUM as MD5SUM_FASTQ;
+			md5sum as MD5SUM_INDEX							} from "${params.shared_modules}/md5sum.nf"
+include {	READSET_FILE_FROM_FILE as ADD_RS_INDEX_FILES	} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'INDEX')
+include {	READSET_FILE_FROM_FILE as ADD_RS_RAW_FILES		} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'RAW')
+include {	UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_FQC;
+			CREATE_ANALYSIS									} from "${params.shared_modules}/ngl_bi.nf"
+
+include {	FILE_RENAME as RENAME_FASTQ;
+			FILE_RENAME as RENAME_INDEX						} from "$baseDir/modules/local/module_NGL-Bi.nf"
+// -------------------------------------------------
+// 					WORKFLOW
+// -------------------------------------------------
+workflow NGL {
+	take:
+		sequencer_name
+		run_name
+		bi_run_code
+		sq_xp_code
+		fastq
+		index_files
+		multiqc_html
+		project
+		project_hash
+		is_single_cell
+
+	main:
+		// First steps
+		BEGIN(bi_run_code, sq_xp_code, '', sequencer_name)
+
+		nglBiRunCode = BEGIN.out.nglBiRunCode
+		readsets_created = BEGIN.out.readsets_created
+		ready = BEGIN.out.ready
+		
+		bi_run_code = nglBiRunCode.collect().map { it.toString() }
+
+		// Compute results
+		if (is_single_cell) {
+			RENAME_INDEX(index_files.map{it[1]}.collect(), readsets_created, sq_xp_code, 'fastq_index')
+			MD5SUM_INDEX(RENAME_INDEX.out.fastq.collect(), run_name+'_fastq_index')
+			ADD_RS_INDEX_FILES(readsets_created, MD5SUM_INDEX.out, 'INDEX', ready)
+		}
+
+		RENAME_FASTQ(fastq.map{it[1]}.collect(), readsets_created, sq_xp_code, 'fastq_read')
+		fq = RENAME_FASTQ.out.fastq
+			.flatMap()
+			.map { it -> [[type: 'fastq', barcode:run_name], it]}
+			
+		MD5SUM_FASTQ(fq.groupTuple())
+		
+		ADD_RS_RAW_FILES(readsets_created, MD5SUM_FASTQ.out.md5sum.map{it -> it[1]}, 'RAW', ready)
+		UPDATE_STATE_FQC(readsets_created, 'F-QC', multiqc_html)
+		techno = sequencer_name =~ "MiSeq|NovaSeq" ? 'illumina' : sequencer_name =~ "AVITI" ? 'elembio' : 'other'
+		COPY_TO_SAVE(
+			nglBiRunCode,
+			readsets_created,
+			multiqc_html.map{it -> [[type:'report'], it]},
+			project,
+			project_hash,
+			fq,
+			MD5SUM_FASTQ.out.md5sum,
+			techno
+		)
+
+	emit:
+		run_code = BEGIN.out.nglBiRunCode?: Channel.empty()
+		readsets_file = BEGIN.out.readsets_created?: Channel.empty()
+		ready = BEGIN.out.ready?: Channel.empty()
+}
\ No newline at end of file
diff --git a/workflow/short_reads_qc.nf b/workflow/short_reads_qc.nf
index 79115bb..db97c09 100644
--- a/workflow/short_reads_qc.nf
+++ b/workflow/short_reads_qc.nf
@@ -97,6 +97,11 @@ include {	DNA_QC		} from "$baseDir/sub-workflows/local/dna_qc.nf"
 include {	RNA_QC		} from "$baseDir/sub-workflows/local/rna_qc.nf"
 include {	DIVERSITY_QC	} from "$baseDir/sub-workflows/local/diversity_qc.nf"
 include { 	PARSE_REPORTS } from "$baseDir/modules/local/module_DTM.nf"
+include {	TREATMENT_DEMUXSTAT_ILLUMINA as ILLUMINA_TREATMENT_DEMUX_RUN;
+			TREATMENT_DEMUXSTAT_ILLUMINA as ILLUMINA_TREATMENT_DEMUX_READSETS;
+			// TREATMENT_DEMUXSTAT_ELEMENT as ELEMBIO_TREATMENT_DEMUX_RUN;
+			// TREATMENT_DEMUXSTAT_ELEMENT as ELEMBIO_TREATMENT_DEMUX_READSETS;
+							} from "$baseDir/modules/local/module_NGL-Bi.nf"
 include {	FILE_RENAME as RENAME_FASTQ;
 			FILE_RENAME as RENAME_INDEX;
 						} from "$baseDir/modules/local/module_NGL-Bi.nf"
@@ -107,11 +112,13 @@ include {	UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_FQC;
 			CREATE_ANALYSIS;	} from "${params.shared_modules}/ngl_bi.nf"
 include {	READSET_FILE_FROM_FILE as ADD_RS_INDEX_FILES	} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'INDEX')
 include {	READSET_FILE_FROM_FILE as ADD_RS_RAW_FILES		} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'RAW')
-include { 	md5sum as MD5SUM_FASTQ;
+include { 	MD5SUM as MD5SUM_FASTQ;
 			md5sum as MD5SUM_INDEX;
 						} from "${params.shared_modules}/md5sum.nf"
 include {	BEGIN_NGLBI as NGLBI						} from "${params.shared_modules}/workflows/begin_nglbi.nf"
+include {	COPY_TO_SAVE								} from "${params.shared_modules}/workflows/copy_to_save.nf"
 include {	TREATMENT_MULTIQC as ADD_MULTIQC			} from "${params.shared_modules}/ngl_bi_treatments.nf"
+include {	NGL											} from "$baseDir/sub-workflows/local/ngl.nf"
 
 // -------------------------------------------------
 // 					 EMAIL ON START
@@ -129,26 +136,20 @@ workflow SHORT_READS_QC {
 
 	WORKFLOW_SUMMARY()
 
-	if (params.insert_to_ngl){
-		NGLBI(params.bi_run_code, params.sq_xp_code, '', params.sequencer)
-		nglBiRunCode = NGLBI.out.nglBiRunCode
-		readsets_created = NGLBI.out.readsets_created
-		ready = NGLBI.out.ready
-	} else {
-		nglBiRunCode = Channel.empty()
-		readsets_created = Channel.empty()
-		ready = Channel.empty()
-	}
-
 	if (! params.skip_core_illumina && params.sequencer =~ "NovaSeq|MiSeq" ) {
-		CORE_ILLUMINA(ch_ss, ch_DemuxStatXML, ch_DemuxSummary, ch_read, nglBiRunCode, readsets_created)
+		CORE_ILLUMINA(ch_ss, ch_DemuxStatXML, ch_DemuxSummary, ch_read)
 		fastq = CORE_ILLUMINA.out.fastq
 		ch_versions = ch_versions.mix(CORE_ILLUMINA.out.versions)
+		illumina_demux_stats = CORE_ILLUMINA.out.demuxStat
 	} else {
 		fastq = ch_read
+		illumina_demux_stats = channel.empty()
 	}
 	if (! params.skip_core_element && params.sequencer =~ "AVITI") {
-		CORE_ELEMENT(ch_runManifestJSON, ch_indexAssigned, ch_indexUnassigned, nglBiRunCode, readsets_created)		
+		CORE_ELEMENT(ch_runManifestJSON, ch_indexAssigned, ch_indexUnassigned)
+		elembio_demux_stats = CORE_ELEMENT.out.demuxStat
+	} else {
+		elembio_demux_stats = Channel.empty()
 	}
 
 	CORE(fastq)
@@ -220,32 +221,26 @@ workflow SHORT_READS_QC {
 	)
 
 	if (params.insert_to_ngl){
-		if (params.single_cell) {
-			RENAME_INDEX(ch_index.map{it[1]}.collect(), readsets_created, params.sq_xp_code, 'fastq_index')
-			MD5SUM_INDEX(RENAME_INDEX.out.fastq.collect(), params.run_name+'_fastq_index')
-			ADD_RS_INDEX_FILES(readsets_created, MD5SUM_INDEX.out, 'INDEX', ready)
-		}
-		RENAME_FASTQ(fastq.map{it[1]}.collect(), readsets_created, params.sq_xp_code, 'fastq_read')
-		MD5SUM_FASTQ(RENAME_FASTQ.out.fastq.collect(), params.run_name+'_fastq_read')
-		ADD_RS_RAW_FILES(readsets_created, MD5SUM_FASTQ.out, 'RAW', ready)
-		UPDATE_STATE_FQC(readsets_created, 'F-QC', MULTIQC.out.html)
-		CREATE_ANALYSIS(nglBiRunCode, readsets_created, 1)
-		ADD_MULTIQC(CREATE_ANALYSIS.out.createdFile, MULTIQC.out.html, CREATE_ANALYSIS.out.ready)
-	}
-
-	/*
-		if overlap, alors :
-			diversity_qc sub-workflow
-
-		else :
-			if DNA, alors :
-				dna_qc sub-worflow
-			if RNA, alors :
-				rna_qc sub-workflow
-			if Methyl, alors :
-				methyl_qc sub-worflow
-	*/
+		NGL(
+			params.sequencer,
+			params.run_name,
+			params.bi_run_code,
+			params.sq_xp_code,
+			fastq,
+			ch_index,
+			MULTIQC.out.html,
+			params.project,
+			params.project_hash,
+			params.single_cell
+		)
 
+		// Add demultiplexStat treatments
+		ILLUMINA_TREATMENT_DEMUX_RUN(NGL.out.run_code, illumina_demux_stats, params.lane)
+		ILLUMINA_TREATMENT_DEMUX_READSETS(NGL.out.readsets_file, illumina_demux_stats, '')
+		
+		// ELEMBIO_TREATMENT_DEMUX_RUN(NGL.out.run_code, elembio_demux_stats)
+		// ELEMBIO_TREATMENT_DEMUX_READSETS(NGL.out.readsets_file, elembio_demux_stats)
+	}
 }
 
 // -------------------------------------------------
-- 
GitLab


From 0f17db5d97a198cc54a7a362dd5fab02f885ee84 Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Mon, 21 Oct 2024 14:49:57 +0200
Subject: [PATCH 8/9] Remove old includes related with NGL

	Ref: #117
---
 workflow/short_reads_qc.nf | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/workflow/short_reads_qc.nf b/workflow/short_reads_qc.nf
index db97c09..5031ac2 100644
--- a/workflow/short_reads_qc.nf
+++ b/workflow/short_reads_qc.nf
@@ -97,28 +97,16 @@ include {	DNA_QC		} from "$baseDir/sub-workflows/local/dna_qc.nf"
 include {	RNA_QC		} from "$baseDir/sub-workflows/local/rna_qc.nf"
 include {	DIVERSITY_QC	} from "$baseDir/sub-workflows/local/diversity_qc.nf"
 include { 	PARSE_REPORTS } from "$baseDir/modules/local/module_DTM.nf"
+include {	NGL			} from "$baseDir/sub-workflows/local/ngl.nf"
 include {	TREATMENT_DEMUXSTAT_ILLUMINA as ILLUMINA_TREATMENT_DEMUX_RUN;
 			TREATMENT_DEMUXSTAT_ILLUMINA as ILLUMINA_TREATMENT_DEMUX_READSETS;
 			// TREATMENT_DEMUXSTAT_ELEMENT as ELEMBIO_TREATMENT_DEMUX_RUN;
 			// TREATMENT_DEMUXSTAT_ELEMENT as ELEMBIO_TREATMENT_DEMUX_READSETS;
 							} from "$baseDir/modules/local/module_NGL-Bi.nf"
-include {	FILE_RENAME as RENAME_FASTQ;
-			FILE_RENAME as RENAME_INDEX;
-						} from "$baseDir/modules/local/module_NGL-Bi.nf"
 include {	MULTIQC		} from "${params.shared_modules}/multiqc.nf"
 include {	GCBIAS as GC_BIAS } from "${params.shared_modules}/gcbias.nf"
 include {	workflow_summary as WORKFLOW_SUMMARY } from "${params.shared_modules}/workflow_summary.nf"
-include {	UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_FQC;
-			CREATE_ANALYSIS;	} from "${params.shared_modules}/ngl_bi.nf"
-include {	READSET_FILE_FROM_FILE as ADD_RS_INDEX_FILES	} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'INDEX')
-include {	READSET_FILE_FROM_FILE as ADD_RS_RAW_FILES		} from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'RAW')
-include { 	MD5SUM as MD5SUM_FASTQ;
-			md5sum as MD5SUM_INDEX;
-						} from "${params.shared_modules}/md5sum.nf"
-include {	BEGIN_NGLBI as NGLBI						} from "${params.shared_modules}/workflows/begin_nglbi.nf"
-include {	COPY_TO_SAVE								} from "${params.shared_modules}/workflows/copy_to_save.nf"
-include {	TREATMENT_MULTIQC as ADD_MULTIQC			} from "${params.shared_modules}/ngl_bi_treatments.nf"
-include {	NGL											} from "$baseDir/sub-workflows/local/ngl.nf"
+
 
 // -------------------------------------------------
 // 					 EMAIL ON START
-- 
GitLab


From 1b435c29dd7426882dea6afc5ba5a2a9bf6b114b Mon Sep 17 00:00:00 2001
From: jsabban <jules.sabban@inrae.fr>
Date: Mon, 21 Oct 2024 14:51:42 +0200
Subject: [PATCH 9/9] Update manifest version

---
 conf/report.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/conf/report.config b/conf/report.config
index 5ee8982..e84365d 100644
--- a/conf/report.config
+++ b/conf/report.config
@@ -29,5 +29,5 @@ manifest {
 	description = "Workflow for Illumina data quality control"
 	mainScript = 'main.nf'
 	nextflowVersion = '>=0.32.0'
-	version = '1.23.0'
+	version = '1.24.0'
 }
\ No newline at end of file
-- 
GitLab