1
0
Fork 0
mirror of https://github.com/MillironX/taxprofiler.git synced 2024-11-14 18:03:09 +00:00
taxprofiler/subworkflows/local/shortread_fastp.nf

57 lines
2 KiB
Text
Raw Normal View History

//
// Process short raw reads with FastP
//
2022-03-25 13:58:06 +00:00
include { FASTP as FASTP_SINGLE } from '../../modules/nf-core/fastp/main'
include { FASTP as FASTP_PAIRED } from '../../modules/nf-core/fastp/main'
2022-03-25 13:58:06 +00:00
workflow SHORTREAD_FASTP {
take:
2022-03-27 07:30:23 +00:00
reads // [[meta], [reads]]
2022-11-02 11:39:34 +00:00
adapterlist
2022-03-25 13:58:06 +00:00
main:
2022-04-10 05:26:20 +00:00
ch_versions = Channel.empty()
2022-03-25 13:58:06 +00:00
ch_multiqc_files = Channel.empty()
ch_input_for_fastp = reads
.branch{
single: it[0]['single_end'] == true
paired: it[0]['single_end'] == false
}
2022-11-02 11:39:34 +00:00
FASTP_SINGLE ( ch_input_for_fastp.single, adapterlist, false, false )
2022-03-27 07:30:23 +00:00
// Last parameter here turns on merging of PE data
2022-11-02 11:39:34 +00:00
FASTP_PAIRED ( ch_input_for_fastp.paired, adapterlist, false, params.shortread_qc_mergepairs )
2022-03-25 13:58:06 +00:00
if ( params.shortread_qc_mergepairs ) {
ch_fastp_reads_prepped_pe = FASTP_PAIRED.out.reads_merged
.map {
meta, reads ->
def meta_new = meta.clone()
2022-04-08 11:09:23 +00:00
meta_new['single_end'] = true
2022-04-08 11:46:12 +00:00
[ meta_new, [ reads ].flatten() ]
2022-03-25 13:58:06 +00:00
}
ch_fastp_reads_prepped = ch_fastp_reads_prepped_pe.mix( FASTP_SINGLE.out.reads )
2022-03-25 13:58:06 +00:00
} else {
ch_fastp_reads_prepped = FASTP_PAIRED.out.reads
.mix( FASTP_SINGLE.out.reads )
}
ch_versions = ch_versions.mix(FASTP_SINGLE.out.versions.first())
ch_versions = ch_versions.mix(FASTP_PAIRED.out.versions.first())
2022-03-31 13:31:45 +00:00
ch_processed_reads = ch_fastp_reads_prepped
2022-03-25 13:58:06 +00:00
ch_multiqc_files = ch_multiqc_files.mix( FASTP_SINGLE.out.json )
ch_multiqc_files = ch_multiqc_files.mix( FASTP_PAIRED.out.json )
2022-03-25 13:58:06 +00:00
emit:
reads = ch_processed_reads // channel: [ val(meta), [ reads ] ]
versions = ch_versions // channel: [ versions.yml ]
mqc = ch_multiqc_files
}