comparison COBRAxy/custom_data_generator.py @ 28:291721be77ad draft

Uploaded
author luca_milaz
date Thu, 19 Sep 2024 08:23:25 +0000
parents 4c9ade74c4d7
children
comparison
equal deleted inserted replaced
27:b61fc7f1b6ab 28:291721be77ad
145 145
146 146
147 ###############################- FILE SAVING -################################ 147 ###############################- FILE SAVING -################################
148 def save_as_csv_filePath(data :dict, file_path :utils.FilePath, fieldNames :Tuple[str, str]) -> None: 148 def save_as_csv_filePath(data :dict, file_path :utils.FilePath, fieldNames :Tuple[str, str]) -> None:
149 """ 149 """
150 Saves any dictionary-shaped data in a .csv file created at the given file_path. 150 Saves any dictionary-shaped data in a .csv file created at the given file_path as FilePath.
151 151
152 Args: 152 Args:
153 data : the data to be written to the file. 153 data : the data to be written to the file.
154 file_path : the path to the .csv file. 154 file_path : the path to the .csv file.
155 fieldNames : the names of the fields (columns) in the .csv file. 155 fieldNames : the names of the fields (columns) in the .csv file.
164 for key, value in data.items(): 164 for key, value in data.items():
165 writer.writerow({ fieldNames[0] : key, fieldNames[1] : value }) 165 writer.writerow({ fieldNames[0] : key, fieldNames[1] : value })
166 166
167 def save_as_csv(data :dict, file_path :str, fieldNames :Tuple[str, str]) -> None: 167 def save_as_csv(data :dict, file_path :str, fieldNames :Tuple[str, str]) -> None:
168 """ 168 """
169 Saves any dictionary-shaped data in a .csv file created at the given file_path. 169 Saves any dictionary-shaped data in a .csv file created at the given file_path as string.
170 170
171 Args: 171 Args:
172 data : the data to be written to the file. 172 data : the data to be written to the file.
173 file_path : the path to the .csv file. 173 file_path : the path to the .csv file.
174 fieldNames : the names of the fields (columns) in the .csv file. 174 fieldNames : the names of the fields (columns) in the .csv file.
200 200
201 # load custom model 201 # load custom model
202 model = load_custom_model( 202 model = load_custom_model(
203 utils.FilePath.fromStrPath(ARGS.input), utils.FilePath.fromStrPath(ARGS.name).ext) 203 utils.FilePath.fromStrPath(ARGS.input), utils.FilePath.fromStrPath(ARGS.name).ext)
204 204
205 # generate data
205 rules = generate_rules(model, asParsed = False) 206 rules = generate_rules(model, asParsed = False)
206 reactions = generate_reactions(model, asParsed = False) 207 reactions = generate_reactions(model, asParsed = False)
207 bounds = generate_bounds(model) 208 bounds = generate_bounds(model)
208 medium = get_medium(model) 209 medium = get_medium(model)
209 210
210 211 # save files out of collection: path coming from xml
211 save_as_csv(rules, ARGS.out_rules, ("ReactionID", "Rule")) 212 save_as_csv(rules, ARGS.out_rules, ("ReactionID", "Rule"))
212 save_as_csv(reactions, ARGS.out_reactions, ("ReactionID", "Reaction")) 213 save_as_csv(reactions, ARGS.out_reactions, ("ReactionID", "Reaction"))
213 bounds.to_csv(ARGS.out_bounds, sep = '\t') 214 bounds.to_csv(ARGS.out_bounds, sep = '\t')
214 medium.to_csv(ARGS.out_medium, sep = '\t') 215 medium.to_csv(ARGS.out_medium, sep = '\t')
215 216
216
217 # ^ Please if anyone works on this after updating python to 3.12 change the if/elif into a match statement!!
218
219 if __name__ == '__main__': 217 if __name__ == '__main__':
220 main() 218 main()