pyopenms-docs icon indicating copy to clipboard operation
pyopenms-docs copied to clipboard

Updated Docs to use PeptideIdentificationList

Open matteopilz opened this issue 4 months ago • 4 comments

Summary by CodeRabbit

  • New Features

    • Introduced a dedicated PeptideIdentificationList container in the Python API for handling peptide identifications.
    • Enhanced 2D peak data retrieval to accept an additional parameter in get2DPeakDataLong.
  • Documentation

    • Updated multiple user guides to use PeptideIdentificationList instead of Python lists, including counting via .size() and item insertion via push_back.
    • Clarified feature filtering by using explicit size checks.
    • Refreshed interactive plotting examples with updated options and calls.
  • Chores

    • Added jupyter_bokeh to requirements for improved notebook visualization support.

matteopilz avatar Sep 01 '25 13:09 matteopilz

Walkthrough

Documentation examples were updated to use oms.PeptideIdentificationList instead of Python lists, with corresponding size/count and push_back adjustments. One GNPS example now uses an explicit size check. Interactive plotting code adds a fifth argument to get2DPeakDataLong and simplifies opts usage. requirements.txt adds jupyter_bokeh.

Changes

Cohort / File(s) Summary
Adopt PeptideIdentificationList in docs
docs/source/user_guide/PSM_to_features.rst, docs/source/user_guide/export_pandas_dataframe.rst, docs/source/user_guide/identification_data.rst, docs/source/user_guide/other_ms_data_formats.rst, docs/source/user_guide/peptide_search.rst, docs/source/user_guide/quality_control.rst, docs/source/user_guide/untargeted_metabolomics_preprocessing.rst
Replace Python lists with oms.PeptideIdentificationList() in examples; update additions to push_back; adjust counting to .size() where shown; iteration and IdXML load/store use the new container.
GNPS export explicit check
docs/source/user_guide/export_files_GNPS.rst
Change truthiness check to feature.getPeptideIdentifications().size() > 0 before pushing to filtered_map.
Interactive plots example update
docs/source/user_guide/interactive_plots.rst
Add fifth argument (1) to exp.get2DPeakDataLong(...); simplify plotting by applying .opts(...) directly to the raster/dynspread pipeline and remove nested plot dict.
Dependency update
requirements.txt
Add jupyter_bokeh after bokeh.

Sequence Diagram(s)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • timosachsenberg

Poem

A nibble of docs, a hop through the code,
I swap my lists for containers bestowed.
With size I check, with push_back I cheer,
Plots gain a tweak, the picture is clear.
jupyter_bokeh joins the show—
Thump-thump! Onward the features grow. 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot] avatar Sep 01 '25 13:09 coderabbitai[bot]

AttributeError Traceback (most recent call last) Cell In[5], line 12 8 for i, feature_map in enumerate(feature_maps): 9 if feature_map.getMetaValue("spectra_data")[ 10 0 11 ].decode() == exp.getMetaValue("mzML_path"): ---> 12 peptide_ids = oms.PeptideIdentificationList() 13 protein_ids = [] 14 mapper.annotate( 15 feature_map, 16 peptide_ids, (...) 20 exp, 21 )

timosachsenberg avatar Sep 01 '25 13:09 timosachsenberg

If you are hoping for 3.4.1: You never released it. https://pypi.org/project/pyopenms/#history If you are hoping for nightly. We have still not adapted a branching workflow here, so we only support docs for latest stable.

jpfeuffer avatar Sep 01 '25 14:09 jpfeuffer

ah damn... forgot that we don't have a branching workflow. thanks for pointing this out

timosachsenberg avatar Sep 01 '25 16:09 timosachsenberg