Example #1
0
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