From asi
Models gene regulatory networks in molecular biology as signed graphs in CatColab, using positive (activation) and negative (inhibition) edges between genes, proteins, RNA, and metabolites.
npx claudepluginhub plurigrid/asi --plugin asiThis skill uses the workspace's default tool permissions.
**Trit**: -1 (MINUS - validator/inhibitor)
Infers gene regulatory networks from gene expression data using GRNBoost2 and GENIE3 algorithms. For transcriptomics analysis (bulk/single-cell RNA-seq) with distributed scaling.
Models concurrent systems using Petri nets with places (states), transitions (events), and token flows. For process algebra, workflow modeling, and chemical reaction networks in CatColab.
Infers gene regulatory networks prioritizing direct TF evidence from ChIP-seq, JASPAR motifs, ENCODE data, GTEx eQTLs, and Enrichr target enrichment over correlations.
Share bugs, ideas, or general feedback.
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