CatColab Regulatory Networks - signed graphs for molecular biology modeling gene regulatory networks with positive (activating) and negative (inhibiting) edges.
Trit: -1 (MINUS - validator/inhibitor) Color: Red (#DC143C)
Regulatory Networks in CatColab model molecular interactions that control gene expression:
These signed graphs capture the control logic of biological systems.
A regulatory network is a signed graph or signed category:
┌─────────────────────────────────────────────────────┐
│ REGULATORY NETWORK │
├─────────────────────────────────────────────────────┤
│ Nodes (Genes/Proteins): │
│ GeneA, GeneB, GeneC, ProteinX │
│ │
│ Positive Edges (Activation): │
│ GeneA ──(+)──► GeneB │
│ ProteinX ──(+)──► GeneC │
│ │
│ Negative Edges (Inhibition): │
│ GeneB ──(-)──► GeneC │
│ GeneC ──(-)──► GeneA (negative feedback) │
│ │
│ Motifs: │
│ Feedforward loop: A→B→C, A→C │
│ Negative feedback: A→B→C⊣A │
└─────────────────────────────────────────────────────┘
// Signed category double theory
pub fn th_signed_category() -> DiscreteDblTheory {
let mut cat = FpCategory::new();
// Object type
cat.add_ob_generator(name("Node"));
// Morphism types (signed edges)
cat.add_mor_generator(name("Positive"), name("Node"), name("Node"));
cat.add_mor_generator(name("Negative"), name("Node"), name("Node"));
// Constraint: n ⊙ n = id (double negative = positive)
cat.add_equation(
compose(name("Negative"), name("Negative")),
identity(name("Node"))
);
cat.into()
}
{
"type": "ObDecl",
"name": "p53",
"theory_type": "Node",
"description": "tumor suppressor protein"
}
{
"type": "MorDecl",
"name": "activates_apoptosis",
"dom": "p53",
"cod": "Bax",
"theory_type": "Positive",
"description": "p53 promotes apoptosis via Bax"
}
{
"type": "MorDecl",
"name": "inhibits_growth",
"dom": "p53",
"cod": "CyclinD",
"theory_type": "Negative",
"description": "p53 blocks cell cycle progression"
}
GeneA
/ \
+ +
↓ ↓
GeneB ──+──► GeneC
Type: Coherent (all positive)
Function: Noise filtering, delay
GeneA ──+──► GeneB ──+──► GeneC
▲ │
└────────(-)─────────────┘
Function: Homeostasis, oscillation
GeneA ◄──(-)──► GeneB
⇅
(-)
Function: Binary cell fate decision
Nodes: p53, MDM2, ATM, Bax, p21
Edges:
ATM ──(+)──► p53 (DNA damage activates p53)
p53 ──(+)──► MDM2 (p53 induces its own inhibitor)
MDM2 ──(-)──► p53 (MDM2 degrades p53)
p53 ──(+)──► Bax (p53 promotes apoptosis)
p53 ──(+)──► p21 (p53 arrests cell cycle)
Motif: p53-MDM2 negative feedback loop
Nodes: LacI, LacZ, Lactose, Glucose
Edges:
LacI ──(-)──► LacZ (repressor blocks transcription)
Lactose ──(-)──► LacI (lactose inactivates repressor)
Glucose ──(-)──► LacZ (catabolite repression)
Function: Metabolic switch for sugar utilization
CatColab can analyze regulatory networks for:
catcolab-regulatory-networks (-1) ⊗ topos-catcolab (0) ⊗ catcolab-stock-flow (+1) = 0 ✓
crn-topology (-1) ⊗ catcolab-regulatory-networks (0) ⊗ alife (+1) = 0 ✓
# Create regulatory network
just catcolab-new regulatory "p53-network"
# Analyze motifs
just catcolab-analyze p53-network --motifs
# Export to SBML
just catcolab-export p53-network --format=sbml
# Simulate Boolean dynamics
just catcolab-simulate p53-network --boolean
Skill Name: catcolab-regulatory-networks Type: Systems Biology / Gene Regulation Trit: -1 (MINUS) GF(3): Conserved via triadic composition