@@ -12,7 +12,9 @@ params.run_folder = "/path/to/run_folder"
1212params. result_dir = " results"
1313fastqscreen_default_databases = " FastQ_Screen_Genomes"
1414params. fastqscreen_databases = fastqscreen_default_databases
15- params. bcl2fastq_outdir = " Unaligned"
15+ params. demultiplexer = " bcl2fastq"
16+ params. demultiplexer_outdir = " Unaligned"
17+
1618params. checkqc_config = " " // See: https://github.com/Molmed/checkQC
1719params. assets_dir = " $baseDir /assets"
1820params. config_dir = " $baseDir /config/tool_config"
@@ -47,11 +49,12 @@ def helpMessage() {
4749
4850 Optional parameters:
4951 --result_dir Path to write results (default: results)
50- --bcl2fastq_outdir Folder name to check for fastq.gz files and demultiplexing stats (default: Unaligned)
52+ --demultiplexer_outdir Folder name to check for fastq.gz files and demultiplexing stats (default: Unaligned)
5153 --checkqc_config Configuration file for CheckQC
5254 --assets_dir Location of project assests (default: "\$ baseDir/assets").
5355 --config_dir Location of tool configuration files (default: "\$ baseDir/config/tool_config").
5456 --script_dir Location of project scripts (default: "\$ baseDir/bin")
57+ --demultiplexer Name of demultiplexer used e.g 'bcl2fastq' or 'bclconvert'
5558
5659 --help Print this help message.
5760
@@ -61,7 +64,7 @@ def helpMessage() {
6164 """
6265}
6366
64- if (params. help || ! params. run_folder){
67+ if (params. help || ! params. run_folder || ! params . demultiplexer ){
6568 helpMessage()
6669 exit 0
6770}
@@ -72,7 +75,8 @@ workflow {
7275 Channel . fromPath(params. run_folder,checkIfExists :true )
7376 .ifEmpty { " Error: No run folder (--run_folder) given." ; exit 1 }
7477 .set {run_folder}
75- CHECK_RUN_QUALITY (run_folder)
78+ Channel . value(params. demultiplexer). set {demultiplexer}
79+ CHECK_RUN_QUALITY (run_folder, demultiplexer)
7680
7781}
7882
@@ -83,13 +87,13 @@ workflow.onComplete {
8387def get_project_and_reads(run_folder) {
8488
8589 Channel
86- .fromPath(" ${ run_folder} /${ params.bcl2fastq_outdir } /**.fastq.gz" )
90+ .fromPath(" ${ run_folder} /${ params.demultiplexer_outdir } /**.fastq.gz" )
8791 .filter( ~/ .*_[^I]\d _001\. fastq\. gz$/ )
8892 .ifEmpty { " Error: No fastq files found under ${ run_folder} / !\n " ; exit 1 }
8993 .map {
9094 it. toString(). indexOf(' Undetermined' ) > 0 ?
9195 [' NoProject' , it] :
92- [(it. toString() =~ / ^.*\/ ${params.bcl2fastq_outdir }\/ ([^\/ ]+)\/ .*\. fastq\. gz$/ )[0 ][1 ],it]
96+ [(it. toString() =~ / ^.*\/ ${params.demultiplexer_outdir }\/ ([^\/ ]+)\/ .*\. fastq\. gz$/ )[0 ][1 ],it]
9397 }
9498
9599}
@@ -121,8 +125,21 @@ workflow CHECK_RUN_QUALITY {
121125
122126 take :
123127 run_folder
128+ demultiplexer
124129
125130 main :
131+ if (params. demultiplexer == ' bclconvert' ) {
132+ Channel . fromPath([
133+ " ${ params.run_folder} /${ params.demultiplexer_outdir} /Reports/*.csv" ,
134+ " ${ params.run_folder} /RunInfo.xml" ])
135+ .collect(). ifEmpty([])
136+ .set { demux_stats }
137+ } else {
138+ Channel . fromPath(" ${ params.run_folder} /${ params.demultiplexer_outdir} /Stats/Stats.json" )
139+ .collect(). ifEmpty([])
140+ .set { demux_stats }
141+ }
142+
126143 INTEROP_SUMMARY (run_folder)
127144 GET_QC_THRESHOLDS (run_folder)
128145 GET_METADATA (run_folder)
@@ -132,14 +149,15 @@ workflow CHECK_RUN_QUALITY {
132149 FASTQ_SCREEN (project_and_reads,
133150 params. config_dir,
134151 params. fastqscreen_databases)
135- MULTIQC_PER_FLOWCELL ( params. run_folder,
152+ MULTIQC_PER_FLOWCELL (
153+ params. run_folder,
136154 FASTQC . out. map{ it[1 ] }. collect(),
137155 FASTQ_SCREEN . out. results. map{ it[1 ] }. collect(),
138156 FASTQ_SCREEN . out. tsv. map{ it[1 ] }. collectFile(keepHeader :true ,skip :1 ,sort :true ),
139157 INTEROP_SUMMARY . out. collect(),
140158 GET_QC_THRESHOLDS . out. collect(). ifEmpty([]),
141159 GET_METADATA . out. collect(),
142- Channel . fromPath( " ${ params.run_folder } / ${ params.bcl2fastq_outdir } /Stats/Stats.json " ) . collect() . ifEmpty([]) ,
160+ demux_stats ,
143161 params. assets_dir,
144162 params. config_dir)
145163 MULTIQC_PER_PROJECT ( params. run_folder,
@@ -239,14 +257,9 @@ process GET_METADATA {
239257 path ' sequencing_metadata_mqc.yaml'
240258
241259 script:
242- if ( params. bcl2fastq_outdir ){
243- bcl2fastq_outdir_section = " --bcl2fastq-outdir ${ params.bcl2fastq_outdir} "
244- } else {
245- bcl2fastq_outdir_section = " "
246- }
247260 """
248261 python ${ params.script_dir} /get_metadata.py --runfolder $runfolder \\
249- $b cl2fastq_outdir_section &> sequencing_metadata_mqc.yaml
262+ &> sequencing_metadata_mqc.yaml
250263 """
251264}
252265
@@ -277,7 +290,7 @@ process MULTIQC_PER_FLOWCELL {
277290 path (' Interop_summary/*' ) // Interop log
278291 path qc_thresholds // Quality check thresholds (optional)
279292 path sequencing_metadata // Sequencing meta data ( custom content data )
280- path bcl2fastq_stats // Bcl2Fastq logs
293+ path demux_stats // demux logs
281294 path assets // Staged copy of assets folder
282295 path config_dir // Staged copy of config folder
283296
0 commit comments