comparison COBRAxy/ras_generator.py @ 509:5956dcf94277 draft default tip

Uploaded
author francesco_lapi
date Wed, 01 Oct 2025 15:34:21 +0000
parents 96f512dff490
children
comparison
equal deleted inserted replaced
508:ca98c149ec61 509:5956dcf94277
189 # for loop on rules 189 # for loop on rules
190 ind = 0 190 ind = 0
191 for rule, reaction_ids in dict_rule_reactions.items(): 191 for rule, reaction_ids in dict_rule_reactions.items():
192 if len(rule) != 0: 192 if len(rule) != 0:
193 # there is one gene at least in the formula 193 # there is one gene at least in the formula
194 rule = rule.replace("-","_")
194 rule_split = rule.split() 195 rule_split = rule.split()
195 rule_split_elements = list(set(rule_split)) # genes in formula 196 rule_split_elements = list(set(rule_split)) # genes in formula
196 197
197 # which genes are in the count matrix? 198 # which genes are in the count matrix?
198 genes_in_count_matrix = [el for el in rule_split_elements if el in genes] 199 genes_in_count_matrix = [el for el in rule_split_elements if el in genes]
218 else: 219 else:
219 ras_df[ind] = or_function(matrix, axis=0) 220 ras_df[ind] = or_function(matrix, axis=0)
220 else: 221 else:
221 # complex expression (e.g. A or (B and C)) 222 # complex expression (e.g. A or (B and C))
222 data = count_df_filtered.loc[genes_in_count_matrix] # dataframe of genes in the GPRs 223 data = count_df_filtered.loc[genes_in_count_matrix] # dataframe of genes in the GPRs
223
224 rule = rule.replace("-", "_")
225 tree = ast.parse(rule, mode="eval").body 224 tree = ast.parse(rule, mode="eval").body
226 values_by_cell = [dict(zip(data.index, data[col].values)) for col in data.columns] 225 values_by_cell = [dict(zip(data.index, data[col].values)) for col in data.columns]
227 for j, values in enumerate(values_by_cell): 226 for j, values in enumerate(values_by_cell):
228 ras_df[ind, j] = _evaluate_ast(tree, values, or_function, and_function) 227 ras_df[ind, j] = _evaluate_ast(tree, values, or_function, and_function)
229 228