Releases: NMRSamples/schema
Releases · NMRSamples/schema
Release list
v0.4.0
v0.4.0
Non-breaking changes:
- Added
sample.components[].typefield (null | "" | small molecule | peptide | protein | RNA | DNA | carbohydrate | other) to classify molecule type - Added
19Fisotopic labelling option:19F - Expanded
buffer.solventenum with common NMR solvents:5% D2O,CD2Cl2,CD3CN,C6D6,D6-acetone,D5-pyridine,D8-toluene,D8-THF,D12-cyclohexane,D3-TFA
Infrastructure:
- Added unit tests for Python, Julia, and JavaScript conversion scripts (CI via GitHub Actions)
- Added MATLAB tests for local runs
- Fixed wildcard
setoperations materialising spurious empty-dict intermediates when the parent array was absent
v0.3.0
Non-breaking changes
- add molecular_weight field to sample components
- rename nmr_tube diameter to diameter_mm
Breaking changes
- remove equiv from allowed sample concentration units
v0.2.0
v0.2.0
Non-breaking changes:
- Moved schema from
waudbygroupto new organisation,nmr-samples/schema - Add
metadata.schema_sourcewith link to schema
v0.1.0
v0.1.0
Breaking Changes:
- Changed
sample.components[].concentrationtoconcentration_or_amountto better reflect that this field can represent either concentration or absolute amounts - Changed
nmr_tube.diameterfrom enum of specific string values ("1.7 mm", "3 mm", "5 mm") to a numeric field (type: number) with min/max validation (0.1-10 mm) - Renamed
nmr_tube.samplejet_rack_idtonmr_tube.rack_id - Removed
nmr_tube.samplejet_rack_positionfield
New Features:
- Added
sample.physical_formfield to specify physical state (solution, aligned, solid) - Added
nmr_tube.sample_mass_mgfield for recording sample mass - Added
nmr_tube.rotor_serialfield for solid-state NMR rotors - Expanded
nmr_tube.typeenum to include rotor types: "zirconia rotor", "silicon nitride rotor", "sapphire rotor" - Added units for absolute amounts in
sample.components[].unit: "mg", "umol", "nmol" - Enhanced
sample.components[].isotopic_labellingoptions with deuteration patterns:- "2H,15N", "2H,Ile-δ1-13CH3", "2H,Leu/Val-13CH3", "2H,ILV-13CH3"
- "2H,Met-13CH3", "2H,ILVM-13CH3", "2H,ILVA-13CH3", "2H,ILVMA-13CH3", "2H,ILVMAT-13CH3"
- Reorganized some isotopic labelling options (e.g., separated "Ile-δ1-13CH3,15N" and "ILV-13CH3,15N")
Description Updates:
- Updated
people.groupsdescription to clarify "Research groups (surnames)" - Changed
nmr_tubetitle from "NMR Tube" to "NMR Tube / Rotor" - Updated
nmr_tube.diameterdescription to include rotors - Updated
nmr_tube.typedescription to mention rotors - Clarified
sample.components[].nameas "Molecule name" - Improved
sample.components[].concentration_or_amountdescription
Migration Support:
- Added migration tools in Python and Julia (see
migration-code/) - Added
current/patch.jsonwith automated migration rules - See Patching schema updates section for migration details
v0.0.3
Release v0.0.3
Breaking Changes
This release standardises field naming conventions throughout the schema, changing from Pascal Case to snake_case for all field names. This is a breaking change that requires migration of existing data files.
Field Name Changes
All field names have been converted to snake_case for consistency:
Top-level fields:
Users→people/users(also restructured under new people object)Sample→sampleBuffer→bufferNMR Tube→nmr_tubeLaboratory Reference→referenceNotes→notesMetadata→metadata
New Features
- Added new people object structure with support for both users and groups arrays, allowing research group affiliations to be recorded
- Schema version updated to 0.0.3
- Migration: A JSON Patch file (0.0.2-to-0.0.3.jsonpatch) is provided to facilitate migration from v0.0.2 to v0.0.3 format. This patch file can be applied to existing data files to automatically convert them to the new schema.
Full Changelog: v0.0.2...v0.0.3
v0.0.2
Non-breaking changes:
- add version information to schema
- add blank options to fields (e.g. tube type, etc)
Full Changelog: v0.0.1...v0.0.2
v0.0.1
Initial release