Skip to content

omnipy.components.isa.models.study_schema

ISA model representing a study in an investigation.

ISA means Investigation/Study/Assay, and this module maps ISA-JSON JSON-LD study payloads into typed Omnipy models.

CLASS DESCRIPTION
FieldType

JSON-LD type labels used for ISA study entities.

IsaStudyModel

Omnipy model wrapper for ISA study records.

IsaStudySchema

Schema for study entries inside an ISA investigation.

FieldType

Bases: Enum


              flowchart BT
              omnipy.components.isa.models.study_schema.FieldType[FieldType]

              

              click omnipy.components.isa.models.study_schema.FieldType href "" "omnipy.components.isa.models.study_schema.FieldType"
            

JSON-LD type labels used for ISA study entities.

ATTRIBUTE DESCRIPTION
Study

Marks a JSON object as an ISA study.

Source code in src/omnipy/components/isa/models/study_schema.py
class FieldType(Enum):
    """JSON-LD type labels used for ISA study entities.

    Attributes:
        Study: Marks a JSON object as an ISA study.
    """

    Study = 'Study'

Study class-attribute instance-attribute

Study = 'Study'

IsaStudyModel

Bases: Model[IsaStudySchema]


              flowchart BT
              omnipy.components.isa.models.study_schema.IsaStudyModel[IsaStudyModel]
              omnipy.data.model.Model[Model]
              omnipy.data._mixins.display.ModelDisplayMixin[ModelDisplayMixin]
              omnipy.data._mixins.display.BaseDisplayMixin[BaseDisplayMixin]
              omnipy.data._data_class_creator.DataClassBase[DataClassBase]

                              omnipy.data.model.Model --> omnipy.components.isa.models.study_schema.IsaStudyModel
                                omnipy.data._mixins.display.ModelDisplayMixin --> omnipy.data.model.Model
                                omnipy.data._mixins.display.BaseDisplayMixin --> omnipy.data._mixins.display.ModelDisplayMixin
                

                omnipy.data._data_class_creator.DataClassBase --> omnipy.data.model.Model
                
                omnipy.util.pydantic.GenericModel --> omnipy.data.model.Model
                



              click omnipy.components.isa.models.study_schema.IsaStudyModel href "" "omnipy.components.isa.models.study_schema.IsaStudyModel"
              click omnipy.data.model.Model href "" "omnipy.data.model.Model"
              click omnipy.data._mixins.display.ModelDisplayMixin href "" "omnipy.data._mixins.display.ModelDisplayMixin"
              click omnipy.data._mixins.display.BaseDisplayMixin href "" "omnipy.data._mixins.display.BaseDisplayMixin"
              click omnipy.data._data_class_creator.DataClassBase href "" "omnipy.data._data_class_creator.DataClassBase"
            

Omnipy model wrapper for ISA study records.

Wraps :class:IsaStudySchema for typed integration in investigation-level ISA payloads.

Source code in src/omnipy/components/isa/models/study_schema.py
class IsaStudyModel(Model[IsaStudySchema]):
    """Omnipy model wrapper for ISA study records.

    Wraps :class:`IsaStudySchema` for typed integration in investigation-level
    ISA payloads.
    """

    ...

IsaStudySchema

Bases: pyd.BaseModel


              flowchart BT
              omnipy.components.isa.models.study_schema.IsaStudySchema[IsaStudySchema]

                              omnipy.util.pydantic.BaseModel --> omnipy.components.isa.models.study_schema.IsaStudySchema
                


              click omnipy.components.isa.models.study_schema.IsaStudySchema href "" "omnipy.components.isa.models.study_schema.IsaStudySchema"
            

Schema for study entries inside an ISA investigation.

ATTRIBUTE DESCRIPTION
identifier

Stable identifier for the study.

TYPE: str | None

title

Human-readable study title.

TYPE: str | None

materials

Sources, samples, and other materials in the study.

TYPE: _Materials | None

processSequence

Ordered list of process steps.

TYPE: list[process_schema.IsaProcessOrProtocolApplicationModel] | None

assays

Assay entries defined for the study.

TYPE: list[assay_schema.IsaAssayJsonModel] | None

factors

Experimental factors used to structure comparisons.

TYPE: list[factor_schema.IsaFactorModel] | None

CLASS DESCRIPTION
Config

Validation settings for ISA study schema parsing.

Source code in src/omnipy/components/isa/models/study_schema.py
class IsaStudySchema(pyd.BaseModel):
    """Schema for study entries inside an ISA investigation.

    Attributes:
        identifier: Stable identifier for the study.
        title: Human-readable study title.
        materials: Sources, samples, and other materials in the study.
        processSequence: Ordered list of process steps.
        assays: Assay entries defined for the study.
        factors: Experimental factors used to structure comparisons.
    """
    class Config:
        """Validation settings for ISA study schema parsing.

        Attributes:
            extra: Rejects undeclared keys from input data.
            use_enum_values: Emits enum fields as value strings.
        """

        extra = pyd.Extra.forbid
        use_enum_values = True

    field_id: Optional[str] = pyd.Field(None, alias='@id')
    field_context: Optional[str] = pyd.Field(None, alias='@context')
    field_type: Optional[FieldType] = pyd.Field(None, alias='@type')
    filename: Optional[str] = None
    identifier: Optional[str] = None
    title: Optional[str] = None
    description: Optional[str] = None
    submissionDate: Optional[Union[datetime, date, pyd.constr(max_length=0)]] = None
    publicReleaseDate: Optional[Union[datetime, date, pyd.constr(max_length=0)]] = None
    publications: Optional[List[publication_schema.IsaPublicationModel]] = None
    people: Optional[List[person_schema.IsaPersonModel]] = None
    studyDesignDescriptors: Optional[List[
        ontology_annotation_schema.IsaOntologyReferenceModel]] = None
    protocols: Optional[List[protocol_schema.IsaProtocolModel]] = None
    materials: Optional[_Materials] = None
    processSequence: Optional[List[process_schema.IsaProcessOrProtocolApplicationModel]] = None
    assays: Optional[List[assay_schema.IsaAssayJsonModel]] = None
    factors: Optional[List[factor_schema.IsaFactorModel]] = None
    characteristicCategories: Optional[List[
        material_attribute_schema.IsaMaterialAttributeModel]] = \
        pyd.Field(
            None,
            description='List of all the characteristics categories (or material attributes) '
                        'defined in the study, used to avoid duplication of their declaration '
                        'when each material_attribute_value is created. ')
    unitCategories: Optional[List[ontology_annotation_schema.IsaOntologyReferenceModel]] = \
        pyd.Field(
            None,
            description='List of all the units defined in the study, used to avoid duplication '
                        'of their declaration when each value is created. ')
    comments: Optional[List[comment_schema.IsaCommentModel]] = None

    _date_to_iso_format = pyd.validator(
        'submissionDate', 'publicReleaseDate', allow_reuse=True)(
            date_to_iso_format)

assays class-attribute instance-attribute

assays: list[assay_schema.IsaAssayJsonModel] | None = None

characteristicCategories class-attribute instance-attribute

characteristicCategories: list[material_attribute_schema.IsaMaterialAttributeModel] | None = (
    pyd.Field(
        None,
        description="List of all the characteristics categories (or material attributes) defined in the study, used to avoid duplication of their declaration when each material_attribute_value is created. ",
    )
)

comments class-attribute instance-attribute

comments: list[comment_schema.IsaCommentModel] | None = None

description class-attribute instance-attribute

description: str | None = None

factors class-attribute instance-attribute

factors: list[factor_schema.IsaFactorModel] | None = None

field_context class-attribute instance-attribute

field_context: str | None = pyd.Field(None, alias='@context')

field_id class-attribute instance-attribute

field_id: str | None = pyd.Field(None, alias='@id')

field_type class-attribute instance-attribute

field_type: FieldType | None = pyd.Field(None, alias='@type')

filename class-attribute instance-attribute

filename: str | None = None

identifier class-attribute instance-attribute

identifier: str | None = None

materials class-attribute instance-attribute

materials: _Materials | None = None

people class-attribute instance-attribute

people: list[person_schema.IsaPersonModel] | None = None

processSequence class-attribute instance-attribute

processSequence: list[process_schema.IsaProcessOrProtocolApplicationModel] | None = None

protocols class-attribute instance-attribute

protocols: list[protocol_schema.IsaProtocolModel] | None = None

publicReleaseDate class-attribute instance-attribute

publicReleaseDate: datetime | date | pyd.constr(max_length=0) | None = None

publications class-attribute instance-attribute

publications: list[publication_schema.IsaPublicationModel] | None = None

studyDesignDescriptors class-attribute instance-attribute

studyDesignDescriptors: list[ontology_annotation_schema.IsaOntologyReferenceModel] | None = None

submissionDate class-attribute instance-attribute

submissionDate: datetime | date | pyd.constr(max_length=0) | None = None

title class-attribute instance-attribute

title: str | None = None

unitCategories class-attribute instance-attribute

unitCategories: list[ontology_annotation_schema.IsaOntologyReferenceModel] | None = pyd.Field(
    None,
    description="List of all the units defined in the study, used to avoid duplication of their declaration when each value is created. ",
)

Config

Validation settings for ISA study schema parsing.

ATTRIBUTE DESCRIPTION
extra

Rejects undeclared keys from input data.

use_enum_values

Emits enum fields as value strings.

Source code in src/omnipy/components/isa/models/study_schema.py
class Config:
    """Validation settings for ISA study schema parsing.

    Attributes:
        extra: Rejects undeclared keys from input data.
        use_enum_values: Emits enum fields as value strings.
    """

    extra = pyd.Extra.forbid
    use_enum_values = True

extra class-attribute instance-attribute

extra = pyd.Extra.forbid

use_enum_values class-attribute instance-attribute

use_enum_values = True