citrine.informatics.design_spaces.hierarchical_design_space module

class citrine.informatics.design_spaces.hierarchical_design_space.HierarchicalDesignSpace(name: str, *, description: str, root: MaterialNodeDefinition, subspaces: List[MaterialNodeDefinition] | None = None, data_sources: List[DataSource] | None = None)

Bases: EngineResource[HierarchicalDesignSpace], DesignSpace

A design space that produces hierarchical candidates representing a material history.

A hierarchical design space always contains a root node that defines the attributes and formulation contents included on terminal materials of the candidates. It also includes a set of sub-nodes that can be used to define the any new materials that appear in the history of the terminal material.

Material histories produced by this design space are connected based on the name identifiers and formulation contents of each node. For example, the root node may contain a formulation subspace with an ingredient named ‘New Mixture-001’. If this ingredient matches the name field on one of the sub-nodes in the design space, the resulting candidates will contain a terminal material with this new mixture as one of its ingredients. This procedure can be extended to sub-nodes referencing other sub-nodes, allowing for the linkage of complex material history shapes in the resulting candidates.

Every node also contains a set of Dimensions used to define any attributes (i.e., properties, processing parameters) that will appear on the materials produced by that node.

DataSources can be included on the configuration to allow for design over “known” materials. The Citrine Platform will look up the ingredient names from formulation subspaces on the design space nodes in order to inject their composition/properties into the material history of the candidates. When constructing a default hierarchical design space, the Citrine Platform includes any data sources found on the provided predictor configuration.

Parameters:
  • name (str) – Name of the design space

  • description (str) – Description of the design space

  • root (MaterialNodeDefinition) – Terminal material node produced by the design space

  • subspaces (List[MaterialNodeDefinition]) – Sub material nodes produced by the design space

  • data_sources (List[DataSource]) – Data sources used to inject known materials into the hierarchical candidates

access_control_dict() dict

Return an access control entity representation of this resource. Internal use only.

classmethod build(data: dict) Self

Build an instance of this object from given data.

dump() dict

Dump this instance.

failed() bool

Whether the backend process has completed unsuccessfully.

classmethod get_type(data) Type[Serializable]

Return the subtype.

in_progress() bool

Whether the backend process is in progress.

succeeded() bool

Whether the backend process has completed successfully.

static wrap_instance(subspace_data: dict) dict

Insert a serialized embedded design space into an entity envelope.

This facilitates deserialization.

archive_time = None

date and time at which the resource was archived, if it has been archived

Type:

Optional[datetime]

archived_by = None

id of the user who archived the resource, if it has been archived

Type:

Optional[UUID]

create_time = None

date and time at which the resource was created

Type:

Optional[datetime]

created_by = None

id of the user who created the resource

Type:

Optional[UUID]

data_sources: List[DataSource] = None
description: str = None
property is_archived

whether the resource is archived (hidden but not deleted).

Type:

bool

name: str = None
root: MaterialNodeDefinition = None
property sample_design_space_executions

Start a Sample Design Space Execution using the current Design Space.

status = None

short description of the resource’s status

Type:

Optional[str]

status_detail = []

a list of structured status info, containing the message and level

Type:

List[StatusDetail]

subspaces: List[MaterialNodeDefinition] = None
typ = 'HierarchicalDesignSpace'
uid = None

Citrine Platform unique identifier

Type:

Optional[UUID]

update_time = None

date and time at which the resource was most recently updated, if it has been updated

Type:

Optional[datetime]

updated_by = None

id of the user who most recently updated the resource, if it has been updated

Type:

Optional[UUID]

class citrine.informatics.design_spaces.hierarchical_design_space.MaterialNodeDefinition(*, name: str, scope: str | None = None, attributes: List[Dimension] | None = None, formulation_subspace: FormulationDesignSpace | None = None, template_link: TemplateLink | None = None, display_name: str | None = None)

Bases: Serializable[MaterialNodeDefinition]

A single node in a material history design space.

Parameters:
  • name (str) – A unique name used to reference the materials produced by this node in the design space. This name should be used to identify the material when used as an ingredient in the formulation subspace of a different node.

  • scope (Optional[str]) – An optional custom scope used to identify the materials produced by this node.

  • attributes (List[Dimension]) – Set of dimensions included on materials produced by this node.

  • formulation_subspace (Optional[FormulationDesignSpace]) – An optional formulation design space defining the ingredients, labels, and constraints for formulations in materials produced by this node.

  • template_link (Optional[TemplateLink]) – A set of identifiers linking the materials produced by this node to material and process templates on the Citrine Platform.

  • display_name (Optional[str]) – Optional name for identifying the node on the Citrine Platform. Solely for display purposes (does not appear in generated hierarchical candidates)

classmethod build(data: dict) Self

Build an instance of this object from given data.

dump() dict

Dump this instance.

attributes = None
display_name: str | None = None
formulation_subspace: FormulationDesignSpace | None = None
name = None
scope: str | None = None

Bases: Serializable[TemplateLink]

Link to a Citrine Platform material and process template for a material node definition.

Parameters:
  • material_template (UUID) – Citrine ID referencing an on-platform material template.

  • process_template (UUID) – Citrine ID referencing an on-platform process template.

  • material_template_name (Optional[str]) – Optional name of the material template.

  • process_template_name (Optional[str]) – Optional name of the process template.

classmethod build(data: dict) Self

Build an instance of this object from given data.

dump() dict

Dump this instance.

material_template: UUID = None
material_template_name: str | None = None
process_template: UUID = None
process_template_name: str | None = None