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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 10
0
    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_()