Repository navigation
Expand file tree
/
Copy pathrun_engine.py
More file actions
83 lines (66 loc) · 2.26 KB
/
Copy pathrun_engine.py
File metadata and controls
83 lines (66 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
"""
Main Nexus Bio Engine orchestration script.
Execute complete drug repurposing pipeline for rare diseases.
"""
import asyncio
import sys
from nexus.core.types import DiseaseRequest
from nexus.core.agents import CodySperber, MarcusFabritius
from nexus.core.agents.agent8_semien import Semien
async def main():
"""Execute full pipeline."""
print("=" * 60)
print("NEXUS BIO ENGINE: Drug Repurposing Pipeline")
print("=" * 60)
print()
# Initialize managers
cody = CodySperber(max_concurrent=2)
marcus = MarcusFabritius()
semien = Semien()
# Example: neuro-inflammatory disease targets
requests = [
DiseaseRequest(
disease_id="neuro_inflam_001",
disease_name="neuro-inflammatory",
target_count=5,
confidence_threshold=0.65,
),
]
print(f"Processing {len(requests)} disease request(s)...")
print()
# Stage 1: Route through pipeline (Seth -> Chyna -> Kingsley -> ...)
print("Stage 1: Signal ingestion & pathway mapping...")
dossiers = await cody.run(requests)
print(f" Generated {len(dossiers)} dossier candidates")
print()
if not dossiers:
print("No candidates survived pipeline. Exiting.")
return
# Stage 2: Regulatory compliance audit (Marcus)
print("Stage 2: Regulatory compliance audit (Marcus)...")
dossiers = await marcus.run(dossiers)
regulatory_ready = sum(1 for d in dossiers if d.regulatory_ready)
print(f" {regulatory_ready}/{len(dossiers)} candidates regulatory_ready")
print()
# Stage 3: Export
print("Stage 3: Export results...")
# JSON export
json_output = await semien.run(dossiers, format="json", min_confidence=0.65)
print(" JSON export:")
print(json_output)
print()
# Markdown export
md_output = await semien.run(dossiers, format="markdown", min_confidence=0.65)
print(" Markdown export:")
print(md_output)
print()
# CSV export
csv_output = await semien.run(dossiers, format="csv", min_confidence=0.65)
print(" CSV export:")
print(csv_output)
print()
print("=" * 60)
print("Pipeline complete.")
print("=" * 60)
if __name__ == "__main__":
asyncio.run(main())