aiagents4pharma 1.4.0__py3-none-any.whl → 1.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,13 +4,13 @@
4
4
  Tool for simulating a model.
5
5
  """
6
6
 
7
- from typing import Type, Union, List, Optional, Tuple
8
- import basico
7
+ from typing import Type, Union, List, Optional
9
8
  from dataclasses import dataclass
9
+ import basico
10
10
  from pydantic import BaseModel, Field
11
11
  from langchain_core.tools import BaseTool
12
12
  import streamlit as st
13
- import plotly.express as px
13
+ # import plotly.express as px
14
14
  from ..models.basico_model import BasicoModel
15
15
 
16
16
  @dataclass
@@ -91,33 +91,36 @@ class SimulateModelTool(BaseTool):
91
91
  Returns:
92
92
  str: The result of the simulation.
93
93
  """
94
- st_session_key = self.st_session_key
94
+ # st_session_key = self.st_session_key
95
95
  # Retrieve the model ID, duration, and interval
96
96
  modelid = model_data.modelid if model_data is not None else None
97
- duration = time_data.duration if time_data is not None else 100.0
98
- interval = time_data.interval if time_data is not None else 10
97
+ # duration = time_data.duration if time_data is not None else 100.0
98
+ # interval = time_data.interval if time_data is not None else 10
99
99
  # Prepare the dictionary of species data
100
100
  # that will be passed to the simulate method
101
101
  # of the BasicoModel class
102
- dic_species_data = None
103
- if species_data is not None:
104
- dic_species_data = dict(zip(species_data.species_name,
105
- species_data.species_concentration))
102
+ # dic_species_data = None
103
+ # if species_data is not None:
104
+ # dic_species_data = dict(zip(species_data.species_name,
105
+ # species_data.species_concentration))
106
+ dic_species_data = dict(zip(species_data.species_name, \
107
+ species_data.species_concentration)) \
108
+ if species_data is not None else None
106
109
  # Retrieve the SBML file path from the Streamlit session state
107
110
  # otherwise retrieve it from the model_data object if the user
108
111
  # has provided it.
109
112
  sbml_file_path = model_data.sbml_file_path if model_data is not None else None
110
- if st_session_key:
111
- if st_session_key not in st.session_state:
112
- return f"Session key {st_session_key} not found in Streamlit session state."
113
+ if self.st_session_key:
114
+ if self.st_session_key not in st.session_state:
115
+ return f"Session key {self.st_session_key} not found in Streamlit session state."
113
116
  if 'sbml_file_path' in st.session_state:
114
117
  sbml_file_path = st.session_state.sbml_file_path
115
118
  # Check if both modelid and sbml_file_path are None
116
119
  if modelid is None and sbml_file_path is None:
117
120
  # Then load the model from the Streamlit session state
118
121
  # if the streamlit session exists
119
- if st_session_key:
120
- model_object = st.session_state[st_session_key]
122
+ if self.st_session_key:
123
+ model_object = st.session_state[self.st_session_key]
121
124
  # If this model object is None, then return an error message
122
125
  if model_object is None:
123
126
  return "Please provide a BioModels ID or an SBML file path for simulation."
@@ -131,13 +134,13 @@ class SimulateModelTool(BaseTool):
131
134
  # model_object = BasicoModel(model_id=modelid)
132
135
  model_object = BasicoModel(model_id=modelid)
133
136
  # Save the model object in the Streamlit session state
134
- st.session_state[st_session_key] = model_object
137
+ st.session_state[self.st_session_key] = model_object
135
138
  elif sbml_file_path:
136
139
  # Create a BasicoModel object with the SBML file path
137
140
  model_object = BasicoModel(sbml_file_path=sbml_file_path)
138
141
  modelid = model_object.model_id
139
142
  # Save the model object in the Streamlit session state
140
- st.session_state[st_session_key] = model_object
143
+ st.session_state[self.st_session_key] = model_object
141
144
  # Add recurring events (if any) to the model
142
145
  if recurring_data is not None:
143
146
  for row in recurring_data.data:
@@ -149,29 +152,30 @@ class SimulateModelTool(BaseTool):
149
152
  # print (f'Added event {sn}_{tp} at time {tp} \
150
153
  # for species {sn} with concentration {sc}')
151
154
  # Simulate the model
152
- df = model_object.simulate(parameters=dic_species_data,
153
- duration=duration,
154
- interval=interval)
155
+ df = model_object.simulate(
156
+ parameters=dic_species_data,
157
+ duration=time_data.duration if time_data is not None else 100.0,
158
+ interval=time_data.interval if time_data is not None else 10)
155
159
  # Convert the DataFrame to long format for plotting
156
160
  # and ignore the index column
157
161
  df = df.melt(id_vars='Time',
158
162
  var_name='Species',
159
163
  value_name='Concentration')
160
164
  # Plot the simulation results using Plotly
161
- fig = px.line(df,
162
- x='Time',
163
- y='Concentration',
164
- color='Species',
165
- title=f"Concentration of Species over Time in the model {modelid}",
166
- height=600,
167
- width=800
168
- )
165
+ # fig = px.line(df,
166
+ # x='Time',
167
+ # y='Concentration',
168
+ # color='Species',
169
+ # title=f"Concentration of Species over Time in the model {modelid}",
170
+ # height=600,
171
+ # width=800
172
+ # )
169
173
  # Display the plot in Streamlit
170
174
  # st.plotly_chart(fig, use_container_width = False)
171
- if modelid is None:
172
- modelid = "internal"
173
- content = f"Simulation results for the model {modelid}."
174
- return content
175
+ # if modelid is None:
176
+ # modelid = "internal"
177
+ # return f"Simulation results for the model {modelid}."
178
+ return "Simulation results for the model."
175
179
 
176
180
  def get_metadata(self):
177
181
  """
@@ -182,6 +186,5 @@ class SimulateModelTool(BaseTool):
182
186
  """
183
187
  return {
184
188
  "name": self.name,
185
- "description": self.description,
186
- "return_direct": self.return_direct,
189
+ "description": self.description
187
190
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aiagents4pharma
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: AI Agents for drug discovery, drug development, and other pharmaceutical R&D
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -10,9 +10,9 @@ aiagents4pharma/talk2biomodels/tools/fetch_parameters.py,sha256=levr42F-m53Oya8V
10
10
  aiagents4pharma/talk2biomodels/tools/model_description.py,sha256=lcVKVvh50wJ4BmB7xMnTZOtWjCmQUnkh6TQJsX-IjGw,5338
11
11
  aiagents4pharma/talk2biomodels/tools/plot_figure.py,sha256=S_d8nNy7NVSBIqnDhg6ex_AdaMqUmVX8D1qOjRGe3r8,5594
12
12
  aiagents4pharma/talk2biomodels/tools/search_models.py,sha256=5qmgQcwlICYAFG11y-aEhBSeYYT6Lu6AKGL2V-p1ggQ,2685
13
- aiagents4pharma/talk2biomodels/tools/simulate_model.py,sha256=n6TbfJRgeo2X_1wXPHGeeCvZoso8LFjLqqfKhfseFVM,7287
14
- aiagents4pharma-1.4.0.dist-info/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
15
- aiagents4pharma-1.4.0.dist-info/METADATA,sha256=PFsn8nLLSi6hkJWiFrptBa2dMTRM0k0kBaDbkZCSveU,6640
16
- aiagents4pharma-1.4.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
17
- aiagents4pharma-1.4.0.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
18
- aiagents4pharma-1.4.0.dist-info/RECORD,,
13
+ aiagents4pharma/talk2biomodels/tools/simulate_model.py,sha256=MxlAy62SuonBbEbKmoUz0HcdfTWvk-x9WMSo17dBU9U,7552
14
+ aiagents4pharma-1.4.1.dist-info/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
15
+ aiagents4pharma-1.4.1.dist-info/METADATA,sha256=Fh-G93O_d49FDuMV7nqQ0sGhwglioxFYiAJUTOWTPwI,6640
16
+ aiagents4pharma-1.4.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
17
+ aiagents4pharma-1.4.1.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
18
+ aiagents4pharma-1.4.1.dist-info/RECORD,,