-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathcommkineticpkg.py
More file actions
29 lines (24 loc) · 1.23 KB
/
commkineticpkg.py
File metadata and controls
29 lines (24 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# -*- coding: utf-8 -*-
from __future__ import absolute_import
import logging
from modelseedpy.fbapkg.basefbapkg import BaseFBAPkg
from modelseedpy.community.mscommunity import MSCommunity
from modelseedpy.core.fbahelper import FBAHelper
#Base class for FBA packages
class CommKineticPkg(BaseFBAPkg):
def __init__(self,model):
BaseFBAPkg.__init__(self,model,"community kinetics",{},{"commkin":"string"})
def build_package(self,kinetic_coef,community_model=None):
self.validate_parameters({},[],{
"kinetic_coef":kinetic_coef,
"community":community_model if community_model else MSCommunity(self.model)
})
for species in self.parameters["community"].species:
self.build_constraint(species)
def build_constraint(self,species):
coef = {species.biomasses[0].forward_variable:-1*self.parameters["kinetic_coef"]}
for reaction in self.model.reactions:
if int(FBAHelper.rxn_compartment(reaction)[1:]) == species.index and reaction != species.biomasses[0]:
coef[reaction.forward_variable] = 1
coef[reaction.reverse_variable] = 1
return BaseFBAPkg.build_constraint(self,"commkin",None,0,coef,"Species"+str(species.index))