1
0
Fork 0
mirror of https://github.com/MillironX/taxprofiler.git synced 2024-11-25 10:09:55 +00:00
taxprofiler/subworkflows/local/longread_preprocessing.nf

74 lines
3.1 KiB
Text
Raw Normal View History

//
// Process long raw reads with porechop
//
include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/fastqc/main'
2022-10-18 15:43:16 +00:00
include { FALCO as FALCO_PROCESSED } from '../../modules/nf-core/falco/main'
2022-11-01 16:34:37 +00:00
include { PORECHOP_PORECHOP } from '../../modules/nf-core/porechop/porechop/main'
include { FILTLONG } from '../../modules/nf-core/filtlong/main'
workflow LONGREAD_PREPROCESSING {
take:
reads
main:
ch_versions = Channel.empty()
ch_multiqc_files = Channel.empty()
if ( !params.longread_qc_skipadaptertrim && params.longread_qc_skipqualityfilter) {
2022-11-01 16:34:37 +00:00
PORECHOP_PORECHOP ( reads )
2022-11-01 16:34:37 +00:00
ch_processed_reads = PORECHOP_PORECHOP.out.reads
.map {
meta, reads ->
def meta_new = meta.clone()
meta_new['single_end'] = 1
[ meta_new, reads ]
}
2022-11-01 16:34:37 +00:00
ch_versions = ch_versions.mix(PORECHOP_PORECHOP.out.versions.first())
ch_multiqc_files = ch_multiqc_files.mix( PORECHOP_PORECHOP.out.log )
} else if ( params.longread_qc_skipadaptertrim && !params.longread_qc_skipqualityfilter) {
ch_processed_reads = FILTLONG ( reads.map{ meta, reads -> [meta, [], reads ]} )
ch_versions = ch_versions.mix(FILTLONG.out.versions.first())
2022-07-19 14:44:08 +00:00
ch_multiqc_files = ch_multiqc_files.mix( FILTLONG.out.log )
} else {
2022-11-01 16:34:37 +00:00
PORECHOP_PORECHOP ( reads )
ch_clipped_reads = PORECHOP_PORECHOP.out.reads
.map {
meta, reads ->
def meta_new = meta.clone()
meta_new['single_end'] = 1
[ meta_new, reads ]
}
ch_processed_reads = FILTLONG ( ch_clipped_reads.map{ meta, reads -> [meta, [], reads ]} ).reads
2022-11-01 16:34:37 +00:00
ch_versions = ch_versions.mix(PORECHOP_PORECHOP.out.versions.first())
ch_versions = ch_versions.mix(FILTLONG.out.versions.first())
2022-11-01 16:34:37 +00:00
ch_multiqc_files = ch_multiqc_files.mix( PORECHOP_PORECHOP.out.log )
2022-07-29 07:52:49 +00:00
ch_multiqc_files = ch_multiqc_files.mix( FILTLONG.out.log )
}
2022-10-20 14:55:57 +00:00
if (params.preprocessing_qc_tool == 'fastqc') {
2022-10-18 15:43:16 +00:00
FASTQC_PROCESSED ( ch_processed_reads )
ch_versions = ch_versions.mix( FASTQC_PROCESSED.out.versions )
2022-10-18 15:43:16 +00:00
ch_multiqc_files = ch_multiqc_files.mix( FASTQC_PROCESSED.out.zip )
2022-10-20 14:55:57 +00:00
} else if (params.preprocessing_qc_tool == 'falco') {
FALCO_PROCESSED ( ch_processed_reads )
ch_versions = ch_versions.mix( FALCO_PROCESSED.out.versions )
2022-10-20 14:55:57 +00:00
ch_multiqc_files = ch_multiqc_files.mix( FALCO_PROCESSED.out.txt )
2022-10-18 15:43:16 +00:00
}
emit:
reads = ch_processed_reads // channel: [ val(meta), [ reads ] ]
versions = ch_versions // channel: [ versions.yml ]
mqc = ch_multiqc_files
}