Skip to content

Tutorial extended: Map Alignment, Feature Linking and IDMapper #472

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

Merged
merged 6 commits into from
Apr 29, 2025

Conversation

cbielow
Copy link
Contributor

@cbielow cbielow commented Apr 11, 2025

  • vastly rewrite map alignment tutorial
  • add more glossary terms
  • extend feature linking tutorial
  • add new PSM_to_features tutorial for IDMapper

Summary by CodeRabbit

  • Documentation
    • Enhanced user guides with detailed steps on annotating feature maps with peptide identifications and clarified feature linking and map alignment processes.
    • Improved glossary with new terms and refined definitions for clearer understanding of key concepts.
    • Updated table of contents to include new algorithm documentation for easier navigation.
  • New Files
    • Added a sample XML data file containing comprehensive protein and peptide identification results to support analysis workflows.

cbielow added 2 commits April 11, 2025 16:02
 + add more glossary terms
 + extend feature linking tutorial
 + add new PSM_to_features tutorial for IDMapper
Copy link

coderabbitai bot commented Apr 11, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

The pull request introduces extensive documentation updates for the pyOpenMS user guide and glossary. A new guide explains how to annotate feature maps with peptide identifications using the IDMapper, and expanded sections improve explanations for feature linking, map alignment, and quantitative data. The glossary gains new terms and refined definitions while the table of contents is updated with a new PSM_to_features entry. Additionally, a new IdXML sample file (BSA1_F1.idXML) is added to illustrate protein and peptide identification data.

Changes

File(s) Change Summary
docs/source/user_guide/PSM_to_features.rst
docs/source/user_guide/index.rst
Added a comprehensive guide for annotating feature maps with peptide identifications using the IDMapper; updated the Table of Contents with a new PSM_to_features entry.
docs/source/user_guide/feature_linking.rst
docs/source/user_guide/quantitative_data.rst
Updated documentation for feature linking including clearer explanations, improved code snippets with line numbers, renaming from "features linking" to "feature linking," addition of the compute_feature_size_stats function, and expanded output examples. Added contextual details regarding consensus features and their creation in quantitative data documentation. Metadata handling for input maps was simplified and enhanced.
docs/source/user_guide/map_alignment.rst Expanded the map alignment section with an introduction on retention time variability, a detailed summary table of algorithms, corrections to feature file naming, a new section on selecting reference maps, and new plotting functions (plot_consensus_maps and plot_transformed_rt_with_trafo) along with improved visualization instructions. Detailed usage examples for two alignment algorithms were added, including parameter setting, fitting transformations, and applying RT corrections.
docs/source/user_guide/glossary.rst Introduced new glossary terms: “de novo”, “feature finder”, and “FeatureFinder” and updated the definition for “peptide-spectrum match” (PSM) to provide clearer, more comprehensive explanations emphasizing database and de novo approaches.
src/data/BSA1_F1.idXML New XML file created following the IdXML schema version 1.5 that details search parameters, protein hits, and peptide identifications to support proteomics data interchange.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant DataFiles as Data Files
    participant FeatureMap
    participant IDMapper
    User->>DataFiles: Download .featureXML and .idXML
    DataFiles-->>User: Provide data files
    User->>FeatureMap: Load feature map from featureXML
    User->>IDMapper: Configure RT and m/z tolerances
    IDMapper->>FeatureMap: Annotate feature map with peptide IDs
    User->>FeatureMap: Save annotated feature map
Loading
sequenceDiagram
    participant User
    participant MapAligner as Map Alignment Engine
    participant FeatureMaps
    participant Plotter
    User->>FeatureMaps: Load feature maps (excluding reference)
    User->>MapAligner: Perform RT alignment and transformation
    MapAligner->>FeatureMaps: Align and update feature maps
    User->>Plotter: Plot original and transformed RTs
Loading

Poem

I'm a bunny in the code garden, light on my feet,
Hopping through docs with tutorials so neat.
I nibble on features and crunch on each byte,
Mapping peptides and aligning them just right.
With every new change, I smile ear to ear—
A tech-savvy rabbit full of cheer! 🐰✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e9631 and 5a56a84.

📒 Files selected for processing (1)
  • docs/source/user_guide/map_alignment.rst (3 hunks)

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.
    • Generate unit testing code for this file.
    • 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. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • 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 src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai 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

Documentation and Community

  • 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.

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: 0

🧹 Nitpick comments (11)
docs/source/user_guide/index.rst (1)

49-49: New entry for PSM_to_features added.
The new "PSM_to_features" entry in the "OpenMS Algorithms" section is correctly inserted. Please verify that the referenced documentation page exists and that its title and style are consistent with the rest of the guide.

docs/source/user_guide/PSM_to_features.rst (1)

1-89: Comprehensive new IDMapper tutorial for Feature Map annotation.
The step-by-step guide—from downloading example data, loading feature maps and peptide identifications, to configuring and using the IDMapper—is clear and well-structured. To further assist beginners, consider adding notes on common pitfalls or basic error handling (e.g., file loading failures).

docs/source/user_guide/map_alignment.rst (6)

5-8: Clarify Map Alignment Explanation.
The expanded explanation about why chromatographic columns are unstable and the need to correct RTs is clear and informative. Consider splitting the long sentence into two shorter sentences for improved readability.


21-24: Custom RT Mapping Section.
Introducing the option to apply a custom RT mapping via MapAlignmentTransformer is a valuable addition. Consider adding a brief explanation or an example scenario outlining when a user might prefer custom mapping over the default alignment.


26-29: Linear Alignment Explanation.
The description of using an affine transformation (offset and slope) with MapAlignmentAlgorithmPoseClustering is clear and emphasizes the benefits of aligning on the feature level. A short note explaining why feature-level alignment is preferred (e.g., better stability and performance) could further enhance clarity.


95-104: Selecting a Reference Map.
The section on selecting a reference map by choosing the one with the largest number of features is practical and well explained. It might be beneficial to add a brief note on handling edge cases, such as when two maps have an equal number of features.


195-225: Visualization Function: plot_consensus_maps.
The added function plot_consensus_maps is well documented with a clear docstring, and it effectively demonstrates how to visualize feature maps before and after alignment. As a minor improvement, consider caching the result of max([f.getIntensity() for f in fm]) to avoid duplicate computations when determining alpha values.


237-275: Visualization Function: plot_transformed_rt_with_trafo.
The plot_transformed_rt_with_trafo function is detailed and describes each step of visualizing the transformation process. One suggestion is to verify that using edgecolors="black" with the chosen marker does not trigger any matplotlib warnings; if it does, include a note or adjust the marker style accordingly.

docs/source/user_guide/feature_linking.rst (3)

53-59: Detailed Explanation for Feature Linking.
The expanded explanation about how consensus maps are formed and why some features may remain unmatched is very informative. There is a minor typo ("have have" in line 57) that should be corrected to "have".


81-91: Feature Size Statistics Function.
The helper function compute_feature_size_stats effectively illustrates how to compute and return the distribution of consensus feature sizes. Consider adding type hints or a short comment describing the expected input type for better clarity.


92-98: Display of Sample Consensus Features.
The loop that prints a few representative consensus features gives a clear snapshot of the linking results. While limiting the output to the first few features is practical, you may consider using the condition if i >= 3: (instead of if i > 3:) to make the intent clearer.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a5fa7b and 6698151.

⛔ Files ignored due to path filters (3)
  • docs/source/user_guide/img/map_alignment.png is excluded by !**/*.png
  • docs/source/user_guide/img/map_alignment_fmaps.png is excluded by !**/*.png
  • docs/source/user_guide/img/map_alignment_trafos.png is excluded by !**/*.png
📒 Files selected for processing (7)
  • docs/source/user_guide/PSM_to_features.rst (1 hunks)
  • docs/source/user_guide/feature_linking.rst (2 hunks)
  • docs/source/user_guide/glossary.rst (3 hunks)
  • docs/source/user_guide/index.rst (1 hunks)
  • docs/source/user_guide/map_alignment.rst (3 hunks)
  • docs/source/user_guide/quantitative_data.rst (1 hunks)
  • src/data/BSA1_F1.idXML (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: build-test
  • GitHub Check: build-test
🔇 Additional comments (19)
docs/source/user_guide/quantitative_data.rst (1)

77-79: Enhancement in the Consensus Features Section.
The added sentences clarify that linked features are represented by a ConsensusFeature and introduce the process of FeatureLinking. Ensure that the link to the "Feature Linking" chapter (line 78) is correct and that the explanation aligns with the updated tutorials.

src/data/BSA1_F1.idXML (2)

1-173: New IdXML file for peptide identifications added.
The XML file adheres to the IdXML 1.5 schema and is well-structured. This file will serve as the source for peptide identification data in the new IDMapper tutorial.


25-25: Verify referenced spectra data path.
The spectra_data attribute on line 25 references [share/OpenMS/examples/FRACTIONS/BSA1_F1.mzML]. Please confirm that this path is accurate and that the file is available in the repository as expected.

docs/source/user_guide/glossary.rst (3)

31-35: New glossary term added: de novo peptide sequencing.
The definition clearly describes the concept and aligns with the updated documentation discussing PSM annotations.


50-53: New glossary term added: FeatureFinder.
The entry succinctly explains the role of FeatureFinder in pausing a feature map from MS1 spectra, which is useful for users new to pyOpenMS.


160-165: Updated glossary definition for peptide-spectrum match (PSMs).
The revised definition appropriately covers both database-driven and de novo approaches. Ensure that all documentation referring to PSMs uses the updated terminology for consistency.

docs/source/user_guide/map_alignment.rst (9)

13-14: Consensus Map Note Clarity.
The note on creating a consensus map via a feature linking algorithm is concise and useful. Please verify that the link to feature_linking.html directs users to the expected comprehensive explanation.


30-33: PSM Annotation and Reference Map Information.
The discussion on the need for PSM annotations and the use of reference maps adds important context. Ensure that users can easily cross-reference these details in the PSM_to_features tutorial, and consider mentioning any pitfalls if PSM data is incomplete or missing.


34-40: Summary Table for Alignment Algorithms.
The summary table effectively compares the characteristics of the available alignment algorithms. Double-check the rendered table layout in the final output to make sure the formatting remains clear and consistent.


60-61: Footnote Reference Consistency.
The footnote listing valid models ("linear", "b_spline", "lowess", "interpolated") is helpful. Please ensure that these model names match the terminology used throughout the documentation and the pyOpenMS API reference.


78-79: FeatureXML Files Annotation.
The note indicating that featureXML files already contain PSMs (obtained by oms.IDMapper()) is clear. Verify that the details provided here align well with the guidance in the PSM_to_features tutorial for consistency.


119-122: Excluding the Reference Map for Efficient Alignment.
Excluding the reference map from the alignment loop is a smart choice to maximize efficiency. Consider adding a note to mention any potential edge cases (e.g., what if the feature map list is empty) to further inform advanced users.


124-140: Map Alignment Algorithm Implementation.
The code snippet demonstrating the use of MapAlignmentAlgorithmPoseClustering, including parameter retrieval and setting, is clear and practical. Make sure that the parameters (like max_rt_shift) are also documented in the API reference so that users can cross-check their meanings.


141-149: Iterative Alignment Process.
The for-loop that processes each non-reference feature map with the alignment algorithm is well illustrated. The inline comment about storing the original RT as meta-data adds clarity.


151-180: Alternative Alignment with MapAlignmentAlgorithmIdentification.
The section detailing the use of MapAlignmentAlgorithmIdentification—including the adjustment of parameters and handling of the ref_index (set to -1)—is thorough. Please verify that the behavior of setting ref_index = -1 is explained clearly in the broader context of pyOpenMS usage.

docs/source/user_guide/feature_linking.rst (4)

20-20: Feature Linking Introduction Update.
The update clearly states the use of FeatureGroupingAlgorithmQT for feature linking, which streamlines the explanation.


61-69: Consensus Map Population Example.
The Python code demonstrating the instantiation of a consensus map and its population using FeatureGroupingAlgorithmQT is concise and clear.


75-80: Consensus Map Summary Output.
The snippet that prints the total number of consensus features and provides summary information is useful and straightforward. Be sure that the sample output format is consistent with real-world data outcomes.


142-159: Meta-data Augmentation and Display.
Augmenting the consensus map with file descriptions and printing the metadata is a valuable addition that helps users trace back the origin of the data. This step reinforces good practices in data provenance.

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: 0

🧹 Nitpick comments (3)
docs/source/user_guide/feature_linking.rst (3)

26-27: Ensure consistent :linenos: directive indentation

The :linenos: option should be indented by at least three spaces to align with Sphinx directive best practices and maintain consistency across all code blocks. Please verify indentation and blank-line placement after the option.

Also applies to: 62-63, 75-76, 144-145


53-58: Fix typos in explanatory text

There are minor typos that impact clarity:

  • Duplicate word in "we have have three input maps"
  • Misspelling "we adressed" should be "we addressed"

Please correct these typos for a smoother reading experience.


64-64: Consider rephrasing casual comment

The inline comment # this is where the work happens: is informative but slightly informal. Consider using a more descriptive, professional comment such as # Execute feature grouping to maintain tone consistency.

Also applies to: 68-69

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6698151 and 93bd834.

📒 Files selected for processing (1)
  • docs/source/user_guide/feature_linking.rst (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: build-test
  • GitHub Check: build-test
🔇 Additional comments (2)
docs/source/user_guide/feature_linking.rst (2)

20-20: Approve new algorithm selection statement

The added sentence succinctly introduces the use of FeatureGroupingAlgorithmQT and improves the flow into the example.


148-161: Approve metadata collection code snippet

The added code for populating and printing column header metadata is clear and enhances reproducibility by tracking input file details. Great addition!

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: 0

🧹 Nitpick comments (6)
docs/source/user_guide/map_alignment.rst (6)

5-9: Revise introductory phrasing for clarity and consistency
The new opening sentences effectively motivate RT alignment, but consider tightening the prose—e.g., replace “This is useful, since…” with “Because chromatographic columns are less stable, retention times of identical compounds can vary across runs.” Also, avoid “we want to… ” in user‐facing docs; use passive or imperative voice (“Align features by finding landmarks…”).


13-13: Use Sphinx cross‐reference role instead of raw HTML link
Rather than hard‐coding <feature_linking.html> use a native Sphinx role (e.g., :doc:feature_linking or a named reference) to ensure the link remains valid if the target filename changes.


69-83: Clarify example data comments and file names

  • The inline comments (“# we use featureXML…”) could reference the new PSM_to_features tutorial for context.
  • Double‐check that the filenames (BSA1_F1_idmapped.featureXML, etc.) match the assets in src/data/.

95-104: Align heading underline length with title text
The “Selecting a Reference Map” heading uses 25 asterisks but the text is shorter. For consistency, match the underline length exactly to the title (Sphinx style).


184-228: Enhance visualization examples

  • In plot_consensus_maps, the slicing [...][:-11] to trim file names is brittle; consider using Python’s os.path.splitext() or re.sub() for clarity.
  • Suggest adding axis labels in both subplots for consistency.

279-280: Minor grammar tweak
Replace “Using a more flexible model like LOWESS will likely result in a worse alignment (try and see for yourself).” with “More flexible models (e.g., LOWESS) may overfit and degrade performance—feel free to experiment.”

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 93bd834 and 44ff3ea.

📒 Files selected for processing (1)
  • docs/source/user_guide/map_alignment.rst (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: build-test
  • GitHub Check: build-test
🔇 Additional comments (7)
docs/source/user_guide/map_alignment.rst (7)

21-23: Approve: Custom RT‐mapping mention reads well
The note about MapAlignmentTransformer is concise and correctly signals the advanced use case.


26-32: Approve: Algorithm descriptions accurately updated
The expanded explanation of PoseClustering vs. other aligners and the PSM/reference requirements is clear and matches the new tutorial flow.


34-63: Verify table formatting and footnote placement
The new summary table is a welcome addition. Please confirm in the built HTML that:

  1. The column headers align correctly.
  2. Footnote [#footnote1] appears just once and refers only to the “any” models column.
  3. Indentation of list‐table rows renders as expected.

117-123: Approve: Reference map selection snippet
The Python snippet correctly demonstrates picking the feature map with the most entries and excluding it from alignment. Variable naming (ref_index, feature_maps_to_align) is clear.


128-150: Approve: PoseClustering alignment example
The example walks through parameter retrieval, alignment, and RT transformation with original RT metadata. Code is accurate and well commented.


152-180: Approve: Identification‐based alignment code
The tutorial correctly showcases choosing models, setting parameters, and applying transformations for multiple maps. The ref_index = -1 idiom is well explained.


232-278: Approve: RT‐transformation landmarks plot
The plot_transformed_rt_with_trafo function is well structured, with distinct markers and colors. The commentary guides the user effectively.

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: 0

🧹 Nitpick comments (12)
docs/source/user_guide/feature_linking.rst (12)

20-20: Maintain formal and consistent instructional tone.

The phrases "We now perform feature linking..." (line 20) and "That's it!" (line 71) are conversational. For a more formal tutorial style, consider rephrasing to "Perform feature linking using the :py:class:~.FeatureGroupingAlgorithmQT algorithm." and "Now we can print summary information:" respectively.

Also applies to: 71-72


26-27: Verify Sphinx :linenos: directive formatting.

Ensure that each :linenos: option is consistently indented (commonly three spaces) under its corresponding .. code-block:: python directive and that a blank line separates the options from the code. Align this with other tutorials to maintain a uniform look.

Also applies to: 62-63, 76-77, 144-144


50-51: Align section heading underline length.

The underline under "Feature Linking Algorithm" (line 51) uses more asterisks than the title length. Adjust it so that the number of * matches the character count of the heading or follows the project's heading style conventions.


53-58: Improve grammar and readability of descriptive text.

  • Use "that" instead of "which" for restrictive clauses (e.g., "the process that connects…").
  • Consider splitting the very long sentence on line 58 into two sentences to enhance clarity and reduce cognitive load.

68-69: Capitalize inline comment for consistency.

In the Python snippet, line 68 reads # execute feature linking:—for consistency with sentence-style comments, capitalize it as # Execute feature linking:.


75-80: Consistent multi-line print formatting.

The multi-line print(f"Total number of consensus features: {consensus_map.size()}\n\n") is clear, but consider placing the extra newline directly in the string or handling it once in a separate print() call to avoid embedded escape sequences and improve readability.


83-90: Add docstring and type hints to helper function.

The compute_feature_size_stats helper would benefit from a brief docstring describing its input (ConsensusMap) and return type (Dict[int, int]), as well as optional Python type hints on the function signature. This helps learners understand the contract and return value structure.


96-106: Clarify example loop for consensus features.

To guide users through the enumeration:

  • Add a short comment before the loop to explain that only the first few consensus features are shown.
  • Ensure consistent indentation for the multi-line print(...) call to match other code snippets.

108-112: Refine output introduction phrasing.

Instead of "This then prints:", consider using "The following output is produced:" or "Example output:" to more clearly introduce the .. code-block:: output section.


112-119: Verify indentation in output code block.

Ensure each line (e.g., Map 0: ..., Map 1: ...) is indented uniformly (typically four spaces) within the .. code-block:: output directive to maintain clear formatting.


151-157: Standardize inline comments and variable usage.

  • Change ## filename (line 151) to a single # filename for consistency with the rest of the snippets.
  • Avoid reusing file_descriptions for both the original and updated headers. Consider renaming the updated mapping (e.g., new_headers) before calling consensus_map.setColumnHeaders(...) to prevent shadowing.

159-161: Include example output for metadata section.

To complete this tutorial section, add a corresponding .. code-block:: output snippet showing the printed metadata (Filename, Size, UniqueID) so users can compare against expected results.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 44ff3ea and 56e9631.

📒 Files selected for processing (1)
  • docs/source/user_guide/feature_linking.rst (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: build-test
  • GitHub Check: build-test
🔇 Additional comments (1)
docs/source/user_guide/feature_linking.rst (1)

64-69: Code snippet setup and execution are accurate.

The initialization of consensus_map = oms.ConsensusMap() and the subsequent call feature_grouper.group(feature_maps, consensus_map) correctly demonstrate the API usage for feature linking. No issues found.

@cbielow cbielow merged commit b9bcad8 into OpenMS:master Apr 29, 2025
4 of 6 checks passed
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