def serialize_efm(S, efm_id, model, path): efm_txt = os.path.join(path, '%s.txt' % efm_id) initial_r_ids = {r_id for r_id in S.r_id2i.keys() if r_id not in S.gr_id2r_id2c} r_id2c = S.pws.get_r_id2coeff(efm_id, r_ids=initial_r_ids) with open(efm_txt, 'w+') as f: f.write('EFM %s of length %d\n\n' % (efm_id, len(r_id2c))) write_inputs_outputs(f, model, S.get_boundary_inputs_outputs(efm_id)) f.write(THIN_DELIMITER) write_detailed_r_id2c(model, r_id2c, f) return efm_txt
def serialize_coupled_reaction_group(initial_efm_ids, cl_id, S, model, path): rg_txt = os.path.join(path, "Coupled_reactions_%s.txt" % cl_id) with open(rg_txt, "w+") as f: r_id2c = S.gr_id2r_id2c[cl_id] efm_ids = sorted(S.get_efm_ids_by_r_id(cl_id, efm_ids=initial_efm_ids)) f.write( "Reaction group %s of length %d found in %d EFMs:\n\n\t%s\n\n" % (cl_id, len(r_id2c), len(efm_ids), ", ".join((str(efm_id) for efm_id in efm_ids))) ) f.write(THIN_DELIMITER) write_detailed_r_id2c(model, r_id2c, f) return rg_txt
def serialize_community(cl_id, cluster, intersection, imp_r_id2c, model, path): cluster_txt = os.path.join(path, 'EFM_community_%s.txt' % cl_id) with open(cluster_txt, 'w+') as f: f.write('Community %s of %d following EFMs:\n\n\t%s\n\n' % (cl_id, len(cluster), ', '.join(sorted(cluster)))) f.write(THIN_DELIMITER) if intersection: f.write('Reactions that participate in all EFMs of this community (%d):\n\n' % len(intersection)) f.write(THIN_DELIMITER) write_detailed_r_id2c(model, intersection, f) if imp_r_id2c: f.write(THIN_DELIMITER) if intersection: f.write('Other reactions that participate in the same reaction community (%d):\n\n' % len(imp_r_id2c)) else: f.write('Reactions that participate in the largest reaction community (%d):\n\n' % len(imp_r_id2c)) f.write(THIN_DELIMITER) write_detailed_r_id2c(model, imp_r_id2c, f) return cluster_txt