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.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_custom_reaction_fields(self): fields = QFormLayout() self.reaction_name4 = QLineEdit() fields.addRow(QLabel("Reaction name"), self.reaction_name4) self.equation = QLineEdit() fields.addRow(QLabel("Equation: "), self.equation) self.reactant = common_widgets.make_species_combo() fields.addRow(QLabel("Reactant: "), self.reactant) self.product = common_widgets.make_species_combo() fields.addRow(QLabel("Product: "), self.product) self.custom_fields = QWidget() self.custom_fields.setLayout(fields) self.properties_layout.addWidget(self.custom_fields) self.custom_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 _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 _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