Skip to content
This repository has been archived by the owner on Mar 6, 2024. It is now read-only.

Commit

Permalink
fix: updated datamodel schema
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexPatrie committed Mar 1, 2024
1 parent b8bd971 commit 42c3c84
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 24 deletions.
47 changes: 28 additions & 19 deletions biosimulator_processes/data_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,20 @@ class BaseModel(Base):

class SpeciesChanges(BaseModel): # <-- this is done like set_species('B', kwarg=) where the inner most keys are the kwargs
species_name: str
unit: str
initial_concentration: float
initial_particle_number: float
initial_expression: str
expression: str
unit: Union[str, NoneType] = Field(default=None)
initial_concentration: Union[float, NoneType] = Field(default=None)
initial_particle_number: Union[float, NoneType] = Field(default=None)
initial_expression: Union[str, NoneType] = Field(default=None)
expression: Union[str, NoneType] = Field(default=None)


class GlobalParameterChanges(BaseModel): # <-- this is done with set_parameters(PARAM, kwarg=). where the inner most keys are the kwargs
parameter_name: str
initial_value: float
initial_expression: str
expression: str
status: str
param_type: str # ie: fixed, assignment, reactions, etc
initial_value: Union[float, NoneType] = Field(default=None)
initial_expression: Union[str, NoneType] = Field(default=None)
expression: Union[str, NoneType] = Field(default=None)
status: Union[str, NoneType] = Field(default=None)
param_type: Union[str, NoneType] = Field(default=None) # ie: fixed, assignment, reactions, etc


class ReactionParameter(BaseModel):
Expand All @@ -57,22 +57,22 @@ class ReactionParameter(BaseModel):

class ReactionChanges(BaseModel):
reaction_name: str
reaction_parameters: Dict[str, ReactionParameter]
reaction_scheme: str
reaction_parameters: Union[NoneType, Dict[str, ReactionParameter]] = Field(default=None)
reaction_scheme: Union[NoneType, str] = Field(default=None)


class ModelChanges:
species_changes: List[SpeciesChanges]
global_parameter_changes: List[GlobalParameterChanges]
reaction_changes: List[ReactionChanges]
species_changes: Union[NoneType, List[SpeciesChanges]] = Field(default=None)
global_parameter_changes: Union[NoneType, List[GlobalParameterChanges]] = Field(default=None)
reaction_changes: Union[NoneType, List[ReactionChanges]] = Field(default=None)


class ModelSource(BaseModel):
value: str = None
value: str


class BiomodelId(ModelSource):
value: str = None
value: str = Field(default='')

@classmethod
@field_validator('value')
Expand All @@ -82,7 +82,7 @@ def check_value(cls, v):


class ModelFilepath(BaseModel):
value: str = None
value: str = Field(default='')

@classmethod
@field_validator('value')
Expand All @@ -92,7 +92,16 @@ def check_value(cls, v):


class Model(BaseModel):
"""The data model declaration for process configuration schemas that support SED"""
"""The data model declaration for process configuration schemas that support SED.
Parameters:
model_id: `str`
input_source: `str`
model_source: `Union[biosimulator_processes.data_model.ModelFilepath, biosimulator_processes.data_model.BiomodelId]`
model_language: `str`
model_name: `str`
model_changes: `biosimulator_processes.data_model.ModelChanges`
"""
model_id: str = Field(default='')
input_source: str # <-- user input
model_source: Union[ModelFilepath, BiomodelId] # <-- SED type validated by constructor
Expand Down
29 changes: 24 additions & 5 deletions notebooks/data_model_demo.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-03-01T16:48:23.151735Z",
"start_time": "2024-03-01T16:48:23.148684Z"
"end_time": "2024-03-01T16:58:02.687656Z",
"start_time": "2024-03-01T16:58:02.684480Z"
}
},
"outputs": [],
Expand Down Expand Up @@ -74,8 +74,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-01T16:48:24.895974Z",
"start_time": "2024-03-01T16:48:23.425420Z"
"end_time": "2024-03-01T16:58:04.483343Z",
"start_time": "2024-03-01T16:58:02.800619Z"
}
},
"id": "3cd5053431aed7e1",
Expand All @@ -84,12 +84,31 @@
{
"cell_type": "code",
"outputs": [],
"source": [],
"source": [
"\n",
"\n",
"\n",
"process_model = Model(\n",
" model_id='BioModel',\n",
" input_source='BIOMD0000000861',\n",
" model_name='Bachmann2011',\n",
" model_changes=''\n",
")"
],
"metadata": {
"collapsed": false
},
"id": "6bf18cbc74f1f95f",
"execution_count": null
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
},
"id": "6dd932af0c8358aa"
}
],
"metadata": {
Expand Down

0 comments on commit 42c3c84

Please sign in to comment.