Skip to content

Feat: compute-features command#171

Merged
JemmaLDaniel merged 3 commits into
mainfrom
feat-compute-features-command
Apr 2, 2026
Merged

Feat: compute-features command#171
JemmaLDaniel merged 3 commits into
mainfrom
feat-compute-features-command

Conversation

@JemmaLDaniel

@JemmaLDaniel JemmaLDaniel commented Mar 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

This branch introduces a feature-only pipeline: load a dataset the same way as training, run the calibrator’s configured feature stack via ProbabilityCalibrator.compute_features, and write enriched metadata to a single CSV. It does not fit the MLP or save a calibrator checkpoint.

Description

  • winnow compute-features - Hydra entry point using compute_features.yaml (defaults mirror training settings: residues, calibrator, data_loader).
  • winnow config compute-features - print the resolved config without running the pipeline.
  • Config - dataset_output_path, optional filter_empty_predictions, and labelled mode (with validation: e.g. RetentionTimeFeature is rejected for unlabelled runs; labelled runs require a sequence column).
  • Docs - updates in docs/configuration.md and docs/cli.md for the new command and config layout.

Motivation

Lets users export calibration features for inspection or downstream use without paying the cost of full model training.

@JemmaLDaniel JemmaLDaniel requested a review from BioGeek March 31, 2026 08:19
@JemmaLDaniel JemmaLDaniel self-assigned this Mar 31, 2026
@JemmaLDaniel JemmaLDaniel added the enhancement New feature or request label Mar 31, 2026
@github-actions

github-actions Bot commented Mar 31, 2026

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
data_types.py40100% 
calibration
   __init__.py00100% 
   calibration_features.py316797%247–248, 443, 728, 916, 920, 1215
   calibrator.py911583%69–70, 72, 106–109, 134–135, 137, 162–163, 167, 194–195
compat
   __init__.py00100% 
   instanovo.py10640%12, 14–15, 17, 24–25
datasets
   __init__.py00100% 
   calibration_dataset.py1091784%155, 169, 171, 173, 183, 196, 249, 251–252, 258–261, 263–266
   data_loaders.py2261394%130, 161–162, 318, 359, 751, 755, 804, 815, 927–928, 956–957
   interfaces.py30100% 
   psm_dataset.py250100% 
fdr
   __init__.py00100% 
   base.py581574%81, 85–86, 91, 98–99, 105, 126, 129–130, 135, 137–138, 144, 186
   database_grounded.py28196%52
   nonparametric.py25484%62, 68–69, 72
scripts
   __init__.py00100% 
   main.py1851850%8, 10–13, 16–20, 23–24, 26–28, 32, 39, 44, 47, 53, 55–56, 59, 68, 76, 79, 86, 88–90, 92, 94–99, 102, 104–105, 110, 125, 128, 135–141, 144–145, 148, 161–163, 166, 169, 174, 176–178, 180, 182–183, 186–187, 190, 192–193, 195, 197, 199–200, 202, 205–206, 209–210, 213–214, 217–219, 221, 224, 238–240, 242, 244, 249, 251–253, 255–256, 258–260, 265–266, 268–270, 272, 274, 276–277, 281–284, 286–287, 289–290, 292–293, 295, 298, 312–314, 317, 320, 325, 327–329, 331–333, 335–336, 339–340, 343, 345–346, 348, 350, 352–353, 355, 358–359, 365–366, 369–370, 373–374, 377–378, 386–388, 392, 395, 399, 402, 425, 438–439, 442, 464, 476–477, 480, 505, 518–519, 522, 537, 549–550, 553, 565, 577–578, 581, 596, 608–609
utils
   __init__.py40100% 
   config_formatter.py534024%29, 37–38, 40–42, 44, 55, 58–60, 62–63, 66–69, 72–74, 77–78, 80, 91, 102, 113, 127–128, 130–132, 145–147, 150, 153–154, 157–158, 160
   config_path.py76593%24–26, 117–118
   peptide.py160100% 
TOTAL122930874% 

Tests Skipped Failures Errors Time
287 0 💤 0 ❌ 0 🔥 13.302s ⏱️

Comment thread docs/cli.md
winnow compute-features

# Paths and output file
winnow compute-features dataset.spectrum_path_or_directory=data/spectra.ipc dataset.predictions_path=data/preds.csv dataset_output_path=results/features.csv

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Shouldn't this command use the example data?


dataset:
# Dataset paths (same as train):
spectrum_path_or_directory: examples/example_data/spectra.ipc

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Don't forget to change this to spectra.mgf later if you also merge #173

@JemmaLDaniel JemmaLDaniel force-pushed the feat-compute-features-command branch 2 times, most recently from d627dc9 to fad4c6e Compare April 2, 2026 09:37
@JemmaLDaniel JemmaLDaniel force-pushed the feat-compute-features-command branch from fad4c6e to 9fe7a11 Compare April 2, 2026 09:39
@JemmaLDaniel JemmaLDaniel merged commit dc6463c into main Apr 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants