Skip to main content

Tetra Data Domain-Specific Components Documentation

ts-ids-components is home to domain-specific common components for use in programmatic IDSs. For getting started with programmatic IDS or documentation about creating and using Tetra Data models, see ids.tetrascience.com.

These components can be used in any IDS as a way to build upon existing data models. When multiple IDSs use the same common components, accessing data becomes more consistent by enabling reuse of search queries and application code.

Version

v0.20.0

Install

pip install ts-ids-components

Quickstart

After installing this package, components can be imported and used in any programmatic IDS definition.

Here is an example of a complete IDS definition which uses the {py:class}Filter <ts_ids_components.plate_reader.Filter> component:

from typing import List

from ts_ids_core.schema import (
    IdsElement,
    IdsField,
    Required,
    SchemaExtraMetadataType,
    TetraDataSchema,
)

from ts_ids_components.plate_reader import Filter


class InstrumentMethod(IdsElement):
    """Methods defined for the instrument run"""

    protocol_id: str = IdsField(description="Identifier for the protocol used")
    filter: Filter


class MyPlateReaderModel(TetraDataSchema):
    """IDS demonstrating plate reader components"""

    schema_extra_metadata: SchemaExtraMetadataType = {
        "$id": "https://ids.tetrascience.com/common/plate-reader-component-demo/v1.0.0/schema.json",
        "$schema": "http://json-schema.org/draft-07/schema",
    }

    ids_type: Required[str] = IdsField(
        default="plate-reader-component-demo", alias="@idsType", const=True
    )
    ids_version: Required[str] = IdsField(
        default="v1.0.0", alias="@idsVersion", const=True
    )
    ids_namespace: Required[str] = IdsField(
        default="common", alias="@idsNamespace", const=True
    )

    methods: List[InstrumentMethod]

See {external+ts-ids-core:doc}ts-ids-core export-schema <cli/export_schema> documentation for an explanation of generating JSON Schema from a programmatic IDS.

Expand to show JSON schema for `MyPlateReaderModel`
{
  "description": "IDS demonstrating plate reader components",
  "type": "object",
  "properties": {
    "@idsType": {
      "const": "plate-reader-component-demo",
      "type": "string"
    },
    "@idsVersion": {
      "const": "v1.0.0",
      "type": "string"
    },
    "@idsNamespace": {
      "const": "common",
      "type": "string"
    },
    "@idsConventionVersion": {
      "description": "IDS convention version. Defined by TetraScience.",
      "const": "v1.0.0",
      "type": "string"
    },
    "methods": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/InstrumentMethod"
      }
    }
  },
  "required": [
    "@idsType",
    "@idsVersion",
    "@idsNamespace",
    "@idsConventionVersion"
  ],
  "additionalProperties": false,
  "$id": "https://ids.tetrascience.com/common/plate-reader-component-demo/v1.0.0/schema.json",
  "$schema": "http://json-schema.org/draft-07/schema",
  "definitions": {
    "ValueUnit": {
      "type": "object",
      "properties": {
        "value": {
          "type": [
            "number",
            "null"
          ]
        },
        "unit": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "value",
        "unit"
      ],
      "additionalProperties": false
    },
    "Filter": {
      "description": "Optical filter properties",
      "type": "object",
      "properties": {
        "position": {
          "description": "Position of this filter in a container like a filter wheel",
          "type": [
            "string",
            "null"
          ]
        },
        "bandwidth": {
          "description": "The range of frequencies associated with this filter",
          "$ref": "#/definitions/ValueUnit"
        },
        "wavelength": {
          "description": "Characteristic wavelength of this filter",
          "$ref": "#/definitions/ValueUnit"
        }
      },
      "additionalProperties": false
    },
    "InstrumentMethod": {
      "description": "Methods defined for the instrument run",
      "type": "object",
      "properties": {
        "protocol_id": {
          "description": "Identifier for the protocol used",
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/Filter"
        }
      },
      "additionalProperties": false
    }
  }
}

License

License information can be found here: LICENSE.

Metadata

Release files for ts-ids-components 0.20.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ts-ids-components 0.20.0
File Size Uploaded
ts_ids_components-0.20.0.tar.gz 57.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ts-ids-components 0.20.0
File Interpreter ABI Platform
ts_ids_components-0.20.0-py3-none-any.whl Python 3 none any Details

Total release size: 131.7 kB

Release files / ts_ids_components-0.20.0.tar.gz

Download URL ts_ids_components-0.20.0.tar.gz
Size 57.1 kB
Tags Source
SHA-256 checksum
How to use checksums
493cadc81e4e4cc187ba5cedd29e44478493bed18fed7c86be861dc3af3f4b51
BLAKE2b-256 checksum
How to use checksums
16aaef3818f204a79249d63db1c174d7fce669d9b9a616f613c898ff9725449d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release files / ts_ids_components-0.20.0-py3-none-any.whl

Download URL ts_ids_components-0.20.0-py3-none-any.whl
Size 74.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53dc2d7e54fcaec298474526282ad1e27d01e0dfbd5fa0e5394b625470b8e98c
BLAKE2b-256 checksum
How to use checksums
adc75b374c13e768079691082f13844e229a7de2d766eb577f69374c8be9b0b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.21.0

2 release files

This release

0.20.0 This release

2 release files

0.19.0

2 release files

0.17.0

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.12.0

2 release files

0.11.2

2 release files

0.11.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page