mirror of
https://github.com/MillironX/taxprofiler.git
synced 2024-11-22 06:29:55 +00:00
Addd FASTP adadapter list
This commit is contained in:
parent
10f7f9e5de
commit
d487a1ff2f
8 changed files with 26 additions and 13 deletions
|
@ -62,7 +62,7 @@ process {
|
||||||
ext.args = [
|
ext.args = [
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
||||||
params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
params.shortread_qc_adapterlist ? "" : params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--length_required ${params.shortread_qc_minlength}",
|
"--length_required ${params.shortread_qc_minlength}",
|
||||||
(params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp') ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
(params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp') ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
||||||
|
@ -82,8 +82,8 @@ process {
|
||||||
params.shortread_qc_excludeunmerged ? '' : "--include_unmerged",
|
params.shortread_qc_excludeunmerged ? '' : "--include_unmerged",
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
||||||
params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
params.shortread_qc_adapterlist ? "" : params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
||||||
params.shortread_qc_adapter2 ? "--adapter_sequence_r2 ${params.shortread_qc_adapter2}" : "--detect_adapter_for_pe",
|
params.shortread_qc_adapterlist ? "" : params.shortread_qc_adapter2 ? "--adapter_sequence_r2 ${params.shortread_qc_adapter2}" : "--detect_adapter_for_pe",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--length_required ${params.shortread_qc_minlength}",
|
"--length_required ${params.shortread_qc_minlength}",
|
||||||
params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp' ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp' ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
},
|
},
|
||||||
"fastp": {
|
"fastp": {
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
|
"git_sha": "1e49f31e93c56a3832833eef90a02d3cde5a3f7e"
|
||||||
},
|
},
|
||||||
"fastqc": {
|
"fastqc": {
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
|
|
5
modules/nf-core/fastp/main.nf
generated
5
modules/nf-core/fastp/main.nf
generated
|
@ -9,6 +9,7 @@ process FASTP {
|
||||||
|
|
||||||
input:
|
input:
|
||||||
tuple val(meta), path(reads)
|
tuple val(meta), path(reads)
|
||||||
|
path adapter_fasta
|
||||||
val save_trimmed_fail
|
val save_trimmed_fail
|
||||||
val save_merged
|
val save_merged
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ process FASTP {
|
||||||
script:
|
script:
|
||||||
def args = task.ext.args ?: ''
|
def args = task.ext.args ?: ''
|
||||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||||
|
def adapter_list = adapter_fasta ? "--adapter_fasta ${adapter_fasta}" : ""
|
||||||
def fail_fastq = save_trimmed_fail && meta.single_end ? "--failed_out ${prefix}.fail.fastq.gz" : save_trimmed_fail && !meta.single_end ? "--unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : ''
|
def fail_fastq = save_trimmed_fail && meta.single_end ? "--failed_out ${prefix}.fail.fastq.gz" : save_trimmed_fail && !meta.single_end ? "--unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : ''
|
||||||
// Added soft-links to original fastqs for consistent naming in MultiQC
|
// Added soft-links to original fastqs for consistent naming in MultiQC
|
||||||
// Use single ended for interleaved. Add --interleaved_in in config.
|
// Use single ended for interleaved. Add --interleaved_in in config.
|
||||||
|
@ -40,6 +42,7 @@ process FASTP {
|
||||||
--thread $task.cpus \\
|
--thread $task.cpus \\
|
||||||
--json ${prefix}.fastp.json \\
|
--json ${prefix}.fastp.json \\
|
||||||
--html ${prefix}.fastp.html \\
|
--html ${prefix}.fastp.html \\
|
||||||
|
$adapter_list \\
|
||||||
$fail_fastq \\
|
$fail_fastq \\
|
||||||
$args \\
|
$args \\
|
||||||
2> ${prefix}.fastp.log \\
|
2> ${prefix}.fastp.log \\
|
||||||
|
@ -61,6 +64,7 @@ process FASTP {
|
||||||
--thread $task.cpus \\
|
--thread $task.cpus \\
|
||||||
--json ${prefix}.fastp.json \\
|
--json ${prefix}.fastp.json \\
|
||||||
--html ${prefix}.fastp.html \\
|
--html ${prefix}.fastp.html \\
|
||||||
|
$adapter_list \\
|
||||||
$fail_fastq \\
|
$fail_fastq \\
|
||||||
$args \\
|
$args \\
|
||||||
2> ${prefix}.fastp.log
|
2> ${prefix}.fastp.log
|
||||||
|
@ -82,6 +86,7 @@ process FASTP {
|
||||||
--out2 ${prefix}_2.fastp.fastq.gz \\
|
--out2 ${prefix}_2.fastp.fastq.gz \\
|
||||||
--json ${prefix}.fastp.json \\
|
--json ${prefix}.fastp.json \\
|
||||||
--html ${prefix}.fastp.html \\
|
--html ${prefix}.fastp.html \\
|
||||||
|
$adapter_list \\
|
||||||
$fail_fastq \\
|
$fail_fastq \\
|
||||||
$merge_fastq \\
|
$merge_fastq \\
|
||||||
--thread $task.cpus \\
|
--thread $task.cpus \\
|
||||||
|
|
4
modules/nf-core/fastp/meta.yml
generated
4
modules/nf-core/fastp/meta.yml
generated
|
@ -23,6 +23,10 @@ input:
|
||||||
List of input FastQ files of size 1 and 2 for single-end and paired-end data,
|
List of input FastQ files of size 1 and 2 for single-end and paired-end data,
|
||||||
respectively. If you wish to run interleaved paired-end data, supply as single-end data
|
respectively. If you wish to run interleaved paired-end data, supply as single-end data
|
||||||
but with `--interleaved_in` in your `modules.conf`'s `ext.args` for the module.
|
but with `--interleaved_in` in your `modules.conf`'s `ext.args` for the module.
|
||||||
|
- adapter_fasta:
|
||||||
|
type: file
|
||||||
|
description: File in FASTA format containing possible adapters to remove.
|
||||||
|
pattern: "*.{fasta,fna,fas,fa}"
|
||||||
- save_trimmed_fail:
|
- save_trimmed_fail:
|
||||||
type: boolean
|
type: boolean
|
||||||
description: Specify true to save files that failed to pass trimming thresholds ending in `*.fail.fastq.gz`
|
description: Specify true to save files that failed to pass trimming thresholds ending in `*.fail.fastq.gz`
|
||||||
|
|
|
@ -107,8 +107,8 @@
|
||||||
"shortread_qc_adapterlist": {
|
"shortread_qc_adapterlist": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "None",
|
"default": "None",
|
||||||
"fa_icon": "fas fa-list-ul",
|
"description": "Specify a list of all possible adapters to trim. Overrides --shortread_qc_adapter1/2. Formats: .txt (AdapterRemoval) or .fasta. (fastp).",
|
||||||
"help_text": "This affects AdapterRemoval. It will replace default adapters or whatever is supplied in `--shortread_qc_adapter{1,2}`.\n\nThis allows you to mix libraries built with different adapters into one run.\n\n> Modifies tool parameter(s):\n> - AdapterRemoval: `--adapter-list`."
|
"help_text": "Allows to supply a file with a list of adapter (combinations) to remove from all files. \n\nOverrides the --shortread_qc_adapter1/--shortread_qc_adapter2 parameters . \n\nFor AdapterRemoval this consists of a two column table with a `.txt` extension: first column represents forward strand, second column for reverse strand. You must supply all possibly combinations, one per line, and this list is applied to all files. See AdapterRemoval documentation for more information.\n\nFor fastp this consists of a standard FASTA format with a `.fasta`/`.fa`/`.fna`/`.fas` extension. The adapter sequence in this file should be at least 6bp long, otherwise it will be skipped. fastp trims the adapters present in the FASTA file one by one.\n\n> Modifies AdapterRemoval parameter: --adapter-list\n> Modifies fastp parameter: --adapter_fasta"
|
||||||
},
|
},
|
||||||
"shortread_qc_mergepairs": {
|
"shortread_qc_mergepairs": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|
|
@ -8,6 +8,7 @@ include { FASTP as FASTP_PAIRED } from '../../modules/nf-core/fastp/main'
|
||||||
workflow SHORTREAD_FASTP {
|
workflow SHORTREAD_FASTP {
|
||||||
take:
|
take:
|
||||||
reads // [[meta], [reads]]
|
reads // [[meta], [reads]]
|
||||||
|
adapterlist
|
||||||
|
|
||||||
main:
|
main:
|
||||||
ch_versions = Channel.empty()
|
ch_versions = Channel.empty()
|
||||||
|
@ -19,9 +20,9 @@ workflow SHORTREAD_FASTP {
|
||||||
paired: it[0]['single_end'] == false
|
paired: it[0]['single_end'] == false
|
||||||
}
|
}
|
||||||
|
|
||||||
FASTP_SINGLE ( ch_input_for_fastp.single, false, false )
|
FASTP_SINGLE ( ch_input_for_fastp.single, adapterlist, false, false )
|
||||||
// Last parameter here turns on merging of PE data
|
// Last parameter here turns on merging of PE data
|
||||||
FASTP_PAIRED ( ch_input_for_fastp.paired, false, params.shortread_qc_mergepairs )
|
FASTP_PAIRED ( ch_input_for_fastp.paired, adapterlist, false, params.shortread_qc_mergepairs )
|
||||||
|
|
||||||
if ( params.shortread_qc_mergepairs ) {
|
if ( params.shortread_qc_mergepairs ) {
|
||||||
ch_fastp_reads_prepped_pe = FASTP_PAIRED.out.reads_merged
|
ch_fastp_reads_prepped_pe = FASTP_PAIRED.out.reads_merged
|
||||||
|
|
|
@ -18,7 +18,7 @@ workflow SHORTREAD_PREPROCESSING {
|
||||||
ch_multiqc_files = Channel.empty()
|
ch_multiqc_files = Channel.empty()
|
||||||
|
|
||||||
if ( params.shortread_qc_tool == "fastp" ) {
|
if ( params.shortread_qc_tool == "fastp" ) {
|
||||||
ch_processed_reads = SHORTREAD_FASTP ( reads ).reads
|
ch_processed_reads = SHORTREAD_FASTP ( reads, adapterlist ).reads
|
||||||
ch_versions = ch_versions.mix( SHORTREAD_FASTP.out.versions )
|
ch_versions = ch_versions.mix( SHORTREAD_FASTP.out.versions )
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_FASTP.out.mqc )
|
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_FASTP.out.mqc )
|
||||||
} else if ( params.shortread_qc_tool == "adapterremoval" ) {
|
} else if ( params.shortread_qc_tool == "adapterremoval" ) {
|
||||||
|
|
|
@ -103,7 +103,12 @@ workflow TAXPROFILER {
|
||||||
|
|
||||||
ch_versions = Channel.empty()
|
ch_versions = Channel.empty()
|
||||||
ch_multiqc_logo= Channel.fromPath("$projectDir/docs/images/nf-core-taxprofiler_logo_custom_light.png")
|
ch_multiqc_logo= Channel.fromPath("$projectDir/docs/images/nf-core-taxprofiler_logo_custom_light.png")
|
||||||
ch_adapterlist_for_shortreadqc = params.shortread_qc_adapterlist ? file(params.shortread_qc_adapterlist) : []
|
adapterlist = params.shortread_qc_adapterlist ? file(params.shortread_qc_adapterlist) : []
|
||||||
|
|
||||||
|
if ( params.shortread_qc_adapterlist ) {
|
||||||
|
if ( params.shortread_qc_tool == 'adapterremoval' && !(adapterlist.extension == 'txt') ) error "[nf-core/taxprofiler] ERROR: AdapterRemoval2 adapter list requires a `.txt` format and extension. Check input: --shortread_qc_adapterlist ${params.shortread_qc_adapterlist}"
|
||||||
|
if ( params.shortread_qc_tool == 'fastp' && !adapterlist.extension.matches(".*(fa|fasta|fna|fas)") ) error "[nf-core/taxprofiler] ERROR: fastp adapter list requires a `.fasta` format and extension (or fa, fas, fna). Check input: --shortread_qc_adapterlist ${params.shortread_qc_adapterlist}"
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SUBWORKFLOW: Read in samplesheet, validate and stage input files
|
SUBWORKFLOW: Read in samplesheet, validate and stage input files
|
||||||
|
@ -134,10 +139,8 @@ workflow TAXPROFILER {
|
||||||
SUBWORKFLOW: PERFORM PREPROCESSING
|
SUBWORKFLOW: PERFORM PREPROCESSING
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ch_adapterlist_for_shortreadqc
|
|
||||||
|
|
||||||
if ( params.perform_shortread_qc ) {
|
if ( params.perform_shortread_qc ) {
|
||||||
ch_shortreads_preprocessed = SHORTREAD_PREPROCESSING ( INPUT_CHECK.out.fastq, ch_adapterlist_for_shortreadqc ).reads
|
ch_shortreads_preprocessed = SHORTREAD_PREPROCESSING ( INPUT_CHECK.out.fastq, adapterlist ).reads
|
||||||
ch_versions = ch_versions.mix( SHORTREAD_PREPROCESSING.out.versions )
|
ch_versions = ch_versions.mix( SHORTREAD_PREPROCESSING.out.versions )
|
||||||
} else {
|
} else {
|
||||||
ch_shortreads_preprocessed = INPUT_CHECK.out.fastq
|
ch_shortreads_preprocessed = INPUT_CHECK.out.fastq
|
||||||
|
|
Loading…
Reference in a new issue