Example #1
0
'''
Created on Mar 25, 2011

@author: Moritz Wade
'''
import logging
#from PySide.QtCore import *
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from PySide.QtGui import QFont
from basics.helpers import enum
import libsbml

ROW = enum.enum("ROW", "ID, ACTIVE, SELECTED") # this effectively orders the rows; Param ID rows will be appended
numAdditionalRows = 3
# Columns will be defined by the available ParameterSets

class ParameterSetsTableModel(QAbstractTableModel):
    '''
    Fills the Parameter Set tab of the Simulation Workbench with data.
    
    @param listOfParameterSets: List-like object with parameter sets (see parameter_sets.py)
    @type listOfParams: ListOfParameterSets
    
    @since: 2011-03-25
    '''
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2011"


    def __init__(self, listOfParameterSets, paramEntities):
from PySide.QtCore import QAbstractTableModel, Signal, Qt, QModelIndex, SIGNAL
from sbml_model.sbml_entities import SBMLEntity
import libsbml
from basics.helpers import enum

COLUMN = enum.enum(
    'ROW',
    'NAME, ID, COMPARTMENTTYPE, SPATIALDIMENSIONS, SIZE, UNITS, OUTSIDE, CONSTANT'
)  # this effectively orders the columns

###############
#
# NOTE: Don't use, this is outdated. Still works but changes will not be reflected by
# Views working on the newer SBMLMainTreeModel.
#
###############


class SBMLCompartmentTableModel(QAbstractTableModel):
    """
    Obsolete! This has been replaced by SBMLMainTreeModel (which wraps
    all the Species types at once) and only remains here for
    future reference.



    This class encapsulates the ListOfCompartments of an SBML file/model.
    """
    def GetDirty(self):
        return self.__Dirty
Example #3
0
"""
Created on Jun 25, 2010

@author: bzfwadem
"""
#from PySide.QtCore import *
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum

#COLUMN = enum.enum("ROW", "NUMBER, ID, NAME, COMPARTMENT, INITIALQUANTITY, UNIT, SCALE, QUANTITYTYPE, ISCONSTANT, ISBC, COMPUTESENSITIVITY") # this effectively orders the columns
COLUMN = enum.enum(
    "ROW",
    "NUMBER, ID, NAME, COMPARTMENT, INITIALQUANTITY, SCALE, ISBC, COMPUTESENSITIVITY"
)  # this effectively orders the columns
NUM_COLUMNS = 8  # keep in sync with COLUMN!


class SpeciesTableModel(QAbstractTableModel):
    """
    Model for filling the Species table of the Simulation
    Workbench with data.

    @param speciesList: List of SBML entities that wrap libSBML Species objects
    @type speciesList: []

    @since: 2010-06-25

    """

    __author__ = "Moritz Wade"
import logging
#from PySide.QtCore import *
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum
import libsbml

#COLUMN = enum.enum("ROW", "NUMBER, SCOPE, ID, NAME, INITIALVALUE, UNIT, SCALE, ISCONSTANT, COMPUTESENSITIVITY, ESTIMATE") # this effectively orders the columns
COLUMN = enum.enum("ROW", "NUMBER, SCOPE, ID, NAME, INITIALVALUE, SCALE, COMPUTESENSITIVITY, ESTIMATE") # this effectively orders the columns
NUM_COLUMNS = 8 # keep in sync with COLUMN!

class ParameterTableModel(QAbstractTableModel):
    """
    Fills the Parameter tab of the Simulation Workbench with data.

    @param listOfParams: List of sbmlEntities wrapping libSBML Parameter objects
    @type listOfParams: []

    @since: 2010-06-25
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"


    def __init__(self, listOfParams, mainModel):
        """
        Simple Constructor, just setting up some instance variables.
        """
        super(ParameterTableModel, self).__init__()
        self.paramList = listOfParams
        self.mainModel = mainModel
Example #5
0
from PySide.QtCore import QAbstractItemModel, SIGNAL, Qt, QModelIndex, Signal
import libsbml
from basics.helpers import enum
from sbml_model import sbml_entities
from sbml_model.definitions import CHANGETYPE
from sbml_model.sbml_entities import SBMLEntity


COLUMN = enum.enum('ROW', 'ID, NAME') # this effectively orders the columns

class SBMLMainTreeModel(QAbstractItemModel):
    """
    This model wraps a libsbml model completely. The information about the type
    of individual entities (Species, Reaction, ...) is encoded in
    the Type property of any SBMLEntity.

    This model only provides two columns: ID and Name.
    Any detailed information (that differs for different types of entities
    is provided by the EntityTableModel that is bound to a table view
    (EntityTableView).

    Idea: Views (e.g. TableViews) that should show only part of the model
    (e.g. only Species) use an intermediate QAbstractProxyModel.

    Note: There is some code commented out that has to do with actually changing the
    model's structure (e.g. adding nodes). For example, the method self.mainModelChanged(...).
    This code is left there as a future reference once structural changes might be reenabled
    in the GUI (+/- buttons, etc.).

    @param mainModel: The main model which wraps a SBML file
import logging
from PySide.QtCore import QAbstractTableModel, Signal, Qt, QModelIndex
from basics.helpers.enum import enum
from sbml_model.sbml_entities import SBMLEntity
from sbml_model import sbml_entities
import libsbml
from basics.helpers import typehelpers
import sbml_mainmodel


COLUMN = enum("COLUMN", "PROPERTY, VALUE")
COLUMN_COUNT = 2

COMPARTMENT_ROW = enum('ROW', 'ID, NAME, SIZE')
COMPARTMENT_ROW_COUNT = 3

SPECIES_ROW = enum("ROW", "ID, NAME, COMPARTMENT, INITIALQUANTITY, SUBSTANCEUNITS, QUANTITYTYPE, CONSTANT, BC")
SPECIES_ROW_COUNT = 8

REACTION_ROW = enum('ROW', 'ID, NAME, REACTANTS, PRODUCTS, MATH')
REACTION_ROW_COUNT = 5

PARAMETER_ROW = enum('ROW', 'ID, NAME, VALUE, UNITS, CONSTANT, SCOPE')
PARAMETER_ROW_COUNT = 6

RULE_ROW = enum('ROW', 'ID, NAME, MATH, VARIABLE')
RULE_ROW_COUNT = 4

EVENT_ROW = enum('ROW', 'ID, NAME, TARGET, EXPRESSION, TRIGGEREXPRESSION')
EVENT_ROW_COUNT = 5
from collections import OrderedDict
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from PySide.QtGui import QBrush
import backend
from basics.helpers import enum
import libsbml

COLUMN = enum.enum("ROW",
    "NUMBER, SCOPE, ID, NAME, INITIALVALUE, SCALE, COMPUTESENSITIVITY, ESTIMATE, EMPTY_COL, CONSTRAINT_TYPE, CONSTRAINT_LOWER, CONSTRAINT_UPPER") # this effectively orders the columns
NUM_COLUMNS = 12 # keep in sync with COLUMN!

class ParameterTableModel(QAbstractTableModel):
    """
    Fills the Parameter tab of the Simulation Workbench with data.

    @param listOfParams: List of sbmlEntities wrapping libSBML Parameter objects
    @type listOfParams: []

    @since: 2010-06-25
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"


    def __init__(self, listOfParams, mainModel):
        """
        Simple Constructor, just setting up some instance variables.
        """
        super(ParameterTableModel, self).__init__()
Example #8
0
@author: bzfwadem
'''

#from PySide.QtCore import *
from PySide.QtCore import QAbstractItemModel, SIGNAL, Qt, QModelIndex, Signal, QObject

import libsbml
##
#import logging
##
from basics.helpers import enum
from sbml_model import sbml_entities
from sbml_model.definitions import CHANGETYPE
from sbml_model.sbml_entities import SBMLEntity

COLUMN = enum.enum('ROW', 'ID, NAME')  # this effectively orders the columns


class SBMLMainTreeModel(QAbstractItemModel):
    '''
    This model wraps a libsbml model completely. The information about the type
    of individual entities (Species, Reaction, ...) is encoded in 
    the Type property of any SBMLEntity. 
    
    This model only provides two columns: ID and Name.
    Any detailed information (that differs for different types of entities
    is provided by the EntityTableModel that is bound to a table view 
    (EntityTableView).
    
    Idea: Views (e.g. TableViews) that should show only part of the model
    (e.g. only Species) use an intermediate QAbstractProxyModel.
Example #9
0
"""
The purpose of this file is to provide some CONSTANTs and pseudo-ENUMs
to be used within model classes.

@since: 2011-05-30
"""

from basics.helpers.enum import enum

__author__ = "Moritz Wade"
__contact__ = "*****@*****.**"
__copyright__ = "Zuse Institute Berlin 2011"


CHANGETYPE = enum("CHANGETYPE", "ADD, REMOVE, CHANGE_REACTANTS, CHANGE_PRODUCTS, CHANGE_MODIFIERS")

#### defining constant strings for Parameter Set XML ####
XML_NAMESPACE_PARAMETER_SETS = "http://sys-bio.org/ParameterSets"

XML_LIST_OF_PARAMETER_SETS = "listOfParameterSets"
XML_LIST_OF_PARAMETER_SETS_ACTIVE = "active"

XML_PARAMETER_SET = "parameterSet"
XML_PARAMETER_SET_ID = "id"
XML_PARAMETER_SET_NAME = "name"

XML_PARAMETER = "parameter"
XML_PARAMETER_SBML_ID = "sbmlId"
XML_PARAMETER_VALUE = "value"
XML_PARAMETER_REACTION_ID = "reaction"
XML_PARAMETER_IS_ESTIMATED = "estimated"
from collections import OrderedDict
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum
import logging
from sbml_model.sbml_entities import SBMLEntity
from odehandling.specieswrapper import SpeciesWrapper

COLUMN = enum.enum("ROW", "ID, NAME, INITIALVALUE, UNIT, ISCONSTANT") # this effectively orders the columns 
STATE = enum.enum("STATE", "UNCHECKED, PARTIALLYCHECKED, CHECKED, NODATA") # like Qt.Checkstate + NODATA

class DataSourcesTableModel(QAbstractTableModel):
    """
    A data model that wraps an dictionary providing the existing data IDs
    for several sets of data (obtained from several data files).

    @since: 2010-06-30
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"


    def __init__(self, dataSources):
        """
        Simple Constructor, just setting up some instance variables.
        """
        super(DataSourcesTableModel, self).__init__()
        self.dataSources = dataSources
        
        self.Dirty = False # True if something has been changed
        
Example #11
0
from collections import OrderedDict
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum
import logging
from sbml_model.sbml_entities import SBMLEntity
from odehandling.specieswrapper import SpeciesWrapper

COLUMN = enum.enum("ROW", "ID, NAME, INITIALVALUE, UNIT, ISCONSTANT"
                   )  # this effectively orders the columns
STATE = enum.enum("STATE", "UNCHECKED, PARTIALLYCHECKED, CHECKED, NODATA"
                  )  # like Qt.Checkstate + NODATA


class DataSourcesTableModel(QAbstractTableModel):
    """
    A data model that wraps an dictionary providing the existing data IDs
    for several sets of data (obtained from several data files).

    @since: 2010-06-30
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"

    def __init__(self, dataSources):
        """
        Simple Constructor, just setting up some instance variables.
        """
        super(DataSourcesTableModel, self).__init__()
        self.dataSources = dataSources
Example #12
0
'''
Created on Mar 11, 2010

@author: bzfwadem
'''
#from PySide.QtCore import *
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL

from basics.helpers import enum

COLUMN = enum.enum('ROW', 'ID, SHOWEXPERIMENTALDATA, SHOWSIMULATIONDATA'
                   )  # this effectively orders the columns


class SourcesTableModel(QAbstractTableModel):
    '''
    Wraps the experimental experimentalData (and later on simulationData) 
    and makes its data IDs accessible read-only to a table view.
    It also creates checkboxes to tell whether to draw plots of the data.
    
    This is just a helper data model.
    
    @param experimentalData: The dict with the experimental data
    @type experimentalData: dict with {dataID: [[time points],[values at time points]]}
    
    @since: 2010-03-11
    '''

    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"
Example #13
0
import logging
#from PySide.QtCore import *
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum
import libsbml

#COLUMN = enum.enum("ROW", "NUMBER, SCOPE, ID, NAME, INITIALVALUE, UNIT, SCALE, ISCONSTANT, COMPUTESENSITIVITY, ESTIMATE") # this effectively orders the columns
COLUMN = enum.enum(
    "ROW",
    "NUMBER, SCOPE, ID, NAME, INITIALVALUE, SCALE, COMPUTESENSITIVITY, ESTIMATE"
)  # this effectively orders the columns
NUM_COLUMNS = 8  # keep in sync with COLUMN!


class ParameterTableModel(QAbstractTableModel):
    """
    Fills the Parameter tab of the Simulation Workbench with data.

    @param listOfParams: List of sbmlEntities wrapping libSBML Parameter objects
    @type listOfParams: []

    @since: 2010-06-25
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"

    def __init__(self, listOfParams, mainModel):
        """
        Simple Constructor, just setting up some instance variables.
        """
'''


#import sip
from PySide.QtCore import QAbstractTableModel, Signal, Qt, QModelIndex, SIGNAL
from sbml_model.sbml_entities import SBMLEntity
#sip.setapi('QString', 2)  # practically disables QStrings
#sip.setapi('QVariant', 2) # practically disables QVariants

#from PySide.QtCore import *
#from PySide.QtGui import  *

import libsbml
from basics.helpers import enum

COLUMN = enum.enum('ROW', 'NAME, ID, COMPARTMENTTYPE, SPATIALDIMENSIONS, SIZE, UNITS, OUTSIDE, CONSTANT') # this effectively orders the columns


###############
#
# NOTE: Don't use, this is outdated. Still works but changes will not be reflected by
# Views working on the newer SBMLMainTreeModel.
#
###############

class SBMLCompartmentTableModel(QAbstractTableModel):
    '''
    Obsolete! This has been replaced by SBMLMainTreeModel (which wraps
    all the Species types at once) and only remains here for
    future reference.
    
Example #15
0
from basics.helpers.enum import enum
"""
This file defines constants (especially ENUMs) for use throughout
the data backend.

@since: 2011-12-28
@author: Moritz Wade
@copyright: Zuse Institute Berlin, 2011
"""

TYPE = "TYPE"
TYPES = enum(
    "TYPE",
    "NONE, SIM_TIMELINE, MEAS_TIMELINE, SENS_OVERVIEW, SENS_DETAILS_JACOBIAN, SENS_DETAILS_SUBCONDITION, PARAMETER_IDENTIFICATION"
)

# fixed meta keys (used in every meta dict)
META_KEYS = enum("META", "CREATED, LAST_MODIFIED, %s" % TYPE)
Example #16
0
'''
Created on Mar 11, 2010

@author: bzfwadem
'''
#from PySide.QtCore import *
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL

from basics.helpers import enum

COLUMN = enum.enum('ROW', 'ID, SHOWEXPERIMENTALDATA, SHOWSIMULATIONDATA') # this effectively orders the columns


class SourcesTableModel(QAbstractTableModel):
    '''
    Wraps the experimental experimentalData (and later on simulationData) 
    and makes its data IDs accessible read-only to a table view.
    It also creates checkboxes to tell whether to draw plots of the data.
    
    This is just a helper data model.
    
    @param experimentalData: The dict with the experimental data
    @type experimentalData: dict with {dataID: [[time points],[values at time points]]}
    
    @since: 2010-03-11
    '''
    
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"
Example #17
0
from collections import OrderedDict
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from PySide.QtGui import QBrush
import backend
from basics.helpers import enum
import libsbml

COLUMN = enum.enum(
    "ROW",
    "NUMBER, SCOPE, ID, NAME, INITIALVALUE, SCALE, COMPUTESENSITIVITY, ESTIMATE, EMPTY_COL, CONSTRAINT_TYPE, CONSTRAINT_LOWER, CONSTRAINT_UPPER"
)  # this effectively orders the columns
NUM_COLUMNS = 12  # keep in sync with COLUMN!


class ParameterTableModel(QAbstractTableModel):
    """
    Fills the Parameter tab of the Simulation Workbench with data.

    @param listOfParams: List of sbmlEntities wrapping libSBML Parameter objects
    @type listOfParams: []

    @since: 2010-06-25
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"

    def __init__(self, listOfParams, mainModel):
        """
        Simple Constructor, just setting up some instance variables.
Example #18
0
"""
The purpose of this file is to provide some CONSTANTs and pseudo-ENUMs
to be used within model classes.

@since: 2011-05-30
"""

from basics.helpers.enum import enum

__author__ = "Moritz Wade"
__contact__ = "*****@*****.**"
__copyright__ = "Zuse Institute Berlin 2011"

CHANGETYPE = enum(
    "CHANGETYPE",
    "ADD, REMOVE, CHANGE_REACTANTS, CHANGE_PRODUCTS, CHANGE_MODIFIERS")

#### defining constant strings for Parameter Set XML ####
XML_NAMESPACE_PARAMETER_SETS = "http://sys-bio.org/ParameterSets"

XML_LIST_OF_PARAMETER_SETS = "listOfParameterSets"
XML_LIST_OF_PARAMETER_SETS_ACTIVE = "active"

XML_PARAMETER_SET = "parameterSet"
XML_PARAMETER_SET_ID = "id"
XML_PARAMETER_SET_NAME = "name"

XML_PARAMETER = "parameter"
XML_PARAMETER_SBML_ID = "sbmlId"
XML_PARAMETER_VALUE = "value"
XML_PARAMETER_REACTION_ID = "reaction"
Example #19
0
"""
Created on Jun 25, 2010

@author: bzfwadem
"""
#from PySide.QtCore import *
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from basics.helpers import enum

#COLUMN = enum.enum("ROW", "NUMBER, ID, NAME, COMPARTMENT, INITIALQUANTITY, UNIT, SCALE, QUANTITYTYPE, ISCONSTANT, ISBC, COMPUTESENSITIVITY") # this effectively orders the columns
COLUMN = enum.enum("ROW",
    "NUMBER, ID, NAME, COMPARTMENT, INITIALQUANTITY, SCALE, ISBC, COMPUTESENSITIVITY") # this effectively orders the columns
NUM_COLUMNS = 8 # keep in sync with COLUMN!

class SpeciesTableModel(QAbstractTableModel):
    """
    Model for filling the Species table of the Simulation
    Workbench with data.

    @param speciesList: List of SBML entities that wrap libSBML Species objects
    @type speciesList: []

    @since: 2010-06-25

    """

    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2010"
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex, SIGNAL
from PySide.QtGui import QFont, QBrush
from basics.helpers import enum

ROW = enum.enum("ROW", "ID, ACTIVE, SELECTED") # this effectively orders the rows; Param ID rows will be appended
numAdditionalRows = 3
# Columns will be defined by the available ParameterSets

class ParameterSetsTableModel(QAbstractTableModel):
    """
    Fills the Parameter Set tab of the Simulation Workbench with data.

    @param listOfParameterSets: List-like object with parameter sets (see parameter_sets.py)
    @type listOfParams: ListOfParameterSets

    @since: 2011-03-25
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2011"


    def __init__(self, listOfParameterSets, paramEntities):
        """
        Simple Constructor, just setting up some instance variables.
        """
        super(ParameterSetsTableModel, self).__init__()
        self.paramSets = listOfParameterSets
        self.paramCombinedIDsMap = self.prepareParametersForAccess(paramEntities)
Example #21
0
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex
from basics.helpers import enum
from datamanagement.entitydata import EntityData

STATE = enum.enum("STATE", "CHECKED, UNCHECKED, NODATA")


class DataBrowserModel(QAbstractTableModel):
    """
    This class provides a table-based, Excel-like
    "view" at a DataSet object (that holds tabular, numerical
    data).
    It inherits from QAbstractTableModel, so that Qt Views,
    especially a QTableView, can easily use this model.

    What makes this QTableModel different from almost all other
    table models in BioParkin is the circumstance that the number of
    columns is not fixed. It has to be handled dynamically depending
    on the actual data.

    @since: 2011-08-26
    """

    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2011"

    def __init__(self, parent, id, dataSet):
        super(DataBrowserModel, self).__init__(parent)
Example #22
0
from basics.helpers.enum import enum

"""
This file defines constants (especially ENUMs) for use throughout
the data backend.

@since: 2011-12-28
@author: Moritz Wade
@copyright: Zuse Institute Berlin, 2011
"""

TYPE = "TYPE"
TYPES = enum("TYPE", "NONE, SIM_TIMELINE, MEAS_TIMELINE, SENS_OVERVIEW, SENS_DETAILS_JACOBIAN, SENS_DETAILS_SUBCONDITION, PARAMETER_IDENTIFICATION")

# fixed meta keys (used in every meta dict)
META_KEYS = enum("META", "CREATED, LAST_MODIFIED, %s" % TYPE)

Example #23
0
from PySide.QtCore import QObject, SIGNAL, Signal
import backend
from basics.helpers.enum import enum
import libsbml
import logging

TYPE = enum("TYPE", "COMPARTMENT, SPECIES, REACTION, NONE, PARAMETER, RULE, EVENT")

#### defining constant strings for Species/Parameter Threshold XML ####
XML_THRESHOLD_NAMESPACE = "http://www.zib.de/SBML/Threshold" # more or less arbitrary string. Important to define a standard.
XML_SCALE = "Scale"
XML_THRESHOLD_VALUE = "Value"

XML_CONSTRAINTS_NAMESPACE = "http://www.zib.de/SBML/ParameterConstraints" # more or less arbitrary string. Important to define a standard.
XML_CONSTRAINTS = "Constraints"
XML_CONSTRAINTS_TYPE = "Type"
XML_CONSTRAINTS_LOWERBOUND = "LowerBound"
XML_CONSTRAINTS_UPPERBOUND = "UpperBound"

class SBMLEntity(QObject):
    """
    This is a simple wrapper for the entity classes of libsbml.
    It's needed to emit signals when something has changed.

    It's also used for creating "conceptual" entities like a father "node"
    for all the different Species-containing entities. This greatly
    eases the work needed in the MainTreeModel.

    @param entity: A libSBML object. Can be None for father "nodes".
    @type entity: libSBML object
Example #24
0
import logging
from PySide.QtCore import QAbstractTableModel, Qt, QModelIndex
from basics.helpers import enum
from datamanagement.entitydata import EntityData

STATE = enum.enum("STATE", "CHECKED, UNCHECKED, NODATA")


class DataBrowserModel(QAbstractTableModel):
    """
    This class provides a table-based, Excel-like
    "view" at a DataSet object (that holds tabular, numerical
    data).
    It inherits from QAbstractTableModel, so that Qt Views,
    especially a QTableView, can easily use this model.

    What makes this QTableModel different from almost all other
    table models in BioParkin is the circumstance that the number of
    columns is not fixed. It has to be handled dynamically depending
    on the actual data.

    @since: 2011-08-26
    """
    __author__ = "Moritz Wade"
    __contact__ = "*****@*****.**"
    __copyright__ = "Zuse Institute Berlin 2011"

    def __init__(self, parent, id, dataSet):
        super(DataBrowserModel, self).__init__(parent)

        self.id = id
Example #25
0
from PySide.QtCore import QObject, SIGNAL, Signal
from basics.helpers.enum import enum
import libsbml
import logging


TYPE = enum("TYPE", "COMPARTMENT, SPECIES, REACTION, NONE, PARAMETER, RULE, EVENT")


#### defining constant strings for Species/Parameter Threshold XML ####
XML_THRESHOLD_NAMESPACE = "http://www.zib.de/SBML/Threshold" # more or less arbitrary string. Important to define a standard.
XML_SCALE = "Scale"
XML_THRESHOLD_VALUE = "Value"

class SBMLEntity(QObject):
    """
    This is a simple wrapper for the entity classes of libsbml.
    It's needed to emit signals when something has changed.

    It's also used for creating "conceptual" entities like a father "node"
    for all the different Species-containing entities. This greatly
    eases the work needed in the MainTreeModel.

    @param entity: A libSBML object. Can be None for father "nodes".
    @type entity: libSBML object

    @param label: Usually None when a libSBML object is given. Otherwise the name of the conceptual entity (e.g. "Species","Reactions", ...)
    @type label: str

    @param parent: Standard Qt parent
    @type parent: QObject