示例#1
0
 def update(self, value_dict):
     """update matrix without propagating to model"""
     if len(value_dict) < 100:  # TODO benchmark for heuristic
         for index, value in iteritems(value_dict):
             lil_matrix.__setitem__(self, index, value)
     else:
         matrix = lil_matrix.todok(self)
         matrix.update(value_dict)
         self = SMatrix_lil(matrix.tolil(), model=self._model)
         self._model._S = self
示例#2
0
 def update(self, value_dict):
     """update matrix without propagating to model"""
     if len(value_dict) < 100:  # TODO benchmark for heuristic
         for index, value in iteritems(value_dict):
             lil_matrix.__setitem__(self, index, value)
     else:
         matrix = lil_matrix.todok(self)
         matrix.update(value_dict)
         self = SMatrix_lil(matrix.tolil(), model=self._model)
         self._model._S = self
示例#3
0
    def __setitem__(self, index, value):
        lil_matrix.__setitem__(self, index, value)
        if isinstance(index[0], int):
            metabolites = [self._model.metabolites[index[0]]]
        else:
            metabolites = self._model.metabolites[index[0]]

        if isinstance(index[1], int):
            reactions = [self._model.reactions[index[1]]]
        else:
            reactions = self._model.reactions[index[1]]

        if value == 0:  # remove_metabolites
            met_set = set(metabolites)
            for reaction in reactions:
                to_remove = met_set.intersection(reaction._metabolites)
                for i in to_remove:
                    reaction.pop(i)
        else:  # add metabolites
            met_dict = {met: value for met in metabolites}
            for reaction in reactions:
                reaction.add_metabolites(met_dict, combine=False)
示例#4
0
    def __setitem__(self, index, value):
        lil_matrix.__setitem__(self, index, value)
        if isinstance(index[0], int):
            metabolites = [self._model.metabolites[index[0]]]
        else:
            metabolites = self._model.metabolites[index[0]]

        if isinstance(index[1], int):
            reactions = [self._model.reactions[index[1]]]
        else:
            reactions = self._model.reactions[index[1]]

        if value == 0:  # remove_metabolites
            met_set = set(metabolites)
            for reaction in reactions:
                to_remove = met_set.intersection(reaction._metabolites)
                for i in to_remove:
                    reaction.pop(i)
        else:  # add metabolites
            met_dict = {met: value for met in metabolites}
            for reaction in reactions:
                reaction.add_metabolites(met_dict, combine=False)