diff --git a/conf/report.config b/conf/report.config
index af1fc521f75faffe2351add15d2683ba3332edbe..cadd02f564850988e9780e14985924212ab313cc 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.17.0'
+	version = '1.18.0'
 }
\ No newline at end of file
diff --git a/sub-workflows/local/begin_nglbi.nf b/sub-workflows/local/begin_nglbi.nf
deleted file mode 100644
index 2e60dd903a3a81db8c85bf74c2520d0b14bfad28..0000000000000000000000000000000000000000
--- a/sub-workflows/local/begin_nglbi.nf
+++ /dev/null
@@ -1,76 +0,0 @@
-// -------------------------------------------------
-// 					BEGIN NGL-BI
-// -------------------------------------------------
-/*
- * Subworkflow to prepare NGL-Bi process
- * creation of the Run if needed
- * creation of readsets
- * change of status
-*/
-
-// -------------------------------------------------
-// 					MODULES
-// -------------------------------------------------
-
-include {	CREATE_RUN;
-            UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_FS;
-			UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_IPRG;
-			UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_FRG;
-            UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_IPQC;
-			CREATE_READSETS;
-} from "${params.shared_modules}/ngl_bi.nf"
-
-
-// -------------------------------------------------
-// 					LOCAL PARAMS
-// -------------------------------------------------
-
-
-// -------------------------------------------------
-// 					WORKFLOW
-// -------------------------------------------------
-
-workflow NGLBI {
-    main:
-        // Creation of the Run if needed
-        if (params.bi_run_code == '') {
-
-            CREATE_RUN(params.sequencer, params.sq_xp_code, '', 1)
-            createdFile = CREATE_RUN.out.createdFile
-            nglBiRunCode = CREATE_RUN.out.nglBiRunCode
-            ready_for_state = CREATE_RUN.out.ready
-        } else {
-            ready_for_state = Channel.value(1)
-            createdFile  = Channel.of(params.bi_run_code).map { content ->
-                def file = file('RunNGL-Bi.created')
-                file.text = content
-                file
-            }
-            nglBiRunCode = params.bi_run_code
-        }
-
-        // Update run state
-		UPDATE_STATE_FS(createdFile, 'F-S', ready_for_state)
-		UPDATE_STATE_IPRG(createdFile, 'IP-RG', UPDATE_STATE_FS.out.ready)
-
-        // Creation of ReadSets
-		CREATE_READSETS(
-			params.sq_xp_code,
-			nglBiRunCode,
-			'',
-			'',
-			UPDATE_STATE_IPRG.out.ready
-		)
-
-        // Update readset states
-		UPDATE_STATE_FRG(CREATE_READSETS.out.createdFile, 'F-RG', CREATE_READSETS.out.ready)
-        UPDATE_STATE_IPQC(CREATE_READSETS.out.createdFile, 'IP-QC', UPDATE_STATE_FRG.out.ready)
-
-    emit:
-        ready = UPDATE_STATE_IPQC.out.ready
-		readsetsFile = CREATE_READSETS.out.createdFile
-        createdFile = createdFile
-        nglBiRunCode = nglBiRunCode
-}
-
-
diff --git a/workflow/illumina_qc.nf b/workflow/illumina_qc.nf
index 7500b068c9e68a9fb42dc4eb52af06111018b99f..6f8d1ebe4497eae1584e861217d4ad2d1d452806 100644
--- a/workflow/illumina_qc.nf
+++ b/workflow/illumina_qc.nf
@@ -60,7 +60,6 @@ createDir = file(params.outdir).mkdir()
 // -------------------------------------------------
 // 					INCLUDES
 // -------------------------------------------------
-include {	NGLBI		} from "$baseDir/sub-workflows/local/begin_nglbi.nf"
 include {	CORE_ILLUMINA } from "$baseDir/sub-workflows/local/core_illumina.nf"
 include {	CORE		} from "$baseDir/sub-workflows/local/core_pipeline.nf"
 include {	DNA_QC		} from "$baseDir/sub-workflows/local/dna_qc.nf"
@@ -74,9 +73,12 @@ include {	TREATMENT_DEMUXSTAT as TREATMENT_DEMUX_RUN;
 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 } from "${params.shared_modules}/ngl_bi.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_RAW_FILES } from "${params.shared_modules}/ngl_bi.nf" addParams(ext: 'RAW')
 include { 	md5sum as MD5SUM	} from "${params.shared_modules}/md5sum.nf"
+include {	BEGIN_NGLBI as NGLBI						} from "${params.shared_modules}/workflows/begin_nglbi.nf"
+
 // -------------------------------------------------
 // 					 EMAIL ON START
 // -------------------------------------------------
@@ -92,7 +94,7 @@ workflow ILLUMINA_QC {
 	WORKFLOW_SUMMARY()
 
 	if (params.insert_to_ngl){
-		NGLBI()
+		NGLBI(params.bi_run_code, params.sq_xp_code, '', params.sequencer)
 	}
 
 	if ( params.skip_core_illumina ) {
@@ -104,7 +106,7 @@ workflow ILLUMINA_QC {
 		if (params.insert_to_ngl){
 			// Add demultiplexStat treatments
 			TREATMENT_DEMUX_RUN(NGLBI.out.nglBiRunCode, CORE_ILLUMINA.out.demuxStat)
-			TREATMENT_DEMUX_READSETS(NGLBI.out.readsetsFile, CORE_ILLUMINA.out.demuxStat)
+			TREATMENT_DEMUX_READSETS(NGLBI.out.readsets_created, CORE_ILLUMINA.out.demuxStat)
 		}
 	}
 
@@ -164,10 +166,11 @@ workflow ILLUMINA_QC {
 	)
 
 	if (params.insert_to_ngl){
-		RENAME_FASTQ(fastq.map{it[1]}.collect(), NGLBI.out.readsetsFile, params.sq_xp_code)
+		RENAME_FASTQ(fastq.map{it[1]}.collect(), NGLBI.out.readsets_created, params.sq_xp_code)
 		MD5SUM(RENAME_FASTQ.out.fastq.collect(), params.run_name+'_fastq')
-		ADD_RS_RAW_FILES(NGLBI.out.readsetsFile, MD5SUM.out, 'RAW', NGLBI.out.ready)
-		UPDATE_STATE_FQC(NGLBI.out.readsetsFile, 'F-QC', MULTIQC.out.html)
+		ADD_RS_RAW_FILES(NGLBI.out.readsets_created, MD5SUM.out, 'RAW', NGLBI.out.ready)
+		UPDATE_STATE_FQC(NGLBI.out.readsets_created, 'F-QC', MULTIQC.out.html)
+		CREATE_ANALYSIS(NGLBI.out.nglBiRunCode, NGLBI.out.readsets_created, 1)
 	}
 
 	/*