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

Output channels from TOMTE workflow for integration in local Nextflow-pipeline #196

Open
Jakob37 opened this issue Jan 24, 2025 · 5 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@Jakob37
Copy link
Contributor

Jakob37 commented Jan 24, 2025

Description of feature

This is perhaps more of a question than a request.

We have discussed how to integrate Tomte locally, and landed in that we will need a post-processing tool to fit it into our local systems. For this purpose, we built a small Nextflow pipeline "Nisse" (https://github.com/SMD-Bioinformatics-Lund/Nisse) designed to work with the Tomte output.

Next question is how to best integrate this locally.

I am thinking that the most clean way would be to execute Tomte as a part of Nisse, as a subworkflow. Then we would have a single entitity we can run locally, and it would allow Nextflow to manage resources efficiently, parallellize parts and so on.

The alternative would be to run Tomte as a subworkflow and take the published results as input. Or to run them as two separate processes. I think full integration would be the cleanest.

I have played around a bit with this, and it works fine to execute Tomte from within Nisse.

The final puzzle piece would be a way to access the Tomte results through channels, similarly to how is done for the multiqc_report:

    MULTIQC (
        ch_multiqc_files.collect(),
        ch_multiqc_config.toList(),
        ch_multiqc_custom_config.toList(),
        ch_multiqc_logo.toList(),
        [],
        []
    )

    emit:multiqc_report = MULTIQC.out.report.toList() // channel: /path/to/multiqc_report.html
    versions       = ch_versions                 // channel: [ path(versions.yml) ]
}

Would this make sense to add more output channels here, or is there some principal issue I am missing here? I would be happy to PR!

@Jakob37 Jakob37 added enhancement New feature or request question Further information is requested labels Jan 24, 2025
@jemten
Copy link
Contributor

jemten commented Jan 24, 2025

Nisse looks cool. There are some modules there that we definitely want for tomte as well

@Jakob37
Copy link
Contributor Author

Jakob37 commented Jan 24, 2025

Nisse looks cool. There are some modules there that we definitely want for tomte as well

Yes, if there are modules that fit in Tomte I think we should move them over. Nisse is more thought of as a place where we can do the Lund-specific things that does not make sense to place in Tomte.

Do you think it would make sense to add output channels to Tomte? Such that it can be interfaced with directly from other pipelines such as Nisse.

@jemten
Copy link
Contributor

jemten commented Jan 24, 2025

What do you say @Lucpen?
I don't think it will impact tomte much if we also specify output channels

@Lucpen
Copy link
Collaborator

Lucpen commented Jan 27, 2025

No, I don't think so, the output files will be saved anyway and that's what we use, so it could be done on the main pipeline without any issues

@Jakob37
Copy link
Contributor Author

Jakob37 commented Jan 27, 2025

No, I don't think so, the output files will be saved anyway and that's what we use, so it could be done on the main pipeline without any issues

OK great. I'll discuss this a bit more here locally, but I think this would be the cleanest solution for us. If so I can look into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants