Update app.py
Browse files
app.py
CHANGED
|
@@ -1133,17 +1133,75 @@ with gr.Blocks(css=css, title="K R&D Lab · S1 Biomedical") as demo:
|
|
| 1133 |
# === Learning ===
|
| 1134 |
with gr.TabItem("📚 Learning"):
|
| 1135 |
gr.Markdown("""
|
| 1136 |
-
## 🧪 Guided Investigations
|
| 1137 |
> 🟢 Beginner → 🟡 Intermediate → 🔴 Advanced
|
| 1138 |
|
| 1139 |
-
|
| 1140 |
-
|
| 1141 |
-
**
|
| 1142 |
-
**S1-
|
| 1143 |
-
|
| 1144 |
-
|
| 1145 |
-
|
|
|
|
| 1146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1147 |
# === Journal (окрема вкладка) ===
|
| 1148 |
with gr.TabItem("📓 Journal"):
|
| 1149 |
gr.Markdown("## Lab Journal — Full History")
|
|
|
|
| 1133 |
# === Learning ===
|
| 1134 |
with gr.TabItem("📚 Learning"):
|
| 1135 |
gr.Markdown("""
|
| 1136 |
+
## 🧪 Guided Investigations — S1 Biomedical
|
| 1137 |
> 🟢 Beginner → 🟡 Intermediate → 🔴 Advanced
|
| 1138 |
|
| 1139 |
+
---
|
| 1140 |
+
### 🟢 Case 1 · S1-A·R1a
|
| 1141 |
+
**Why does the same position give two different outcomes?**
|
| 1142 |
+
1. Go to **S1-A · R1a · OpenVariant**.
|
| 1143 |
+
2. Enter `BRCA1:p.R1699Q` → you get **Benign**.
|
| 1144 |
+
3. Enter `BRCA1:p.R1699W` → you get **Pathogenic**.
|
| 1145 |
+
4. Same codon, different amino acid — Q (polar, neutral) vs W (bulky, aromatic).
|
| 1146 |
+
*This illustrates how a single nucleotide change can radically alter pathogenicity.*
|
| 1147 |
|
| 1148 |
+
---
|
| 1149 |
+
### 🟢 Case 2 · S1-D·R1a + S1-D·R3a
|
| 1150 |
+
**How does PEG density control which protein forms the corona?**
|
| 1151 |
+
1. Go to **S1-D · R1a · LNP Corona**.
|
| 1152 |
+
2. Set: Size=100 nm, Zeta=-5 mV, Lipid=Ionizable, PEG=**0.5%** → note the dominant protein.
|
| 1153 |
+
3. Change PEG to **2.5%** → run again → dominant protein changes.
|
| 1154 |
+
4. Now go to **S1-D · R3a · LNP Brain**, use pKa≈6.5, Zeta≈-3 mV → observe ApoE%.
|
| 1155 |
+
*Higher PEG shields the surface, reducing ApoE adsorption and brain targeting.*
|
| 1156 |
+
|
| 1157 |
+
---
|
| 1158 |
+
### 🟡 Case 3 · S1-D·R2a
|
| 1159 |
+
**Does blood flow change the corona composition over time?**
|
| 1160 |
+
1. Go to **S1-D · R2a · Flow Corona**.
|
| 1161 |
+
2. Set Flow = 0 (static) → run → note when ApoE becomes dominant (≈ ? min).
|
| 1162 |
+
3. Set Flow = 40 cm/s (arterial) → run again → compare curves.
|
| 1163 |
+
*Flow accelerates the Vroman effect: ApoE dominates earlier under flow.*
|
| 1164 |
+
|
| 1165 |
+
---
|
| 1166 |
+
### 🟡 Case 4 · S1-B·R2a
|
| 1167 |
+
**Which cancer type has the most novel (undrugged) siRNA targets?**
|
| 1168 |
+
1. Go to **S1-B · R2a · siRNA**.
|
| 1169 |
+
2. Select LUAD → count how many targets are marked "Novel".
|
| 1170 |
+
3. Repeat for BRCA and COAD.
|
| 1171 |
+
*Novel targets have no approved drug – they represent high‑opportunity research areas.*
|
| 1172 |
+
|
| 1173 |
+
---
|
| 1174 |
+
### 🔴 Case 5 · S1-E·R1a
|
| 1175 |
+
**What is the minimum protein signal that flips the classifier to CANCER?**
|
| 1176 |
+
1. Go to **S1-E · R1a · Liquid Biopsy**.
|
| 1177 |
+
2. Set all sliders to 0 → result = HEALTHY.
|
| 1178 |
+
3. Increase only CTHRC1 step by step (e.g., 0.5, 1.0, 1.5…) until the label becomes CANCER.
|
| 1179 |
+
4. Reset and try the same with FHL2 or LDHA.
|
| 1180 |
+
*CTHRC1 has the highest weight; you need ≈2.5 to cross the threshold.*
|
| 1181 |
+
|
| 1182 |
+
---
|
| 1183 |
+
### 🔴 Case 6 · Cross‑tool convergence
|
| 1184 |
+
**Do different RNA tools point to the same cancer drivers?**
|
| 1185 |
+
1. Go to **S1-B · R1a · miRNA** → select TP53 → note top targets (BCL2, CDK6).
|
| 1186 |
+
2. Go to **S1-C · R1a · FGFR3** → look for CDK6 in the pathway column.
|
| 1187 |
+
3. Go to **S1-B · R2a · siRNA** → select BRCA → check if CDK6 appears.
|
| 1188 |
+
*CDK6 is a common node – targeted by miRNAs, siRNAs, and existing drugs.*
|
| 1189 |
+
|
| 1190 |
+
---
|
| 1191 |
+
### 📖 Tool Index
|
| 1192 |
+
| Code | Module | Tool | Metric |
|
| 1193 |
+
|------|--------|------|--------|
|
| 1194 |
+
| S1-A·R1a | PHYLO-GENOMICS | OpenVariant | AUC=0.939 |
|
| 1195 |
+
| S1-B·R1a | PHYLO-RNA | miRNA silencing | top: hsa-miR-148a |
|
| 1196 |
+
| S1-B·R2a | PHYLO-RNA | siRNA SL | SPC24 top LUAD |
|
| 1197 |
+
| S1-B·R3a | PHYLO-RNA | lncRNA-TREM2 | CYTOR→AKT1 |
|
| 1198 |
+
| S1-C·R1a | PHYLO-DRUG | FGFR3 drug | score=0.793 |
|
| 1199 |
+
| S1-D·R1a | PHYLO-LNP | Corona | AUC=0.791 |
|
| 1200 |
+
| S1-D·R2a | PHYLO-LNP | Flow Vroman | 3–4× faster |
|
| 1201 |
+
| S1-D·R3a | PHYLO-LNP | LNP Brain | pKa 6.2–6.8 |
|
| 1202 |
+
| S1-E·R1a | PHYLO-BIOMARKERS | Liquid Biopsy | AUC=0.992* |
|
| 1203 |
+
| S1-D·R4a | PHYLO-LNP | AutoCorona NLP | F1=0.71 |
|
| 1204 |
+
""")
|
| 1205 |
# === Journal (окрема вкладка) ===
|
| 1206 |
with gr.TabItem("📓 Journal"):
|
| 1207 |
gr.Markdown("## Lab Journal — Full History")
|