Skip to content

Rules reference

The pd2af transformation is driven by a set of rules (encoded in ASP). Every rule is language-agnostic (a base rule) or specific to an input language (a variant rule, for CellDesigner or SBGN PD). Rules are organized in groups, each representing a coherent functional unit — the whole a --exclude-group can drop. Every group id reads <family>:<member>, and the family is the coarse concern the group addresses.

This page is generated from the live registry in pd2af.asp.rules. It presents a by-mode view of which rules each mode uses, a canonical reference documenting each rule once, and an alphabetical index of every rule.

By mode

Within a mode a group is excludable (nothing else the mode includes depends on it, so --exclude-group can drop it cleanly) or mandatory (another included group depends on it, directly or by filling a slot it requires). The same group can be excludable in one mode and mandatory in another.

normal

activity:core (mandatory)

Mandatory activity machinery: the candidate->activity bridge and the two global toggles.

Rule Variant
activity:core:from_candidate
activity:core:from_global_suppress
activity:core:celldesigner:from_global_activate CellDesigner
activity:core:sbgn_pd:from_global_activate SBGN PD

activity:phenotype (excludable)

Excludable: a phenotype is an activity candidate (reason isPhenotype).

Rule Variant
activity:phenotype:from_phenotype

activity:active_marker (mandatory)

Excludable: an explicit active marker makes a species/entity pool an activity candidate (CellDesigner: hasActive flag or active structural state; SBGN-PD: active state variable, including on subunits).

Rule Variant
activity:active_marker:celldesigner:from_active_flag CellDesigner
activity:active_marker:celldesigner:from_active_structural_state CellDesigner
activity:active_marker:sbgn_pd:from_active_state_variable SBGN PD
activity:active_marker:sbgn_pd:from_active_subunit_state_variable SBGN PD

activity:modulation_source (excludable)

Excludable: the source of a modulation arc (CellDesigner: a modulation arc or a reaction modifier, which in SBGN-PD folds into the same arc-to-process case) is an activity candidate.

Rule Variant
activity:modulation_source:celldesigner:from_modulation_source CellDesigner
activity:modulation_source:celldesigner:from_reaction_modulator CellDesigner
activity:modulation_source:sbgn_pd:from_modulation_source SBGN PD

activity:gate_input (excludable)

Excludable: an input feeding a boolean logic gate / logical operator is an activity candidate (reason isGateInput).

Rule Variant
activity:gate_input:celldesigner:from_gate_input CellDesigner
activity:gate_input:sbgn_pd:from_operator_input SBGN PD

topology:core (mandatory)

Mode-agnostic structural helpers shared by every mode: isSubunit, hasActiveDescendantSubunit.

Rule Variant
topology:core:is_subunit
topology:core:has_active_descendant_direct
topology:core:has_active_descendant_transitive

topology:top_level (mandatory)

Resolves every species to its outermost top-level entity: a non-subunit resolves to itself; a subunit -- at any nesting depth -- resolves to the outermost complex that contains it.

Rule Variant
topology:top_level:recursive
topology:top_level:celldesigner:self CellDesigner
topology:top_level:sbgn_pd:self SBGN PD
topology:top_level:sbgn_pd:phenotype_self SBGN PD

preparation:complex (mandatory)

The complex-keeping modes (normal, keep-reactions) key a species with activity by the keptSpeciesKey of its top-level entity (the topology:top_level group): itself when top-level, its outermost complex when a subunit.

Rule Variant
preparation:complex:key
preparation:complex:celldesigner:carrier CellDesigner
preparation:complex:sbgn_pd:carrier_entity_pool SBGN PD
preparation:complex:sbgn_pd:carrier_phenotype SBGN PD

paths:core (mandatory)

Builds the direct (single-hop) kinded propagatesInfluence(SOURCE_SPECIES, TARGET_SPECIES, INFLUENCE_KIND) relation from PD reactions and modulation arcs, plus the production-cycle relations that gate transitive extension.

Rule Variant
paths:core:is_transformed_to
paths:core:is_cyclically_transformed_to
paths:core:composes_to
paths:core:celldesigner:catalyzer_to_product CellDesigner
paths:core:celldesigner:physical_stimulator_to_product CellDesigner
paths:core:celldesigner:trigger_to_product CellDesigner
paths:core:celldesigner:modulation_arc_influence CellDesigner
paths:core:celldesigner:inhibitor_to_product CellDesigner
paths:core:celldesigner:modulator_to_product CellDesigner
paths:core:celldesigner:unknown_catalyzer_to_product CellDesigner
paths:core:celldesigner:unknown_inhibitor_to_product CellDesigner
paths:core:celldesigner:is_directly_transformed_to CellDesigner
paths:core:sbgn_pd:modulation_to_product SBGN PD
paths:core:sbgn_pd:modulation_to_phenotype SBGN PD
paths:core:sbgn_pd:is_directly_transformed_to SBGN PD

paths:chaining (excludable)

Excludable multi-hop transitivity: extends a propagatesInfluence path through one more reactant->product hop (a reaction in CellDesigner, a process in SBGN-PD), carrying the kind via composesTo (triggering degrades to positivelyInfluences) and refusing to extend across a hop inside a production cycle (not isCyclicallyTransformedTo).

Rule Variant
paths:chaining:celldesigner:transitive_through_reaction CellDesigner
paths:chaining:sbgn_pd:transitive_through_process SBGN PD

entity:identity (mandatory)

When two elements are the same entity in different states: isSameEntityAs(ELEMENT, OTHER_ELEMENT) holds for two species sharing a template (protein, gene, RNA reference), and for two template-free elements of the same kind and name (CellDesigner) or label (SBGN-PD).

Rule Variant
entity:identity:celldesigner:from_template CellDesigner
entity:identity:celldesigner:kind CellDesigner
entity:identity:celldesigner:from_name CellDesigner
entity:identity:sbgn_pd:kind SBGN PD
entity:identity:sbgn_pd:from_label SBGN PD

influences:kind (mandatory)

Maps each modulation arc to its influence kind via hasInfluenceKind(MODULATION, INFLUENCE_KIND), the single place the arc-type->kind knowledge lives.

Rule Variant
influences:kind:celldesigner:catalysis CellDesigner
influences:kind:celldesigner:physical_stimulation CellDesigner
influences:kind:celldesigner:positive_influence CellDesigner
influences:kind:celldesigner:triggering CellDesigner
influences:kind:celldesigner:inhibition CellDesigner
influences:kind:celldesigner:negative_influence CellDesigner
influences:kind:celldesigner:modulation CellDesigner
influences:kind:celldesigner:unknown_catalysis CellDesigner
influences:kind:celldesigner:unknown_physical_stimulation CellDesigner
influences:kind:celldesigner:unknown_positive_influence CellDesigner
influences:kind:celldesigner:unknown_triggering CellDesigner
influences:kind:celldesigner:unknown_inhibition CellDesigner
influences:kind:celldesigner:unknown_negative_influence CellDesigner
influences:kind:celldesigner:unknown_modulation CellDesigner
influences:kind:sbgn_pd:necessary_stimulation SBGN PD
influences:kind:sbgn_pd:stimulation SBGN PD
influences:kind:sbgn_pd:inhibition SBGN PD
influences:kind:sbgn_pd:modulation SBGN PD

influences:core (excludable)

Derivation: emits new(activity(KEY)) for every activity key, and lifts every kinded path into the internal influences(SOURCE_KEY, TARGET_KEY, INFLUENCE_KIND) relation by resolving both endpoints through their activity carrier and key.

Rule Variant
influences:core:activity
influences:core:path

influences:consumption (excludable)

Excludable consumption/sparing reasoning: a reaction depletes its reactants, so a modifier that drives the reaction also acts on every reactant that is itself an activity -- catalyzer/physicalStimulator/trigger negatively influence each consumed reactant, inhibitor positively influences each spared reactant, and the unknown modifiers contribute the unknown twins.

Rule Variant
influences:consumption:returns_reactant_as_activity
influences:consumption:celldesigner:catalyzer_consumes_reactant CellDesigner
influences:consumption:celldesigner:physical_stimulator_consumes_reactant CellDesigner
influences:consumption:celldesigner:trigger_consumes_reactant CellDesigner
influences:consumption:celldesigner:inhibitor_spares_reactant CellDesigner
influences:consumption:celldesigner:unknown_catalyzer_consumes_reactant CellDesigner
influences:consumption:celldesigner:unknown_inhibitor_spares_reactant CellDesigner
influences:consumption:sbgn_pd:stimulation_consumes_reactant SBGN PD
influences:consumption:sbgn_pd:inhibition_spares_reactant SBGN PD

influences:binding_activation (excludable)

Excludable activation-by-binding reasoning: when a reaction turns an entity drawn inactive as a reactant (or inside a reactant complex) into an active subunit of a product complex, the binding activated it, so every other reactant of that reaction -- one that is neither the same entity nor itself activated by the same reaction -- becomes an activity (reason isBindingActivator) and positively influences the activity carrying the active subunit: its top-level complex in normal, the promoted subunit in no-complex.

Rule Variant
influences:binding_activation:is_descendant_subunit_of
influences:binding_activation:is_self_or_descendant_subunit_of
influences:binding_activation:active_marker_from_override
influences:binding_activation:activates_by_binding
influences:binding_activation:contains_inactive_reactant_of
influences:binding_activation:is_binding_activator_of
influences:binding_activation:candidate
influences:binding_activation:influence
influences:binding_activation:celldesigner:active_marker_from_active_flag CellDesigner
influences:binding_activation:celldesigner:active_marker_from_structural_state CellDesigner
influences:binding_activation:sbgn_pd:active_marker_from_state_variable SBGN PD

influences:output (excludable)

Shared fan-out from the internal influences(SOURCE, TARGET, INFLUENCE_KIND) relation to the typed new(...) influence heads — one rule per kind.

Rule Variant
influences:output:positive
influences:output:negative
influences:output:modulation
influences:output:triggering
influences:output:unknown_positive
influences:output:unknown_negative
influences:output:unknown_modulation
influences:output:unknown_triggering

gates:core (excludable)

Authored logical operators (CellDesigner BooleanLogicGate, SBGN-PD LogicalOperator): emits the operator node (logicalOperator/2, token-typed), its input edges (logicalOperatorInput/2, each input resolved through carrier/key -- or, for SBGN-PD, through the referred operator's own key when the input refers to another logical operator), and the operator-sourced influence written straight into the internal influences/3 relation by reusing the existing propagatesInfluence(OPERATOR, TARGET, INFLUENCE_KIND) closure.

Rule Variant
gates:core:celldesigner:node_and CellDesigner
gates:core:celldesigner:node_or CellDesigner
gates:core:celldesigner:node_not CellDesigner
gates:core:celldesigner:node_unknown CellDesigner
gates:core:celldesigner:input_edge CellDesigner
gates:core:celldesigner:influence CellDesigner
gates:core:sbgn_pd:node_and SBGN PD
gates:core:sbgn_pd:node_or SBGN PD
gates:core:sbgn_pd:node_not SBGN PD
gates:core:sbgn_pd:input_edge SBGN PD
gates:core:sbgn_pd:input_edge_operator SBGN PD
gates:core:sbgn_pd:influence SBGN PD

no-complex

activity:core (mandatory)

Mandatory activity machinery: the candidate->activity bridge and the two global toggles.

Rule Variant
activity:core:from_candidate
activity:core:from_global_suppress
activity:core:celldesigner:from_global_activate CellDesigner
activity:core:sbgn_pd:from_global_activate SBGN PD

activity:phenotype (excludable)

Excludable: a phenotype is an activity candidate (reason isPhenotype).

Rule Variant
activity:phenotype:from_phenotype

activity:active_marker (mandatory)

Excludable: an explicit active marker makes a species/entity pool an activity candidate (CellDesigner: hasActive flag or active structural state; SBGN-PD: active state variable, including on subunits).

Rule Variant
activity:active_marker:celldesigner:from_active_flag CellDesigner
activity:active_marker:celldesigner:from_active_structural_state CellDesigner
activity:active_marker:sbgn_pd:from_active_state_variable SBGN PD
activity:active_marker:sbgn_pd:from_active_subunit_state_variable SBGN PD

activity:modulation_source (excludable)

Excludable: the source of a modulation arc (CellDesigner: a modulation arc or a reaction modifier, which in SBGN-PD folds into the same arc-to-process case) is an activity candidate.

Rule Variant
activity:modulation_source:celldesigner:from_modulation_source CellDesigner
activity:modulation_source:celldesigner:from_reaction_modulator CellDesigner
activity:modulation_source:sbgn_pd:from_modulation_source SBGN PD

activity:gate_input (excludable)

Excludable: an input feeding a boolean logic gate / logical operator is an activity candidate (reason isGateInput).

Rule Variant
activity:gate_input:celldesigner:from_gate_input CellDesigner
activity:gate_input:sbgn_pd:from_operator_input SBGN PD

topology:core (mandatory)

Mode-agnostic structural helpers shared by every mode: isSubunit, hasActiveDescendantSubunit.

Rule Variant
topology:core:is_subunit
topology:core:has_active_descendant_direct
topology:core:has_active_descendant_transitive

preparation:no_complex (mandatory)

The complex-dissolving mode (no-complex): a complex with any (transitive) active descendant is deleted; a non-deleted top-level species with activity is keyed by keptSpeciesKey(SELF); a subunit of a deleted complex is promoted to top level, keyed by promotedSubunitKey(SELF) (paths reach it via paths:complex_traversal).

Rule Variant
preparation:no_complex:deleted
preparation:no_complex:subunit_of_deleted_direct
preparation:no_complex:subunit_of_deleted_transitive
preparation:no_complex:key_top_level
preparation:no_complex:key_promoted_subunit
preparation:no_complex:celldesigner:carrier CellDesigner
preparation:no_complex:sbgn_pd:carrier_entity_pool SBGN PD
preparation:no_complex:sbgn_pd:carrier_phenotype SBGN PD
preparation:no_complex:sbgn_pd:carrier_subunit SBGN PD

paths:core (mandatory)

Builds the direct (single-hop) kinded propagatesInfluence(SOURCE_SPECIES, TARGET_SPECIES, INFLUENCE_KIND) relation from PD reactions and modulation arcs, plus the production-cycle relations that gate transitive extension.

Rule Variant
paths:core:is_transformed_to
paths:core:is_cyclically_transformed_to
paths:core:composes_to
paths:core:celldesigner:catalyzer_to_product CellDesigner
paths:core:celldesigner:physical_stimulator_to_product CellDesigner
paths:core:celldesigner:trigger_to_product CellDesigner
paths:core:celldesigner:modulation_arc_influence CellDesigner
paths:core:celldesigner:inhibitor_to_product CellDesigner
paths:core:celldesigner:modulator_to_product CellDesigner
paths:core:celldesigner:unknown_catalyzer_to_product CellDesigner
paths:core:celldesigner:unknown_inhibitor_to_product CellDesigner
paths:core:celldesigner:is_directly_transformed_to CellDesigner
paths:core:sbgn_pd:modulation_to_product SBGN PD
paths:core:sbgn_pd:modulation_to_phenotype SBGN PD
paths:core:sbgn_pd:is_directly_transformed_to SBGN PD

paths:chaining (excludable)

Excludable multi-hop transitivity: extends a propagatesInfluence path through one more reactant->product hop (a reaction in CellDesigner, a process in SBGN-PD), carrying the kind via composesTo (triggering degrades to positivelyInfluences) and refusing to extend across a hop inside a production cycle (not isCyclicallyTransformedTo).

Rule Variant
paths:chaining:celldesigner:transitive_through_reaction CellDesigner
paths:chaining:sbgn_pd:transitive_through_process SBGN PD

paths:complex_traversal (excludable)

Extends paths through complex containment for the no-complex mode: a path touching a complex is propagated to/from each of its subunits so influences reach the surviving subunit activities.

Rule Variant
paths:complex_traversal:into_subunits
paths:complex_traversal:from_subunits

entity:identity (mandatory)

When two elements are the same entity in different states: isSameEntityAs(ELEMENT, OTHER_ELEMENT) holds for two species sharing a template (protein, gene, RNA reference), and for two template-free elements of the same kind and name (CellDesigner) or label (SBGN-PD).

Rule Variant
entity:identity:celldesigner:from_template CellDesigner
entity:identity:celldesigner:kind CellDesigner
entity:identity:celldesigner:from_name CellDesigner
entity:identity:sbgn_pd:kind SBGN PD
entity:identity:sbgn_pd:from_label SBGN PD

influences:kind (mandatory)

Maps each modulation arc to its influence kind via hasInfluenceKind(MODULATION, INFLUENCE_KIND), the single place the arc-type->kind knowledge lives.

Rule Variant
influences:kind:celldesigner:catalysis CellDesigner
influences:kind:celldesigner:physical_stimulation CellDesigner
influences:kind:celldesigner:positive_influence CellDesigner
influences:kind:celldesigner:triggering CellDesigner
influences:kind:celldesigner:inhibition CellDesigner
influences:kind:celldesigner:negative_influence CellDesigner
influences:kind:celldesigner:modulation CellDesigner
influences:kind:celldesigner:unknown_catalysis CellDesigner
influences:kind:celldesigner:unknown_physical_stimulation CellDesigner
influences:kind:celldesigner:unknown_positive_influence CellDesigner
influences:kind:celldesigner:unknown_triggering CellDesigner
influences:kind:celldesigner:unknown_inhibition CellDesigner
influences:kind:celldesigner:unknown_negative_influence CellDesigner
influences:kind:celldesigner:unknown_modulation CellDesigner
influences:kind:sbgn_pd:necessary_stimulation SBGN PD
influences:kind:sbgn_pd:stimulation SBGN PD
influences:kind:sbgn_pd:inhibition SBGN PD
influences:kind:sbgn_pd:modulation SBGN PD

influences:core (excludable)

Derivation: emits new(activity(KEY)) for every activity key, and lifts every kinded path into the internal influences(SOURCE_KEY, TARGET_KEY, INFLUENCE_KIND) relation by resolving both endpoints through their activity carrier and key.

Rule Variant
influences:core:activity
influences:core:path

influences:consumption (excludable)

Excludable consumption/sparing reasoning: a reaction depletes its reactants, so a modifier that drives the reaction also acts on every reactant that is itself an activity -- catalyzer/physicalStimulator/trigger negatively influence each consumed reactant, inhibitor positively influences each spared reactant, and the unknown modifiers contribute the unknown twins.

Rule Variant
influences:consumption:returns_reactant_as_activity
influences:consumption:celldesigner:catalyzer_consumes_reactant CellDesigner
influences:consumption:celldesigner:physical_stimulator_consumes_reactant CellDesigner
influences:consumption:celldesigner:trigger_consumes_reactant CellDesigner
influences:consumption:celldesigner:inhibitor_spares_reactant CellDesigner
influences:consumption:celldesigner:unknown_catalyzer_consumes_reactant CellDesigner
influences:consumption:celldesigner:unknown_inhibitor_spares_reactant CellDesigner
influences:consumption:sbgn_pd:stimulation_consumes_reactant SBGN PD
influences:consumption:sbgn_pd:inhibition_spares_reactant SBGN PD

influences:binding_activation (excludable)

Excludable activation-by-binding reasoning: when a reaction turns an entity drawn inactive as a reactant (or inside a reactant complex) into an active subunit of a product complex, the binding activated it, so every other reactant of that reaction -- one that is neither the same entity nor itself activated by the same reaction -- becomes an activity (reason isBindingActivator) and positively influences the activity carrying the active subunit: its top-level complex in normal, the promoted subunit in no-complex.

Rule Variant
influences:binding_activation:is_descendant_subunit_of
influences:binding_activation:is_self_or_descendant_subunit_of
influences:binding_activation:active_marker_from_override
influences:binding_activation:activates_by_binding
influences:binding_activation:contains_inactive_reactant_of
influences:binding_activation:is_binding_activator_of
influences:binding_activation:candidate
influences:binding_activation:influence
influences:binding_activation:celldesigner:active_marker_from_active_flag CellDesigner
influences:binding_activation:celldesigner:active_marker_from_structural_state CellDesigner
influences:binding_activation:sbgn_pd:active_marker_from_state_variable SBGN PD

influences:output (excludable)

Shared fan-out from the internal influences(SOURCE, TARGET, INFLUENCE_KIND) relation to the typed new(...) influence heads — one rule per kind.

Rule Variant
influences:output:positive
influences:output:negative
influences:output:modulation
influences:output:triggering
influences:output:unknown_positive
influences:output:unknown_negative
influences:output:unknown_modulation
influences:output:unknown_triggering

gates:core (excludable)

Authored logical operators (CellDesigner BooleanLogicGate, SBGN-PD LogicalOperator): emits the operator node (logicalOperator/2, token-typed), its input edges (logicalOperatorInput/2, each input resolved through carrier/key -- or, for SBGN-PD, through the referred operator's own key when the input refers to another logical operator), and the operator-sourced influence written straight into the internal influences/3 relation by reusing the existing propagatesInfluence(OPERATOR, TARGET, INFLUENCE_KIND) closure.

Rule Variant
gates:core:celldesigner:node_and CellDesigner
gates:core:celldesigner:node_or CellDesigner
gates:core:celldesigner:node_not CellDesigner
gates:core:celldesigner:node_unknown CellDesigner
gates:core:celldesigner:input_edge CellDesigner
gates:core:celldesigner:influence CellDesigner
gates:core:sbgn_pd:node_and SBGN PD
gates:core:sbgn_pd:node_or SBGN PD
gates:core:sbgn_pd:node_not SBGN PD
gates:core:sbgn_pd:input_edge SBGN PD
gates:core:sbgn_pd:input_edge_operator SBGN PD
gates:core:sbgn_pd:influence SBGN PD

keep-reactions

activity:core (mandatory)

Mandatory activity machinery: the candidate->activity bridge and the two global toggles.

Rule Variant
activity:core:from_candidate
activity:core:from_global_suppress
activity:core:celldesigner:from_global_activate CellDesigner
activity:core:sbgn_pd:from_global_activate SBGN PD

topology:core (mandatory)

Mode-agnostic structural helpers shared by every mode: isSubunit, hasActiveDescendantSubunit.

Rule Variant
topology:core:is_subunit
topology:core:has_active_descendant_direct
topology:core:has_active_descendant_transitive

topology:top_level (mandatory)

Resolves every species to its outermost top-level entity: a non-subunit resolves to itself; a subunit -- at any nesting depth -- resolves to the outermost complex that contains it.

Rule Variant
topology:top_level:recursive
topology:top_level:celldesigner:self CellDesigner
topology:top_level:sbgn_pd:self SBGN PD
topology:top_level:sbgn_pd:phenotype_self SBGN PD

preparation:complex (mandatory)

The complex-keeping modes (normal, keep-reactions) key a species with activity by the keptSpeciesKey of its top-level entity (the topology:top_level group): itself when top-level, its outermost complex when a subunit.

Rule Variant
preparation:complex:key
preparation:complex:celldesigner:carrier CellDesigner
preparation:complex:sbgn_pd:carrier_entity_pool SBGN PD
preparation:complex:sbgn_pd:carrier_phenotype SBGN PD

paths:core (mandatory)

Builds the direct (single-hop) kinded propagatesInfluence(SOURCE_SPECIES, TARGET_SPECIES, INFLUENCE_KIND) relation from PD reactions and modulation arcs, plus the production-cycle relations that gate transitive extension.

Rule Variant
paths:core:is_transformed_to
paths:core:is_cyclically_transformed_to
paths:core:composes_to
paths:core:celldesigner:catalyzer_to_product CellDesigner
paths:core:celldesigner:physical_stimulator_to_product CellDesigner
paths:core:celldesigner:trigger_to_product CellDesigner
paths:core:celldesigner:modulation_arc_influence CellDesigner
paths:core:celldesigner:inhibitor_to_product CellDesigner
paths:core:celldesigner:modulator_to_product CellDesigner
paths:core:celldesigner:unknown_catalyzer_to_product CellDesigner
paths:core:celldesigner:unknown_inhibitor_to_product CellDesigner
paths:core:celldesigner:is_directly_transformed_to CellDesigner
paths:core:sbgn_pd:modulation_to_product SBGN PD
paths:core:sbgn_pd:modulation_to_phenotype SBGN PD
paths:core:sbgn_pd:is_directly_transformed_to SBGN PD

influences:kind (mandatory)

Maps each modulation arc to its influence kind via hasInfluenceKind(MODULATION, INFLUENCE_KIND), the single place the arc-type->kind knowledge lives.

Rule Variant
influences:kind:celldesigner:catalysis CellDesigner
influences:kind:celldesigner:physical_stimulation CellDesigner
influences:kind:celldesigner:positive_influence CellDesigner
influences:kind:celldesigner:triggering CellDesigner
influences:kind:celldesigner:inhibition CellDesigner
influences:kind:celldesigner:negative_influence CellDesigner
influences:kind:celldesigner:modulation CellDesigner
influences:kind:celldesigner:unknown_catalysis CellDesigner
influences:kind:celldesigner:unknown_physical_stimulation CellDesigner
influences:kind:celldesigner:unknown_positive_influence CellDesigner
influences:kind:celldesigner:unknown_triggering CellDesigner
influences:kind:celldesigner:unknown_inhibition CellDesigner
influences:kind:celldesigner:unknown_negative_influence CellDesigner
influences:kind:celldesigner:unknown_modulation CellDesigner
influences:kind:sbgn_pd:necessary_stimulation SBGN PD
influences:kind:sbgn_pd:stimulation SBGN PD
influences:kind:sbgn_pd:inhibition SBGN PD
influences:kind:sbgn_pd:modulation SBGN PD

influences:core (mandatory)

Derivation: emits new(activity(KEY)) for every activity key, and lifts every kinded path into the internal influences(SOURCE_KEY, TARGET_KEY, INFLUENCE_KIND) relation by resolving both endpoints through their activity carrier and key.

Rule Variant
influences:core:activity
influences:core:path

influences:output (excludable)

Shared fan-out from the internal influences(SOURCE, TARGET, INFLUENCE_KIND) relation to the typed new(...) influence heads — one rule per kind.

Rule Variant
influences:output:positive
influences:output:negative
influences:output:modulation
influences:output:triggering
influences:output:unknown_positive
influences:output:unknown_negative
influences:output:unknown_modulation
influences:output:unknown_triggering

gates:core (excludable)

Authored logical operators (CellDesigner BooleanLogicGate, SBGN-PD LogicalOperator): emits the operator node (logicalOperator/2, token-typed), its input edges (logicalOperatorInput/2, each input resolved through carrier/key -- or, for SBGN-PD, through the referred operator's own key when the input refers to another logical operator), and the operator-sourced influence written straight into the internal influences/3 relation by reusing the existing propagatesInfluence(OPERATOR, TARGET, INFLUENCE_KIND) closure.

Rule Variant
gates:core:celldesigner:node_and CellDesigner
gates:core:celldesigner:node_or CellDesigner
gates:core:celldesigner:node_not CellDesigner
gates:core:celldesigner:node_unknown CellDesigner
gates:core:celldesigner:input_edge CellDesigner
gates:core:celldesigner:influence CellDesigner
gates:core:sbgn_pd:node_and SBGN PD
gates:core:sbgn_pd:node_or SBGN PD
gates:core:sbgn_pd:node_not SBGN PD
gates:core:sbgn_pd:input_edge SBGN PD
gates:core:sbgn_pd:input_edge_operator SBGN PD
gates:core:sbgn_pd:influence SBGN PD

keep_reactions:activity (excludable)

The keep-reactions premise that every species is an activity, replacing the structural-reason activity:* feature-groups (each of which is inert once every species is a candidate, so the mode omits them).

Rule Variant
keep_reactions:activity:from_species

keep_reactions:influences (excludable)

The keep-reactions premise that every reaction is kept: each (reactant, product) pair of a reaction becomes one positive influence.

Rule Variant
keep_reactions:influences:reactant_to_product

Rule groups

activity

activity:core

Mandatory activity machinery: the candidate->activity bridge and the two global toggles. A single bridging rule promotes a hasActivityCandidate(ELEMENT, REASON) to hasActivity unless the element is suppressActivity (the --set-inactive veto). globalSuppress (--set-all-inactive) suppresses every candidate except those the solver marked forceActive (the per-id --set-active override), realising the precedence per-id > global > rules; globalActivate (--set-all-active) turns every top-level species/entity pool into a candidate. Every activity feature-group and every downstream group depends on this, so the dependency graph forbids excluding it -- the global toggles stay wired to their CLI flags. The structural-reason rules (phenotype, active marker, modulation source, gate input) live in the excludable activity:* feature-groups.

Rule Variant Documentation
activity:core:from_candidate An activity candidate becomes an actual activity unless it has been vetoed. This is the single interception point for the --set-inactive veto (the suppressActivity marker; blanket suppression, so it also blocks the --set-active isInputParameter candidate, which is injected as a candidate). All downstream body references key on hasActivity, so they automatically respect suppression.
activity:core:from_global_suppress The set-all-inactive toggle suppresses every activity candidate, except those pinned active per id. This realises the precedence per-id > global > rules for the inactive toggle: globalSuppress (--set-all-inactive) blankets everything, and forceActive (the per-id --set-active override) carves out the exceptions. It keys on hasActivityCandidate, so it also silences subunit-derived candidates (subunits are suppressed under --set-all-inactive).
activity:core:celldesigner:from_global_activate CellDesigner Under the set-all-active toggle, every top-level species is an activity candidate. It fires with reason isGlobalActive when globalActivate (--set-all-active) is set. The not hasSubunit(_, SPECIES) guard excludes subunits (in CellDesigner a subunit is a species): a subunit is a structural component of its complex, never a top-level activity, so the toggle activates the complex, not its parts. This is the subunit asymmetry -- subunits are not activated under --set-all-active, though they are suppressed under --set-all-inactive.
activity:core:sbgn_pd:from_global_activate SBGN PD Under the set-all-active toggle, every entity pool is an activity candidate. It fires with reason isGlobalActive when globalActivate (--set-all-active) is set -- the SBGN PD parallel of CellDesigner's global-activate rule. No not hasSubunit guard is needed: in SBGN PD a subunit is an SBGNAuxiliaryUnit, not an entityPool, so the entityPool guard already excludes subunits. This preserves the subunit asymmetry -- subunits are not activated under --set-all-active.

activity:phenotype

Excludable: a phenotype is an activity candidate (reason isPhenotype). Exclude with --exclude-group activity:phenotype to stop treating phenotypes as activities.

Rule Variant Documentation
activity:phenotype:from_phenotype A phenotype is always an activity candidate. Both languages emit the phenotype signal, so this rule is shared; it fires with reason isPhenotype.

activity:active_marker

Excludable: an explicit active marker makes a species/entity pool an activity candidate (CellDesigner: hasActive flag or active structural state; SBGN-PD: active state variable, including on subunits). Exclude with --exclude-group activity:active_marker.

Rule Variant Documentation
activity:active_marker:celldesigner:from_active_flag CellDesigner A species explicitly marked as active is an activity candidate. This fires when its hasActive flag is 1 (reason isActive).
activity:active_marker:celldesigner:from_active_structural_state CellDesigner A species in an active structural state is an activity candidate. This fires when it carries a structural state whose value is "active" (reason hasActiveStructuralState).
activity:active_marker:sbgn_pd:from_active_state_variable SBGN PD An entity pool in an active state is an activity candidate. This fires when it carries a state variable whose value is "active" (reason hasActiveStateVariable) -- the SBGN PD parallel of CellDesigner's active structural state.
activity:active_marker:sbgn_pd:from_active_subunit_state_variable SBGN PD A subunit in an active state is an activity candidate. This fires when the subunit carries a state variable whose value is "active". Its complex therefore inherits activity, and in the no-complex mode the subunit can be promoted. It is the parallel of CellDesigner, where subunits are species and so the active-structural-state rule already covers them.

activity:modulation_source

Excludable: the source of a modulation arc (CellDesigner: a modulation arc or a reaction modifier, which in SBGN-PD folds into the same arc-to-process case) is an activity candidate. Exclude with --exclude-group activity:modulation_source.

Rule Variant Documentation
activity:modulation_source:celldesigner:from_modulation_source CellDesigner A species that is the source of a modulation arc is an activity candidate. This covers both known and unknown modulations that have some target (reason isModulationSource); keying on knownOrUnknownModulation rather than modulation is what lets the source of an unknown modulation become an activity node.
activity:modulation_source:celldesigner:from_reaction_modulator CellDesigner A species that modulates a reaction is an activity candidate. This fires when the species is referred to by a reaction modulator, known or unknown, that modifies some target reaction (reason isReactionModulator); keying on knownOrUnknownModulator rather than modulator is what lets an unknown catalyzer/inhibitor become an activity node.
activity:modulation_source:sbgn_pd:from_modulation_source SBGN PD An entity pool that is the source of a modulation arc is an activity candidate. This fires when the arc's target is a process (reason isModulationSource) and is the SBGN PD parallel of both the CellDesigner modulation-arc and reaction-modifier rules.

activity:gate_input

Excludable: an input feeding a boolean logic gate / logical operator is an activity candidate (reason isGateInput). Exclude with --exclude-group activity:gate_input.

Rule Variant Documentation
activity:gate_input:celldesigner:from_gate_input CellDesigner A species feeding a boolean logic gate is an activity candidate. It fires with reason isGateInput. A gate is structurally always an influence/modulation source or reaction modifier, so each of its inputs is an active driver of the downstream target -- a semantic guarantee, not a fallback. The element is activated regardless of kind (species, complex, ion, ...); the carrier rules route each kind. hasReferredElement in CellDesigner only relates a gate input to its species, so no extra guard is needed.
activity:gate_input:sbgn_pd:from_operator_input SBGN PD An entity pool feeding a logical operator is an activity candidate. It fires with reason isGateInput -- the SBGN PD parallel of CellDesigner's gate-input activation. The entityPool guard excludes the deferred nested-operator case: an operator feeding another operator has no activity carrier, so such an input simply dangles. In SBGN PD hasReferredElement relates many roles (reactant, product, modulation participant) to entities, so both the logicalOperatorInput and entityPool guards are needed.

topology

topology:core

Mode-agnostic structural helpers shared by every mode: isSubunit, hasActiveDescendantSubunit.

Rule Variant Documentation
topology:core:is_subunit A species is a subunit if it appears on the right side of any hasSubunit relation.
topology:core:has_active_descendant_direct A complex has an active descendant if any direct subunit has activity.
topology:core:has_active_descendant_transitive The hasActiveDescendantSubunit relation is transitive through complex containment.

topology:top_level

Resolves every species to its outermost top-level entity: a non-subunit resolves to itself; a subunit -- at any nesting depth -- resolves to the outermost complex that contains it. The complex-keeping modes (normal, keep-reactions) key a species by its top-level entity, so a subunit is never its own activity and its influences attach to its top-level complex (a subunit is a structural component, not an independent influencer).

Rule Variant Documentation
topology:top_level:recursive A subunit resolves to the same top-level entity as its parent complex, recursively through nested complexes -- so a subunit at any depth resolves to its outermost complex.
topology:top_level:celldesigner:self CellDesigner CellDesigner: a species that is not a subunit of any complex is its own top-level entity.
topology:top_level:sbgn_pd:self SBGN PD SBGN-PD: an entity pool that is not a subunit of any complex is its own top-level entity.
topology:top_level:sbgn_pd:phenotype_self SBGN PD SBGN-PD: a phenotype is a process, not an entity pool, so the entity-pool self-rule never keys it; a phenotype is never a subunit, so it is always its own top-level entity. Without this an SBGN phenotype gets hasActivity but no activity key and is silently dropped from normal output. The no-complex mode keys via not isSubunit/not delete and already include phenotypes; CellDesigner phenotypes are species (covered by the species self-rule).

preparation

preparation:complex

The complex-keeping modes (normal, keep-reactions) key a species with activity by the keptSpeciesKey of its top-level entity (the topology:top_level group): itself when top-level, its outermost complex when a subunit. A subunit therefore contributes no activity of its own -- it is a structural component of its complex, and any influence it carries attaches to the top-level complex (the active descendant directly keys the complex, so the assembly is represented without a separate inherit-activity rule). Carriers are identity; the rerouting lives entirely in the key. The keep_species option bears on the build stage alone, where it decides whether the PTM decorations are stripped and the content-equal results merged.

Rule Variant Documentation
preparation:complex:key A species with activity is keyed by the keptSpeciesKey of its top-level entity (itself when top-level; its outermost complex when a subunit).
preparation:complex:celldesigner:carrier CellDesigner Each species is its own activity carrier (no rerouting; a subunit endpoint is rerouted to its top-level complex by the topology:top_level key, not by the carrier).
preparation:complex:sbgn_pd:carrier_entity_pool SBGN PD SBGN-PD: each entity pool is its own activity carrier.
preparation:complex:sbgn_pd:carrier_phenotype SBGN PD SBGN-PD: each phenotype process is its own activity carrier (phenotypes are activities, not entity pools).

preparation:no_complex

The complex-dissolving mode (no-complex): a complex with any (transitive) active descendant is deleted; a non-deleted top-level species with activity is keyed by keptSpeciesKey(SELF); a subunit of a deleted complex is promoted to top level, keyed by promotedSubunitKey(SELF) (paths reach it via paths:complex_traversal). The keep_species option bears on the build stage alone, where it decides whether the PTM decorations are stripped and the content-equal results merged.

Rule Variant Documentation
preparation:no_complex:deleted A complex with any (transitive) active descendant is deleted.
preparation:no_complex:subunit_of_deleted_direct A direct subunit of a deleted complex is itself subunit-of-deleted.
preparation:no_complex:subunit_of_deleted_transitive Subunit-of-deleted is transitive through nested complexes.
preparation:no_complex:key_top_level A non-deleted top-level species with activity is keyed by keptSpeciesKey(SELF).
preparation:no_complex:key_promoted_subunit A subunit of a deleted complex with activity is promoted to top level, keyed by promotedSubunitKey(SELF).
preparation:no_complex:celldesigner:carrier CellDesigner Each species is its own activity carrier.
preparation:no_complex:sbgn_pd:carrier_entity_pool SBGN PD SBGN-PD: each entity pool is its own activity carrier.
preparation:no_complex:sbgn_pd:carrier_phenotype SBGN PD SBGN-PD: each phenotype process is its own activity carrier.
preparation:no_complex:sbgn_pd:carrier_subunit SBGN PD SBGN-PD: each subunit is its own activity carrier, so a promoted subunit can be an influence endpoint (paths reach it via paths:complex_traversal).

paths

paths:core

Builds the direct (single-hop) kinded propagatesInfluence(SOURCE_SPECIES, TARGET_SPECIES, INFLUENCE_KIND) relation from PD reactions and modulation arcs, plus the production-cycle relations that gate transitive extension. INFLUENCE_KIND is one of positive, negative, triggering, modulation and their unknown_* twins. Reaction modifiers and the matching species→species modulation arcs map to the same kind (e.g. a trigger modifier and a triggering arc both give triggering; catalysis and physical stimulation both give positive; inhibition gives negative). Each variant defines the single reactant->product hop isDirectlyTransformedTo/2, the shared isTransformedTo/2 is its transitive closure, and isCyclicallyTransformedTo/2 marks the hops that lie inside a cycle so transitivity never propagates influence back around a production loop. The multi-hop reactant-chained transitivity itself is the excludable paths:chaining group.

Rule Variant Documentation
paths:core:is_transformed_to Transitive closure of the single-hop isDirectlyTransformedTo/2: isTransformedTo(UPSTREAM, DOWNSTREAM) holds when DOWNSTREAM is reachable from UPSTREAM through one or more reactant->product hops (the direct hop included, as the base case). Language-agnostic; isDirectlyTransformedTo/2 is supplied per language variant. Depends only on isDirectlyTransformedTo, never on propagatesInfluence, so the negation that gates transitivity stays stratified.
paths:core:is_cyclically_transformed_to UPSTREAM and DOWNSTREAM are mutually reachable through the production graph -- both lie on a common cycle. At every transitivity guard site the hop in question is already a direct reactant->product edge, so requiring mutual reachability there is exactly equivalent to 'this hop is on a cycle'. The transitivity rules forbid extending a path across such a hop, blocking influence from leaking around production loops.
paths:core:composes_to composesTo(INCOMING_INFLUENCE_KIND, OUTGOING_INFLUENCE_KIND): how an influence kind transforms when a path is extended by one reactant→product hop (a reaction in CellDesigner, a process in SBGN-PD). Identity for every kind except triggering (a necessary-stimulation relationship is a property of the direct edge; composed through a reaction it weakens to a plain positive influence) and its unknown twin unknown_triggering → unknown_positive. Modulation composes like the signed kinds (stays modulation).
paths:core:celldesigner:catalyzer_to_product CellDesigner If a species is referred to by a catalyzer of a reaction and another species is referred to by a product of that reaction, then there is a positive path from the first to the second.
paths:core:celldesigner:physical_stimulator_to_product CellDesigner If a species is referred to by a physical stimulator of a reaction and another species is referred to by a product of that reaction, then there is a positive path from the first to the second.
paths:core:celldesigner:trigger_to_product CellDesigner If a species is referred to by a trigger of a reaction and another species is referred to by a product of that reaction, then there is a triggering path from the first to the second (a trigger→product edge is direct, so it keeps the triggering kind).
paths:core:celldesigner:modulation_arc_influence CellDesigner A modulation arc influences its target with the arc's kind (hasInfluenceKind, from the influences:kind group). This covers every arc type -- catalysis/physical stimulation/positive influence give positive, triggering gives triggering, inhibition/negative influence give negative, a bare modulation gives modulation, and the unknown* twins give the unknown_* kinds. The reaction modifier->product rules and the transitive/cycle rules remain separate.
paths:core:celldesigner:inhibitor_to_product CellDesigner If a species is referred to by an inhibitor of a reaction and another species is referred to by a product of that reaction, then there is a negative path from the first to the second.
paths:core:celldesigner:modulator_to_product CellDesigner If a species is referred to by a bare modulator of a reaction (a generic MODULATION modifier — not a physical stimulator, inhibitor or trigger; catalyzers are physical stimulators) and another species is referred to by a product of that reaction, then there is a modulation path from the first to the second.
paths:core:celldesigner:unknown_catalyzer_to_product CellDesigner If a species is referred to by an unknown catalyzer of a reaction and another species is referred to by a product of that reaction, then there is an unknown-positive path from the first to the second.
paths:core:celldesigner:unknown_inhibitor_to_product CellDesigner If a species is referred to by an unknown inhibitor of a reaction and another species is referred to by a product of that reaction, then there is an unknown-negative path from the first to the second.
paths:core:celldesigner:is_directly_transformed_to CellDesigner The single reactant->product hop in the production graph: the upstream species is referred to by a reactant and the downstream species by a product of the same reaction. Passive voice (the reaction does the transforming, not the species) keeps it language-neutral. Feeds the shared isTransformedTo/isCyclicallyTransformedTo cycle relations that gate transitive path extension; carries no influence kind itself.
paths:core:sbgn_pd:modulation_to_product SBGN PD A modulation arc's entity-pool source influences each product of its target process, carrying the arc's kind.
paths:core:sbgn_pd:modulation_to_phenotype SBGN PD A modulation arc whose target is a phenotype influences the phenotype itself (a phenotype process has no products; it is the activity).
paths:core:sbgn_pd:is_directly_transformed_to SBGN PD The single reactant->product hop in the production graph: the upstream entity pool is an element of a reactant and the downstream pool an element of a product of the same process. Passive voice (the process does the transforming, not the pool) keeps it language-neutral. Feeds the shared isTransformedTo/isCyclicallyTransformedTo cycle relations that gate transitive path extension; carries no influence kind itself.

paths:chaining

Excludable multi-hop transitivity: extends a propagatesInfluence path through one more reactant->product hop (a reaction in CellDesigner, a process in SBGN-PD), carrying the kind via composesTo (triggering degrades to positivelyInfluences) and refusing to extend across a hop inside a production cycle (not isCyclicallyTransformedTo). Exclude with --exclude-group paths:chaining to keep only direct single-hop influences. Depends on paths:core, which supplies both composesTo and the cycle relations.

Rule Variant Documentation
paths:chaining:celldesigner:transitive_through_reaction CellDesigner If there is a path from a species to an intermediate species, and the intermediate species is referred to by a reactant of a reaction whose product refers to another species, then there is a path from the first species to the second. The kind is carried through composesTo, which degrades triggering→positive (and unknown_triggering→unknown_positive) at the reaction hop while leaving every other kind unchanged. Extension is suppressed across a reactant->product hop that lies inside a cycle (isCyclicallyTransformedTo), so a source feeding a production cycle does not leak influence back around the loop onto members it directly depletes.
paths:chaining:sbgn_pd:transitive_through_process SBGN PD Extends a path through a process reactant->product hop, carrying the kind via composesTo (triggering degrades to positivelyInfluences). Extension is suppressed across a reactant->product hop that lies inside a cycle (isCyclicallyTransformedTo), so a source feeding a production cycle does not leak influence back around the loop onto members it directly depletes.

paths:complex_traversal

Extends paths through complex containment for the no-complex mode: a path touching a complex is propagated to/from each of its subunits so influences reach the surviving subunit activities.

Rule Variant Documentation
paths:complex_traversal:into_subunits If an influence of a given kind propagates from a source to a complex, then it also propagates from the source to each subunit of the complex.
paths:complex_traversal:from_subunits If an influence of a given kind propagates from a complex to a target, then it also propagates from each subunit of the complex to the target.

entity

entity:identity

When two elements are the same entity in different states: isSameEntityAs(ELEMENT, OTHER_ELEMENT) holds for two species sharing a template (protein, gene, RNA reference), and for two template-free elements of the same kind and name (CellDesigner) or label (SBGN-PD). State, multimer cardinality and compartment are ignored, so a species and a modified form of it are the same entity. influences:consumption uses it to tell a reaction that hands its reactant back from one that uses it up, and influences:binding_activation to tell whether the entity leaving a reaction is the one that entered it.

Rule Variant Documentation
entity:identity:celldesigner:from_template CellDesigner CellDesigner: two species sharing a template (protein, gene, RNA reference) are the same entity.
entity:identity:celldesigner:kind CellDesigner CellDesigner: the kind of each species class that carries no template.
entity:identity:celldesigner:from_name CellDesigner CellDesigner: two template-free species of the same kind and name are the same entity.
entity:identity:sbgn_pd:kind SBGN PD SBGN-PD: the kind shared by an entity pool, its multimer, its subunit and its multimer subunit classes, so a macromolecule pool and a macromoleculeSubunit compare as the same kind.
entity:identity:sbgn_pd:from_label SBGN PD SBGN-PD: two elements of the same kind and label are the same entity.

influences

influences:kind

Maps each modulation arc to its influence kind via hasInfluenceKind(MODULATION, INFLUENCE_KIND), the single place the arc-type->kind knowledge lives. Every group that emits a modulation-arc influence reads this relation rather than re-encoding the mapping. The mapping is per-language: CellDesigner arcs carry the sign in the arc type (catalysis, inhibition, ...), while an SBGN-PD arc's kind comes from its stimulation/inhibition/necessary-stimulation classification.

Rule Variant Documentation
influences:kind:celldesigner:catalysis CellDesigner A catalysis arc contributes a positive kind.
influences:kind:celldesigner:physical_stimulation CellDesigner A physical stimulation arc contributes a positive kind.
influences:kind:celldesigner:positive_influence CellDesigner A positive influence arc contributes a positive kind.
influences:kind:celldesigner:triggering CellDesigner A triggering arc contributes a triggering kind (kept on the direct edge; it degrades to positive when composed through a reaction).
influences:kind:celldesigner:inhibition CellDesigner An inhibition arc contributes a negative kind.
influences:kind:celldesigner:negative_influence CellDesigner A negative influence arc contributes a negative kind.
influences:kind:celldesigner:modulation CellDesigner A bare modulation arc (the generic MODULATION arc, not one of the signed/typed subtypes) contributes an unknown-sign modulation kind. The negations exclude the subtypes, which modulation is the umbrella over.
influences:kind:celldesigner:unknown_catalysis CellDesigner An unknown catalysis arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_physical_stimulation CellDesigner An unknown physical stimulation arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_positive_influence CellDesigner An unknown positive influence arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_triggering CellDesigner An unknown triggering arc contributes an unknown_triggering kind (kept on the direct edge; it degrades to unknown_positive when composed through a reaction).
influences:kind:celldesigner:unknown_inhibition CellDesigner An unknown inhibition arc contributes an unknown_negative kind.
influences:kind:celldesigner:unknown_negative_influence CellDesigner An unknown negative influence arc contributes an unknown_negative kind.
influences:kind:celldesigner:unknown_modulation CellDesigner A bare unknown modulation arc (not one of the unknown subtypes) contributes an unknown_modulation kind. The negations exclude the subtypes, which unknownModulation is the umbrella over.
influences:kind:sbgn_pd:necessary_stimulation SBGN PD An SBGN-PD necessary stimulation contributes a triggering kind.
influences:kind:sbgn_pd:stimulation SBGN PD A stimulation (catalysis included) that is not a necessary stimulation contributes a positive kind.
influences:kind:sbgn_pd:inhibition SBGN PD An SBGN-PD inhibition contributes a negative kind.
influences:kind:sbgn_pd:modulation SBGN PD A bare modulation (neither stimulation nor inhibition) contributes an unknown-sign modulation kind.

influences:core

Derivation: emits new(activity(KEY)) for every activity key, and lifts every kinded path into the internal influences(SOURCE_KEY, TARGET_KEY, INFLUENCE_KIND) relation by resolving both endpoints through their activity carrier and key. Both rules are mode- and language-agnostic; the consumption/sparing reasoning lives in the separate influences:consumption group. The internal influences/3 relation is fanned out to the typed new(...) heads by the shared influences:output group.

Rule Variant Documentation
influences:core:activity Every species with an activity key emits an activity node with that key.
influences:core:path A propagated influence of any kind between two raw nodes yields an influence of that same kind between their activity-key images (via their carriers).

influences:consumption

Excludable consumption/sparing reasoning: a reaction depletes its reactants, so a modifier that drives the reaction also acts on every reactant that is itself an activity -- catalyzer/physicalStimulator/trigger negatively influence each consumed reactant, inhibitor positively influences each spared reactant, and the unknown modifiers contribute the unknown twins. The SBGN-PD variant walks a modulation arc onto a process the same way: a stimulation (catalysis and necessary stimulation included) negatively influences each reactant activity, an inhibition positively influences each one, a bare modulation neither. A reactant the reaction hands back as the same activity is not depleted and draws no edge; returnsReactantAsActivity carries that condition, and excluding that one rule restores the unconditional behavior. This is inference beyond what the map draws, so it is a group of its own: exclude with --exclude-group influences:consumption to keep only the influences the map states. The keep-reactions mode omits it, since that mode renders each reaction directly instead of reasoning about it.

Rule Variant Documentation
influences:consumption:returns_reactant_as_activity A reaction hands a reactant back when one of its products is the same entity (entity:identity) and is itself an activity: a phosphorylation whose two forms are both activities, or a reaction listing the same species on both sides. Such a reactant is not depleted, so the consumption and sparing rules require that this does not hold. A product that is the same entity but not an activity is an inactivation and keeps its edge, as does a product that is a different entity, or the same entity sitting as a subunit of a product complex. PROCESS binds a CellDesigner reaction or an SBGN-PD process. Excluding this one rule with --exclude-rule influences:consumption:returns_reactant_as_activity leaves the relation underived, so the consumption rules fire unconditionally again -- useful to surface curation mistakes, which show up as an activity influenced both positively and negatively by the same source.
influences:consumption:celldesigner:catalyzer_consumes_reactant CellDesigner A catalyzer of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption depletes the reactant — a negative influence alongside the modifier's positive role on a product that is a different activity).
influences:consumption:celldesigner:physical_stimulator_consumes_reactant CellDesigner A physical stimulator of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption).
influences:consumption:celldesigner:trigger_consumes_reactant CellDesigner A trigger of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption is depletion, hence negative — not triggers, which is only the trigger→product relationship).
influences:consumption:celldesigner:inhibitor_spares_reactant CellDesigner An inhibitor of a reaction positively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (sparing).
influences:consumption:celldesigner:unknown_catalyzer_consumes_reactant CellDesigner An unknown catalyzer of a reaction unknown-negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption, uncertain).
influences:consumption:celldesigner:unknown_inhibitor_spares_reactant CellDesigner An unknown inhibitor of a reaction unknown-positively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (sparing, uncertain).
influences:consumption:sbgn_pd:stimulation_consumes_reactant SBGN PD A stimulation (catalysis and necessary stimulation included -- the ontology derives both from stimulation) onto a process negatively influences each reactant of that process that is itself an activity and that the process does not hand back as the same activity: running the process consumes it.
influences:consumption:sbgn_pd:inhibition_spares_reactant SBGN PD An inhibition onto a process positively influences each reactant of that process that is itself an activity and that the process does not hand back as the same activity: blocking the process spares it.

influences:binding_activation

Excludable activation-by-binding reasoning: when a reaction turns an entity drawn inactive as a reactant (or inside a reactant complex) into an active subunit of a product complex, the binding activated it, so every other reactant of that reaction -- one that is neither the same entity nor itself activated by the same reaction -- becomes an activity (reason isBindingActivator) and positively influences the activity carrying the active subunit: its top-level complex in normal, the promoted subunit in no-complex. Two entities activated by the same reaction draw no edge between each other. Same-entity comes from the entity:identity group. The edge is direct (influences/3), so it does not chain through later reactions. Exclude with --exclude-group influences:binding_activation.

Rule Variant Documentation
influences:binding_activation:is_descendant_subunit_of A subunit at any depth of a complex.
influences:binding_activation:is_self_or_descendant_subunit_of A reaction participant itself, or a subunit of it at any depth: the forms an entity can take on one side of a reaction.
influences:binding_activation:active_marker_from_override An element pinned active by --set-active counts as explicitly marked active.
influences:binding_activation:activates_by_binding A reaction activates an entity by binding when a form of it enters the reaction without an explicit active marker (as a reactant, or inside a reactant complex) and leaves it as an explicitly active subunit of a product complex.
influences:binding_activation:contains_inactive_reactant_of A reactant that is, or contains, an entity the reaction activates by binding.
influences:binding_activation:is_binding_activator_of Every other reactant of the activating reaction is a binding activator of the active subunit: one that is neither the same entity as the subunit nor itself activated by the reaction. Requiring the subunit's activity key keeps a suppressed subunit (--set-inactive) from making its partners activities.
influences:binding_activation:candidate A binding activator is an activity candidate (reason isBindingActivator); it still passes through the activity:core bridge, so the vetoes apply.
influences:binding_activation:influence A binding activator positively influences the activity carrying the active subunit. The source is the activator's own key, or -- when the activator is a complex dissolved in no-complex -- the key of each of its promoted subunits.
influences:binding_activation:celldesigner:active_marker_from_active_flag CellDesigner CellDesigner: a species whose hasActive flag is 1 is explicitly marked active.
influences:binding_activation:celldesigner:active_marker_from_structural_state CellDesigner CellDesigner: a species in an "active" structural state is explicitly marked active.
influences:binding_activation:sbgn_pd:active_marker_from_state_variable SBGN PD SBGN-PD: an entity pool or subunit carrying an "active" state variable is explicitly marked active.

influences:output

Shared fan-out from the internal influences(SOURCE, TARGET, INFLUENCE_KIND) relation to the typed new(...) influence heads — one rule per kind. Every pipeline converges on influences/3; this group is the single place that turns a kind into its output predicate.

Rule Variant Documentation
influences:output:positive A positive influence emits a positivelyInfluences edge (PositiveInfluence).
influences:output:negative A negative influence emits a negativelyInfluences edge (NegativeInfluence).
influences:output:modulation A modulation influence emits a modulates edge (Modulation).
influences:output:triggering A triggering influence emits a triggers edge (Triggering).
influences:output:unknown_positive An unknown_positive influence emits an unknownPositivelyInfluences edge (UnknownPositiveInfluence).
influences:output:unknown_negative An unknown_negative influence emits an unknownNegativelyInfluences edge (UnknownNegativeInfluence).
influences:output:unknown_modulation An unknown_modulation influence emits an unknownModulates edge (UnknownModulation).
influences:output:unknown_triggering An unknown_triggering influence emits an unknownTriggers edge (UnknownTriggering).

gates

gates:core

Authored logical operators (CellDesigner BooleanLogicGate, SBGN-PD LogicalOperator): emits the operator node (logicalOperator/2, token-typed), its input edges (logicalOperatorInput/2, each input resolved through carrier/key -- or, for SBGN-PD, through the referred operator's own key when the input refers to another logical operator), and the operator-sourced influence written straight into the internal influences/3 relation by reusing the existing propagatesInfluence(OPERATOR, TARGET, INFLUENCE_KIND) closure. The node and influence rules are guarded on the input edges, so an operator with zero resolved inputs emits neither a node nor a sourced influence, and one with some resolved inputs keeps them all. The widened influence source union (predicates._INFLUENCE_SOURCE) lets influences:output fan these out with no change. Provenance-agnostic.

Rule Variant Documentation
gates:core:celldesigner:node_and CellDesigner An andGate with at least one resolved input emits an AND logical-operator node.
gates:core:celldesigner:node_or CellDesigner An orGate with at least one resolved input emits an OR logical-operator node.
gates:core:celldesigner:node_not CellDesigner A notGate with at least one resolved input emits a NOT logical-operator node. The token is not_ because bare not is a reserved clingo keyword.
gates:core:celldesigner:node_unknown CellDesigner An unknownGate with at least one resolved input emits an unknown-type logical-operator node.
gates:core:celldesigner:input_edge CellDesigner Each gate input is resolved through its activity carrier and key (mirroring influences:core:path), so an input that is a subunit resolves to its top-level complex's key. The booleanLogicGate umbrella matches every gate type via the ontology's isa rules.
gates:core:celldesigner:influence CellDesigner One rule covering both Shape A (gate is a reaction modifier) and Shape B (gate is a modulation source): the paths:core rules already bind a propagatesInfluence/3 whose source is the gate, so the gate only resolves its TARGET through carrier/key and writes the influence keyed by the operator. Inherits the transitive closure (Decision D1). The booleanLogicGate guard is essential -- without it every species propagatesInfluence/3 source would be read as an operator key. The input-existence guard drops an operator with no resolved input -- it emits neither a node nor a sourced influence; an operator with some resolved inputs keeps them all.
gates:core:sbgn_pd:node_and SBGN PD An andOperator with at least one resolved input emits an AND logical-operator node.
gates:core:sbgn_pd:node_or SBGN PD An orOperator with at least one resolved input emits an OR logical-operator node.
gates:core:sbgn_pd:node_not SBGN PD A notOperator with at least one resolved input emits a NOT logical-operator node. The token is not_ because bare not is a reserved clingo keyword. (SBGN-PD has no unknown-operator type.)
gates:core:sbgn_pd:input_edge SBGN PD SBGN-PD parallel of the CellDesigner input-edge rule, guarded on the logicalOperator umbrella (derived from the per-type operators via the ontology isa rules).
gates:core:sbgn_pd:input_edge_operator SBGN PD An SBGN-PD operator input whose referred element is itself a logical operator resolves through that operator's key instead of through an activity candidate. Guarded on the input operator emitting a node, so an input operator that is itself dropped contributes no edge. This rule and the node rules are mutually recursive, positively so: an operator emits a node when it has an input edge, and an operator input contributes an edge when the input operator emits a node. The least fixpoint is exactly the intended reading -- an operator survives when at least one of its inputs is an activity or is itself a surviving operator -- and a cyclic operator graph with no activity underneath it emits nothing. (CellDesigner has no parallel: a BooleanLogicGateInput always refers to a species, so its gates cannot nest.)
gates:core:sbgn_pd:influence SBGN PD SBGN-PD parallel of the CellDesigner operator-sourced influence rule (Shape B: the operator is a modulation source). Reuses the propagatesInfluence(OPERATOR, TARGET, INFLUENCE_KIND) closure emitted by paths:core, resolving only the target through carrier/key. The input-existence guard drops an operator with no resolved input -- it emits neither a node nor a sourced influence; an operator with some resolved inputs keeps them all.

keep_reactions

keep_reactions:activity

The keep-reactions premise that every species is an activity, replacing the structural-reason activity:* feature-groups (each of which is inert once every species is a candidate, so the mode omits them). Unlike the --set-all-active toggle this rule carries no not hasSubunit guard: a subunit is a candidate too, which does not make it an activity of its own -- preparation:complex:key keys it by the keptSpeciesKey of its outermost complex -- but it does mean a reaction, modulation arc or gate input touching a subunit routes to the containing complex instead of being dropped for want of an activity key.

Rule Variant Documentation
keep_reactions:activity:from_species Every species is an activity candidate, for the sole reason that it is a species (reason isSpecies). It still passes through the activity:core bridge, so --set-inactive and --set-all-inactive veto candidates in this mode exactly as in any other.

keep_reactions:influences

The keep-reactions premise that every reaction is kept: each (reactant, product) pair of a reaction becomes one positive influence. positivelyInfluences rather than triggers -- consuming a reactant to make a product is a contribution to it, not the necessary-stimulation relationship triggers (CellDesigner Triggering, SBGN-AF NecessaryStimulation) asserts. The rule writes propagatesInfluence/3 rather than influences/3 so the shared influences:core:path bridge resolves both endpoints through their carrier and key, routing a subunit endpoint to its top-level complex. Reactant and product may resolve to the same activity (a reaction whose participants share a complex, or a state transition drawn on a single species), and the resulting self-influence is emitted like any other.

Rule Variant Documentation
keep_reactions:influences:reactant_to_product Each reactant of a reaction positively influences each product of that reaction. This is the one rule that makes a reaction itself an influence: in the other modes the reactant->product hop only feeds the cycle relations, and a reactant is an influence source only when it activates a binding partner (influences:binding_activation).

Rule index

All rules in alphabetical order (identifiers are group- and variant-prefixed).

Rule Group Variant Modes Summary
activity:active_marker:celldesigner:from_active_flag activity:active_marker CellDesigner normal, no-complex A species explicitly marked as active is an activity candidate.
activity:active_marker:celldesigner:from_active_structural_state activity:active_marker CellDesigner normal, no-complex A species in an active structural state is an activity candidate.
activity:active_marker:sbgn_pd:from_active_state_variable activity:active_marker SBGN PD normal, no-complex An entity pool in an active state is an activity candidate.
activity:active_marker:sbgn_pd:from_active_subunit_state_variable activity:active_marker SBGN PD normal, no-complex A subunit in an active state is an activity candidate.
activity:core:celldesigner:from_global_activate activity:core CellDesigner all Under the set-all-active toggle, every top-level species is an activity candidate.
activity:core:from_candidate activity:core all An activity candidate becomes an actual activity unless it has been vetoed.
activity:core:from_global_suppress activity:core all The set-all-inactive toggle suppresses every activity candidate, except those pinned active per id.
activity:core:sbgn_pd:from_global_activate activity:core SBGN PD all Under the set-all-active toggle, every entity pool is an activity candidate.
activity:gate_input:celldesigner:from_gate_input activity:gate_input CellDesigner normal, no-complex A species feeding a boolean logic gate is an activity candidate.
activity:gate_input:sbgn_pd:from_operator_input activity:gate_input SBGN PD normal, no-complex An entity pool feeding a logical operator is an activity candidate.
activity:modulation_source:celldesigner:from_modulation_source activity:modulation_source CellDesigner normal, no-complex A species that is the source of a modulation arc is an activity candidate.
activity:modulation_source:celldesigner:from_reaction_modulator activity:modulation_source CellDesigner normal, no-complex A species that modulates a reaction is an activity candidate.
activity:modulation_source:sbgn_pd:from_modulation_source activity:modulation_source SBGN PD normal, no-complex An entity pool that is the source of a modulation arc is an activity candidate.
activity:phenotype:from_phenotype activity:phenotype normal, no-complex A phenotype is always an activity candidate.
entity:identity:celldesigner:from_name entity:identity CellDesigner normal, no-complex CellDesigner: two template-free species of the same kind and name are the same entity.
entity:identity:celldesigner:from_template entity:identity CellDesigner normal, no-complex CellDesigner: two species sharing a template (protein, gene, RNA reference) are the same entity.
entity:identity:celldesigner:kind entity:identity CellDesigner normal, no-complex CellDesigner: the kind of each species class that carries no template.
entity:identity:sbgn_pd:from_label entity:identity SBGN PD normal, no-complex SBGN-PD: two elements of the same kind and label are the same entity.
entity:identity:sbgn_pd:kind entity:identity SBGN PD normal, no-complex SBGN-PD: the kind shared by an entity pool, its multimer, its subunit and its multimer subunit classes, so a macromolecule pool and a macromoleculeSubunit compare as the same kind.
gates:core:celldesigner:influence gates:core CellDesigner all One rule covering both Shape A (gate is a reaction modifier) and Shape B (gate is a modulation source): the paths:core rules already bind a propagatesInfluence/3 whose source is the gate, so the gate only resolves its TARGET through carrier/key and writes the influence keyed by the operator.
gates:core:celldesigner:input_edge gates:core CellDesigner all Each gate input is resolved through its activity carrier and key (mirroring influences:core:path), so an input that is a subunit resolves to its top-level complex's key.
gates:core:celldesigner:node_and gates:core CellDesigner all An andGate with at least one resolved input emits an AND logical-operator node.
gates:core:celldesigner:node_not gates:core CellDesigner all A notGate with at least one resolved input emits a NOT logical-operator node.
gates:core:celldesigner:node_or gates:core CellDesigner all An orGate with at least one resolved input emits an OR logical-operator node.
gates:core:celldesigner:node_unknown gates:core CellDesigner all An unknownGate with at least one resolved input emits an unknown-type logical-operator node.
gates:core:sbgn_pd:influence gates:core SBGN PD all SBGN-PD parallel of the CellDesigner operator-sourced influence rule (Shape B: the operator is a modulation source).
gates:core:sbgn_pd:input_edge gates:core SBGN PD all SBGN-PD parallel of the CellDesigner input-edge rule, guarded on the logicalOperator umbrella (derived from the per-type operators via the ontology isa rules).
gates:core:sbgn_pd:input_edge_operator gates:core SBGN PD all An SBGN-PD operator input whose referred element is itself a logical operator resolves through that operator's key instead of through an activity candidate.
gates:core:sbgn_pd:node_and gates:core SBGN PD all An andOperator with at least one resolved input emits an AND logical-operator node.
gates:core:sbgn_pd:node_not gates:core SBGN PD all A notOperator with at least one resolved input emits a NOT logical-operator node.
gates:core:sbgn_pd:node_or gates:core SBGN PD all An orOperator with at least one resolved input emits an OR logical-operator node.
influences:binding_activation:activates_by_binding influences:binding_activation normal, no-complex A reaction activates an entity by binding when a form of it enters the reaction without an explicit active marker (as a reactant, or inside a reactant complex) and leaves it as an explicitly active subunit of a product complex.
influences:binding_activation:active_marker_from_override influences:binding_activation normal, no-complex An element pinned active by --set-active counts as explicitly marked active.
influences:binding_activation:candidate influences:binding_activation normal, no-complex A binding activator is an activity candidate (reason isBindingActivator); it still passes through the activity:core bridge, so the vetoes apply.
influences:binding_activation:celldesigner:active_marker_from_active_flag influences:binding_activation CellDesigner normal, no-complex CellDesigner: a species whose hasActive flag is 1 is explicitly marked active.
influences:binding_activation:celldesigner:active_marker_from_structural_state influences:binding_activation CellDesigner normal, no-complex CellDesigner: a species in an "active" structural state is explicitly marked active.
influences:binding_activation:contains_inactive_reactant_of influences:binding_activation normal, no-complex A reactant that is, or contains, an entity the reaction activates by binding.
influences:binding_activation:influence influences:binding_activation normal, no-complex A binding activator positively influences the activity carrying the active subunit.
influences:binding_activation:is_binding_activator_of influences:binding_activation normal, no-complex Every other reactant of the activating reaction is a binding activator of the active subunit: one that is neither the same entity as the subunit nor itself activated by the reaction.
influences:binding_activation:is_descendant_subunit_of influences:binding_activation normal, no-complex A subunit at any depth of a complex.
influences:binding_activation:is_self_or_descendant_subunit_of influences:binding_activation normal, no-complex A reaction participant itself, or a subunit of it at any depth: the forms an entity can take on one side of a reaction.
influences:binding_activation:sbgn_pd:active_marker_from_state_variable influences:binding_activation SBGN PD normal, no-complex SBGN-PD: an entity pool or subunit carrying an "active" state variable is explicitly marked active.
influences:consumption:celldesigner:catalyzer_consumes_reactant influences:consumption CellDesigner normal, no-complex A catalyzer of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption depletes the reactant — a negative influence alongside the modifier's positive role on a product that is a different activity).
influences:consumption:celldesigner:inhibitor_spares_reactant influences:consumption CellDesigner normal, no-complex An inhibitor of a reaction positively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (sparing).
influences:consumption:celldesigner:physical_stimulator_consumes_reactant influences:consumption CellDesigner normal, no-complex A physical stimulator of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption).
influences:consumption:celldesigner:trigger_consumes_reactant influences:consumption CellDesigner normal, no-complex A trigger of a reaction negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption is depletion, hence negative — not triggers, which is only the trigger→product relationship).
influences:consumption:celldesigner:unknown_catalyzer_consumes_reactant influences:consumption CellDesigner normal, no-complex An unknown catalyzer of a reaction unknown-negatively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (consumption, uncertain).
influences:consumption:celldesigner:unknown_inhibitor_spares_reactant influences:consumption CellDesigner normal, no-complex An unknown inhibitor of a reaction unknown-positively influences each reactant that is itself an activity and that the reaction does not hand back as the same activity (sparing, uncertain).
influences:consumption:returns_reactant_as_activity influences:consumption normal, no-complex A reaction hands a reactant back when one of its products is the same entity (entity:identity) and is itself an activity: a phosphorylation whose two forms are both activities, or a reaction listing the same species on both sides.
influences:consumption:sbgn_pd:inhibition_spares_reactant influences:consumption SBGN PD normal, no-complex An inhibition onto a process positively influences each reactant of that process that is itself an activity and that the process does not hand back as the same activity: blocking the process spares it.
influences:consumption:sbgn_pd:stimulation_consumes_reactant influences:consumption SBGN PD normal, no-complex A stimulation (catalysis and necessary stimulation included -- the ontology derives both from stimulation) onto a process negatively influences each reactant of that process that is itself an activity and that the process does not hand back as the same activity: running the process consumes it.
influences:core:activity influences:core all Every species with an activity key emits an activity node with that key.
influences:core:path influences:core all A propagated influence of any kind between two raw nodes yields an influence of that same kind between their activity-key images (via their carriers).
influences:kind:celldesigner:catalysis influences:kind CellDesigner all A catalysis arc contributes a positive kind.
influences:kind:celldesigner:inhibition influences:kind CellDesigner all An inhibition arc contributes a negative kind.
influences:kind:celldesigner:modulation influences:kind CellDesigner all A bare modulation arc (the generic MODULATION arc, not one of the signed/typed subtypes) contributes an unknown-sign modulation kind.
influences:kind:celldesigner:negative_influence influences:kind CellDesigner all A negative influence arc contributes a negative kind.
influences:kind:celldesigner:physical_stimulation influences:kind CellDesigner all A physical stimulation arc contributes a positive kind.
influences:kind:celldesigner:positive_influence influences:kind CellDesigner all A positive influence arc contributes a positive kind.
influences:kind:celldesigner:triggering influences:kind CellDesigner all A triggering arc contributes a triggering kind (kept on the direct edge; it degrades to positive when composed through a reaction).
influences:kind:celldesigner:unknown_catalysis influences:kind CellDesigner all An unknown catalysis arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_inhibition influences:kind CellDesigner all An unknown inhibition arc contributes an unknown_negative kind.
influences:kind:celldesigner:unknown_modulation influences:kind CellDesigner all A bare unknown modulation arc (not one of the unknown subtypes) contributes an unknown_modulation kind.
influences:kind:celldesigner:unknown_negative_influence influences:kind CellDesigner all An unknown negative influence arc contributes an unknown_negative kind.
influences:kind:celldesigner:unknown_physical_stimulation influences:kind CellDesigner all An unknown physical stimulation arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_positive_influence influences:kind CellDesigner all An unknown positive influence arc contributes an unknown_positive kind.
influences:kind:celldesigner:unknown_triggering influences:kind CellDesigner all An unknown triggering arc contributes an unknown_triggering kind (kept on the direct edge; it degrades to unknown_positive when composed through a reaction).
influences:kind:sbgn_pd:inhibition influences:kind SBGN PD all An SBGN-PD inhibition contributes a negative kind.
influences:kind:sbgn_pd:modulation influences:kind SBGN PD all A bare modulation (neither stimulation nor inhibition) contributes an unknown-sign modulation kind.
influences:kind:sbgn_pd:necessary_stimulation influences:kind SBGN PD all An SBGN-PD necessary stimulation contributes a triggering kind.
influences:kind:sbgn_pd:stimulation influences:kind SBGN PD all A stimulation (catalysis included) that is not a necessary stimulation contributes a positive kind.
influences:output:modulation influences:output all A modulation influence emits a modulates edge (Modulation).
influences:output:negative influences:output all A negative influence emits a negativelyInfluences edge (NegativeInfluence).
influences:output:positive influences:output all A positive influence emits a positivelyInfluences edge (PositiveInfluence).
influences:output:triggering influences:output all A triggering influence emits a triggers edge (Triggering).
influences:output:unknown_modulation influences:output all An unknown_modulation influence emits an unknownModulates edge (UnknownModulation).
influences:output:unknown_negative influences:output all An unknown_negative influence emits an unknownNegativelyInfluences edge (UnknownNegativeInfluence).
influences:output:unknown_positive influences:output all An unknown_positive influence emits an unknownPositivelyInfluences edge (UnknownPositiveInfluence).
influences:output:unknown_triggering influences:output all An unknown_triggering influence emits an unknownTriggers edge (UnknownTriggering).
keep_reactions:activity:from_species keep_reactions:activity keep-reactions Every species is an activity candidate, for the sole reason that it is a species (reason isSpecies).
keep_reactions:influences:reactant_to_product keep_reactions:influences keep-reactions Each reactant of a reaction positively influences each product of that reaction.
paths:chaining:celldesigner:transitive_through_reaction paths:chaining CellDesigner normal, no-complex If there is a path from a species to an intermediate species, and the intermediate species is referred to by a reactant of a reaction whose product refers to another species, then there is a path from the first species to the second.
paths:chaining:sbgn_pd:transitive_through_process paths:chaining SBGN PD normal, no-complex Extends a path through a process reactant->product hop, carrying the kind via composesTo (triggering degrades to positivelyInfluences).
paths:complex_traversal:from_subunits paths:complex_traversal no-complex If an influence of a given kind propagates from a complex to a target, then it also propagates from each subunit of the complex to the target.
paths:complex_traversal:into_subunits paths:complex_traversal no-complex If an influence of a given kind propagates from a source to a complex, then it also propagates from the source to each subunit of the complex.
paths:core:celldesigner:catalyzer_to_product paths:core CellDesigner all If a species is referred to by a catalyzer of a reaction and another species is referred to by a product of that reaction, then there is a positive path from the first to the second.
paths:core:celldesigner:inhibitor_to_product paths:core CellDesigner all If a species is referred to by an inhibitor of a reaction and another species is referred to by a product of that reaction, then there is a negative path from the first to the second.
paths:core:celldesigner:is_directly_transformed_to paths:core CellDesigner all The single reactant->product hop in the production graph: the upstream species is referred to by a reactant and the downstream species by a product of the same reaction.
paths:core:celldesigner:modulation_arc_influence paths:core CellDesigner all A modulation arc influences its target with the arc's kind (hasInfluenceKind, from the influences:kind group).
paths:core:celldesigner:modulator_to_product paths:core CellDesigner all If a species is referred to by a bare modulator of a reaction (a generic MODULATION modifier — not a physical stimulator, inhibitor or trigger; catalyzers are physical stimulators) and another species is referred to by a product of that reaction, then there is a modulation path from the first to the second.
paths:core:celldesigner:physical_stimulator_to_product paths:core CellDesigner all If a species is referred to by a physical stimulator of a reaction and another species is referred to by a product of that reaction, then there is a positive path from the first to the second.
paths:core:celldesigner:trigger_to_product paths:core CellDesigner all If a species is referred to by a trigger of a reaction and another species is referred to by a product of that reaction, then there is a triggering path from the first to the second (a trigger→product edge is direct, so it keeps the triggering kind).
paths:core:celldesigner:unknown_catalyzer_to_product paths:core CellDesigner all If a species is referred to by an unknown catalyzer of a reaction and another species is referred to by a product of that reaction, then there is an unknown-positive path from the first to the second.
paths:core:celldesigner:unknown_inhibitor_to_product paths:core CellDesigner all If a species is referred to by an unknown inhibitor of a reaction and another species is referred to by a product of that reaction, then there is an unknown-negative path from the first to the second.
paths:core:composes_to paths:core all composesTo(INCOMING_INFLUENCE_KIND, OUTGOING_INFLUENCE_KIND): how an influence kind transforms when a path is extended by one reactant→product hop (a reaction in CellDesigner, a process in SBGN-PD).
paths:core:is_cyclically_transformed_to paths:core all UPSTREAM and DOWNSTREAM are mutually reachable through the production graph -- both lie on a common cycle.
paths:core:is_transformed_to paths:core all Transitive closure of the single-hop isDirectlyTransformedTo/2: isTransformedTo(UPSTREAM, DOWNSTREAM) holds when DOWNSTREAM is reachable from UPSTREAM through one or more reactant->product hops (the direct hop included, as the base case).
paths:core:sbgn_pd:is_directly_transformed_to paths:core SBGN PD all The single reactant->product hop in the production graph: the upstream entity pool is an element of a reactant and the downstream pool an element of a product of the same process.
paths:core:sbgn_pd:modulation_to_phenotype paths:core SBGN PD all A modulation arc whose target is a phenotype influences the phenotype itself (a phenotype process has no products; it is the activity).
paths:core:sbgn_pd:modulation_to_product paths:core SBGN PD all A modulation arc's entity-pool source influences each product of its target process, carrying the arc's kind.
preparation:complex:celldesigner:carrier preparation:complex CellDesigner normal, keep-reactions Each species is its own activity carrier (no rerouting; a subunit endpoint is rerouted to its top-level complex by the topology:top_level key, not by the carrier).
preparation:complex:key preparation:complex normal, keep-reactions A species with activity is keyed by the keptSpeciesKey of its top-level entity (itself when top-level; its outermost complex when a subunit).
preparation:complex:sbgn_pd:carrier_entity_pool preparation:complex SBGN PD normal, keep-reactions SBGN-PD: each entity pool is its own activity carrier.
preparation:complex:sbgn_pd:carrier_phenotype preparation:complex SBGN PD normal, keep-reactions SBGN-PD: each phenotype process is its own activity carrier (phenotypes are activities, not entity pools).
preparation:no_complex:celldesigner:carrier preparation:no_complex CellDesigner no-complex Each species is its own activity carrier.
preparation:no_complex:deleted preparation:no_complex no-complex A complex with any (transitive) active descendant is deleted.
preparation:no_complex:key_promoted_subunit preparation:no_complex no-complex A subunit of a deleted complex with activity is promoted to top level, keyed by promotedSubunitKey(SELF).
preparation:no_complex:key_top_level preparation:no_complex no-complex A non-deleted top-level species with activity is keyed by keptSpeciesKey(SELF).
preparation:no_complex:sbgn_pd:carrier_entity_pool preparation:no_complex SBGN PD no-complex SBGN-PD: each entity pool is its own activity carrier.
preparation:no_complex:sbgn_pd:carrier_phenotype preparation:no_complex SBGN PD no-complex SBGN-PD: each phenotype process is its own activity carrier.
preparation:no_complex:sbgn_pd:carrier_subunit preparation:no_complex SBGN PD no-complex SBGN-PD: each subunit is its own activity carrier, so a promoted subunit can be an influence endpoint (paths reach it via paths:complex_traversal).
preparation:no_complex:subunit_of_deleted_direct preparation:no_complex no-complex A direct subunit of a deleted complex is itself subunit-of-deleted.
preparation:no_complex:subunit_of_deleted_transitive preparation:no_complex no-complex Subunit-of-deleted is transitive through nested complexes.
topology:core:has_active_descendant_direct topology:core all A complex has an active descendant if any direct subunit has activity.
topology:core:has_active_descendant_transitive topology:core all The hasActiveDescendantSubunit relation is transitive through complex containment.
topology:core:is_subunit topology:core all A species is a subunit if it appears on the right side of any hasSubunit relation.
topology:top_level:celldesigner:self topology:top_level CellDesigner normal, keep-reactions CellDesigner: a species that is not a subunit of any complex is its own top-level entity.
topology:top_level:recursive topology:top_level normal, keep-reactions A subunit resolves to the same top-level entity as its parent complex, recursively through nested complexes -- so a subunit at any depth resolves to its outermost complex.
topology:top_level:sbgn_pd:phenotype_self topology:top_level SBGN PD normal, keep-reactions SBGN-PD: a phenotype is a process, not an entity pool, so the entity-pool self-rule never keys it; a phenotype is never a subunit, so it is always its own top-level entity.
topology:top_level:sbgn_pd:self topology:top_level SBGN PD normal, keep-reactions SBGN-PD: an entity pool that is not a subunit of any complex is its own top-level entity.