ts_ids_components.particle_sizer.system module#

System component for particle sizer IDSs.

ParticleSizerSystem extends the generic System component with the fields common to particle sizer instruments: serial number, software, firmware, and a list of attached Accessory objects.

ParticleSizerSystem carries a pk (UUIDPrimaryKey) so a consuming IDS can declare it as a top-level array (systems: List[ParticleSizerSystem]) and results/datacubes can reference the specific system that produced them via fk_system, rather than relying on a file-wide singleton. pk values must be generated deterministically by the task script (seeded from file content and task script identity), not by this component.

Vendor-specific configuration (e.g. Wyatt DynaPro’s numbered tag/value parameters from the .dexp file) is intentionally left out of this shared component – it belongs in the vendor-specific IDS, not the component library.

Model Accessory[source]#

Bases: IdsElement

An accessory or module attached to a particle sizer instrument – e.g. a dispersion unit (Malvern Mastersizer’s Hydro/Aero), an autosampler, a sample-prep chamber, or an additional detector channel.

A particle sizer can be equipped with more than one accessory, so ParticleSizerSystem holds these as a list. Modeled as an object (rather than a bare serial-number string) so the serial number stays tied to the accessory it identifies and so additional accessory attributes can be captured as instruments report them. In some raw data (e.g. the Mastersizer CSV export) only the serial number is available, in which case name is left unset.

Show JSON schema
{
   "description": "An accessory or module attached to a particle sizer instrument -- e.g. a\ndispersion unit (Malvern Mastersizer's Hydro/Aero), an autosampler, a\nsample-prep chamber, or an additional detector channel.\n\nA particle sizer can be equipped with more than one accessory, so\n:py:class:`ParticleSizerSystem` holds these as a list. Modeled as an\nobject (rather than a bare serial-number string) so the serial number\nstays tied to the accessory it identifies and so additional accessory\nattributes can be captured as instruments report them. In some raw data\n(e.g. the Mastersizer CSV export) only the serial number is available, in\nwhich case ``name`` is left unset.",
   "type": "object",
   "properties": {
      "name": {
         "description": "Name or type of the accessory, e.g. 'Hydro MV' or 'Aero S'. Unset when the raw data reports only the serial number.",
         "type": [
            "string",
            "null"
         ]
      },
      "serial_number": {
         "description": "Serial number of the accessory, as reported by the instrument.",
         "type": [
            "string",
            "null"
         ]
      }
   },
   "additionalProperties": false
}

Validators:

field name: str | None#

Name or type of the accessory, e.g. ‘Hydro MV’ or ‘Aero S’. Unset when the raw data reports only the serial number.

field serial_number: str | None#

Serial number of the accessory, as reported by the instrument.

Model ParticleSizerSystem[source]#

Bases: System, SerialNumber, Software, Firmware

Instrument system information common to particle sizer instruments, across Dynamic Light Scattering (DLS), Electrophoretic Light Scattering (ELS/Zeta), Static Light Scattering (SLS), and Laser Diffraction (LD) vendors (e.g. Malvern Zetasizer, Wyatt DynaPro, Malvern Mastersizer).

Show JSON schema
{
   "description": "Instrument system information common to particle sizer instruments,\nacross Dynamic Light Scattering (DLS), Electrophoretic Light Scattering\n(ELS/Zeta), Static Light Scattering (SLS), and Laser Diffraction (LD)\nvendors (e.g. Malvern Zetasizer, Wyatt DynaPro, Malvern Mastersizer).",
   "type": "object",
   "properties": {
      "firmware": {
         "description": "System firmware metadata.",
         "items": {
            "$ref": "#/definitions/Firmware"
         },
         "type": "array"
      },
      "software": {
         "description": "Software applications that most recently handled the data (file) or the applications the data (file) is intended for. For example, applications can include Electronic Lab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems (CDS), or instrument-specific analysis software.",
         "items": {
            "$ref": "#/definitions/Software"
         },
         "type": "array"
      },
      "serial_number": {
         "description": "System serial number. Indicates a unique instrument identifier within the same model line from a specific vendor. This is provided by the system vendor, unlike an ID or name which are usually created by the system owner or user.",
         "type": [
            "string",
            "null"
         ]
      },
      "vendor": {
         "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.",
         "type": [
            "string",
            "null"
         ]
      },
      "model": {
         "description": "A specific model instrument type from a vendor.",
         "type": [
            "string",
            "null"
         ]
      },
      "type": {
         "description": "Indicates the type of instrument that's generating data.",
         "type": [
            "string",
            "null"
         ]
      },
      "pk": {
         "@primary_key": true,
         "description": "Primary key for this system, referenced by results/datacubes belonging to it.",
         "type": "string"
      },
      "accessories": {
         "description": "Accessories or modules attached to the instrument (dispersion unit, autosampler, sample-prep chamber, additional detector channel, etc.). Empty when none are reported.",
         "items": {
            "$ref": "#/definitions/Accessory"
         },
         "type": "array"
      }
   },
   "additionalProperties": false,
   "required": [
      "vendor",
      "model",
      "type",
      "pk"
   ],
   "definitions": {
      "Accessory": {
         "additionalProperties": false,
         "description": "An accessory or module attached to a particle sizer instrument -- e.g. a\ndispersion unit (Malvern Mastersizer's Hydro/Aero), an autosampler, a\nsample-prep chamber, or an additional detector channel.\n\nA particle sizer can be equipped with more than one accessory, so\n:py:class:`ParticleSizerSystem` holds these as a list. Modeled as an\nobject (rather than a bare serial-number string) so the serial number\nstays tied to the accessory it identifies and so additional accessory\nattributes can be captured as instruments report them. In some raw data\n(e.g. the Mastersizer CSV export) only the serial number is available, in\nwhich case ``name`` is left unset.",
         "properties": {
            "name": {
               "description": "Name or type of the accessory, e.g. 'Hydro MV' or 'Aero S'. Unset when the raw data reports only the serial number.",
               "type": [
                  "string",
                  "null"
               ]
            },
            "serial_number": {
               "description": "Serial number of the accessory, as reported by the instrument.",
               "type": [
                  "string",
                  "null"
               ]
            }
         },
         "type": "object"
      },
      "Firmware": {
         "additionalProperties": false,
         "description": "System firmware metadata.",
         "properties": {
            "name": {
               "description": "Firmware name.",
               "type": [
                  "string",
                  "null"
               ]
            },
            "version": {
               "description": "Firmware version.",
               "type": [
                  "string",
                  "null"
               ]
            }
         },
         "required": [
            "name",
            "version"
         ],
         "type": "object"
      },
      "Software": {
         "additionalProperties": false,
         "description": "Software application that most recently handled the data (file) or the application\nthe data (file) is intended for. For example, applications can include Electronic\nLab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems\n(CDS), or instrument-specific analysis software.",
         "properties": {
            "name": {
               "description": "Software name.",
               "type": [
                  "string",
                  "null"
               ]
            },
            "version": {
               "description": "Software version.",
               "type": [
                  "string",
                  "null"
               ]
            }
         },
         "required": [
            "name",
            "version"
         ],
         "type": "object"
      }
   }
}

Validators:

field accessories: List[Accessory]#

Accessories or modules attached to the instrument (dispersion unit, autosampler, sample-prep chamber, additional detector channel, etc.). Empty when none are reported.

field firmware: List[system.Firmware]#

System firmware metadata.

field model: Required[Nullable[str]]#

A specific model instrument type from a vendor.

field pk: str#

Primary key for this system, referenced by results/datacubes belonging to it.

Constraints:
  • func = <function validate_uuid at 0x7f1493ac61f0>

  • json_schema_input_type = PydanticUndefined

field serial_number: Nullable[str]#

System serial number. Indicates a unique instrument identifier within the same model line from a specific vendor. This is provided by the system vendor, unlike an ID or name which are usually created by the system owner or user.

field software: List[system.Software]#

Software applications that most recently handled the data (file) or the applications the data (file) is intended for. For example, applications can include Electronic Lab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems (CDS), or instrument-specific analysis software.

field type_: Required[Nullable[str]] (alias 'type')#

Indicates the type of instrument that’s generating data.

field vendor: Required[Nullable[str]]#

The instrument vendor or manufacturer, like ‘PerkinElmer’ or ‘Agilent’.