gsrap 0.8.0__py3-none-any.whl → 0.8.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gsrap/.ipynb_checkpoints/__init__-checkpoint.py +22 -6
- gsrap/__init__.py +22 -6
- gsrap/commons/.ipynb_checkpoints/__init__-checkpoint.py +1 -0
- gsrap/commons/.ipynb_checkpoints/excelhub-checkpoint.py +49 -1
- gsrap/commons/.ipynb_checkpoints/medium-checkpoint.py +39 -4
- gsrap/commons/.ipynb_checkpoints/memoteutils-checkpoint.py +132 -0
- gsrap/commons/__init__.py +1 -0
- gsrap/commons/excelhub.py +49 -1
- gsrap/commons/medium.py +39 -4
- gsrap/commons/memoteutils.py +132 -0
- gsrap/mkmodel/.ipynb_checkpoints/mkmodel-checkpoint.py +28 -8
- gsrap/mkmodel/mkmodel.py +28 -8
- gsrap/parsedb/.ipynb_checkpoints/cycles-checkpoint.py +128 -0
- gsrap/parsedb/.ipynb_checkpoints/introduce-checkpoint.py +1 -9
- gsrap/parsedb/.ipynb_checkpoints/manual-checkpoint.py +27 -0
- gsrap/parsedb/.ipynb_checkpoints/parsedb-checkpoint.py +48 -25
- gsrap/parsedb/.ipynb_checkpoints/repeating-checkpoint.py +9 -0
- gsrap/parsedb/cycles.py +128 -0
- gsrap/parsedb/introduce.py +1 -9
- gsrap/parsedb/manual.py +27 -0
- gsrap/parsedb/parsedb.py +48 -25
- gsrap/parsedb/repeating.py +9 -0
- {gsrap-0.8.0.dist-info → gsrap-0.8.2.dist-info}/METADATA +1 -1
- {gsrap-0.8.0.dist-info → gsrap-0.8.2.dist-info}/RECORD +27 -23
- {gsrap-0.8.0.dist-info → gsrap-0.8.2.dist-info}/LICENSE.txt +0 -0
- {gsrap-0.8.0.dist-info → gsrap-0.8.2.dist-info}/WHEEL +0 -0
- {gsrap-0.8.0.dist-info → gsrap-0.8.2.dist-info}/entry_points.txt +0 -0
gsrap/parsedb/cycles.py
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
import os
|
|
3
|
+
import logging
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import cobra
|
|
7
|
+
import gempipe
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
from ..commons import fba_no_warnings
|
|
11
|
+
from ..commons import get_optthr
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def verify_egc(logger, model, mid, outdir):
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# changes as not permament:
|
|
19
|
+
found_egc = False
|
|
20
|
+
with model:
|
|
21
|
+
|
|
22
|
+
# close (0; 0) all the exchange reactions:
|
|
23
|
+
gempipe.close_boundaries(model)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# create a dissipation reaction:
|
|
27
|
+
dissip = cobra.Reaction(f'__dissip__{mid}')
|
|
28
|
+
model.add_reactions([dissip])
|
|
29
|
+
dissip = model.reactions.get_by_id(f'__dissip__{mid}')
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# define the dissipation reaction:
|
|
33
|
+
modeled_mids = [m.id for m in model.metabolites]
|
|
34
|
+
if mid == 'atp':
|
|
35
|
+
dissip_string = 'atp_c + h2o_c --> adp_c + pi_c + h_c'
|
|
36
|
+
elif mid == 'ctp':
|
|
37
|
+
dissip_string = 'ctp_c + h2o_c --> cdp_c + pi_c + h_c'
|
|
38
|
+
elif mid == 'gtp':
|
|
39
|
+
dissip_string = 'gtp_c + h2o_c --> gdp_c + pi_c + h_c'
|
|
40
|
+
elif mid == 'utp':
|
|
41
|
+
dissip_string = 'utp_c + h2o_c --> udp_c + pi_c + h_c'
|
|
42
|
+
elif mid == 'itp':
|
|
43
|
+
dissip_string = 'itp_c + h2o_c --> idp_c + pi_c + h_c'
|
|
44
|
+
elif mid == 'nadh':
|
|
45
|
+
dissip_string = 'nadh_c --> nad_c + h_c'
|
|
46
|
+
elif mid == 'nadph':
|
|
47
|
+
dissip_string = 'nadph_c --> nadp_c + h_c'
|
|
48
|
+
elif mid == 'fadh2':
|
|
49
|
+
dissip_string = 'fadh2_c --> fad_c + 2.0 h_c'
|
|
50
|
+
elif mid == 'accoa':
|
|
51
|
+
dissip_string = 'accoa_c + h2o_c --> ac_c + coa_c + h_c'
|
|
52
|
+
elif mid == 'glu__L':
|
|
53
|
+
dissip_string = 'glu__L_c + h2o_c --> akg_c + nh4_c + 2.0 h_c'
|
|
54
|
+
elif mid == 'q8h2':
|
|
55
|
+
dissip_string = 'q8h2_c --> q8_c + 2.0 h_c'
|
|
56
|
+
dissip.build_reaction_from_string(dissip_string)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# set the objective and optimize:
|
|
60
|
+
model.objective = f'__dissip__{mid}'
|
|
61
|
+
res, obj_value, status = fba_no_warnings(model)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# apply the threshold:
|
|
65
|
+
obj_value = res.objective_value
|
|
66
|
+
status = res.status
|
|
67
|
+
if status == 'optimal' and obj_value >= get_optthr():
|
|
68
|
+
found_egc = True
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
# get suspect !=0 fluxes
|
|
72
|
+
fluxes = res.fluxes
|
|
73
|
+
# get interesting fluxes (get_optthr() tries to take into account the approximation in glpk and cplex solvers)
|
|
74
|
+
fluxes_interesting = fluxes[(fluxes > get_optthr()) | (fluxes < -get_optthr())]
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# create a model for escher, remove Rs not beloning to the cycle
|
|
78
|
+
model_copy = model.copy()
|
|
79
|
+
all_rids = [r.id for r in model_copy.reactions]
|
|
80
|
+
to_delete = set(all_rids) - set(fluxes_interesting.index)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
# trick to avoid the WARNING "cobra/core/group.py:147: UserWarning: need to pass in a list"
|
|
84
|
+
# triggered when trying to remove reactions that are included in groups.
|
|
85
|
+
with warnings.catch_warnings(): # temporarily suppress warnings for this block
|
|
86
|
+
warnings.simplefilter("ignore") # ignore all warnings
|
|
87
|
+
cobra_logger = logging.getLogger("cobra.util.solver")
|
|
88
|
+
old_level = cobra_logger.level
|
|
89
|
+
cobra_logger.setLevel(logging.ERROR)
|
|
90
|
+
|
|
91
|
+
# triggering code
|
|
92
|
+
model_copy.remove_reactions(to_delete) # should work also with IDs
|
|
93
|
+
|
|
94
|
+
# restore original behaviour:
|
|
95
|
+
cobra_logger.setLevel(old_level)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
# save JSON to direct import in Escher:
|
|
99
|
+
outfile = os.path.join(outdir, f'EGC_{mid}.json')
|
|
100
|
+
cobra.io.save_json_model(model_copy, outfile)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
# log some messages
|
|
104
|
+
rid_labels = []
|
|
105
|
+
for rid, flux in fluxes_interesting.to_dict().items():
|
|
106
|
+
rid_label = "'" + rid + "'"
|
|
107
|
+
# mark reversible reactions composing the cycle:
|
|
108
|
+
r = model.reactions.get_by_id(rid)
|
|
109
|
+
if r.lower_bound < 0 and r.upper_bound > 0:
|
|
110
|
+
rid_label = rid_label + '(<=>)'
|
|
111
|
+
rid_labels.append(rid_label)
|
|
112
|
+
logger.warning(f"Found erroneous EGC (N={len(model_copy.reactions)}) for '{mid}' (f={obj_value}): [{', '.join(rid_labels)}]. EGC saved to '{outfile}' to be inspected with Escher-FBA.")
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
return found_egc
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def verify_egc_all(logger, model, outdir='./', mids_to_check=['atp','ctp','gtp','utp','itp','nadh','nadph','fadh2','accoa','glu__L','q8h2']):
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
all_results = []
|
|
123
|
+
for mid in mids_to_check:
|
|
124
|
+
all_results.append(verify_egc(logger, model, mid, outdir))
|
|
125
|
+
if any(all_results)==False:
|
|
126
|
+
logger.info("Found 0 erroneous energy-generating cycles (EGCs).")
|
|
127
|
+
|
|
128
|
+
|
gsrap/parsedb/introduce.py
CHANGED
|
@@ -287,15 +287,7 @@ def introduce_transporters(logger, db, model, idcollection_dict, kegg_reaction_t
|
|
|
287
287
|
r = model.reactions.get_by_id(f'EX_{mid_e}')
|
|
288
288
|
r.name = f"Exchange for {model.metabolites.get_by_id(mid_e).name}"
|
|
289
289
|
r.build_reaction_from_string(f'{mid_e} --> ')
|
|
290
|
-
|
|
291
|
-
# basics:
|
|
292
|
-
'glc__D_e', 'nh4_e', 'pi_e', 'so4_e', 'h2o_e', 'h_e', 'o2_e', 'co2_e',
|
|
293
|
-
# metals:
|
|
294
|
-
'cu2_e', 'mobd_e', 'fe2_e', 'cobalt2_e',
|
|
295
|
-
]:
|
|
296
|
-
r.bounds = (-1000, 1000)
|
|
297
|
-
else:
|
|
298
|
-
r.bounds = (0, 1000)
|
|
290
|
+
r.bounds = (0, 1000)
|
|
299
291
|
|
|
300
292
|
# add SBO annotation
|
|
301
293
|
r.annotation['sbo'] = ['SBO:0000627'] # exchange reaction
|
gsrap/parsedb/manual.py
CHANGED
|
@@ -19,6 +19,33 @@ def get_rids_with_mancheck_gpr():
|
|
|
19
19
|
return rids_mancheck_gpr
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
def get_rids_with_mancheck_balancing():
|
|
23
|
+
rids_mancheck_bal = [ # same reactions involving ATP can be reversible
|
|
24
|
+
|
|
25
|
+
# SECTION "reversible both in KEGG and MetaCyc"
|
|
26
|
+
'PGK', 'SUCOAS', 'ADK1', 'GK1', 'NNATr', 'CYTK1', 'ACKr',
|
|
27
|
+
'DGK1', 'PPAKr', 'ATPSr', 'NDPK10',
|
|
28
|
+
|
|
29
|
+
### SECTION "reversible in KEGG but not in MetaCyc" ###
|
|
30
|
+
'CYTK2', # clearly reversible in KEGG but not in MetaCyc (RXN-7913)
|
|
31
|
+
'DADK', # clearly reversible in KEGG but not in MetaCyc (DEOXYADENYLATE-KINASE-RXN)
|
|
32
|
+
'UMPK', # clearly reversible in KEGG but not in MetaCyc (RXN-12002)
|
|
33
|
+
'NDPK1', # clearly reversible in KEGG but not in MetaCyc (GDPKIN-RXN)
|
|
34
|
+
'NDPK2', # clearly reversible in KEGG but not in MetaCyc (UDPKIN-RXN)
|
|
35
|
+
'NDPK3', # clearly reversible in KEGG but not in MetaCyc (CDPKIN-RXN)
|
|
36
|
+
'NDPK4', # clearly reversible in KEGG but not in MetaCyc (DTDPKIN-RXN)
|
|
37
|
+
'NDPK5', # clearly reversible in KEGG but not in MetaCyc (DGDPKIN-RXN)
|
|
38
|
+
'NDPK6', # clearly reversible in KEGG but not in MetaCyc (DUDPKIN-RXN)
|
|
39
|
+
'NDPK7', # clearly reversible in KEGG but not in MetaCyc (DCDPKIN-RXN)
|
|
40
|
+
'NDPK8', # clearly reversible in KEGG but not in MetaCyc (DADPKIN-RXN)
|
|
41
|
+
'NDPK9', # clearly reversible in KEGG but not in MetaCyc (RXN-14120)
|
|
42
|
+
|
|
43
|
+
### SECTION "missing reversibility info" ###
|
|
44
|
+
'LPHERA',
|
|
45
|
+
]
|
|
46
|
+
return rids_mancheck_bal
|
|
47
|
+
|
|
48
|
+
|
|
22
49
|
|
|
23
50
|
def get_manual_sinks():
|
|
24
51
|
|
gsrap/parsedb/parsedb.py
CHANGED
|
@@ -18,6 +18,9 @@ from ..commons import adjust_biomass_precursors
|
|
|
18
18
|
from ..commons import count_undrawn_rids
|
|
19
19
|
from ..commons import format_expansion
|
|
20
20
|
from ..commons import download_keggorg
|
|
21
|
+
from ..commons import initialize_model
|
|
22
|
+
from ..commons import get_memote_results_dict
|
|
23
|
+
|
|
21
24
|
|
|
22
25
|
from .introduce import introduce_metabolites
|
|
23
26
|
from .introduce import introduce_reactions
|
|
@@ -35,6 +38,8 @@ from ..runsims.biosynth import biosynthesis_on_media
|
|
|
35
38
|
|
|
36
39
|
from ..mkmodel.polishing import remove_disconnected
|
|
37
40
|
|
|
41
|
+
from .cycles import verify_egc_all
|
|
42
|
+
|
|
38
43
|
|
|
39
44
|
|
|
40
45
|
|
|
@@ -173,41 +178,59 @@ def main(args, logger):
|
|
|
173
178
|
|
|
174
179
|
|
|
175
180
|
###### CHECKS 2
|
|
176
|
-
# check
|
|
177
|
-
|
|
178
|
-
|
|
181
|
+
# check erroneous EGCs
|
|
182
|
+
verify_egc_all(logger, universe, args.outdir)
|
|
183
|
+
|
|
179
184
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
if not args.justparse:
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
###### CHECKS 3
|
|
189
|
+
# check growth on minmal media
|
|
190
|
+
df_G = grow_on_media(logger, universe, dbexp, args.media, '-', True)
|
|
191
|
+
if type(df_G)==int: return 1
|
|
184
192
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
193
|
+
# check blocked biomass precursors
|
|
194
|
+
cond_col_dict = adjust_biomass_precursors(logger, universe, universe, 1.0)
|
|
195
|
+
df_E = precursors_on_media(logger, universe, universe, dbexp, args.media, cond_col_dict, args.precursors)
|
|
196
|
+
if type(df_E)==int: return 1
|
|
197
|
+
|
|
198
|
+
# check blocked metabolites / dead-ends
|
|
199
|
+
df_S = biosynthesis_on_media(logger, universe, dbexp, args.media, args.biosynth)
|
|
200
|
+
if type(df_S)==int: return 1
|
|
188
201
|
|
|
189
202
|
|
|
190
203
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
204
|
+
###### POLISHING 2
|
|
205
|
+
# reset growth environment befor saving the model
|
|
206
|
+
gempipe.reset_growth_env(universe)
|
|
207
|
+
|
|
208
|
+
# initialize model
|
|
209
|
+
response = initialize_model(logger, universe, dbexp, args.initialize, args.media)
|
|
210
|
+
if response==1: return 1
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
###### CHECKS 4
|
|
215
|
+
# compute Memote metrics
|
|
216
|
+
memote_results_dict = get_memote_results_dict(logger, universe)
|
|
217
|
+
|
|
195
218
|
|
|
196
219
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
220
|
+
# output the universe
|
|
221
|
+
logger.info("Writing universal model...")
|
|
222
|
+
cobra.io.save_json_model(universe, f'{args.outdir}/universe.json')
|
|
223
|
+
logger.info(f"'{args.outdir}/universe.json' created!")
|
|
224
|
+
cobra.io.write_sbml_model(universe, f'{args.outdir}/universe.xml') # groups are saved only to SBML
|
|
225
|
+
logger.info(f"'{args.outdir}/universe.xml' created!")
|
|
226
|
+
force_id_on_sbml(f'{args.outdir}/universe.xml', 'universe') # force introduction of the 'id=""' field
|
|
227
|
+
sheets_dict = write_excel_model(universe, f'{args.outdir}/universe.parsedb.xlsx', args.nofigs, memote_results_dict, df_E, None, None, df_S, df_C)
|
|
228
|
+
logger.info(f"'{args.outdir}/universe.parsedb.xlsx' created!")
|
|
206
229
|
|
|
207
230
|
|
|
208
231
|
|
|
209
|
-
###### CHECKS
|
|
210
|
-
# check if universal escher map
|
|
232
|
+
###### CHECKS 4
|
|
233
|
+
# check if universal escher map is updated:
|
|
211
234
|
count_undrawn_rids(logger, universe, lastmap)
|
|
212
235
|
|
|
213
236
|
|
gsrap/parsedb/repeating.py
CHANGED
|
@@ -4,6 +4,7 @@ import cobra
|
|
|
4
4
|
|
|
5
5
|
from .manual import get_deprecated_kos
|
|
6
6
|
from .manual import get_rids_with_mancheck_gpr
|
|
7
|
+
from .manual import get_rids_with_mancheck_balancing
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
|
|
@@ -138,6 +139,14 @@ def add_reaction(logger, model, rid, row, kr_ids, kegg_reaction_to_others, addty
|
|
|
138
139
|
return 1
|
|
139
140
|
|
|
140
141
|
|
|
142
|
+
# check if reversible and using ATP
|
|
143
|
+
if r.lower_bound < 0 and r.upper_bound > 0:
|
|
144
|
+
for m in r.metabolites:
|
|
145
|
+
if m.id.rsplit('_', 1)[0] == 'atp':
|
|
146
|
+
if rid not in get_rids_with_mancheck_balancing():
|
|
147
|
+
logger.warning(f"Reaction '{rid}' involves ATP and is reversible: are you sure?")
|
|
148
|
+
|
|
149
|
+
|
|
141
150
|
return 0
|
|
142
151
|
|
|
143
152
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
gsrap/.ipynb_checkpoints/__init__-checkpoint.py,sha256=
|
|
2
|
-
gsrap/__init__.py,sha256=
|
|
1
|
+
gsrap/.ipynb_checkpoints/__init__-checkpoint.py,sha256=o4xMVuraz_Qnf6ZOtxcYjNl-a7-zlRuZsP-GEw8lP4I,15240
|
|
2
|
+
gsrap/__init__.py,sha256=o4xMVuraz_Qnf6ZOtxcYjNl-a7-zlRuZsP-GEw8lP4I,15240
|
|
3
3
|
gsrap/assets/.ipynb_checkpoints/PM1-checkpoint.csv,sha256=0qjaMVG_t9aFxbHbxON6ecmEUnWPwN9nhmxc61QFeCU,8761
|
|
4
4
|
gsrap/assets/.ipynb_checkpoints/PM2A-checkpoint.csv,sha256=rjYTdwe8lpRS552BYiUP3J71juG2ywVdR5Sux6fjZTY,8816
|
|
5
5
|
gsrap/assets/.ipynb_checkpoints/PM3B-checkpoint.csv,sha256=42IGX_2O5bRYSiHoMuVKT-T-bzVj0cSRZBvGOrbnQMA,8130
|
|
@@ -11,30 +11,32 @@ gsrap/assets/PM4A.csv,sha256=f_5__0Ap_T0KYje5h9veW29I2qB4yU0h7Hr7WpaHjSc,9081
|
|
|
11
11
|
gsrap/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
gsrap/assets/kegg_compound_to_others.pickle,sha256=pz1897cfQ7PLsYZiBVcoMQPzvRzT-nHUdgphBe0g5ZQ,8233860
|
|
13
13
|
gsrap/assets/kegg_reaction_to_others.pickle,sha256=AGW8CGN5hKeXZoYn3JRF4Xu832WyNrTlMcLw7luttlc,1703146
|
|
14
|
-
gsrap/commons/.ipynb_checkpoints/__init__-checkpoint.py,sha256=
|
|
14
|
+
gsrap/commons/.ipynb_checkpoints/__init__-checkpoint.py,sha256=9lrb0sBFSWEgV_e5FYzSgjTbam8b959rW_8VuxQHt1M,268
|
|
15
15
|
gsrap/commons/.ipynb_checkpoints/biomass-checkpoint.py,sha256=4u7WBaUgo42tBoXDU1D0VUjICatb44e0jfswZrBeHYs,17987
|
|
16
16
|
gsrap/commons/.ipynb_checkpoints/coeffs-checkpoint.py,sha256=qI3_GuqHkeA2KbK9pYdkqJaFwYemAVZJGLRR4QtHt6w,19182
|
|
17
17
|
gsrap/commons/.ipynb_checkpoints/downloads-checkpoint.py,sha256=e-7ffMD4R07MWEgXyGcwjhScbWnG7A3L100YWbpNMk0,8461
|
|
18
18
|
gsrap/commons/.ipynb_checkpoints/escherutils-checkpoint.py,sha256=_y0TgM0-Im0RT8W8z5rr4vlnGK55iRFds6DlDsjGD-8,1151
|
|
19
|
-
gsrap/commons/.ipynb_checkpoints/excelhub-checkpoint.py,sha256=
|
|
19
|
+
gsrap/commons/.ipynb_checkpoints/excelhub-checkpoint.py,sha256=1KemKQ5oWziFlrT3__70-AKjXwdsqwEzVswEOSbNBDs,11433
|
|
20
20
|
gsrap/commons/.ipynb_checkpoints/figures-checkpoint.py,sha256=IRHSQXrCi4SQoISEfNB0rDhvUzbjcgsPi9zUSefsRto,4316
|
|
21
21
|
gsrap/commons/.ipynb_checkpoints/fluxbal-checkpoint.py,sha256=jgC3-vI9Tbjvqohh2mJwFra4rl_pbUzHWrSa_QAxVO4,1262
|
|
22
22
|
gsrap/commons/.ipynb_checkpoints/keggutils-checkpoint.py,sha256=M2nhHRiNH_xObHSxOIdt7ix59MrPdl9q3HNICC8X36M,4514
|
|
23
23
|
gsrap/commons/.ipynb_checkpoints/logutils-checkpoint.py,sha256=VsnrkIsUftS3MOOwAd0n0peQ7a2X5ZEx930eCtzmW7g,1317
|
|
24
|
-
gsrap/commons/.ipynb_checkpoints/medium-checkpoint.py,sha256=
|
|
24
|
+
gsrap/commons/.ipynb_checkpoints/medium-checkpoint.py,sha256=AMj95IvyWpbqKAYW5QdG_pyFXHDllUZ-b8dAsPR7tvU,3859
|
|
25
|
+
gsrap/commons/.ipynb_checkpoints/memoteutils-checkpoint.py,sha256=rulJFSVX4I-XGi4uHXloL0eGIkC5zhpuJYWJn9zCDbY,4981
|
|
25
26
|
gsrap/commons/.ipynb_checkpoints/metrics-checkpoint.py,sha256=gvqF2c0e31m5qQWQ11JF4-eMqxtuONy_7lUiC7uaXX4,3291
|
|
26
27
|
gsrap/commons/.ipynb_checkpoints/sbmlutils-checkpoint.py,sha256=gkY02qbGXrbYStn2F8J0KM0fmqati2Nbvi128EF7coI,365
|
|
27
|
-
gsrap/commons/__init__.py,sha256=
|
|
28
|
+
gsrap/commons/__init__.py,sha256=9lrb0sBFSWEgV_e5FYzSgjTbam8b959rW_8VuxQHt1M,268
|
|
28
29
|
gsrap/commons/biomass.py,sha256=4u7WBaUgo42tBoXDU1D0VUjICatb44e0jfswZrBeHYs,17987
|
|
29
30
|
gsrap/commons/coeffs.py,sha256=qI3_GuqHkeA2KbK9pYdkqJaFwYemAVZJGLRR4QtHt6w,19182
|
|
30
31
|
gsrap/commons/downloads.py,sha256=e-7ffMD4R07MWEgXyGcwjhScbWnG7A3L100YWbpNMk0,8461
|
|
31
32
|
gsrap/commons/escherutils.py,sha256=_y0TgM0-Im0RT8W8z5rr4vlnGK55iRFds6DlDsjGD-8,1151
|
|
32
|
-
gsrap/commons/excelhub.py,sha256=
|
|
33
|
+
gsrap/commons/excelhub.py,sha256=1KemKQ5oWziFlrT3__70-AKjXwdsqwEzVswEOSbNBDs,11433
|
|
33
34
|
gsrap/commons/figures.py,sha256=IRHSQXrCi4SQoISEfNB0rDhvUzbjcgsPi9zUSefsRto,4316
|
|
34
35
|
gsrap/commons/fluxbal.py,sha256=jgC3-vI9Tbjvqohh2mJwFra4rl_pbUzHWrSa_QAxVO4,1262
|
|
35
36
|
gsrap/commons/keggutils.py,sha256=M2nhHRiNH_xObHSxOIdt7ix59MrPdl9q3HNICC8X36M,4514
|
|
36
37
|
gsrap/commons/logutils.py,sha256=VsnrkIsUftS3MOOwAd0n0peQ7a2X5ZEx930eCtzmW7g,1317
|
|
37
|
-
gsrap/commons/medium.py,sha256=
|
|
38
|
+
gsrap/commons/medium.py,sha256=AMj95IvyWpbqKAYW5QdG_pyFXHDllUZ-b8dAsPR7tvU,3859
|
|
39
|
+
gsrap/commons/memoteutils.py,sha256=rulJFSVX4I-XGi4uHXloL0eGIkC5zhpuJYWJn9zCDbY,4981
|
|
38
40
|
gsrap/commons/metrics.py,sha256=gvqF2c0e31m5qQWQ11JF4-eMqxtuONy_7lUiC7uaXX4,3291
|
|
39
41
|
gsrap/commons/sbmlutils.py,sha256=gkY02qbGXrbYStn2F8J0KM0fmqati2Nbvi128EF7coI,365
|
|
40
42
|
gsrap/getmaps/.ipynb_checkpoints/__init__-checkpoint.py,sha256=L4gLwk1vgnPlQuIP-FPnvy9uXnmGVQ4Rvjv3uyciDfk,92
|
|
@@ -47,30 +49,32 @@ gsrap/mkmodel/.ipynb_checkpoints/__init__-checkpoint.py,sha256=PNze-26HMOwfdJ92K
|
|
|
47
49
|
gsrap/mkmodel/.ipynb_checkpoints/biologcuration-checkpoint.py,sha256=Nn7z-js-mzzeO23kVM2L7sJ5PNle7AkCUeBcEAYjlFU,15378
|
|
48
50
|
gsrap/mkmodel/.ipynb_checkpoints/gapfill-checkpoint.py,sha256=BPZw4sszlBhAYfHnV0pA7EpG0b2ePwS6kUfFt0Ww-ss,5159
|
|
49
51
|
gsrap/mkmodel/.ipynb_checkpoints/gapfillutils-checkpoint.py,sha256=S6nFUZ1Bbdf13nVJhGK2S5C_V3hd5zwTg2o5nzejngg,3123
|
|
50
|
-
gsrap/mkmodel/.ipynb_checkpoints/mkmodel-checkpoint.py,sha256=
|
|
52
|
+
gsrap/mkmodel/.ipynb_checkpoints/mkmodel-checkpoint.py,sha256=zm-JA2sXwqTLalCc0L5POw2iRI56QK0UJMUgorHQrLw,10830
|
|
51
53
|
gsrap/mkmodel/.ipynb_checkpoints/polishing-checkpoint.py,sha256=R1UdFPxN8N27Iu0jsYW2N_1BkWEbBHaMYW6NkCYZK_k,3256
|
|
52
54
|
gsrap/mkmodel/.ipynb_checkpoints/pruner-checkpoint.py,sha256=FAZid-0H6j66wR2dVKRAaMaDREVt1edflmZXbX7blXg,9836
|
|
53
55
|
gsrap/mkmodel/__init__.py,sha256=PNze-26HMOwfdJ92KiXpr--VV1ftVfo3CAxBZgeokp8,92
|
|
54
56
|
gsrap/mkmodel/biologcuration.py,sha256=Nn7z-js-mzzeO23kVM2L7sJ5PNle7AkCUeBcEAYjlFU,15378
|
|
55
57
|
gsrap/mkmodel/gapfill.py,sha256=BPZw4sszlBhAYfHnV0pA7EpG0b2ePwS6kUfFt0Ww-ss,5159
|
|
56
58
|
gsrap/mkmodel/gapfillutils.py,sha256=S6nFUZ1Bbdf13nVJhGK2S5C_V3hd5zwTg2o5nzejngg,3123
|
|
57
|
-
gsrap/mkmodel/mkmodel.py,sha256=
|
|
59
|
+
gsrap/mkmodel/mkmodel.py,sha256=zm-JA2sXwqTLalCc0L5POw2iRI56QK0UJMUgorHQrLw,10830
|
|
58
60
|
gsrap/mkmodel/polishing.py,sha256=R1UdFPxN8N27Iu0jsYW2N_1BkWEbBHaMYW6NkCYZK_k,3256
|
|
59
61
|
gsrap/mkmodel/pruner.py,sha256=FAZid-0H6j66wR2dVKRAaMaDREVt1edflmZXbX7blXg,9836
|
|
60
62
|
gsrap/parsedb/.ipynb_checkpoints/__init__-checkpoint.py,sha256=1k2K1gz4lIdXAwHEdJ0OhdkPu83woGv0Z4TpT1kGrTk,97
|
|
61
63
|
gsrap/parsedb/.ipynb_checkpoints/annotation-checkpoint.py,sha256=Y02_zXJj_tS1GyBdfuLBy9YJjMgx3mjX6tqr1KhQ-9Q,4810
|
|
62
64
|
gsrap/parsedb/.ipynb_checkpoints/completeness-checkpoint.py,sha256=yhFiEslK1qmMCk_GWZ7UZtX02FUqLU39UafG5886WsY,12016
|
|
63
|
-
gsrap/parsedb/.ipynb_checkpoints/
|
|
64
|
-
gsrap/parsedb/.ipynb_checkpoints/
|
|
65
|
-
gsrap/parsedb/.ipynb_checkpoints/
|
|
66
|
-
gsrap/parsedb/.ipynb_checkpoints/
|
|
65
|
+
gsrap/parsedb/.ipynb_checkpoints/cycles-checkpoint.py,sha256=HJ58LcHQseQ1eploysfXd5Y8Rip8n62qhje4pmL22VM,4761
|
|
66
|
+
gsrap/parsedb/.ipynb_checkpoints/introduce-checkpoint.py,sha256=UuwGWGB2saG9VDMoboumeRBWhHOO68bs5_1r2RSkyVo,17145
|
|
67
|
+
gsrap/parsedb/.ipynb_checkpoints/manual-checkpoint.py,sha256=qMKYshVftSGCRAjHC87E6n9-6kAiffFFCgHOUbqlyC0,3625
|
|
68
|
+
gsrap/parsedb/.ipynb_checkpoints/parsedb-checkpoint.py,sha256=fTZlQvjV_wyRIxWJbW5TCVvydn0-CsYknsx9FYspdu8,8127
|
|
69
|
+
gsrap/parsedb/.ipynb_checkpoints/repeating-checkpoint.py,sha256=WwPOzlZgsZWmJ-rvhFg21iOJ6gajgKFc2vCIHh6weBg,6103
|
|
67
70
|
gsrap/parsedb/__init__.py,sha256=1k2K1gz4lIdXAwHEdJ0OhdkPu83woGv0Z4TpT1kGrTk,97
|
|
68
71
|
gsrap/parsedb/annotation.py,sha256=Y02_zXJj_tS1GyBdfuLBy9YJjMgx3mjX6tqr1KhQ-9Q,4810
|
|
69
72
|
gsrap/parsedb/completeness.py,sha256=yhFiEslK1qmMCk_GWZ7UZtX02FUqLU39UafG5886WsY,12016
|
|
70
|
-
gsrap/parsedb/
|
|
71
|
-
gsrap/parsedb/
|
|
72
|
-
gsrap/parsedb/
|
|
73
|
-
gsrap/parsedb/
|
|
73
|
+
gsrap/parsedb/cycles.py,sha256=HJ58LcHQseQ1eploysfXd5Y8Rip8n62qhje4pmL22VM,4761
|
|
74
|
+
gsrap/parsedb/introduce.py,sha256=UuwGWGB2saG9VDMoboumeRBWhHOO68bs5_1r2RSkyVo,17145
|
|
75
|
+
gsrap/parsedb/manual.py,sha256=qMKYshVftSGCRAjHC87E6n9-6kAiffFFCgHOUbqlyC0,3625
|
|
76
|
+
gsrap/parsedb/parsedb.py,sha256=fTZlQvjV_wyRIxWJbW5TCVvydn0-CsYknsx9FYspdu8,8127
|
|
77
|
+
gsrap/parsedb/repeating.py,sha256=WwPOzlZgsZWmJ-rvhFg21iOJ6gajgKFc2vCIHh6weBg,6103
|
|
74
78
|
gsrap/runsims/.ipynb_checkpoints/__init__-checkpoint.py,sha256=6E6E1gWgH0V7ls4Omx4mxxC85gMJ_27YqhjugJzlZtY,97
|
|
75
79
|
gsrap/runsims/.ipynb_checkpoints/biosynth-checkpoint.py,sha256=fUlHUo4CfB4rGX9Dth87B1p5E5sz7i6spR7ZoqDDGaI,2836
|
|
76
80
|
gsrap/runsims/.ipynb_checkpoints/cnps-checkpoint.py,sha256=A0U8QPqW_uyrtHs99F286aEDEC6eukHXeMWrmnd0efA,5636
|
|
@@ -89,8 +93,8 @@ gsrap/runsims/precursors.py,sha256=1RNt_Rxs0L1lolDmYh4_CiZgiwHfU5B_AcomJO6vJ28,2
|
|
|
89
93
|
gsrap/runsims/runsims.py,sha256=2FC5Gs8oSYyZTjHF3A7aXB_O6myVfcn3bCxQfLJlZTk,2842
|
|
90
94
|
gsrap/runsims/simplegrowth.py,sha256=tCQHTMUqum1YwlBKRTNaQoag2co_yQlCaKmISOARAlE,2353
|
|
91
95
|
gsrap/runsims/singleomission.py,sha256=jMuKAi0pINP8Jlrm-yI-tX7D110VzttR3YfTSnDRe4I,2847
|
|
92
|
-
gsrap-0.8.
|
|
93
|
-
gsrap-0.8.
|
|
94
|
-
gsrap-0.8.
|
|
95
|
-
gsrap-0.8.
|
|
96
|
-
gsrap-0.8.
|
|
96
|
+
gsrap-0.8.2.dist-info/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
97
|
+
gsrap-0.8.2.dist-info/METADATA,sha256=CEZpXejZ1b_KWKhxPbSXKGdW01ZU_nkKFqzfafDXXGE,898
|
|
98
|
+
gsrap-0.8.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
99
|
+
gsrap-0.8.2.dist-info/entry_points.txt,sha256=S9MY0DjfnbKGlZbp5bV7W6dNFy3APoEV84u9x6MV1eI,36
|
|
100
|
+
gsrap-0.8.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|