Skip to content

feat: implement full TMT analysis pipeline, result visualizations, and Windows compatibility.#392

Open
hjn0415a wants to merge 3 commits into
OpenMS:copilot/fix-tool-instance-name-issuefrom
hjn0415a:copilot/fix-tool-instance-name-issue
Open

feat: implement full TMT analysis pipeline, result visualizations, and Windows compatibility.#392
hjn0415a wants to merge 3 commits into
OpenMS:copilot/fix-tool-instance-name-issuefrom
hjn0415a:copilot/fix-tool-instance-name-issue

Conversation

@hjn0415a
Copy link
Copy Markdown

Changes

TMT Analysis Workflow & Interactive Dashboard (feat)

  • Full Pipeline Support: Updated src/Workflow.py to transition from generic widgets to a comprehensive TMT workflow including IsobaricAnalyzer, CometAdapter, PerocolatorAdapter, IDFilter, ProteinInterference, and ProteinQuantifier
  • Sample Group Assignment: Added an interactive UI section to map individual TMT channels to explicit experimental groups (or skip them) dynamically based on the selected TMT plex type.
  • 8 TMT Result Visualization Pages: Integrated analytical tabs in app.py linked to modular visualization scripts (content/results_*.py) for interactive data exploration (Abundance, Volcano plots, PCA, Heatmaps, Pathway Analysis, etc.).

2. Core Engine: Support for No-Value CLI Flags (feat)

  • Expanded StreamlitUI and CommandExecutor to cleanly handle boolean parameters that act as value-less CLI flags (e.g., passing -force instead of -force true).
  • Persisted flag metadata within the session state and back-end JSON structures so that command line generation remains persistent outside of UI reruns.
  • Improved terminal logging to output list-form CLI commands joined as clean strings for better debugging.

3. Cross-Platform Compatibility (fix)

  • Resolved a critical workflow termination issue on Windows systems within WorkflowManager.py.
  • Implemented a dual-track process killing mechanism: utilizing subprocess with Windows native taskkill /F /T /PID for robust tree-termination on Windows, while gracefully falling back to standard os.kill(pid, signal.SIGTERM) on Unix-like environments.
  • Hardened error handling to safely unlink stale PID files even if exceptions occur during shutdown.

Related Issues

Testing Checklist

  • Verified TMT parameter rendering and sample group mapping in Streamlit UI.
  • Confirmed conditional CLI flag generation without appending raw values in execution logs.
  • Tested local workflow execution and forceful process termination successfully on Windows environment.

hjn0415a added 3 commits May 22, 2026 13:20
…orkflow

- Add visualization scripts for abundance, database search, heatmap, etc.
- Add `get_abundance_data` helper in `results_helpers.py` to load data.
- Update `src/Workflow.py` to support TMT analysis pipeline and group assignment UI.
- Register new result visualization pages and clean up legacy menus in `app.py`.
- Update `StreamlitUI` to handle `flag_parameters` and render them as selectboxes.
- Persist flag parameter metadata into session state and JSON configurations.
- Update `CommandExecutor` to conditionally append flags without appending values.
- Add readable command logging/printing before execution.
- Use Windows `taskkill` command via subprocess to forcefully terminate process trees on Windows.
- Fallback to `os.kill` with `SIGTERM` on Linux/macOS environments.
- Improve exception handling and stale PID file cleanup logic during process stop.
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.

1 participant