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
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$')

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