Commit 3b61c022 authored by Randy Heiland's avatar Randy Heiland
Browse files

v3

parent afb44c5e
# pc4covid19 - COVID19 tissue simulator nanoHUB app
# pc4covid19 - COVID19 (SARS-CoV-2) tissue simulator nanoHUB app
**Version:** 2.1 - uses the core model at https://github.com/pc4covid19/COVID19/releases/tag/0.2.1
**Version:** 3.0
**Release date:** 26 April 2020
**Release date:** 3 July 2020
## Overview
This repository contains code and data for the nanoHUB app https://nanohub.org/tools/pc4covid19.
......@@ -20,9 +20,12 @@ for a summary of changes to the model.
**This model will be continually refined with input from the community, particularly experts in infectious diseases. The validation state will be updated as this progresses.**
## Release summary:
### 2.1:
Sync up with the version number of the published app, https://nanohub.org/tools/pc4covid19, and include a reference to the version of the core model in this README.
## Release summary:
### 3.0:
The major change to the GUI in this release is the addition of a 'Cell Types' tab.
This allows editing parameters associated with `<cell_definitions>` in the configuration file.
This version also includes a `<style>` block in the Jupyter notebook that fixed an unwanted scrollbar in the lengthy `About` tab.
### 2.0:
The major change to the GUI in this release is the addition of an 'Animate' tab.
......
from ipywidgets import Output
from ipywidgets import Output, Tab, Layout
from IPython.display import display, HTML
class AboutTab(object):
def __init__(self):
# self.tab = Output(layout={'height': '600px'})
# self.tab = Output(layout={'height': '900px'})
# self.tab = Output(layout={height=’85%’,min_height=’350px’})
# self.background = Output(layout={'height': 'auto'})
# self.legend = Output(layout={'height': 'auto'})
self.tab = Output(layout={'height': 'auto'})
# self.tab.append_display_data(HTML(filename='doc/about-good.html'))
# self.tab.append_display_data(HTML(filename='doc/about-bad.html'))
# self.background.append_display_data(HTML(filename='doc/about_background.html'))
# self.legend.append_display_data(HTML(filename='doc/about_legend.html'))
self.tab.append_display_data(HTML(filename='doc/about.html'))
# tab_layout = Layout(width='auto',height='auto', overflow_y='scroll',) # border='2px solid black',
# titles = ['Background', 'Legend']
# self.tab = Tab(children=[self.background, self.legend],
# _titles={i: t for i, t in enumerate(titles)},
# layout=tab_layout)
# This file is auto-generated from a Python script that parses a PhysiCell configuration (.xml) file.
#
# Edit at your own risk.
#
import os
from ipywidgets import Label,Text,Checkbox,Button,HBox,VBox,FloatText,IntText,BoundedIntText,BoundedFloatText,Layout,Box,Dropdown
class CellTypesTab(object):
def __init__(self):
micron_units = Label('micron') # use "option m" (Mac, for micro symbol)
constWidth = '180px'
tab_height = '500px'
stepsize = 10
#style = {'description_width': '250px'}
style = {'description_width': '25%'}
layout = {'width': '400px'}
name_button_layout={'width':'25%'}
widget_layout = {'width': '15%'}
widget_layout_long = {'width': '20%'}
units_button_layout ={'width':'15%'}
desc_button_layout={'width':'45%'}
divider_button_layout={'width':'40%'}
divider_button_layout={'width':'60%'}
box_layout = Layout(display='flex', flex_flow='row', align_items='stretch', width='100%')
self.cell_type_dropdown = Dropdown(description='Cell type:',)
self.cell_type_dropdown.style = {'description_width': '%sch' % str(len(self.cell_type_dropdown.description) + 1)}
cell_type_names_layout={'width':'30%'}
cell_type_names_style={'description_width':'initial'}
self.parent_name = Text(value='None',description='inherits properties from parent type:',disabled=True, style=cell_type_names_style, layout=cell_type_names_layout)
explain_inheritance = Label(value=' This cell line inherits its properties from its parent type. Any settings below override those inherited properties.') # , style=cell_type_names_style, layout=cell_type_names_layout)
self.cell_type_parent_row = HBox([self.cell_type_dropdown, self.parent_name])
self.cell_type_parent_dict = {}
self.cell_type_dict = {}
self.cell_type_dict['default'] = 'default'
self.cell_type_dict['lung epithelium'] = 'lung epithelium'
self.cell_type_dict['immune'] = 'immune'
self.cell_type_dict['CD8 Tcell'] = 'CD8 Tcell'
self.cell_type_dict['macrophage'] = 'macrophage'
self.cell_type_dict['neutrophil'] = 'neutrophil'
self.cell_type_dropdown.options = self.cell_type_dict
self.cell_type_dropdown.observe(self.cell_type_cb)
self.cell_type_parent_dict['default'] = 'None'
self.cell_type_parent_dict['lung epithelium'] = 'default'
self.cell_type_parent_dict['immune'] = 'default'
self.cell_type_parent_dict['CD8 Tcell'] = 'immune'
self.cell_type_parent_dict['macrophage'] = 'immune'
self.cell_type_parent_dict['neutrophil'] = 'immune'
self.cell_def_vboxes = []
# >>>>>>>>>>>>>>>>> <cell_definition> = default
# -------------------------
div_row1 = Button(description='phenotype:cycle (model: flow_cytometry_separated_cycle_model; code=6)', disabled=True, layout=divider_button_layout)
div_row1.style.button_color = 'orange'
name_btn = Button(description='Phase 0 -> Phase 1 transition rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float0 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float0, units_btn, ]
box0 = Box(children=row, layout=box_layout)
name_btn = Button(description='Phase 1 -> Phase 2 transition rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float1 = FloatText(value='0.00208333', step='0.0001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float1, units_btn, ]
box1 = Box(children=row, layout=box_layout)
name_btn = Button(description='Phase 2 -> Phase 3 transition rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float2 = FloatText(value='0.00416667', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float2, units_btn, ]
box2 = Box(children=row, layout=box_layout)
name_btn = Button(description='Phase 3 -> Phase 0 transition rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float3 = FloatText(value='0.0166667', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float3, units_btn, ]
box3 = Box(children=row, layout=box_layout)
# -------------------------
div_row2 = Button(description='phenotype:death', disabled=True, layout=divider_button_layout)
div_row2.style.button_color = 'orange'
death_model1 = Button(description='model: apoptosis', disabled=True, layout={'width':'30%'})
death_model1.style.button_color = '#ffde6b'
name_btn = Button(description='death rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float4 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float4, units_btn, ]
box4 = Box(children=row, layout=box_layout)
name_btn = Button(description='unlysed_fluid_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float5 = FloatText(value='0.05', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float5, units_btn, ]
box5 = Box(children=row, layout=box_layout)
name_btn = Button(description='lysed_fluid_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float6 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float6, units_btn, ]
box6 = Box(children=row, layout=box_layout)
name_btn = Button(description='cytoplasmic_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float7 = FloatText(value='1.66667e-02', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float7, units_btn, ]
box7 = Box(children=row, layout=box_layout)
name_btn = Button(description='nuclear_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float8 = FloatText(value='5.83333e-03', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float8, units_btn, ]
box8 = Box(children=row, layout=box_layout)
name_btn = Button(description='calcification_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float9 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float9, units_btn, ]
box9 = Box(children=row, layout=box_layout)
name_btn = Button(description='relative_rupture_volume', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float10 = FloatText(value='2.0', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float10, units_btn, ]
box10 = Box(children=row, layout=box_layout)
death_model2 = Button(description='model: necrosis', disabled=True, layout={'width':'30%'})
death_model2.style.button_color = '#ffde6b'
name_btn = Button(description='death rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float11 = FloatText(value='0.0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float11, units_btn, ]
box11 = Box(children=row, layout=box_layout)
name_btn = Button(description='unlysed_fluid_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float12 = FloatText(value='0.05', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float12, units_btn, ]
box12 = Box(children=row, layout=box_layout)
name_btn = Button(description='lysed_fluid_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float13 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float13, units_btn, ]
box13 = Box(children=row, layout=box_layout)
name_btn = Button(description='cytoplasmic_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float14 = FloatText(value='1.66667e-02', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float14, units_btn, ]
box14 = Box(children=row, layout=box_layout)
name_btn = Button(description='nuclear_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float15 = FloatText(value='5.83333e-03', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float15, units_btn, ]
box15 = Box(children=row, layout=box_layout)
name_btn = Button(description='calcification_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float16 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float16, units_btn, ]
box16 = Box(children=row, layout=box_layout)
name_btn = Button(description='relative_rupture_volume', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float17 = FloatText(value='2.0', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float17, units_btn, ]
box17 = Box(children=row, layout=box_layout)
# -------------------------
div_row3 = Button(description='phenotype:volume', disabled=True, layout=divider_button_layout)
div_row3.style.button_color = 'orange'
name_btn = Button(description='total', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float18 = FloatText(value='2494', step='100', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float18, units_btn, ]
box18 = Box(children=row, layout=box_layout)
name_btn = Button(description='fluid_fraction', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float19 = FloatText(value='0.75', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float19, units_btn, ]
box19 = Box(children=row, layout=box_layout)
name_btn = Button(description='nuclear', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float20 = FloatText(value='540', step='10', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float20, units_btn, ]
box20 = Box(children=row, layout=box_layout)
name_btn = Button(description='fluid_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float21 = FloatText(value='0.05', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float21, units_btn, ]
box21 = Box(children=row, layout=box_layout)
name_btn = Button(description='cytoplasmic_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float22 = FloatText(value='0.0045', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float22, units_btn, ]
box22 = Box(children=row, layout=box_layout)
name_btn = Button(description='nuclear_biomass_change_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float23 = FloatText(value='0.0055', step='0.001', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float23, units_btn, ]
box23 = Box(children=row, layout=box_layout)
name_btn = Button(description='calcified_fraction', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float24 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float24, units_btn, ]
box24 = Box(children=row, layout=box_layout)
name_btn = Button(description='calcification_rate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float25 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float25, units_btn, ]
box25 = Box(children=row, layout=box_layout)
name_btn = Button(description='relative_rupture_volume', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float26 = FloatText(value='2.0', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float26, units_btn, ]
box26 = Box(children=row, layout=box_layout)
# -------------------------
div_row4 = Button(description='phenotype:mechanics', disabled=True, layout=divider_button_layout)
div_row4.style.button_color = 'orange'
name_btn = Button(description='cell_cell_adhesion_strength', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float27 = FloatText(value='0.4', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float27, units_btn, ]
box27 = Box(children=row, layout=box_layout)
name_btn = Button(description='cell_cell_repulsion_strength', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float28 = FloatText(value='10.0', step='1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float28, units_btn, ]
box28 = Box(children=row, layout=box_layout)
name_btn = Button(description='relative_maximum_adhesion_distance', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float29 = FloatText(value='1.25', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float29, units_btn, ]
box29 = Box(children=row, layout=box_layout)
self.bool0 = Checkbox(description='enabled', value=False,layout=name_button_layout)
name_btn = Button(description='set_relative_equilibrium_distance', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float30 = FloatText(value='1.8', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [self.bool0, name_btn, self.float30, units_btn, ]
box30 = Box(children=row, layout=box_layout)
self.bool1 = Checkbox(description='enabled', value=False,layout=name_button_layout)
name_btn = Button(description='set_absolute_equilibrium_distance', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float31 = FloatText(value='15.12', step='1', style=style, layout=widget_layout)
units_btn = Button(description='1/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [self.bool1, name_btn, self.float31, units_btn, ]
box31 = Box(children=row, layout=box_layout)
# -------------------------
div_row5 = Button(description='phenotype:motility', disabled=True, layout=divider_button_layout)
div_row5.style.button_color = 'orange'
name_btn = Button(description='speed', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float32 = FloatText(value='4', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='micron/min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float32, units_btn]
box32 = Box(children=row, layout=box_layout)
name_btn = Button(description='persistence_time', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float33 = FloatText(value='5', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='min', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
row = [name_btn, self.float33, units_btn]
box33 = Box(children=row, layout=box_layout)
name_btn = Button(description='migration_bias', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float34 = FloatText(value='0.7', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='dimensionless', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float34, units_btn]
box34 = Box(children=row, layout=box_layout)
self.bool2 = Checkbox(description='enabled', value=False,layout=name_button_layout)
self.bool3 = Checkbox(description='use_2D', value=True,layout=name_button_layout)
chemotaxis_btn = Button(description='chemotaxis', disabled=True, layout={'width':'30%'})
chemotaxis_btn.style.button_color = '#ffde6b'
self.bool4 = Checkbox(description='enabled', value=False,layout=name_button_layout)
name_btn = Button(description='substrate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.chemotaxis_substrate1 = Text(value='chemokine', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.chemotaxis_substrate1]
box35 = Box(children=row, layout=box_layout)
name_btn = Button(description='direction', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.chemotaxis_direction1 = Text(value='1', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.chemotaxis_direction1]
box36 = Box(children=row, layout=box_layout)
# -------------------------
div_row6 = Button(description='phenotype:secretion', disabled=True, layout=divider_button_layout)
div_row6.style.button_color = 'orange'
name_btn = Button(description='substrate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.text0 = Text(value='interferon 1', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.text0]
box37 = Box(children=row, layout=box_layout)
name_btn = Button(description='secretion_target', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float35 = FloatText(value='1', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='substrate density', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float35, units_btn]
box38 = Box(children=row, layout=box_layout)
name_btn = Button(description='substrate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.text1 = Text(value='pro-inflammatory cytokine', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.text1]
box39 = Box(children=row, layout=box_layout)
name_btn = Button(description='secretion_target', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float36 = FloatText(value='1', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='substrate density', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float36, units_btn]
box40 = Box(children=row, layout=box_layout)
name_btn = Button(description='substrate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.text2 = Text(value='chemokine', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.text2]
box41 = Box(children=row, layout=box_layout)
name_btn = Button(description='secretion_target', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float37 = FloatText(value='1', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='substrate density', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float37, units_btn]
box42 = Box(children=row, layout=box_layout)
name_btn = Button(description='substrate', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.text3 = Text(value='debris', disabled=False, style=style, layout=widget_layout_long)
row = [name_btn, self.text3]
box43 = Box(children=row, layout=box_layout)
name_btn = Button(description='secretion_target', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float38 = FloatText(value='1', step='0.1', style=style, layout=widget_layout)
units_btn = Button(description='substrate density', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float38, units_btn]
box44 = Box(children=row, layout=box_layout)
# -------------------------
div_row7 = Button(description='phenotype:molecular', disabled=True, layout=divider_button_layout)
div_row7.style.button_color = 'orange'
# ================== <custom_data>, if present ==================
div_row8 = Button(description='Custom Data',disabled=True, layout=divider_button_layout)
div_row8.style.button_color = 'cyan'
name_btn = Button(description='virion', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float39 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='virions', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
description_btn = Button(description='endocytosed virions', disabled=True, layout=desc_button_layout)
description_btn.style.button_color = 'tan'
row = [name_btn, self.float39, units_btn, description_btn]
box45 = Box(children=row, layout=box_layout)
name_btn = Button(description='uncoated_virion', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float40 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='virions', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
description_btn = Button(description='uncoated endocytosed virions', disabled=True, layout=desc_button_layout)
description_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float40, units_btn, description_btn]
box46 = Box(children=row, layout=box_layout)
name_btn = Button(description='viral_RNA', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float41 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='RNA', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
description_btn = Button(description='total (functional) viral RNA copies', disabled=True, layout=desc_button_layout)
description_btn.style.button_color = 'tan'
row = [name_btn, self.float41, units_btn, description_btn]
box47 = Box(children=row, layout=box_layout)
name_btn = Button(description='viral_protein', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'lightgreen'
self.float42 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='protein', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'lightgreen'
description_btn = Button(description='total assembled sets of viral protein', disabled=True, layout=desc_button_layout)
description_btn.style.button_color = 'lightgreen'
row = [name_btn, self.float42, units_btn, description_btn]
box48 = Box(children=row, layout=box_layout)
name_btn = Button(description='assembled_virion', disabled=True, layout=name_button_layout)
name_btn.style.button_color = 'tan'
self.float43 = FloatText(value='0', step='0.01', style=style, layout=widget_layout)
units_btn = Button(description='', disabled=True, layout=name_button_layout)
units_btn.style.button_color = 'tan'
description_btn = Button(description='total assembled virions', disabled=True, layout=desc_button_layout)
description_btn.style.button_color = 'tan'
row = [name_btn, self.float43, units_btn, description_btn]