-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add InterProScan to Pipeline and integrate in AMPcombi #428
base: dev
Are you sure you want to change the base?
Conversation
|
Warning Newer version of the nf-core template is available. Your pipeline is using an old version of the nf-core template: 3.1.0. For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation. |
@nf-core-bot fix linting |
@nf-core-bot fix linting |
Also fixes issue number #434 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Main issue is I don't like the use of function
, we already use functon
in funcscan
in a broad sense... can you refine what exactly we are using interproscan for and then we can adjust the naming
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
- [#421](https://github.com/nf-core/funcscan/pull/421) Updated to nf-core template 3.0.2. (by @jfy133) | |||
- [#427](https://github.com/nf-core/funcscan/pull/427) AMPcombi now can use multiple other databases for classifications. (by @darcy220606) | |||
- [#429](https://github.com/nf-core/funcscan/pull/429) Updated to nf-core template 3.1.0. (by @jfy133 and @jasmezz) | |||
- [#428](https://github.com/nf-core/funcscan/pull/XXX) Added InterProScan annotation workflow to the pipeline. The results are coupled to AMPcombi final table. (by @darcy220606) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [#428](https://github.com/nf-core/funcscan/pull/XXX) Added InterProScan annotation workflow to the pipeline. The results are coupled to AMPcombi final table. (by @darcy220606) | |
- [#428](https://github.com/nf-core/funcscan/pull/428) Added InterProScan annotation workflow to the pipeline. The results are coupled to AMPcombi final table. (by @darcy220606) |
|
||
withName: INTERPROSCAN_DATABASE { | ||
memory = { 6.GB * task.attempt } | ||
time = { 4.h * task.attempt } // Download might take longer with some Bandwidth! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
time = { 4.h * task.attempt } // Download might take longer with some Bandwidth! | |
time = { 4.h * task.attempt } |
} | ||
|
||
withName: INTERPROSCAN { | ||
ext.prefix = { "${meta.id}_interproscan.faa" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this meant to have the file suffix at the end?
@@ -676,7 +715,7 @@ process { | |||
|
|||
withName: AMP_DATABASE_DOWNLOAD { | |||
publishDir = [ | |||
path: { "${params.outdir}/databases/${params.amp_ampcombi_db}" }, | |||
path: { "${params.outdir}/databases/" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
path: { "${params.outdir}/databases/" }, | |
path: { "${params.outdir}/databases/ampcombi" }, |
If we use the interproscan example above?
@@ -25,6 +25,8 @@ results/ | |||
| ├── prodigal/ | |||
| ├── prokka/ | |||
| └── pyrodigal/ | |||
├── function/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What exactly do you mean here by function? I don't find that particularly descriptive and would'nt know what you mean by that necessarily.
}, | ||
"function_interproscan_disableresidueannottsv": { | ||
"type": "boolean", | ||
"help_text": "This disables the addition of the annotations assigned according to the databases activated to the final `<sample>_interproscan.tsv` file. Turning this ON will remove the annotations from the final table. We don't recommend turning this ON to ensure a successful run. \n\nFor more information about this flag see the tool [documentation](https://interproscan-docs.readthedocs.io/en/latest/HowToRun.html).\n\n> Modifies tool parameter(s):\n> - InterProScan: `--enable-tsv-residue-annot`\n", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"help_text": "This disables the addition of the annotations assigned according to the databases activated to the final `<sample>_interproscan.tsv` file. Turning this ON will remove the annotations from the final table. We don't recommend turning this ON to ensure a successful run. \n\nFor more information about this flag see the tool [documentation](https://interproscan-docs.readthedocs.io/en/latest/HowToRun.html).\n\n> Modifies tool parameter(s):\n> - InterProScan: `--enable-tsv-residue-annot`\n", | |
"help_text": "This disables the addition of the annotations assigned according to the databases activated to the final `<sample>_interproscan.tsv` file. Turning this on will remove the annotations from the final table. It is not recommended to use this option, as it likely will cause a run failure because xxxxxxxxxxxxxxxxxxx. \n\nFor more information about this flag see the tool [documentation](https://interproscan-docs.readthedocs.io/en/latest/HowToRun.html).\n\n> Modifies tool parameter(s):\n> - InterProScan: `--enable-tsv-residue-annot`\n", |
|
||
ch_ampcombi_complete = AMPCOMBI2_COMPLETE.out.tsv | ||
if ( ch_summary_count == 0 || ch_summary_count == 1 ) { | ||
log.warn("[nf-core/funcscan] AMPCOMBI2: ${ch_summary_count} file passed. Skipping AMPCOMBI2_COMPLETE, AMPCOMBI2_CLUSTER, and TAXONOMY MERGING steps.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
log.warn("[nf-core/funcscan] AMPCOMBI2: ${ch_summary_count} file passed. Skipping AMPCOMBI2_COMPLETE, AMPCOMBI2_CLUSTER, and TAXONOMY MERGING steps.") | |
log.warn("[nf-core/funcscan] AMPCOMBI2: ${ch_summary_count} file(s) passed. Skipping AMPCOMBI2_COMPLETE, AMPCOMBI2_CLUSTER, and TAXONOMY MERGING steps.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be good (if not already) to describe in the output file that in some cases you may not get these output files if XYZ
ch_interproscan_db = ( INTERPROSCAN_DATABASE.out.db ) | ||
} | ||
|
||
INTERPROSCAN( ch_faa_for_interproscan, ch_interproscan_db ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing versions mixing for interproscan
INTERPROSCAN( ch_faa_for_interproscan, ch_interproscan_db ) | ||
ch_interproscan_tsv = ch_interproscan_tsv.mix(INTERPROSCAN.out.tsv) | ||
|
||
// Current INTERPROSCAN version 5.59_91.0 only includes 13 columns and not 15 which ampcombi expects, so we added them here |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if INTERPROSCAN output changes 👀 this scares me slightly to hardcode this but I'm not familiar with either tool
|
||
ch_interproscan_tsv = FUNCTION.out.tsv.map { meta, file -> | ||
if (file == [] || file.isEmpty()) { | ||
log.warn("[nf-core/funcscan] Functional annotation with INTERPROSCAN produced an empty TSV file. Passing empty file for ${meta.id}.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does 'Passin'g mean here? Skipping?
PR checklist
This PR adds InterProScan to FUNCSCAN. It also integrates it into AMPcombi v2.0.1, which can parse its output as an optional flag.
This PR also closes issue #434
🚨 🚨 As interproscan requires a large database, i have not added it to any of the CI tests as that would require 4 hours for just downloading the database!!!!
👀 👀 👀 👀 👀 👀 Still TODO once AMPcombi 2.0.1 is updated in nf-core: DONE!!
nf-core lint
).nextflow run . -profile test,docker --outdir <OUTDIR>
).nextflow run . -profile debug,test,docker --outdir <OUTDIR>
).docs/usage.md
is updated.docs/output.md
is updated.CHANGELOG.md
is updated.README.md
is updated (including new tool citations and authors/contributors).