resim.flask package¶
Submodules¶
resim.flask.flaskapp module¶
ReSim Flask App
ReSim GUI powered by Flask app.
-
resim.flask.flaskapp.create_app(debug=False)¶
resim.flask.resim_compute module¶
ReSim: chemoREsistance SIMulator
This is a simplified ReSim version for GUI.
-
resim.flask.resim_compute.run_web_resim(gr_s=0.015, gr_pr=0.015, gr_ar=0.015, dose=240, ds=0.9, ke=0.7, ki=10, qf=10, total_0=0.5, s_0=0.84, pr_0=0.1, q_0=0.06, t=365, n=20)¶ Simplified ReSim for GUI
The function receives input params from web form and using resim to compute
Parameters: - gr_s (float) –
- gr_pr (float) –
Returns: A dictionary of keys ‘ids’ and ‘graphJSON’ back to flask app for plotly.
resim.flask.resim_form module¶
ReSim Web Form for GUI
Web forms for run_web_resim input params panel.
-
resim.flask.resim_form.params¶ list – a list contains the params available in the web form.
-
resim.flask.resim_form.tooltiplabels¶ list – a list contains tooltips for the params.
-
resim.flask.resim_form.unitlabels¶ list – a list contains the unit for params.
-
class
resim.flask.resim_form.DrugRelatedParamsInput(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)¶ Bases:
wtforms.form.FormWeb Form for drug related params input
-
dose= <UnboundField(FloatField, (), {'default': 240, 'label': 'dose ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
ds= <UnboundField(FloatField, (), {'default': 0.9, 'label': 'ds ', 'description': 'day^-1', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
ke= <UnboundField(FloatField, (), {'default': 0.7, 'label': 'ke ', 'description': 'day^-1', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
ki= <UnboundField(FloatField, (), {'default': 10, 'label': 'ki ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
qf= <UnboundField(FloatField, (), {'default': 10, 'label': 'qf ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
-
class
resim.flask.resim_form.GrowthRateParamsInput(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)¶ Bases:
wtforms.form.FormWeb Form for growth rate params input
-
gr_ar= <UnboundField(FloatField, (), {'default': 0.015, 'label': 'gr_ar ', 'description': 'day^-1', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
gr_pr= <UnboundField(FloatField, (), {'default': 0.015, 'label': 'gr_pr ', 'description': 'day^-1', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
gr_s= <UnboundField(FloatField, (), {'default': 0.015, 'label': 'gr_s ', 'description': 'day^-1', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
-
class
resim.flask.resim_form.InitialStateParamsInput(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)¶ Bases:
wtforms.form.FormWeb Form for initial state params input
-
pr_0= <UnboundField(FloatField, (), {'default': 0.1, 'label': 'pr_0 ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>, <function check_pr0>]})>¶
-
q_0= <UnboundField(FloatField, (), {'default': 0.06, 'label': 'q_0 ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>, <function check_q0>]})>¶
-
s_0= <UnboundField(FloatField, (), {'default': 0.84, 'label': 's_0 ', 'description': ' ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>, <function check_s0>]})>¶
-
total_0= <UnboundField(FloatField, (), {'default': 0.5, 'label': 'total_0', 'description': '10^8 ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
-
class
resim.flask.resim_form.SimulationParamsInput(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)¶ Bases:
wtforms.form.FormWeb Form for simulation params input
-
n= <UnboundField(IntegerField, (), {'default': 3, 'label': 'n ', 'description': 'times ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
t= <UnboundField(IntegerField, (), {'default': 365, 'label': 't ', 'description': 'days ', 'validators': [<wtforms.validators.InputRequired object>, <wtforms.validators.NumberRange object>]})>¶
-
-
class
resim.flask.resim_form.WholeInputForm(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)¶ Bases:
wtforms.form.FormWeb Form of params input panel
-
Drug= <UnboundField(FormField, (<class 'resim.flask.resim_form.DrugRelatedParamsInput'>,), {})>¶
-
GrowthRate= <UnboundField(FormField, (<class 'resim.flask.resim_form.GrowthRateParamsInput'>,), {})>¶
-
InitialState= <UnboundField(FormField, (<class 'resim.flask.resim_form.InitialStateParamsInput'>,), {})>¶
-
Simulation= <UnboundField(FormField, (<class 'resim.flask.resim_form.SimulationParamsInput'>,), {})>¶
-
-
resim.flask.resim_form.check_pr0(form, field)¶ Custom Form Validator: raise error if sum of (s_0, pr_0, q_0) =/= 1
-
resim.flask.resim_form.check_q0(form, field)¶ Custom Form Validator: raise error if sum of (s_0, pr_0, q_0) =/= 1
-
resim.flask.resim_form.check_s0(form, field)¶ Custom Form Validator: raise error if sum of (s_0, pr_0, q_0) =/= 1
-
resim.flask.resim_form.equal_len(labels)¶ A function to add whitespace(s) to match labels
resim.flask.resim_plot module¶
ReSim GUI Plotting Module
Plot the simulation result, including progression free survival estimation and overall dynamics using plotly.
Example
fig_fht = plot_fht(res) fig_od = plot_overalldynamics(res)
-
resim.flask.resim_plot.colorb¶ list – rgb codes of blue color.
-
resim.flask.resim_plot.colorg¶ list – rgb codes of green color.
-
resim.flask.resim_plot.coloro¶ list – rgb codes of orange color.
-
resim.flask.resim_plot.colorp¶ list – rgb codes of purple color.
-
resim.flask.resim_plot.colorr¶ list – rgb codes of red color.
-
resim.flask.resim_plot.colors¶ list – list contains colorb, colorg, coloro, colorp, colorr.
-
resim.flask.resim_plot.celltypes¶ list – list with all cell types available in resim model.
-
resim.flask.resim_plot.plot_allN(res, celltype)¶ plot all n simulation result for a cell type
Parameters: - res – result from resim simulation simulate method (dict).
- celltype – string specify which cell type to plot.
Returns: plotly figure
-
resim.flask.resim_plot.plot_fht(res)¶ plot first hitting time (progress time)
Parameters: res – result from resim simulation simulate method (dict). Returns: plotly figure
-
resim.flask.resim_plot.plot_overalldynamics(res, colorlist=[['rgb(8,81,156)', 'rgb(49,130,189)', 'rgb(107,174,214)', 'rgb(189,215,231)'], ['rgb(0,109,44)', 'rgb(44,162,95)', 'rgb(102,194,164)', 'rgb(186,228,179)'], ['rgb(166,54,3)', 'rgb(230,85,13)', 'rgb(253,141,60)', 'rgb(253,190,133)'], ['rgb(84,39,143)', 'rgb(117,107,177)', 'rgb(158,154,200)', 'rgb(203,201,226)'], ['rgb(165,15,21)', 'rgb(222,45,38)', 'rgb(251,106,74)', 'rgb(252,174,145)']], celltypelist=['sensitive', 'primary resistant', 'acquired resistant', 'quiescent', 'total'])¶ plot overall subpopulation dynamics with 90 & 95 CI
Parameters: - res – result from resim simulation simulate method (dict).
- colorlist – list with rgb code for plotting (list of lists).
- celltypelist – list specify which cell type to plot (list).
Returns: plotly figure