Starting Materials¶
StartingMaterial
¶
Bases: Item, HasSynthesisInfo
A model for representing an experimental sample, based on the connection with cheminventory.net, which mixes container-level and substance-level information.
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. |
barcode |
str | None
|
A unique barcode provided by an external source, e.g., cheminventory. |
blocks_obj |
dict[str, DataBlockResponse]
|
A mapping from block ID to block data. |
chemform |
str | None
|
A string representation of the chemical formula associated with this sample. |
chemical_purity |
str | None
|
The chemical purity of this container with regards to the defined substance. |
collections |
list[Collection]
|
Inlined info for the collections associated with this item. |
comment |
str | None
|
Any additional comments or notes about the container. |
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
|
The date the item was acquired |
date_opened |
IsoformatDateTime | None
|
The date the item was opened |
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. |
full_percent |
str | None
|
The amount of the defined substance remaining in the container, expressed as a percentage. |
immutable_id |
PyObjectId
|
The immutable database ID of the entry. |
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. |
location |
str | None
|
The place where the container is located. |
molar_mass |
float | None
|
Mass per formula unit, in g/mol. |
name |
str | None
|
The name of the substance in the container. |
refcode |
Refcode
|
A globally unique immutable ID comprised of the deployment prefix (e.g., |
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. |
size |
str | None
|
The total size of the container, in units of |
size_unit |
str | None
|
Units for the 'size' field. |
smiles_representation |
str | None
|
A SMILES string representation of a chemical structure associated with this substance. |
supplier |
str | None
|
Supplier or manufacturer of the chemical. |
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. |
CAS
¶
The CAS Registry Number for the substance described by this entry.
GHS_codes
¶
A string describing any GHS hazard codes associated with this item. See pubchem.ncbi.nlm.nih.gov/ghs/ for code definitions.
barcode
¶
A unique barcode provided by an external source, e.g., cheminventory.
blocks_obj
¶
A mapping from block ID to block data.
chemform
¶
A string representation of the chemical formula associated with this sample.
chemical_purity
¶
The chemical purity of this container with regards to the defined substance.
collections
¶
collections: list[Collection] = Field([])
Inlined info for the collections associated with this item.
comment
¶
Any additional comments or notes about the container.
creator_ids
¶
The database IDs of the user(s) who created the item.
creators
¶
Inlined info for the people associated with this item.
date_opened
¶
date_opened: IsoformatDateTime | None = Field(alias='Date opened')
The date the item was opened
description
¶
description: str | None
A description of the item, either in plain-text or a markup language.
display_order
¶
The order in which to display block data in the UI.
file_ObjectIds
¶
Links to object IDs of files stored within the database.
full_percent
¶
The amount of the defined substance remaining in the container, expressed as a percentage.
immutable_id
¶
immutable_id: PyObjectId = Field(None, title='Immutable ID', alias='_id', format='uuid')
The immutable database ID of the entry.
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
¶
Mass per formula unit, in g/mol.
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.
revisions
¶
An optional mapping from old revision numbers to the model state at that revision.
size
¶
The total size of the container, in units of size_unit.
smiles_representation
¶
A SMILES string representation of a chemical structure associated with this substance.
synthesis_constituents
¶
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
¶
The resource type of the entry.
add_missing_synthesis_relationships
¶
add_missing_synthesis_relationships(values)
Add any missing sample synthesis constituents to parent relationships
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.