def _init_fields(self): fields = QFormLayout() self.lhs = common_widgets.make_species_combo() self.rhs = QLineEdit() self.rhs.setValidator(helper.get_double_validator()) self.rhs.setPlaceholderText("Constraint value") self.sign_combo = QComboBox() self.sign_combo.addItems([">=", "<="]) constraint_box = QHBoxLayout() constraint_box.addWidget(self.lhs) constraint_box.addWidget(self.sign_combo) constraint_box.addWidget(self.rhs) fields.addRow("Constraint (e.g. X >= 20)", constraint_box) self.time_lb = QLineEdit() self.time_lb.setValidator(helper.get_double_validator()) self.time_lb.setPlaceholderText("Start") self.time_ub = QLineEdit() self.time_ub.setValidator(helper.get_double_validator()) self.time_ub.setPlaceholderText("End") time_box = QHBoxLayout() time_box.addWidget(self.time_lb) time_box.addWidget(QLabel("-")) time_box.addWidget(self.time_ub) fields.addRow("Time period (e.g. 0 - 20)", time_box) self.layout.addLayout(fields)
def __init__(self): super().__init__() layout = QVBoxLayout() self.transcription_reactions_combo = self._make_transcription_reactions_combo() self.regulators_list = self._make_regulators_list() reg_type_box, self.activation_check, self.repression_check = self._make_reg_type_box() k_box, self.lb_edit, self.ub_edit, self.step_edit = self._make_k_box() self.add_button = self._make_add_button() self.hill_edit = QLineEdit() self.hill_edit.setValidator(helper.get_double_validator()) layout.addWidget(QLabel("This reaction can be regulated...")) layout.addWidget(self.transcription_reactions_combo) layout.addWidget(QLabel("By one of these species...")) layout.addWidget(self.regulators_list) layout.addWidget(QLabel("In these ways...")) layout.addWidget(reg_type_box) layout.addWidget(QLabel("And have a K value with the range...")) layout.addWidget(k_box) layout.addWidget(QLabel("Will have this immutable hill coefficient...")) layout.addWidget(self.hill_edit) layout.addWidget(self.add_button) self.setLayout(layout)
def __init__(self): super().__init__() fields = QFormLayout() self.regulations = list() self.reaction_name = QLineEdit() self.transcription_rate = QLineEdit() self.transcription_rate.setValidator(helper.get_double_validator()) self.transcribed_species = common_widgets.make_species_combo() self.transcribed_species.currentIndexChanged.connect(self._transcribed_species_current_index_changed) self.is_regulated = QCheckBox("Is Regulated") self.is_regulated.stateChanged.connect(self._is_regulated_state_changed) self.regulation_settings_panel = self._make_regulation_settings_panel() fields.addRow(QLabel("Reaction name"), self.reaction_name) fields.addRow(QLabel("Transcription rate"), self.transcription_rate) fields.addRow(QLabel("Transcribed species: "), self.transcribed_species) fields.addRow(self.is_regulated) fields.addRow(self.regulation_settings_panel) self._is_regulated_state_changed() self.setLayout(fields)
def _init_fields(self): fields = QFormLayout() self.mutables_combo, self.mutable_combo_values = self._make_mutables_combo( ) fields.addRow(QLabel("Mutable: "), self.mutables_combo) self.lb = QLineEdit() self.lb.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Lower bound"), self.lb) self.ub = QLineEdit() self.ub.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Upper bound"), self.ub) self.inc = QLineEdit() self.inc.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Increments"), self.inc) self.layout.addLayout(fields)
def _make_k_box(): lb_edit = QLineEdit() lb_edit.setValidator(helper.get_double_validator()) lb_edit.setFixedWidth(60) ub_edit = QLineEdit() ub_edit.setValidator(helper.get_double_validator()) ub_edit.setFixedWidth(60) step_edit = QLineEdit() step_edit.setValidator(helper.get_double_validator()) step_edit.setFixedWidth(60) fields = QHBoxLayout() fields.addWidget(lb_edit) fields.addWidget(QLabel(" - ")) fields.addWidget(ub_edit) fields.addWidget(QLabel(" Step: ")) fields.addWidget(step_edit) k_box = QGroupBox() k_box.setLayout(fields) return k_box, lb_edit, ub_edit, step_edit
def _init_degradation_fields(self): fields = QFormLayout() self.reaction_name3 = QLineEdit() fields.addRow(QLabel("Reaction name"), self.reaction_name3) self.decay_rate = QLineEdit() self.decay_rate.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Decay rate: "), self.decay_rate) self.decaying_species = common_widgets.make_species_combo() fields.addRow(QLabel("Decaying species: "), self.decaying_species) self.degradation_fields = QWidget() self.degradation_fields.setLayout(fields) self.properties_layout.addWidget(self.degradation_fields) self.degradation_fields.hide()
def _init_translation_fields(self): fields = QFormLayout() self.reaction_name2 = QLineEdit() fields.addRow(QLabel("Reaction name"), self.reaction_name2) self.translation_rate = QLineEdit() self.translation_rate.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Translation rate: "), self.translation_rate) self.translated_mrna = common_widgets.make_species_combo() fields.addRow(QLabel("Translated mRNA: "), self.translated_mrna) self.produced_protein = common_widgets.make_species_combo() fields.addRow(QLabel("Produced protein: "), self.produced_protein) self.translation_fields = QWidget() self.translation_fields.setLayout(fields) self.properties_layout.addWidget(self.translation_fields) self.translation_fields.hide()
def _make_add_regulation_box(self): self.activation_radio = QRadioButton("Activation") self.repression_radio = QRadioButton("Repression") self.regulator = common_widgets.make_species_combo() self.k = QLineEdit() self.k.setValidator(helper.get_double_validator()) self.add_button = QPushButton("Add regulation") self.add_button.clicked.connect(self._add_regulation_clicked) fields = QFormLayout() fields.addRow(self.activation_radio, self.repression_radio) fields.addRow(QLabel("Regulating species:"), self.regulator) fields.addRow(QLabel("K:"), self.k) fields.addRow(self.add_button) add_regulation_box = QGroupBox() add_regulation_box.setLayout(fields) return add_regulation_box
def _make_regulation_settings_panel(self): fields = QFormLayout() self.hill = QLineEdit() self.hill.setValidator(helper.get_double_validator()) self.input_gate = QComboBox() self.input_gate.addItems(["NONE", "AND", "OR"]) self.add_regulation_box = self._make_add_regulation_box() self.regulations_list = QListWidget() self.regulations_list.setFixedHeight(100) fields.addRow(QLabel("Hill coefficient: "), self.hill) fields.addRow(QLabel("Input gate: "), self.input_gate) fields.addRow(QLabel("Regulations")) fields.addRow(self.regulations_list) fields.addRow(self.add_regulation_box) self.activation_radio.setChecked(True) return fields
def __init__(self): super().__init__() main = QVBoxLayout() fields = QFormLayout() self.time_field = QLineEdit() self.time_field.setValidator(helper.get_double_validator()) fields.addRow(QLabel("Simulation time"), self.time_field) self.species_checkboxes = common_widgets.make_species_checkboxes_layout( ) self.ok_button = QPushButton("Ok") self.ok_button.clicked.connect(self._ok_button_clicked) main.addLayout(fields) main.addWidget(QLabel("Which species to show: ")) main.addLayout(self.species_checkboxes) main.addWidget(self.ok_button) self.setLayout(main) self.setMinimumWidth(200) self.setWindowTitle("Simulation settings") self.exec_()