diff --git a/bin/DTM/data_prepare.pl b/bin/DTM/data_prepare.pl
index 2b0776a03f59432d5d8d1643264c8c27229b3537..05d9b773e2e30bfbe1711681c28181c3ccfb565b 100644
--- a/bin/DTM/data_prepare.pl
+++ b/bin/DTM/data_prepare.pl
@@ -184,6 +184,7 @@ MAIN:
 		print ("\tFichier run NGL-Bi trouvé : $file_run_bi\n");
 		open (RUNBI, $file_run_bi);
 		my $ngl_bi_run_name = <RUNBI>;
+		chomp($ngl_bi_run_name);
 		close (RUNBI);
 
 		my $sq_xp_code = `grep 'Experiment Name' SampleSheet.csv | cut -d',' -f2`; $? and print STDERR("[Erreur]Récup du code experience NGL-SQ\n");
diff --git a/conf/base.config b/conf/base.config
index 0a6832f1daae4422ad7783c7ad2e5bc07d4af019..d330b07ab172b2b3015b9113d2ba5f7f26c29b5b 100644
--- a/conf/base.config
+++ b/conf/base.config
@@ -114,7 +114,7 @@ process {
 
 	// ----- WithName
 	// ----- CORE ----- //
-	withName: illuminaFilter {
+	withName: ILLUMINA_FILTER {
 		publishDir = [
 			path: "${params.outdir}/IlluminaFilter",
 			mode: 'symlink',
diff --git a/modules/local/module_core.nf b/modules/local/module_core.nf
index 7d9c7c52f6f38c6b05f52c58d333cf7ad4cc7726..9b7f25c368e1b6f6d11f9be7494065d42731307a 100644
--- a/modules/local/module_core.nf
+++ b/modules/local/module_core.nf
@@ -2,7 +2,7 @@
  *	Module pour les analyses de base du pipeline
 */
 
-process extractInfoForDemuxStats {
+process PREP_DEMUXSTAT {
 	publishDir path: "${params.outdir}/Demux" , mode: 'copy'
 	
 	input:
@@ -18,7 +18,7 @@ process extractInfoForDemuxStats {
 	"""
 }
 
-process demultiplexStats {
+process DEMUX_STATS {
 	publishDir path: "${params.outdir}/Demux" , mode: 'copy'
 	
 	//module 'system/R-4.0.4_gcc-9.3.0'		// Ne fonctionne pas !
@@ -58,7 +58,7 @@ process FASTQC {
 }
 
 
-process illuminaFilter {
+process ILLUMINA_FILTER {
 	tag " $name"
 	
 	input:
diff --git a/nextflow.config b/nextflow.config
index 529dca9e170c4111b49e5fb19793412012357e57..157085f18b2fb84c07659ac2d27fbaebbe8e6577 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -33,6 +33,9 @@ params {
 
 	cluster_options = ''
 
+	// skip parameters
+	skip_core_illumina = false
+
 	monochrome_logs = true
 	help = false
 	
diff --git a/sub-workflows/local/begin_nglbi.nf b/sub-workflows/local/begin_nglbi.nf
index 0473f635a5d8364db55e484e91a9c009b43d3aa4..0096dc4d87e515ad3cc6117f6cce8dac39b1139d 100644
--- a/sub-workflows/local/begin_nglbi.nf
+++ b/sub-workflows/local/begin_nglbi.nf
@@ -16,6 +16,7 @@ include {	CREATE_RUN;
             UPDATE_NGLBI_STATE_FROM_CODE as UPDATE_STATE_FS;
 			UPDATE_NGLBI_STATE_FROM_CODE 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"
 
@@ -32,7 +33,7 @@ include {	CREATE_RUN;
 workflow NGLBI {
     main:
         // Creation of the Run if needed
-        if (params.insert_to_ngl && params.bi_run_code == '') {
+        if (params.bi_run_code == '') {
 
             CREATE_RUN(params.sequencer, params.sqXpCode, '', 1)
 
@@ -57,9 +58,10 @@ workflow NGLBI {
 
         // 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_FRG.out.ready
+        ready = UPDATE_STATE_IPQC.out.ready
 		readsetsFile = CREATE_READSETS.out.createdFile
 
 }
diff --git a/sub-workflows/local/core_illumina.nf b/sub-workflows/local/core_illumina.nf
new file mode 100644
index 0000000000000000000000000000000000000000..6a79fdff11ca9db5709b0aceb77675f0a74d68e6
--- /dev/null
+++ b/sub-workflows/local/core_illumina.nf
@@ -0,0 +1,51 @@
+// -------------------------------------------------
+// 					CORE ILLUMINA
+// -------------------------------------------------
+/*
+ * Statistiques de démultiplexage
+ * IlluminaFilter
+*/
+
+// -------------------------------------------------
+// 					MODULES
+// -------------------------------------------------
+include {
+	PREP_DEMUXSTAT;
+	DEMUX_STATS;
+	ILLUMINA_FILTER;
+} from "$baseDir/modules/local/module_core.nf"
+
+// -------------------------------------------------
+// 					LOCAL PARAMS
+// -------------------------------------------------
+
+
+// -------------------------------------------------
+// 					WORKFLOW
+// -------------------------------------------------
+
+workflow CORE_ILLUMINA {
+   take:
+		sampleSheet
+		demuxStatXML
+		demuxSummary
+		fastq
+		
+	main:		
+		// ----------- DemultiplexStat
+		PREP_DEMUXSTAT(sampleSheet)
+		DEMUX_STATS(demuxStatXML, PREP_DEMUXSTAT.out, demuxSummary)
+		
+		// ----------- Illumina Filter  // ou SubsetSeqFiles : dans quel cas on fait l'un ou l'autre ????
+		if ("$params.sequencer" =~ /NovaSeq.*/ && params.is_multiplex) {
+			System.out.println "Les données ne nécessite pas de passer par IlluminaFilter"
+			fastq_good = fastq
+		} else {	// Si MiSeq ou Nova + noIndex
+			ILLUMINA_FILTER(fastq)
+			fastq_good = ILLUMINA_FILTER.out.reads
+		}
+
+    emit:
+        fastq = fastq_good
+}
+
diff --git a/sub-workflows/local/core_pipeline.nf b/sub-workflows/local/core_pipeline.nf
index 25787334c1fc27fae2db6bb1ee42d6120bc886e7..96b89a8ed5bd27aa6098cd79993a9e927262d613 100644
--- a/sub-workflows/local/core_pipeline.nf
+++ b/sub-workflows/local/core_pipeline.nf
@@ -3,8 +3,6 @@
 // 					CORE PIPELINE
 // -------------------------------------------------
 /*
- * Creation readsets NGL-Bi -> plus tard
- * Statistiques de démultiplexage
  * QC des reads
  * Recherche contaminations
  * Recherche duplicats
@@ -14,15 +12,12 @@
 // 					MODULES
 // -------------------------------------------------
 include {
-	extractInfoForDemuxStats;
-	demultiplexStats;
 	FASTQC;
-	illuminaFilter;
 	FASTQSCREEN;
 	DUPLICATED_READS;
 } from "$baseDir/modules/local/module_core.nf"
-include { GUNZIP	} from "${params.shared_modules}/gzip.nf"
-include { SEQTK_SAMPLE } from "${params.shared_modules}/seqtk.nf"
+include { GUNZIP			} from "${params.shared_modules}/gzip.nf"
+include { SEQTK_SAMPLE 		} from "${params.shared_modules}/seqtk.nf"
 include { md5sum as MD5SUM	} from "${params.shared_modules}/md5sum.nf"
 //-------------------------------------------------
 
@@ -33,36 +28,20 @@ isResume=workflow.resume
 //-------------------------------------------------
 workflow CORE {
 	take:
-		ch_sampleSheet
-		ch_DemuxStatXML
-		ch_DemuxSummary
 		ch_read
 		
-	main:		
-		// ----------- DemultiplexStat
-		extractInfoForDemuxStats(ch_sampleSheet)
-		demultiplexStats(ch_DemuxStatXML, extractInfoForDemuxStats.out, ch_DemuxSummary)
-		
-		// ----------- Illumina Filter  // ou SubsetSeqFiles : dans quel cas on fait l'un ou l'autre ????
-		if ("$params.sequencer" =~ /NovaSeq.*/ && params.is_multiplex) {
-			System.out.println "Les données ne nécessite pas de passer par IlluminaFilter"
-			ch_read_good = ch_read
-		} else {	// Si MiSeq ou Nova + noIndex
-			illuminaFilter(ch_read)
-			ch_read_good = illuminaFilter.out.reads
-		}
-
+	main:
 		// ----------- md5sum
-		MD5SUM(ch_read_good.collect{it[1]}.flatten().collect(), params.run_name+'_fastq')
+		MD5SUM(ch_read.collect{it[1]}.flatten().collect(), params.run_name+'_fastq')
 		
 		// ----------- FASTQC
-		FASTQC(ch_read_good)
+		FASTQC(ch_read)
 		
 		// ----------- ContaminationSearch
-		FASTQSCREEN(ch_read_good)
+		FASTQSCREEN(ch_read)
 
 		// ----------- Recherche Duplicats
-		GUNZIP(ch_read_good)
+		GUNZIP(ch_read)
 		
 		GUNZIP.out.branch{
 			large : it[1].size() >= params.bytes_subset_seq
diff --git a/workflow/illumina_qc.nf b/workflow/illumina_qc.nf
index 1c3ba605d3d64d9d2d44dc3afca33d1d25c7fef9..8bdf8f68b1b3cd406308a846338560c2a9078682 100644
--- a/workflow/illumina_qc.nf
+++ b/workflow/illumina_qc.nf
@@ -58,14 +58,13 @@ 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"
 include { RNA_QC		} from "$baseDir/sub-workflows/local/rna_qc.nf"
 include { MULTIQC		} from "${params.shared_modules}/multiqc.nf"
 include { workflow_summary as WORKFLOW_SUMMARY } from "${params.shared_modules}/workflow_summary.nf"
-include { UPDATE_NGLBI_STATE_FROM_FILE as UPDATE_STATE_IPQC;
-		  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 } from "${params.shared_modules}/ngl_bi.nf"
 
 // -------------------------------------------------
 // 					 EMAIL ON START
@@ -80,13 +79,19 @@ sendBeginMail(format.format(new Date()))
 workflow ILLUMINA_QC {
 	ch_mqc = Channel.empty()
 	WORKFLOW_SUMMARY()
-	NGLBI()
 
 	if (params.insert_to_ngl){
-		UPDATE_STATE_IPQC(NGLBI.out.readsetsFile, 'IP-QC', NGLBI.out.ready)
+		NGLBI()
 	}
 
-	CORE(ch_ss, ch_DemuxStatXML, ch_DemuxSummary, ch_read)		/*ch_ngl, ch_runInfo, mismatchNumber,  params.raw_data*/
+	if ( ! params.skip_core_illumina ) {
+		CORE_ILLUMINA(ch_ss, ch_DemuxStatXML, ch_DemuxSummary, ch_read)
+		fastq = CORE_ILLUMINA.out.fastq
+	} else {
+		fastq = ch_read
+	}
+	
+	CORE(fastq)
 
 	if (params.data_nature == 'DNA') {
 		DNA_QC(CORE.out.subset_fastq)