|
9 | 9 | from modelseedpy.core.msmodel import get_gpr_string, get_reaction_constraints_from_direction
|
10 | 10 | from cobra.core import Gene, Metabolite, Model, Reaction
|
11 | 11 | from modelseedpy.core.msmodelutl import MSModelUtil
|
12 |
| -from modelseedpy.core import FBAHelper, MSGapfill |
| 12 | +from modelseedpy.core import FBAHelper, MSGapfill, MSMedia |
13 | 13 | from modelseedpy.fbapkg.mspackagemanager import MSPackageManager
|
14 | 14 |
|
15 | 15 | logger = logging.getLogger(__name__)
|
@@ -41,7 +41,12 @@ def __init__(self, model, core_template, atp_medias,compartment="c0",
|
41 | 41 | else:
|
42 | 42 | output = self.modelutl.add_atp_hydrolysis(compartment)
|
43 | 43 | 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) |
45 | 50 | self.max_gapfilling = max_gapfilling
|
46 | 51 | self.gapfilling_delta = gapfilling_delta
|
47 | 52 | self.coretemplate = core_template
|
@@ -127,20 +132,20 @@ def evaluate_growth_media(self):
|
127 | 132 | logger.debug("ATP bounds:"+str(self.atp_hydrolysis.lower_bound)+":"+str(self.atp_hydrolysis.upper_bound))
|
128 | 133 | #self.model.objective.set_linear_coefficients({self.atp_hydrolysis.forward_variable:1})
|
129 | 134 | 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] |
131 | 137 | logger.debug('evaluate media %s', media)
|
132 | 138 | pkgmgr.getpkg("KBaseMediaPkg").build_package(media)
|
133 | 139 | solution = self.model.optimize()
|
134 | 140 | logger.debug('evaluate media %s - %f (%s)', media.id, solution.objective_value, solution.status)
|
135 | 141 | self.media_gapfill_stats[media] = None
|
136 | 142 | 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]) |
139 | 145 | #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]: |
141 | 147 | 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)) |
144 | 149 | return output
|
145 | 150 |
|
146 | 151 | def determine_growth_media(self):
|
|
0 commit comments