Skip to content

Commit d73d149

Browse files
committed
Merge commit 'd3b6de1ce64cdde8f906cabc619698376ac23d60'
# Conflicts: # modelseedpy/core/msatpcorrection.py
2 parents 0ce9433 + d3b6de1 commit d73d149

15 files changed

+951
-943
lines changed

examples/Model Reconstruction/build_metabolic_model.ipynb

+17-726
Large diffs are not rendered by default.

examples/Others/Biochem.ipynb

+635
Large diffs are not rendered by default.

modelseedpy/biochem/modelseed_biochem.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -194,19 +194,21 @@ def load_reactions_from_df(df: pd.DataFrame, database_metabolites: dict, names:
194194
reactions.append(rxn)
195195
except Exception as e:
196196
logger.error('failed to read reaction at Index: %s. %s', t[0], e)
197-
return reactions
197+
return reactions, list(metabolites_indexed.values())
198198

199199

200200
class ModelSEEDDatabase:
201201
"""
202202
ModelSEED database instance.
203203
"""
204204

205-
def __init__(self, compounds, reactions):
205+
def __init__(self, compounds, reactions, compound_tokens):
206206
self.compounds = DictList()
207+
self.compound_tokens = DictList()
207208
self.reactions = DictList()
208209
self.compounds += compounds
209210
self.reactions += reactions
211+
self.reactions += compound_tokens
210212
self.inchi_key_lookup = {}
211213
self.metabolite_reactions = {}
212214

@@ -403,8 +405,9 @@ def load_database(compounds_url, reactions_url,
403405
reaction_ecs = get_aliases_from_df(pd.read_csv(reactions_ec_url, sep='\t'))
404406

405407
df_reactions = pd.read_csv(reactions_url, sep='\t', low_memory=False)
406-
reactions = load_reactions_from_df(df_reactions, dict(map(lambda x: (x.id, x), compounds)), reaction_names,
407-
reaction_aliases, reaction_ecs)
408+
reactions, metabolites_indexed = load_reactions_from_df(
409+
df_reactions, dict(map(lambda x: (x.id, x), compounds)), reaction_names,
410+
reaction_aliases, reaction_ecs)
408411

409412
database = ModelSEEDDatabase(compounds, reactions)
410413
return database

modelseedpy/biochem/modelseed_reaction.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
def to_str2(rxn, cmp_replace=None, cpd_replace={}):
77
direction = rxn.data['direction']
8-
op = '<?>'
8+
op = '<?>'
99
if direction == '=':
1010
op = '<=>'
1111
elif direction == '>':
1212
op = '-->'
1313
elif direction == '<':
1414
op = '<--'
1515
else:
16-
op = '<?>'
16+
op = '<?>'
1717
cstoichiometry = rxn.cstoichiometry
1818
l = []
1919
r = []
@@ -158,9 +158,7 @@ def to_template_reaction(self, compartment_setup=None):
158158
raise ValueError(f'invalid compartment setup missing key [{m.compartment}] in {compartment_setup}')
159159
cpd = m.to_template_compartment_compound(compartment_setup[m.compartment])
160160
metabolites[cpd] = v
161-
print(m.id, m.compartment, cpd)
162-
163-
print(v)
161+
# print(m.id, m.compartment, cpd, v)
164162

165163
# if len(str(index)) > 0:
166164
# name = f'{self.name} [{compartment}]'

modelseedpy/biochem/utils.py

+123-124
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import re
22

3-
class KBaseFBAModelBuilder:
4-
5-
def __init__(self, fbamodel, modelseed):
6-
self.fbamodel = fbamodel
7-
self.modelseed = modelseed
3+
84

95
def get_mapping(df, valid_databases, pd):
106
mapping = {}
@@ -19,6 +15,7 @@ def get_mapping(df, valid_databases, pd):
1915
mapping[id][db] = value
2016
return mapping
2117

18+
2219
def atom_count(formula):
2320
atoms = {}
2421
pairs = re.findall(r'([A-Z][a-z]*)(\d*)', formula)
@@ -32,6 +29,7 @@ def atom_count(formula):
3229
#print(p[0], v)
3330
return atoms
3431

32+
3533
def is_valid_formula(f, pt):
3634
atoms = atom_count(f)
3735
for e in atoms:
@@ -40,6 +38,7 @@ def is_valid_formula(f, pt):
4038
return False
4139
return True
4240

41+
4342
class PeriodicTable:
4443

4544
def __init__(self):
@@ -164,127 +163,127 @@ def __init__(self):
164163
"Zr": 40
165164
}
166165
self.elements = {
167-
"Ac" : "Actinium",
168-
"Ag" : "Silver",
169-
"Al" : "Aluminum",
170-
"Am" : "Americium",
171-
"Ar" : "Argon",
172-
"As" : "Arsenic",
173-
"At" : "Astatine",
174-
"Au" : "Gold",
175-
"B" : "Boron",
176-
"Ba" : "Barium",
177-
"Be" : "Beryllium",
178-
"Bh" : "Bohrium",
179-
"Bi" : "Bismuth",
180-
"Bk" : "Berkelium",
181-
"Br" : "Bromine",
182-
"C" : "Carbon",
183-
"Ca" : "Calcium",
184-
"Cd" : "Cadmium",
185-
"Ce" : "Cerium",
186-
"Cf" : "Californium",
187-
"Cl" : "Chlorine",
188-
"Cm" : "Curium",
189-
"Cn" : "Copernicium",
190-
"Co" : "Cobalt",
191-
"Cr" : "Chromium",
192-
"Cs" : "Cesium",
193-
"Cu" : "Copper",
194-
"Db" : "Dubnium",
195-
"Ds" : "Darmstadtium",
196-
"Dy" : "Dysprosium",
197-
"Er" : "Erbium",
198-
"Es" : "Einsteinium",
199-
"Eu" : "Europium",
200-
"F" : "Fluorine",
201-
"Fe" : "Iron",
202-
"Fl" : "Flerovium",
203-
"Fm" : "Fermium",
204-
"Fr" : "Francium",
205-
"Ga" : "Gallium",
206-
"Gd" : "Gadolinium",
207-
"Ge" : "Germanium",
208-
"H" : "Hydrogen",
209-
"He" : "Helium",
210-
"Hf" : "Hafnium",
211-
"Hg" : "Mercury",
212-
"Ho" : "Holmium",
213-
"Hs" : "Hassium",
214-
"I" : "Iodine",
215-
"In" : "Indium",
216-
"Ir" : "Iridium",
217-
"K" : "Potassium",
218-
"Kr" : "Krypton",
219-
"La" : "Lanthanum",
220-
"Li" : "Lithium",
221-
"Lr" : "Lawrencium",
222-
"Lu" : "Lutetium",
223-
"Lv" : "Livermorium",
224-
"Mc" : "Moscovium",
225-
"Md" : "Mendelevium",
226-
"Mg" : "Magnesium",
227-
"Mn" : "Manganese",
228-
"Mo" : "Molybdenum",
229-
"Mt" : "Meitnerium",
230-
"N" : "Nitrogen",
231-
"Na" : "Sodium",
232-
"Nb" : "Niobium",
233-
"Nd" : "Neodymium",
234-
"Ne" : "Neon",
235-
"Nh" : "Nihonium",
236-
"Ni" : "Nickel",
237-
"No" : "Nobelium",
238-
"Np" : "Neptunium",
239-
"O" : "Oxygen",
240-
"Og" : "Oganesson",
241-
"Os" : "Osmium",
242-
"P" : "Phosphorus",
243-
"Pa" : "Protactinium",
244-
"Pb" : "Lead",
245-
"Pd" : "Palladium",
246-
"Pm" : "Promethium",
247-
"Po" : "Polonium",
248-
"Pr" : "Praseodymium",
249-
"Pt" : "Platinum",
250-
"Pu" : "Plutonium",
251-
"Ra" : "Radium",
252-
"Rb" : "Rubidium",
253-
"Re" : "Rhenium",
254-
"Rf" : "Rutherfordium",
255-
"Rg" : "Roentgenium",
256-
"Rh" : "Rhodium",
257-
"Rn" : "Radon",
258-
"Ru" : "Ruthenium",
259-
"S" : "Sulfur",
260-
"Sb" : "Antimony",
261-
"Sc" : "Scandium",
262-
"Se" : "Selenium",
263-
"Sg" : "Seaborgium",
264-
"Si" : "Silicon",
265-
"Sm" : "Samarium",
266-
"Sn" : "Tin",
267-
"Sr" : "Strontium",
268-
"Ta" : "Tantalum",
269-
"Tb" : "Terbium",
270-
"Tc" : "Technetium",
271-
"Te" : "Tellurium",
272-
"Th" : "Thorium",
273-
"Ti" : "Titanium",
274-
"Tl" : "Thallium",
275-
"Tm" : "Thulium",
276-
"Ts" : "Tennessine",
277-
"U" : "Uranium",
278-
"V" : "Vanadium",
279-
"W" : "Tungsten",
280-
"Xe" : "Xenon",
281-
"Y" : "Yttrium",
282-
"Yb" : "Ytterbium",
283-
"Zn" : "Zinc",
284-
"Zr" : "Zirconium"
166+
"Ac": "Actinium",
167+
"Ag": "Silver",
168+
"Al": "Aluminum",
169+
"Am": "Americium",
170+
"Ar": "Argon",
171+
"As": "Arsenic",
172+
"At": "Astatine",
173+
"Au": "Gold",
174+
"B": "Boron",
175+
"Ba": "Barium",
176+
"Be": "Beryllium",
177+
"Bh": "Bohrium",
178+
"Bi": "Bismuth",
179+
"Bk": "Berkelium",
180+
"Br": "Bromine",
181+
"C": "Carbon",
182+
"Ca": "Calcium",
183+
"Cd": "Cadmium",
184+
"Ce": "Cerium",
185+
"Cf": "Californium",
186+
"Cl": "Chlorine",
187+
"Cm": "Curium",
188+
"Cn": "Copernicium",
189+
"Co": "Cobalt",
190+
"Cr": "Chromium",
191+
"Cs": "Cesium",
192+
"Cu": "Copper",
193+
"Db": "Dubnium",
194+
"Ds": "Darmstadtium",
195+
"Dy": "Dysprosium",
196+
"Er": "Erbium",
197+
"Es": "Einsteinium",
198+
"Eu": "Europium",
199+
"F": "Fluorine",
200+
"Fe": "Iron",
201+
"Fl": "Flerovium",
202+
"Fm": "Fermium",
203+
"Fr": "Francium",
204+
"Ga": "Gallium",
205+
"Gd": "Gadolinium",
206+
"Ge": "Germanium",
207+
"H": "Hydrogen",
208+
"He": "Helium",
209+
"Hf": "Hafnium",
210+
"Hg": "Mercury",
211+
"Ho": "Holmium",
212+
"Hs": "Hassium",
213+
"I": "Iodine",
214+
"In": "Indium",
215+
"Ir": "Iridium",
216+
"K": "Potassium",
217+
"Kr": "Krypton",
218+
"La": "Lanthanum",
219+
"Li": "Lithium",
220+
"Lr": "Lawrencium",
221+
"Lu": "Lutetium",
222+
"Lv": "Livermorium",
223+
"Mc": "Moscovium",
224+
"Md": "Mendelevium",
225+
"Mg": "Magnesium",
226+
"Mn": "Manganese",
227+
"Mo": "Molybdenum",
228+
"Mt": "Meitnerium",
229+
"N": "Nitrogen",
230+
"Na": "Sodium",
231+
"Nb": "Niobium",
232+
"Nd": "Neodymium",
233+
"Ne": "Neon",
234+
"Nh": "Nihonium",
235+
"Ni": "Nickel",
236+
"No": "Nobelium",
237+
"Np": "Neptunium",
238+
"O": "Oxygen",
239+
"Og": "Oganesson",
240+
"Os": "Osmium",
241+
"P": "Phosphorus",
242+
"Pa": "Protactinium",
243+
"Pb": "Lead",
244+
"Pd": "Palladium",
245+
"Pm": "Promethium",
246+
"Po": "Polonium",
247+
"Pr": "Praseodymium",
248+
"Pt": "Platinum",
249+
"Pu": "Plutonium",
250+
"Ra": "Radium",
251+
"Rb": "Rubidium",
252+
"Re": "Rhenium",
253+
"Rf": "Rutherfordium",
254+
"Rg": "Roentgenium",
255+
"Rh": "Rhodium",
256+
"Rn": "Radon",
257+
"Ru": "Ruthenium",
258+
"S": "Sulfur",
259+
"Sb": "Antimony",
260+
"Sc": "Scandium",
261+
"Se": "Selenium",
262+
"Sg": "Seaborgium",
263+
"Si": "Silicon",
264+
"Sm": "Samarium",
265+
"Sn": "Tin",
266+
"Sr": "Strontium",
267+
"Ta": "Tantalum",
268+
"Tb": "Terbium",
269+
"Tc": "Technetium",
270+
"Te": "Tellurium",
271+
"Th": "Thorium",
272+
"Ti": "Titanium",
273+
"Tl": "Thallium",
274+
"Tm": "Thulium",
275+
"Ts": "Tennessine",
276+
"U": "Uranium",
277+
"V": "Vanadium",
278+
"W": "Tungsten",
279+
"Xe": "Xenon",
280+
"Y": "Yttrium",
281+
"Yb": "Ytterbium",
282+
"Zn": "Zinc",
283+
"Zr": "Zirconium"
285284
}
286285

287286
def get_element_name(self, e):
288287
if e in self.elements:
289288
return self.elements[e]
290-
return None
289+
return None

modelseedpy/core/fbahelper.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ def rxn_compartment(reaction):
243243
cytosol = comp
244244
else:
245245
othercomp = comp
246-
if othercomp != None:
246+
if othercomp is not None:
247247
return othercomp
248248
return cytosol
249249

0 commit comments

Comments
 (0)