feat: Cytiva Biacore Insight - Support multiple processed data documents (enables Kinetics + Affinity model data)#1175
Closed
james-leinas wants to merge 9 commits into
Closed
Conversation
Allow measurements to have multiple processed data documents when both kinetics and affinity models are present. This enables proper representation of files where both 1:1 binding kinetics and steady state affinity analyses are performed on the same data. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated Cytiva Biacore T200 Control and T200 Evaluation parsers to work with the new binding_affinity_analyzer schema that uses list[ProcessedData] instead of individual processed data fields on Measurement. Changes to T200 Control: - Added ProcessedData import - Wrap report points in a ProcessedData object (required by new schema where report points are nested inside processed data documents) - Create empty ProcessedData with model_name="N/A" when report points exist Changes to T200 Evaluation: - Added ProcessedData import - Extract kinetic parameters (kon, koff, kd, rmax) into variables - Create ProcessedData object with kinetic parameters and custom info - Pass processed_data=[ProcessedData(...)] instead of individual fields This maintains backward compatibility while supporting the enhanced schema that allows multiple analysis models per measurement (e.g., both kinetics and affinity models in Cytiva Biacore Insight). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated EvaluationKinetics.get_data() to return list[KineticsData] instead of a single KineticsData object. This aligns with the internal storage (_data) which already stores lists of KineticsData (to support multiple analysis models like both kinetics and affinity in the same measurement). This fixes a type mismatch where get_data was returning the wrong type, and enables proper support for measurements with multiple analysis models. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ture Updated test expected outputs to reflect the new schema structure where kinetic analysis data is wrapped in ProcessedData objects within processed data aggregate documents. Changes: - Added processed data aggregate document containing ProcessedData with: - model_name extracted from kinetic data - Kinetic parameters (kon, koff, kd, rmax) - Custom info (kinetics chi squared, ka/kd/Rmax errors) All T200 Evaluation tests passing (1/1). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…calculated concentration Updated test expected outputs to include changes from main branch: - Dynamic extraction of Analyte 1-N columns (from PR #1171) - Calculated concentration support (from PR #1172) - Support for multiple ProcessedData documents (kinetics + affinity models) Changes include: - Multiple Analyte fields (Analyte 2, Analyte 3) in device control and sample custom info - Multiple Regeneration fields (Regeneration 2, Regeneration 3) - Two processed data documents per measurement when both models exist: 1. 1:1 binding kinetics model with kon, koff, KD, Rmax 2. Steady state affinity model with KD, Rmax, offset - Test data masking updates (sensor chip ID, lot number, solution names) All Insight tests passing (4/4). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ht-kinetics-affinity
ajcariaga16
previously approved these changes
Apr 13, 2026
…ht-kinetics-affinity # Conflicts: # src/allotropy/allotrope/schema_mappers/adm/binding_affinity_analyzer/benchling/_2024/_12/binding_affinity_analyzer.py # src/allotropy/parsers/cytiva_biacore_insight/cytiva_biacore_insight_data_creator.py
The RefResolver's store parameter has an incorrect type hint that doesn't match the actual expected usage. The store needs to be a dict of schema objects, not strings. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Collaborator
|
Closing — this work was fully covered by #1183, which is a strict superset (includes the same shared mapper/insight/t200-control changes plus additional T200 Evaluation decoder and KD error extraction that this PR lacked). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes include:
Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com