Skip to content

Commit f3f4516

Browse files
authored
Merge pull request #77 from cshenry/dev
Enabling ATP correction code to operate with thresholds.
2 parents 27f93bc + 76aa2f9 commit f3f4516

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

modelseedpy/core/msatpcorrection.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from modelseedpy.core.msmodel import get_gpr_string, get_reaction_constraints_from_direction
1010
from cobra.core import Gene, Metabolite, Model, Reaction
1111
from modelseedpy.core.msmodelutl import MSModelUtil
12-
from modelseedpy.core import FBAHelper, MSGapfill
12+
from modelseedpy.core import FBAHelper, MSGapfill, MSMedia
1313
from modelseedpy.fbapkg.mspackagemanager import MSPackageManager
1414

1515
logger = logging.getLogger(__name__)
@@ -41,7 +41,12 @@ def __init__(self, model, core_template, atp_medias,compartment="c0",
4141
else:
4242
output = self.modelutl.add_atp_hydrolysis(compartment)
4343
self.atp_hydrolysis = output["reaction"]
44-
self.atp_medias = atp_medias
44+
self.atp_medias = []
45+
for media in atp_medias:
46+
if isinstance(media,MSMedia):
47+
self.atp_medias.append([media,0.01])
48+
else:
49+
self.atp_medias.append(media)
4550
self.max_gapfilling = max_gapfilling
4651
self.gapfilling_delta = gapfilling_delta
4752
self.coretemplate = core_template
@@ -127,20 +132,20 @@ def evaluate_growth_media(self):
127132
logger.debug("ATP bounds:"+str(self.atp_hydrolysis.lower_bound)+":"+str(self.atp_hydrolysis.upper_bound))
128133
#self.model.objective.set_linear_coefficients({self.atp_hydrolysis.forward_variable:1})
129134
pkgmgr = MSPackageManager.get_pkg_mgr(self.model)
130-
for media in self.atp_medias:
135+
for media_tuple in self.atp_medias:
136+
media = media_tuple[0]
131137
logger.debug('evaluate media %s', media)
132138
pkgmgr.getpkg("KBaseMediaPkg").build_package(media)
133139
solution = self.model.optimize()
134140
logger.debug('evaluate media %s - %f (%s)', media.id, solution.objective_value, solution.status)
135141
self.media_gapfill_stats[media] = None
136142
output[media.id] = solution.objective_value
137-
if solution.objective_value == 0 or solution.status != 'optimal':
138-
self.media_gapfill_stats[media] = self.msgapfill.run_gapfilling(media, self.atp_hydrolysis.id)
143+
if solution.objective_value < media_tuple[1] or solution.status != 'optimal':
144+
self.media_gapfill_stats[media] = self.msgapfill.run_gapfilling(media, self.atp_hydrolysis.id,media_tuple[1])
139145
#IF gapfilling fails - need to activate and penalize the noncore and try again
140-
elif solution.objective_value > 0 or solution.status == 'optimal':
146+
elif solution.objective_value >= media_tuple[1]:
141147
self.media_gapfill_stats[media] = {'reversed': {}, 'new': {}}
142-
with open('debug.json', 'w') as outfile:
143-
json.dump(self.media_gapfill_stats[media], outfile)
148+
logger.debug('gapfilling stats:',json.dumps(self.media_gapfill_stats[media],indent=2))
144149
return output
145150

146151
def determine_growth_media(self):

0 commit comments

Comments
 (0)