def pore_bind_rule_name(rule_expression, size): # Get ReactionPatterns react_p = rule_expression.reactant_pattern prod_p = rule_expression.product_pattern # Build the label components # Pore is always first complex of LHS due to how we build the rules subunit = react_p.complex_patterns[0].monomer_patterns[0].monomer if len(react_p.complex_patterns) == 2: # This is the complexation reaction cargo = react_p.complex_patterns[1].monomer_patterns[0] else: # This is the dissociation reaction cargo = prod_p.complex_patterns[1].monomer_patterns[0] return '%s_%d_%s' % (subunit.name, size, macros._monomer_pattern_label(cargo))
def pore_rule_name(rule_expression): react_p = rule_expression.reactant_pattern mp = react_p.complex_patterns[0].monomer_patterns[0] subunit_name = macros._monomer_pattern_label(mp) pore_name = mp.monomer.name return '%s_to_%s%d' % (subunit_name, mp.monomer.name, 4)