def format_class2ms(class2m_ids, m_id2count): format_m_ids = lambda m_ids: \ ', '.join(('%s [%d]' % (format_m_name(model.getSpecies(m_id), model, False, False), m_id2count[m_id]) for m_id in sorted(m_ids, key=lambda m_id: (-m_id2count[m_id], m_id)))) result = '\n\t'.join('%sS: %s' % (name.upper(), format_m_ids(m_ids)) for (name, m_ids) in class2m_ids.items()) others = set(m_id2count.keys()) - reduce(lambda s1, s2: s1 | s2, class2m_ids.values(), set()) if others: result += ('\n\tOTHER: ' if result else '\tOTHER: ') + format_m_ids(others) return result
def format_r(r_id): r2st, p2st = S.st_matrix.get_inputs_outputs(r_id) formatter = lambda m_id, st: '%s %s' % ("" if st == 1 else ("%g" % st), format_m_name(model.getSpecies(m_id), model, show_id=False)) rs, ps = sorted(formatter(it) for it in r2st.items()), sorted(formatter(it) for it in p2st.items()) r = model.getReaction(r_id) reversible = r.getReversible() if r else True return " + ".join(rs) + (" ↔ " if reversible else " → ") + " + ".join(ps)