Skip to content
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

Implemented MSISENSORPRO tumor-only analysis #1737

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

bounlu
Copy link
Contributor

@bounlu bounlu commented Nov 20, 2024

Implements #1599 and #330

MSIsensorpro now also works with tumor-only samples if a baseline is provided by the user:

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
  • If necessary, also make a PR on the nf-core/sarek branch on the nf-core/test-datasets repository.
  • Make sure your code lints (nf-core lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

@nf-core-bot
Copy link
Member

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 2.14.1.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation.

Comment on lines +176 to +178
MSISENSORPRO_SCAN(fasta)
msisensorpro_scan = MSISENSORPRO_SCAN.out.list.map{ meta, list -> [list] }
versions = versions.mix(MSISENSORPRO_SCAN.out.versions)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something we can put in the PREPARE* subworkflows together with other reference computations for tools?

Copy link
Contributor Author

@bounlu bounlu Nov 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did that first, but it was being generated unnecessarily if msi analysis was not requested. I couldn't find a way to avoid that in the PREPARE* subworkflows so left it like this.

@@ -177,7 +189,7 @@ workflow NFCORE_SAREK {
rt_file = PREPARE_GENOME.out.rt_file

// Tabix indexed vcf files
bcftools_annotations_tbi = params.bcftools_annotations ? params.bcftools_annotations_tbi ? Channel.fromPath(params.bcftools_annotations_tbi).collect() : PREPARE_GENOME.out.bcftools_annotations_tbi : Channel.empty([])
bcftools_annotations_tbi = params.bcftools_annotations ? params.bcftools_annotations_tbi ? Channel.fromPath(params.bcftools_annotations_tbi).collect() : PREPARE_GENOME.out.bcftools_annotations_tbi : Channel.value([])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merged your PR, so If you merge in dev this should hopefully be fixed already

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes thanks for that, this is just shipped along.

@@ -175,11 +174,10 @@ workflow BAM_VARIANT_CALLING_SOMATIC_ALL {
}

// MSISENSOR
if (tools.split(',').contains('msisensorpro')) {
if (tools.split(',').contains('msisensorpro') && msisensorpro_scan) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be strictly necessary since the empty channel should skip the tool

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember I tried without it but it failed for some reason that I can't remember now so I think it was necessary.

MSISENSORPRO_MSISOMATIC(cram.combine(intervals_bed_combined), fasta.map{ meta, fasta -> [ fasta ] }, msisensorpro_scan)

versions = versions.mix(MSISENSORPRO_MSISOMATIC.out.versions)
out_msisensorpro = out_msisensorpro.mix(MSISENSORPRO_MSISOMATIC.out.output_report)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason you are not emitting the output of the workflow anymore?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not used anywhere else, just published in the output directory. MultiQC does not support msisensorpro yet.

@@ -109,6 +111,13 @@ workflow BAM_VARIANT_CALLING_TUMOR_ONLY_ALL {
versions = versions.mix(BAM_VARIANT_CALLING_FREEBAYES.out.versions)
}

// MSISENSOR
if (tools.split(',').contains('msisensorpro') && msisensorpro_baseline) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar here, if the baseline is require than the tool shouldn't run on an empty channel

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember I tried without it but it failed for some reason that I can't remember now so I think it was necessary.

@@ -12,7 +12,6 @@ include { BWA_INDEX as BWAMEM1_INDEX } from '../../../modules/nf-
include { BWAMEM2_INDEX } from '../../../modules/nf-core/bwamem2/index/main'
include { DRAGMAP_HASHTABLE } from '../../../modules/nf-core/dragmap/hashtable/main'
include { GATK4_CREATESEQUENCEDICTIONARY } from '../../../modules/nf-core/gatk4/createsequencedictionary/main'
include { MSISENSORPRO_SCAN } from '../../../modules/nf-core/msisensorpro/scan/main'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the reason to move this out?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it to main workflow file main.nf as it was unnecessarily generated if msisensorpro was not requested. As now I made msisensorpro_scan and msisensorpro_baseline optional params.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants