Skip to content

Samples

Sample

Bases: Item, HasSynthesisInfo, HasSubstanceInfo

A model for representing an experimental sample.

Attributes:

Name Type Description
CAS str | None

The CAS Registry Number for the substance described by this entry.

GHS_codes str | None

A string describing any GHS hazard codes associated with this item. See pubchem.ncbi.nlm.nih.gov/ghs/ for code definitions.

blocks_obj dict[str, DataBlockResponse]

A mapping from block ID to block data.

chemform str | None

A string representation of the chemical formula or composition associated with this sample.

collections list[Collection]

Inlined info for the collections associated with this item.

creator_ids list[PyObjectId]

The database IDs of the user(s) who created the item.

creators list[Person] | None

Inlined info for the people associated with this item.

date IsoformatDateTime | None

A relevant 'creation' timestamp for the entry (e.g., purchase date, synthesis date).

description str | None

A description of the item, either in plain-text or a markup language.

display_order list[str]

The order in which to display block data in the UI.

file_ObjectIds list[PyObjectId]

Links to object IDs of files stored within the database.

files list[File] | None

Any files attached to this sample.

group_ids list[PyObjectId]

The database IDs of the group(s) that have read-access to this item.

groups list[Group] | None

Inlined info for the groups with access to this item.

immutable_id PyObjectId

The immutable database ID of the entry.

inchi str | None

An International Chemical Identifier (InChI) string representation of chemicals/molecules associated with this sample.

inchi_key str | None

A unique key derived from the InChI.

item_id HumanReadableIdentifier

A locally unique, human-readable identifier for the entry. This ID is mutable.

last_modified IsoformatDateTime | None

The timestamp at which the entry was last modified.

molar_mass float | None

Mass per formula unit, in g/mol.

name str | None

An optional human-readable/usable name for the entry.

refcode Refcode

A globally unique immutable ID comprised of the deployment prefix (e.g., grey)

relationships list[TypedRelationship] | None

A list of related entries and their types.

revision int

The revision number of the entry.

revisions dict[int, Any] | None

An optional mapping from old revision numbers to the model state at that revision.

smiles str | None

A SMILES string representation of the chemical structure associated with this sample.

status SampleStatus

The status of the sample, indicating its current state.

synthesis_constituents list[Constituent]

A list of references to constituent materials giving the amount and relevant inlined details of consituent items.

synthesis_description str | None

Free-text details of the procedure applied to synthesise the sample

type str

The resource type of the entry.

version int

The version number used by the version control system for tracking snapshots.

CAS

CAS: str | None = Field(alias='Substance CAS')

The CAS Registry Number for the substance described by this entry.

GHS_codes

GHS_codes: str | None = Field(alias='GHS H-codes', examples=['H224', 'H303, H316, H319'])

A string describing any GHS hazard codes associated with this item. See pubchem.ncbi.nlm.nih.gov/ghs/ for code definitions.

blocks_obj

blocks_obj: dict[str, DataBlockResponse] = Field({})

A mapping from block ID to block data.

chemform

chemform: str | None = Field(example=['Na3P', 'Na<sub>3</sub>P', 'LiNiO2@C', 'Na3+xP', 'LiNi1/3Co0.1Mn0.1O2'])

A string representation of the chemical formula or composition associated with this sample.

The representation is relatively free-form; clients are expected parse and interpret HTML markup for subscripts and accept unicode characters for greek letters.

collections

collections: list[Collection] = Field([])

Inlined info for the collections associated with this item.

creator_ids

creator_ids: list[PyObjectId] = Field([])

The database IDs of the user(s) who created the item.

creators

creators: list[Person] | None = Field(None)

Inlined info for the people associated with this item.

date

date: IsoformatDateTime | None

A relevant 'creation' timestamp for the entry (e.g., purchase date, synthesis date).

description

description: str | None

A description of the item, either in plain-text or a markup language.

display_order

display_order: list[str] = Field([])

The order in which to display block data in the UI.

file_ObjectIds

file_ObjectIds: list[PyObjectId] = Field([])

Links to object IDs of files stored within the database.

files

files: list[File] | None

Any files attached to this sample.

group_ids

group_ids: list[PyObjectId] = Field([])

The database IDs of the group(s) that have read-access to this item.

groups

groups: list[Group] | None = Field(None)

Inlined info for the groups with access to this item.

immutable_id

immutable_id: PyObjectId = Field(None, title='Immutable ID', alias='_id', format='uuid')

The immutable database ID of the entry.

inchi

inchi: str | None = Field(None)

An International Chemical Identifier (InChI) string representation of chemicals/molecules associated with this sample.

inchi_key

inchi_key: str | None = Field(None)

A unique key derived from the InChI.

item_id

item_id: HumanReadableIdentifier

A locally unique, human-readable identifier for the entry. This ID is mutable.

last_modified

last_modified: IsoformatDateTime | None = None

The timestamp at which the entry was last modified.

molar_mass

molar_mass: float | None = Field(alias='Molecular Weight')

Mass per formula unit, in g/mol.

name

name: str | None

An optional human-readable/usable name for the entry.

refcode

refcode: Refcode = None

A globally unique immutable ID comprised of the deployment prefix (e.g., grey) and a locally unique string, ideally created with some consistent scheme.

relationships

relationships: list[TypedRelationship] | None = None

A list of related entries and their types.

revision

revision: int = 1

The revision number of the entry.

revisions

revisions: dict[int, Any] | None = None

An optional mapping from old revision numbers to the model state at that revision.

smiles

smiles: str | None = Field(None, aliases=['SMILES', 'smiles_representation'])

A SMILES string representation of the chemical structure associated with this sample.

status

status: SampleStatus = Field(default=ACTIVE)

The status of the sample, indicating its current state.

synthesis_constituents

synthesis_constituents: list[Constituent] = Field([])

A list of references to constituent materials giving the amount and relevant inlined details of consituent items.

synthesis_description

synthesis_description: str | None = None

Free-text details of the procedure applied to synthesise the sample

type

type: str = Field('samples', const='samples', pattern='^samples$')

The resource type of the entry.

version

version: int = 1

The version number used by the version control system for tracking snapshots.

add_missing_collection_relationships

add_missing_collection_relationships(values)

add_missing_synthesis_relationships

add_missing_synthesis_relationships(values)

Add any missing sample synthesis constituents to parent relationships

add_molar_mass

add_molar_mass(v, values)

check_id_names

check_id_names(values)

Slightly upsetting hack: this case should be covered by the pydantic setting for populating fields by alias names.

refcode_validator

refcode_validator(v)

Generate a refcode if not provided.

to_reference

to_reference(additional_fields: list[str] | None = None) -> EntryReference

Populate an EntryReference model from this entry, selecting additional fields to inline.

Parameters:

Name Type Description Default
additional_fields list[str] | None

A list of fields to inline in the reference.

None