Skip to content

Commit 75f4205

Browse files
authored
Merge pull request #700 from nf-core/qualitymax
Adds AdapterRemoval qualitymax parameter
2 parents 0cd8e42 + c0b4796 commit 75f4205

4 files changed

Lines changed: 19 additions & 28 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77

88
### `Added`
99

10-
- [#676](https://github.com/nf-core/eager/issues/676) - Added Lib Checks and automatic help message / summary message formatting
10+
- [#676](https://github.com/nf-core/eager/issues/676) - Refactor help message / summary message formatting to automatic versions using nf-core library
11+
- [#682](https://github.com/nf-core/eager/issues/682) - Add AdapterRemoval `--qualitymax` flag to allow FASTQ Phred score range max more than 41
1112

1213
### `Fixed`
1314

main.nf

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ process adapter_removal {
856856
"""
857857
mkdir -p output
858858
859-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
859+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
860860
861861
cat *.collapsed.gz *.collapsed.truncated.gz *.singleton.truncated.gz *.pair1.truncated.gz *.pair2.truncated.gz > output/${base}.pe.combined.tmp.fq.gz
862862
@@ -872,7 +872,7 @@ process adapter_removal {
872872
"""
873873
mkdir -p output
874874
875-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
875+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
876876
877877
cat *.collapsed.gz *.singleton.truncated.gz *.pair1.truncated.gz *.pair2.truncated.gz > output/${base}.pe.combined.tmp.fq.gz
878878
@@ -887,7 +887,7 @@ process adapter_removal {
887887
} else if ( seqtype == 'PE' && !params.skip_collapse && !params.skip_trim && params.mergedonly && !params.preserve5p ) {
888888
"""
889889
mkdir -p output
890-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
890+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
891891
892892
cat *.collapsed.gz *.collapsed.truncated.gz > output/${base}.pe.combined.tmp.fq.gz
893893
@@ -902,7 +902,7 @@ process adapter_removal {
902902
} else if ( seqtype == 'PE' && !params.skip_collapse && !params.skip_trim && params.mergedonly && params.preserve5p ) {
903903
"""
904904
mkdir -p output
905-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
905+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
906906
907907
cat *.collapsed.gz > output/${base}.pe.combined.tmp.fq.gz
908908
@@ -918,7 +918,7 @@ process adapter_removal {
918918
} else if ( seqtype == 'PE' && !params.skip_collapse && params.skip_trim && !params.mergedonly ) {
919919
"""
920920
mkdir -p output
921-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --adapter1 "" --adapter2 ""
921+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --adapter1 "" --adapter2 ""
922922
923923
cat *.collapsed.gz *.pair1.truncated.gz *.pair2.truncated.gz > output/${base}.pe.combined.tmp.fq.gz
924924
@@ -934,7 +934,7 @@ process adapter_removal {
934934
} else if ( seqtype == 'PE' && !params.skip_collapse && params.skip_trim && params.mergedonly ) {
935935
"""
936936
mkdir -p output
937-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --collapse ${preserve5p} --adapter1 "" --adapter2 ""
937+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} --collapse ${preserve5p} --adapter1 "" --adapter2 ""
938938
939939
cat *.collapsed.gz > output/${base}.pe.combined.tmp.fq.gz
940940
@@ -949,22 +949,22 @@ process adapter_removal {
949949
} else if ( seqtype == 'PE' && params.skip_collapse && !params.skip_trim ) {
950950
"""
951951
mkdir -p output
952-
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
952+
AdapterRemoval --file1 ${r1} --file2 ${r2} --basename ${base}.pe --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
953953
954954
mv ${base}.pe.pair*.truncated.gz *.settings output/
955955
"""
956956
} else if ( seqtype != 'PE' && !params.skip_trim ) {
957957
//SE, collapse not possible, trim reads only
958958
"""
959959
mkdir -p output
960-
AdapterRemoval --file1 ${r1} --basename ${base}.se --gzip --threads ${task.cpus} ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
960+
AdapterRemoval --file1 ${r1} --basename ${base}.se --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} ${preserve5p} --trimns --trimqualities --adapter1 ${params.clip_forward_adaptor} --adapter2 ${params.clip_reverse_adaptor} --minlength ${params.clip_readlength} --minquality ${params.clip_min_read_quality} --minadapteroverlap ${params.min_adap_overlap}
961961
mv *.settings *.se.truncated.gz output/
962962
"""
963963
} else if ( seqtype != 'PE' && params.skip_trim ) {
964964
//SE, collapse not possible, trim reads only
965965
"""
966966
mkdir -p output
967-
AdapterRemoval --file1 ${r1} --basename ${base}.se --gzip --threads ${task.cpus} ${preserve5p} --adapter1 "" --adapter2 ""
967+
AdapterRemoval --file1 ${r1} --basename ${base}.se --gzip --threads ${task.cpus} --qualitymax ${params.qualitymax} ${preserve5p} --adapter1 "" --adapter2 ""
968968
mv *.settings *.se.truncated.gz output/
969969
"""
970970
}

nextflow.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ params {
6767
skip_trim = false
6868
preserve5p = false
6969
mergedonly = false
70+
qualitymax = 41
7071

7172
//Mapping algorithm
7273
mapper = 'bwaaln'

nextflow_schema.json

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -181,17 +181,6 @@
181181
"copyNoFollow",
182182
"move"
183183
]
184-
},
185-
"saveTrimmed": {
186-
"type": "boolean",
187-
"default": true,
188-
"description": "Turn this on if you want to keep trimmed reads.",
189-
"hidden": true
190-
},
191-
"saveAlignedIntermediates": {
192-
"type": "boolean",
193-
"description": "Turn this on if you want to keep intermediate alignment files (SAM, BAM, non-dedupped BAM)",
194-
"hidden": true
195184
}
196185
},
197186
"fa_icon": "fas fa-cloud-download-alt"
@@ -511,6 +500,13 @@
511500
"description": "Only use merged reads downstream (un-merged reads and singletons are discarded).",
512501
"fa_icon": "fas fa-handshake",
513502
"help_text": "Specify that only merged reads are sent downstream for analysis.\n\nSingletons (i.e. reads missing a pair), or un-merged reads (where there wasn't sufficient overlap) are discarded.\n\nYou may want to use this if you want ensure only the best quality reads for your analysis, but with the penalty of potentially losing still valid data (even if some reads have slightly lower quality). It is highly recommended when using `--dedupper 'dedup'` (see below)."
503+
},
504+
"qualitymax": {
505+
"type": "integer",
506+
"description": "Specify the maximum Phred score used in input FASTQ files",
507+
"help_text": "Specify maximum Phred score of the quality field of FASTQ files. The quality-score range can vary depending on the machine and version (e.g. see diagram [here](https://en.wikipedia.org/wiki/FASTQ_format#Encoding), and this allows you to increase from the default AdapterRemoval value of `41`.\n\n> Modifies AdapterRemoval parameters: `--qualitymax`",
508+
"default": 41,
509+
"fa_icon": "fas fa-arrow-up"
514510
}
515511
},
516512
"fa_icon": "fas fa-cut",
@@ -605,7 +601,6 @@
605601
"bt2n": {
606602
"type": "integer",
607603
"description": "Specify the -N parameter for bowtie2 (mismatches in seed). This will override defaults from alignmode/sensitivity.",
608-
"default": 0,
609604
"fa_icon": "fas fa-sort-numeric-down",
610605
"help_text": "The number of mismatches allowed in the seed during seed-and-extend procedure of Bowtie2. This will override any values set with `--bt2_sensitivity`. Can either be 0 or 1. Default: 0 (i.e. use`--bt2_sensitivity` defaults).\n\n> Modifies Bowtie2 parameters: `-N`",
611606
"enum": [
@@ -615,21 +610,18 @@
615610
},
616611
"bt2l": {
617612
"type": "integer",
618-
"default": 0,
619613
"description": "Specify the -L parameter for bowtie2 (length of seed substrings). This will override defaults from alignmode/sensitivity.",
620614
"fa_icon": "fas fa-ruler-horizontal",
621615
"help_text": "The length of the seed sub-string to use during seeding. This will override any values set with `--bt2_sensitivity`. Default: 0 (i.e. use`--bt2_sensitivity` defaults: [20 for local and 22 for end-to-end](http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml#command-line).\n\n> Modifies Bowtie2 parameters: `-L`"
622616
},
623617
"bt2_trim5": {
624618
"type": "integer",
625-
"default": 0,
626619
"description": "Specify number of bases to trim off from 5' (left) end of read before alignment.",
627620
"fa_icon": "fas fa-cut",
628621
"help_text": "Number of bases to trim at the 5' (left) end of read prior alignment. Maybe useful when left-over sequencing artefacts of in-line barcodes present Default: 0\n\n> Modifies Bowtie2 parameters: `-bt2_trim5`"
629622
},
630623
"bt2_trim3": {
631624
"type": "integer",
632-
"default": 0,
633625
"description": "Specify number of bases to trim off from 3' (right) end of read before alignment.",
634626
"fa_icon": "fas fa-cut",
635627
"help_text": "Number of bases to trim at the 3' (right) end of read prior alignment. Maybe useful when left-over sequencing artefacts of in-line barcodes present Default: 0.\n\n> Modifies Bowtie2 parameters: `-bt2_trim3`"
@@ -680,14 +672,12 @@
680672
},
681673
"bam_mapping_quality_threshold": {
682674
"type": "integer",
683-
"default": 0,
684675
"description": "Minimum mapping quality for reads filter.",
685676
"fa_icon": "fas fa-greater-than-equal",
686677
"help_text": "Specify a mapping quality threshold for mapped reads to be kept for downstream analysis. By default keeps all reads and is therefore set to `0` (basically doesn't filter anything).\n\n> Modifies samtools view parameter: `-q`"
687678
},
688679
"bam_filter_minreadlength": {
689680
"type": "integer",
690-
"default": 0,
691681
"fa_icon": "fas fa-ruler-horizontal",
692682
"description": "Specify minimum read length to be kept after mapping.",
693683
"help_text": "Specify minimum length of mapped reads. This filtering will apply at the same time as mapping quality filtering.\n\nIf used _instead_ of minimum length read filtering at AdapterRemoval, this can be useful to get more realistic endogenous DNA percentages, when most of your reads are very short (e.g. in single-stranded libraries) and would otherwise be discarded by AdapterRemoval (thus making an artificially small denominator for a typical endogenous DNA calculation). Note in this context you should not perform mapping quality filtering nor discarding of unmapped reads to ensure a correct denominator of all reads, for the endogenous DNA calculation.\n\n> Modifies filter_bam_fragment_length.py parameter: `-l`"
@@ -1046,7 +1036,6 @@
10461036
},
10471037
"freebayes_g": {
10481038
"type": "integer",
1049-
"default": 0,
10501039
"description": "Specify to skip over regions of high depth by discarding alignments overlapping positions where total read depth is greater than specified in --freebayes_C.",
10511040
"fa_icon": "fab fa-think-peaks",
10521041
"help_text": "Specify to skip over regions of high depth by discarding alignments overlapping positions where total read depth is greater than specified C. Not set by default.\n\n> Modifies freebayes parameter: `-g`"

0 commit comments

Comments
 (0)