Skip to content

Conversation

@t0mdavid-m
Copy link
Member

@t0mdavid-m t0mdavid-m commented Jan 15, 2026

Comprehensive documentation for converting nf-core/Nextflow workflows that use OpenMS TOPP tools to the Streamlit-based TOPP Workflow Framework.

Includes:

  • Step-by-step conversion methodology
  • Channel-to-FileManager mapping patterns
  • Parameter schema conversion
  • Common patterns (parallel, collection, grouping, conditionals)
  • Complete example workflow conversion
  • Reference tables for Nextflow-to-TOPP mappings

Summary by CodeRabbit

  • Documentation
    • Added a new subsection about converting Nextflow workflows in the build guide.
    • Added a comprehensive conversion guide detailing how to convert Nextflow workflows to the TOPP Workflow Framework, including step-by-step analysis, parameter extraction, DAG mapping, workflow configuration, execution logic, results display, and troubleshooting.

✏️ Tip: You can customize this high-level summary in your review settings.

Comprehensive documentation for converting nf-core/Nextflow workflows
that use OpenMS TOPP tools to the Streamlit-based TOPP Workflow Framework.

Includes:
- Step-by-step conversion methodology
- Channel-to-FileManager mapping patterns
- Parameter schema conversion
- Common patterns (parallel, collection, grouping, conditionals)
- Complete example workflow conversion
- Reference tables for Nextflow-to-TOPP mappings
@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

📝 Walkthrough

Walkthrough

Two documentation files have been added to guide users in converting Nextflow workflows to the TOPP Workflow Framework. A subsection was added to build_app.md, and a new comprehensive guide document was created covering conversion prerequisites, step-by-step analysis, DAG mapping, workflow class creation, and complete examples.

Changes

Cohort / File(s)
Documentation: Nextflow Conversion Guides
docs/build_app.md, docs/nextflow_conversion_guide.md

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Poem

🐰 Hopping through the doc-forests deep,
New guides I help to plant and keep,
Nextflow secrets tucked away,
In TOPP's bright framework to stay!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Design Nextflow to TOPP workflow conversion layer' directly relates to the main objective of this PR: comprehensive documentation for converting Nextflow workflows to the TOPP Framework. The title accurately captures the primary intent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@t0mdavid-m t0mdavid-m changed the title Design Nextflow to TOPP workflow conversion layer Nextflow to TOPP workflow conversion guide Jan 15, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/nextflow_conversion_guide.md`:
- Line 1187: The markdown link "[TOPP Workflow Framework Documentation]"
currently points to "../content/topp_workflow_docs.py" which doesn't exist;
update that link to point to an existing file (for example change the target to
"../content/documentation.py") or replace the link with a note that this is
app-internal documentation (e.g., "TOPP Workflow Framework Documentation
(app-internal)") so the README no longer references a missing file; edit the
line containing the link text and target to correct the path or clarify its
status.
🧹 Nitpick comments (4)
docs/nextflow_conversion_guide.md (4)

69-76: Add language specifier to fenced code block.

The table in this code block should have a language specifier for proper rendering and syntax highlighting. Consider using text or markdown as the language identifier.

📝 Proposed fix
-```
+```text
 Process Name | TOPP Tool | Inputs | Outputs | Key Parameters
 -------------|-----------|--------|---------|---------------
 DECOYDATABASE | DecoyDatabase | fasta | fasta | decoy_string

Based on static analysis hints.


82-101: Add language specifier to fenced code block.

The ASCII diagram should have a language specifier. Consider using text for plain text diagrams.

📝 Proposed fix
-```
+```text
 Input Files
     │
     ▼

Based on static analysis hints.


158-165: Add language specifier to fenced code block.

This parameter mapping table should have a language specifier for consistency with other code blocks in the document.

📝 Proposed fix
-```
+```text
 Nextflow Param        | TOPP Tool      | TOPP Parameter           | UI Widget
 ----------------------|----------------|--------------------------|----------

Based on static analysis hints.


1159-1183: Use proper heading tags instead of bold text.

In the troubleshooting section, the issue titles (e.g., "1. Tool not found") should use proper Markdown heading syntax (e.g., ####) instead of bold text for better document structure and accessibility.

📝 Proposed fix
-**1. Tool not found**
-```
+#### 1. Tool not found
+
+```text
 ERROR: FeatureFinderMetabo: command not found

-2. File not found errors
- +#### 2. File not found errors + +text
ERROR: Input file does not exist: /path/to/file.mzML


-**3. Parameter not applied**
-```
+#### 3. Parameter not applied
+
+```text
Parameter noise_threshold not being used

-4. Parallel execution issues
- +#### 4. Parallel execution issues + +text
Only one file processed instead of all

Based on static analysis hints.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8ab28ad and 15e34e0.

📒 Files selected for processing (2)
  • docs/build_app.md
  • docs/nextflow_conversion_guide.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
docs/nextflow_conversion_guide.md

69-69: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


82-82: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


158-158: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1159-1159: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


1160-1160: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1165-1165: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


1166-1166: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1171-1171: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


1172-1172: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1177-1177: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


1178-1178: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: build-full-app
  • GitHub Check: build-openms
  • GitHub Check: test (ubuntu-latest, 3.11)
🔇 Additional comments (1)
docs/build_app.md (1)

70-78: LGTM! Clear and well-integrated documentation addition.

The new subsection effectively introduces Nextflow workflow conversion and provides a helpful summary of what the linked guide covers. The integration with the existing "Complex workflow using TOPP tools" section is logical and well-placed.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


## Additional Resources

- [TOPP Workflow Framework Documentation](../content/topp_workflow_docs.py) - Interactive docs in the app
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the referenced file exists at the expected location
fd -t f "topp_workflow_docs.py" content/

Repository: OpenMS/streamlit-template

Length of output: 51


🏁 Script executed:

#!/bin/bash
# Check if content directory exists and what's in it
echo "=== Checking content directory ==="
ls -la content/ 2>/dev/null || echo "content/ directory does not exist"

# Search for topp_workflow_docs.py anywhere in the repo
echo ""
echo "=== Searching for topp_workflow_docs.py anywhere in repo ==="
fd -t f "topp_workflow_docs.py"

# List the structure of docs directory
echo ""
echo "=== Docs directory structure ==="
ls -la docs/ | head -20

Repository: OpenMS/streamlit-template

Length of output: 2147


🏁 Script executed:

#!/bin/bash
# Check the context around line 1187 in the markdown file
sed -n '1180,1195p' docs/nextflow_conversion_guide.md

Repository: OpenMS/streamlit-template

Length of output: 516


Fix the broken documentation link.

The referenced file topp_workflow_docs.py does not exist in the content/ directory. Either create this file, update the link to reference an existing file (e.g., documentation.py), or clarify that this is app-internal documentation that doesn't correspond to a repository file.

🤖 Prompt for AI Agents
In `@docs/nextflow_conversion_guide.md` at line 1187, The markdown link "[TOPP
Workflow Framework Documentation]" currently points to
"../content/topp_workflow_docs.py" which doesn't exist; update that link to
point to an existing file (for example change the target to
"../content/documentation.py") or replace the link with a note that this is
app-internal documentation (e.g., "TOPP Workflow Framework Documentation
(app-internal)") so the README no longer references a missing file; edit the
line containing the link text and target to correct the path or clarify its
status.

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