Mercurial > repos > bimib > cobraxy
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 |