Skip to content

Releases: NMRSamples/schema

v0.4.0

Choose a tag to compare

@chriswaudby chriswaudby released this 27 Apr 15:08

v0.4.0

Non-breaking changes:

  • Added sample.components[].type field (null | "" | small molecule | peptide | protein | RNA | DNA | carbohydrate | other) to classify molecule type
  • Added 19F isotopic labelling option: 19F
  • Expanded buffer.solvent enum 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 set operations materialising spurious empty-dict intermediates when the parent array was absent

v0.3.0

Choose a tag to compare

@chriswaudby chriswaudby released this 07 Apr 15:08

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

Choose a tag to compare

@chriswaudby chriswaudby released this 18 Feb 12:44

v0.2.0

Non-breaking changes:

  • Moved schema from waudbygroup to new organisation, nmr-samples/schema
  • Add metadata.schema_source with link to schema

v0.1.0

Choose a tag to compare

@chriswaudby chriswaudby released this 17 Feb 15:32

v0.1.0

Breaking Changes:

  • Changed sample.components[].concentration to concentration_or_amount to better reflect that this field can represent either concentration or absolute amounts
  • Changed nmr_tube.diameter from 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_id to nmr_tube.rack_id
  • Removed nmr_tube.samplejet_rack_position field

New Features:

  • Added sample.physical_form field to specify physical state (solution, aligned, solid)
  • Added nmr_tube.sample_mass_mg field for recording sample mass
  • Added nmr_tube.rotor_serial field for solid-state NMR rotors
  • Expanded nmr_tube.type enum 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_labelling options 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.groups description to clarify "Research groups (surnames)"
  • Changed nmr_tube title from "NMR Tube" to "NMR Tube / Rotor"
  • Updated nmr_tube.diameter description to include rotors
  • Updated nmr_tube.type description to mention rotors
  • Clarified sample.components[].name as "Molecule name"
  • Improved sample.components[].concentration_or_amount description

Migration Support:

  • Added migration tools in Python and Julia (see migration-code/)
  • Added current/patch.json with automated migration rules
  • See Patching schema updates section for migration details

v0.0.3

Choose a tag to compare

@chriswaudby chriswaudby released this 23 Oct 16:30

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 → sample
  • Buffer → buffer
  • NMR Tube → nmr_tube
  • Laboratory Reference → reference
  • Notes → notes
  • Metadata → 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

v0.0.2 Pre-release
Pre-release

Choose a tag to compare

@chriswaudby chriswaudby released this 23 Oct 16:26

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

v0.0.1 Pre-release
Pre-release

Choose a tag to compare

@chriswaudby chriswaudby released this 23 Oct 16:26

Initial release