Cell type vulnerability in Alzheimers Disease (SEA-AD transcriptomic data)¶
Notebook ID: nb-SDA-2026-04-03-gap-seaad-v4-20260402065846 · Analysis: SDA-2026-04-03-gap-seaad-v4-20260402065846 · Generated: 2026-04-21T18:47:14
Research question¶
What cell types are most vulnerable in Alzheimers Disease based on SEA-AD transcriptomic data from the Allen Brain Cell Atlas? Identify mechanisms of cell-type-specific vulnerability in neurons, microglia, astrocytes, and oligodendrocytes. Focus on gene expression patterns, pathway dysregulation, and therapeutic implications.
Approach¶
This notebook is generated programmatically from real Forge tool calls and SciDEX debate data. Forge tools used: PubMed Search, MyGene, STRING PPI, Reactome pathways, Enrichr.
Debate Summary¶
Quality score: 0.9 · Rounds: 4
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'gene': 'ACSL4', 'name': 'acyl-CoA synthetase long chain family member 4', 'summary': 'The protein encoded by this gene is an isozyme of the long-chain fatty-acid-coenzyme A ligase family. Although differing'}, {'gene': 'ALOX15', 'name': 'arachidonate 15-lipoxygenase', 'summary': 'This gene encodes a member of the lipoxygenase family of proteins. The encoded enzyme acts on various polyunsaturated fa'}, {'gene': 'APOE', 'name': 'apolipoprotein E', 'summary': 'The protein encoded by this gene is a major apoprotein of the chylomicron. It binds to a specific liver and peripheral c'}, {'gene': 'CLDN5', 'name': 'claudin 5', 'summary': 'This gene encodes a member of the claudin family. Claudins are integral membrane proteins and components of tight juncti'}, {'gene': 'GENES', 'name': 'MIR142 host genes', 'summary': '—'}, {'gene': 'LPCAT3', 'name': 'lysophosphatidylcholine acyltransferase 3', 'summary': 'Enables 1-acylglycerophosphocholine O-acyltransferase activity; 1-acylglycerophosphoethanolamine O-acyltransferase activ'}, {'gene': 'MAPT', 'name': 'microtubule associated protein tau', 'summary': 'This gene encodes the microtubule-associated protein tau (MAPT) whose transcript undergoes complex, regulated alternativ'}, {'gene': 'PARP1', 'name': 'poly(ADP-ribose) polymerase 1', 'summary': 'This gene encodes a chromatin-associated enzyme, poly(ADP-ribosyl)transferase, which modifies various nuclear proteins b'}, {'gene': 'PPARA', 'name': 'peroxisome proliferator activated receptor alpha', 'summary': 'Peroxisome proliferators include hypolipidemic drugs, herbicides, leukotriene antagonists, and plasticizers; this term a'}, {'gene': 'REGIONAL', 'name': 'WAS/WASL interacting protein family member 3', 'summary': 'Predicted to enable SH3 domain binding activity and actin binding activity. Predicted to be involved in actin filament-b'}, {'gene': 'SIRT3', 'name': 'sirtuin 3', 'summary': 'SIRT3 encodes a member of the sirtuin family of class III histone deacetylases, homologs to the yeast Sir2 protein. The '}, {'gene': 'SLC16A1', 'name': 'solute carrier family 16 member 1', 'summary': 'The protein encoded by this gene is a proton-linked monocarboxylate transporter that catalyzes the movement of many mono'}, {'gene': 'TREM2', 'name': 'triggering receptor expressed on myeloid cells 2', 'summary': 'This gene encodes a membrane protein that forms a receptor signaling complex with the TYRO protein tyrosine kinase bindi'}, {'gene': 'VULNERABILITY', 'name': 'TM2 domain containing 1', 'summary': 'The protein encoded by this gene is a beta-amyloid peptide-binding protein. It contains a structural module related to t'}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | ACSL4 | acyl-CoA synthetase long chain family member 4 | The protein encoded by this gene is an isozyme... |
| 1 | ALOX15 | arachidonate 15-lipoxygenase | This gene encodes a member of the lipoxygenase... |
| 2 | APOE | apolipoprotein E | The protein encoded by this gene is a major ap... |
| 3 | CLDN5 | claudin 5 | This gene encodes a member of the claudin fami... |
| 4 | GENES | MIR142 host genes | — |
| 5 | LPCAT3 | lysophosphatidylcholine acyltransferase 3 | Enables 1-acylglycerophosphocholine O-acyltran... |
| 6 | MAPT | microtubule associated protein tau | This gene encodes the microtubule-associated p... |
| 7 | PARP1 | poly(ADP-ribose) polymerase 1 | This gene encodes a chromatin-associated enzym... |
| 8 | PPARA | peroxisome proliferator activated receptor alpha | Peroxisome proliferators include hypolipidemic... |
| 9 | REGIONAL | WAS/WASL interacting protein family member 3 | Predicted to enable SH3 domain binding activit... |
| 10 | SIRT3 | sirtuin 3 | SIRT3 encodes a member of the sirtuin family o... |
| 11 | SLC16A1 | solute carrier family 16 member 1 | The protein encoded by this gene is a proton-l... |
| 12 | TREM2 | triggering receptor expressed on myeloid cells 2 | This gene encodes a membrane protein that form... |
| 13 | VULNERABILITY | TM2 domain containing 1 | The protein encoded by this gene is a beta-amy... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Chemokine (C-X-C Motif) Ligand 12 Signaling Pathway (GO:0038146)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 2, 'term': 'Negative Regulation Of Sequestering Of Triglyceride (GO:0010891)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 3, 'term': 'Negative Regulation Of Toll-Like Receptor 2 Signaling Pathway (GO:0034136)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 4, 'term': 'Regulation Of Resting Membrane Potential (GO:0060075)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 5, 'term': 'Positive Regulation Of Lipoprotein Particle Clearance (GO:0010986)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 6, 'term': 'Regulation Of Fat Cell Proliferation (GO:0070344)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 7, 'term': 'Negative Regulation Of Astrocyte Differentiation (GO:0048712)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 8, 'term': 'Positive Regulation Of Microglial Cell Activation (GO:1903980)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 9, 'term': 'Positive Regulation Of Microglial Cell Migration (GO:1904141)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 10, 'term': 'Positive Regulation Of Amyloid-Beta Clearance (GO:1900223)', 'p_value': 0.0002999905873105514, 'odds_ratio': 19994.0, 'genes': ['TREM2']}]
go_df = pd.DataFrame(go_bp)[['term','p_value','odds_ratio','genes']]
go_df['p_value'] = go_df['p_value'].apply(lambda p: f'{p:.2e}')
go_df['odds_ratio'] = go_df['odds_ratio'].round(1)
go_df['term'] = go_df['term'].str[:60]
go_df['n_hits'] = go_df['genes'].apply(len)
go_df['genes'] = go_df['genes'].apply(lambda g: ', '.join(g))
go_df[['term','n_hits','p_value','odds_ratio','genes']]
| term | n_hits | p_value | odds_ratio | genes | |
|---|---|---|---|---|---|
| 0 | Chemokine (C-X-C Motif) Ligand 12 Signaling Pa... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 1 | Negative Regulation Of Sequestering Of Triglyc... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 2 | Negative Regulation Of Toll-Like Receptor 2 Si... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 3 | Regulation Of Resting Membrane Potential (GO:0... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 4 | Positive Regulation Of Lipoprotein Particle Cl... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 5 | Regulation Of Fat Cell Proliferation (GO:0070344) | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 6 | Negative Regulation Of Astrocyte Differentiati... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 7 | Positive Regulation Of Microglial Cell Activat... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 8 | Positive Regulation Of Microglial Cell Migrati... | 1 | 2.50e-04 | 19995.0 | TREM2 |
| 9 | Positive Regulation Of Amyloid-Beta Clearance ... | 1 | 3.00e-04 | 19994.0 | TREM2 |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Chemokine (C-X-C Motif) Ligand 12 Signaling Pathway (GO:0038146)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 2, 'term': 'Negative Regulation Of Sequestering Of Triglyceride (GO:0010891)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 3, 'term': 'Negative Regulation Of Toll-Like Receptor 2 Signaling Pathway (GO:0034136)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 4, 'term': 'Regulation Of Resting Membrane Potential (GO:0060075)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 5, 'term': 'Positive Regulation Of Lipoprotein Particle Clearance (GO:0010986)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 6, 'term': 'Regulation Of Fat Cell Proliferation (GO:0070344)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 7, 'term': 'Negative Regulation Of Astrocyte Differentiation (GO:0048712)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}, {'rank': 8, 'term': 'Positive Regulation Of Microglial Cell Activation (GO:1903980)', 'p_value': 0.0002499917995416556, 'odds_ratio': 19995.0, 'genes': ['TREM2']}]
terms = [t['term'][:45] for t in go_bp][::-1]
neglogp = [-np.log10(max(t['p_value'], 1e-300)) for t in go_bp][::-1]
fig, ax = plt.subplots(figsize=(9, 4.5))
ax.barh(terms, neglogp, color='#4fc3f7')
ax.set_xlabel('-log10(p-value)')
ax.set_title('Top GO:BP enrichment (Enrichr)')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
/home/ubuntu/.config/matplotlib is not a writable directory
Matplotlib created a temporary cache directory at /tmp/matplotlib-dkn9mugb because there was an issue with the default path (/home/ubuntu/.config/matplotlib); it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
3. STRING protein interaction network¶
ppi = [{'protein1': 'APOE', 'protein2': 'TREM2', 'score': 0.986, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.514, 'dscore': 0, 'tscore': 0.974}, {'protein1': 'APOE', 'protein2': 'CLU', 'score': 0.991, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.72, 'tscore': 0.971}, {'protein1': 'TYROBP', 'protein2': 'SIRPA', 'score': 0.8, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.8, 'tscore': 0}, {'protein1': 'TYROBP', 'protein2': 'SIRPG', 'score': 0.8, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.8, 'tscore': 0}, {'protein1': 'TYROBP', 'protein2': 'TREM2', 'score': 0.998, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.526, 'dscore': 0.8, 'tscore': 0.982}, {'protein1': 'TYROBP', 'protein2': 'SYK', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.886, 'dscore': 0.9, 'tscore': 0.982}, {'protein1': 'FCER1G', 'protein2': 'IGKV1-33', 'score': 0.52, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.5, 'tscore': 0.081}, {'protein1': 'FCER1G', 'protein2': 'IGKV1D-33', 'score': 0.52, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.5, 'tscore': 0.081}, {'protein1': 'FCER1G', 'protein2': 'TREM2', 'score': 0.977, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0, 'tscore': 0.977}, {'protein1': 'FCER1G', 'protein2': 'SYK', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.886, 'dscore': 0.9, 'tscore': 0.982}, {'protein1': 'SIRPG', 'protein2': 'TREM2', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'SIRPG', 'protein2': 'SYK', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'SIRPG', 'protein2': 'SIRPA', 'score': 0.966, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.495, 'dscore': 0.9, 'tscore': 0.397}, {'protein1': 'CLU', 'protein2': 'TREM2', 'score': 0.954, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.938}, {'protein1': 'TREM2', 'protein2': 'IGHV3-16', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'IGKV1-33', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'IGKV1D-33', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'SIRPA', 'score': 0.91, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0.141}, {'protein1': 'TREM2', 'protein2': 'SYK', 'score': 0.929, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0.323}, {'protein1': 'SYK', 'protein2': 'IGKV1-33', 'score': 0.4, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.4, 'tscore': 0}, {'protein1': 'SYK', 'protein2': 'IGKV1D-33', 'score': 0.4, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.4, 'tscore': 0}, {'protein1': 'SYK', 'protein2': 'SIRPA', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'IGHV3-16', 'protein2': 'IGKV1-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}, {'protein1': 'IGHV3-16', 'protein2': 'IGKV1D-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}, {'protein1': 'IGKV1-33', 'protein2': 'IGKV1D-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}]
ppi_df = pd.DataFrame(ppi).sort_values('score', ascending=False)
display_cols = [c for c in ['protein1','protein2','score','escore','tscore'] if c in ppi_df.columns]
print(f'{len(ppi_df)} STRING edges')
ppi_df[display_cols].head(20)
25 STRING edges
| protein1 | protein2 | score | escore | tscore | |
|---|---|---|---|---|---|
| 5 | TYROBP | SYK | 0.999 | 0.886 | 0.982 |
| 9 | FCER1G | SYK | 0.999 | 0.886 | 0.982 |
| 4 | TYROBP | TREM2 | 0.998 | 0.526 | 0.982 |
| 1 | APOE | CLU | 0.991 | 0.000 | 0.971 |
| 0 | APOE | TREM2 | 0.986 | 0.514 | 0.974 |
| 8 | FCER1G | TREM2 | 0.977 | 0.000 | 0.977 |
| 12 | SIRPG | SIRPA | 0.966 | 0.495 | 0.397 |
| 13 | CLU | TREM2 | 0.954 | 0.292 | 0.938 |
| 23 | IGHV3-16 | IGKV1D-33 | 0.952 | 0.900 | 0.000 |
| 24 | IGKV1-33 | IGKV1D-33 | 0.952 | 0.900 | 0.000 |
| 22 | IGHV3-16 | IGKV1-33 | 0.952 | 0.900 | 0.000 |
| 18 | TREM2 | SYK | 0.929 | 0.000 | 0.323 |
| 17 | TREM2 | SIRPA | 0.910 | 0.000 | 0.141 |
| 16 | TREM2 | IGKV1D-33 | 0.900 | 0.900 | 0.000 |
| 15 | TREM2 | IGKV1-33 | 0.900 | 0.900 | 0.000 |
| 14 | TREM2 | IGHV3-16 | 0.900 | 0.900 | 0.000 |
| 11 | SIRPG | SYK | 0.900 | 0.000 | 0.000 |
| 10 | SIRPG | TREM2 | 0.900 | 0.000 | 0.000 |
| 21 | SYK | SIRPA | 0.900 | 0.000 | 0.000 |
| 2 | TYROBP | SIRPA | 0.800 | 0.000 | 0.000 |
import math
ppi = [{'protein1': 'APOE', 'protein2': 'TREM2', 'score': 0.986, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.514, 'dscore': 0, 'tscore': 0.974}, {'protein1': 'APOE', 'protein2': 'CLU', 'score': 0.991, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.72, 'tscore': 0.971}, {'protein1': 'TYROBP', 'protein2': 'SIRPA', 'score': 0.8, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.8, 'tscore': 0}, {'protein1': 'TYROBP', 'protein2': 'SIRPG', 'score': 0.8, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.8, 'tscore': 0}, {'protein1': 'TYROBP', 'protein2': 'TREM2', 'score': 0.998, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.526, 'dscore': 0.8, 'tscore': 0.982}, {'protein1': 'TYROBP', 'protein2': 'SYK', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.886, 'dscore': 0.9, 'tscore': 0.982}, {'protein1': 'FCER1G', 'protein2': 'IGKV1-33', 'score': 0.52, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.5, 'tscore': 0.081}, {'protein1': 'FCER1G', 'protein2': 'IGKV1D-33', 'score': 0.52, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.5, 'tscore': 0.081}, {'protein1': 'FCER1G', 'protein2': 'TREM2', 'score': 0.977, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0, 'tscore': 0.977}, {'protein1': 'FCER1G', 'protein2': 'SYK', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.886, 'dscore': 0.9, 'tscore': 0.982}, {'protein1': 'SIRPG', 'protein2': 'TREM2', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'SIRPG', 'protein2': 'SYK', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'SIRPG', 'protein2': 'SIRPA', 'score': 0.966, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.495, 'dscore': 0.9, 'tscore': 0.397}, {'protein1': 'CLU', 'protein2': 'TREM2', 'score': 0.954, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.938}, {'protein1': 'TREM2', 'protein2': 'IGHV3-16', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'IGKV1-33', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'IGKV1D-33', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0, 'tscore': 0}, {'protein1': 'TREM2', 'protein2': 'SIRPA', 'score': 0.91, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0.141}, {'protein1': 'TREM2', 'protein2': 'SYK', 'score': 0.929, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0.323}, {'protein1': 'SYK', 'protein2': 'IGKV1-33', 'score': 0.4, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.4, 'tscore': 0}, {'protein1': 'SYK', 'protein2': 'IGKV1D-33', 'score': 0.4, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.4, 'tscore': 0}, {'protein1': 'SYK', 'protein2': 'SIRPA', 'score': 0.9, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0, 'dscore': 0.9, 'tscore': 0}, {'protein1': 'IGHV3-16', 'protein2': 'IGKV1-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}, {'protein1': 'IGHV3-16', 'protein2': 'IGKV1D-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}, {'protein1': 'IGKV1-33', 'protein2': 'IGKV1D-33', 'score': 0.952, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.9, 'dscore': 0.54, 'tscore': 0}]
if ppi:
nodes = sorted({p for e in ppi for p in (e['protein1'], e['protein2'])})
n = len(nodes)
pos = {n_: (math.cos(2*math.pi*i/n), math.sin(2*math.pi*i/n)) for i, n_ in enumerate(nodes)}
fig, ax = plt.subplots(figsize=(7, 7))
for e in ppi:
x1,y1 = pos[e['protein1']]; x2,y2 = pos[e['protein2']]
ax.plot([x1,x2],[y1,y2], color='#888', alpha=0.3+0.5*e.get('score',0))
for name,(x,y) in pos.items():
ax.scatter([x],[y], s=450, color='#ffd54f', edgecolors='#333', zorder=3)
ax.annotate(name, (x,y), ha='center', va='center', fontsize=8, fontweight='bold', zorder=4)
ax.set_aspect('equal'); ax.axis('off')
ax.set_title(f'STRING PPI network ({len(ppi)} edges)')
plt.tight_layout(); plt.show()
4. Reactome pathway footprint¶
pw_rows = [{'gene': 'ACSL4', 'n_pathways': 2, 'top_pathway': 'Intracellular metabolism of fatty acids regulates insulin secretion'}, {'gene': 'ALOX15', 'n_pathways': 8, 'top_pathway': 'Synthesis of Leukotrienes (LT) and Eoxins (EX)'}, {'gene': 'APOE', 'n_pathways': 8, 'top_pathway': 'Nuclear signaling by ERBB4'}, {'gene': 'CLDN5', 'n_pathways': 2, 'top_pathway': 'Tight junction interactions'}, {'gene': 'GENES', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'LPCAT3', 'n_pathways': 3, 'top_pathway': 'Acyl chain remodelling of PC'}, {'gene': 'MAPT', 'n_pathways': 3, 'top_pathway': 'Caspase-mediated cleavage of cytoskeletal proteins'}, {'gene': 'PARP1', 'n_pathways': 8, 'top_pathway': 'POLB-Dependent Long Patch Base Excision Repair'}, {'gene': 'PPARA', 'n_pathways': 8, 'top_pathway': 'BMAL1:CLOCK,NPAS2 activates circadian expression'}, {'gene': 'REGIONAL', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'SIRT3', 'n_pathways': 5, 'top_pathway': 'Transcriptional activation of mitochondrial biogenesis'}, {'gene': 'SLC16A1', 'n_pathways': 4, 'top_pathway': 'Basigin interactions'}, {'gene': 'TREM2', 'n_pathways': 4, 'top_pathway': 'Immunoregulatory interactions between a Lymphoid and a non-Lymphoid ce'}, {'gene': 'VULNERABILITY', 'n_pathways': 0, 'top_pathway': '—'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 1 | ALOX15 | 8 | Synthesis of Leukotrienes (LT) and Eoxins (EX) |
| 2 | APOE | 8 | Nuclear signaling by ERBB4 |
| 8 | PPARA | 8 | BMAL1:CLOCK,NPAS2 activates circadian expression |
| 7 | PARP1 | 8 | POLB-Dependent Long Patch Base Excision Repair |
| 10 | SIRT3 | 5 | Transcriptional activation of mitochondrial bi... |
| 11 | SLC16A1 | 4 | Basigin interactions |
| 12 | TREM2 | 4 | Immunoregulatory interactions between a Lympho... |
| 6 | MAPT | 3 | Caspase-mediated cleavage of cytoskeletal prot... |
| 5 | LPCAT3 | 3 | Acyl chain remodelling of PC |
| 0 | ACSL4 | 2 | Intracellular metabolism of fatty acids regula... |
| 3 | CLDN5 | 2 | Tight junction interactions |
| 4 | GENES | 0 | — |
| 9 | REGIONAL | 0 | — |
| 13 | VULNERABILITY | 0 | — |
5. Hypothesis ranking (18 hypotheses)¶
hyp_data = [('ACSL4-Driven Ferroptotic Priming in Disease-Associated ', 0.847), ('40 Hz Gamma Entrainment Gates ACSL4-Mediated Ferroptoti', 0.801), ('ACSL4-Ferroptotic Priming in Stressed Oligodendrocytes ', 0.801), ('Microglial TREM2-SYK Pathway Enhancement', 0.798), ('ACSL4-Driven Ferroptotic Priming in Disease-Associated ', 0.779), ('LPCAT3-Mediated Lands Cycle Remodeling as the Primary F', 0.779), ('ALOX15-Driven Enzymatic Ferroptosis in AD Oligodendrocy', 0.777), ('LPCAT3-Mediated Lands Cycle Amplification of Ferroptoti', 0.776), ('LPCAT3-Mediated Lands Cycle Amplification of Ferroptoti', 0.77), ('SIRT3-Mediated Mitochondrial Deacetylation Failure with', 0.738), ('Disease-Associated Microglia Metabolic Reprogramming', 0.718), ('Vascular-Glial Interface Restoration', 0.716), ('Selective Tau Kinase Inhibition in Vulnerable Neuronal ', 0.676), ('Astrocyte MCT1/MCT4 Ratio Disruption with Metabolic Unc', 0.668), ('Astrocyte APOE4-Specific Lipid Metabolism Correction', 0.651), ('Cell-Type Specific Metabolic Reprogramming', 0.643), ('Spatially-Targeted Regional Vulnerability Prevention', 0.616), ('Oligodendrocyte DNA Repair Enhancement', 0.55)]
titles = [h[0] for h in hyp_data][::-1]
scores = [h[1] for h in hyp_data][::-1]
fig, ax = plt.subplots(figsize=(10, max(8, len(titles)*0.4)))
colors = ['#ef5350' if s >= 0.6 else '#ffa726' if s >= 0.5 else '#66bb6a' for s in scores]
ax.barh(range(len(titles)), scores, color=colors)
ax.set_yticks(range(len(titles))); ax.set_yticklabels(titles, fontsize=7)
ax.set_xlabel('Composite Score'); ax.set_title('Cell type vulnerability in Alzheimers Disease (SEA-AD transcriptomic data)')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['ACSL4-Driven Ferroptotic Priming in Dise', '40 Hz Gamma Entrainment Gates ACSL4-Medi', 'ACSL4-Ferroptotic Priming in Stressed Ol', 'Microglial TREM2-SYK Pathway Enhancement', 'ACSL4-Driven Ferroptotic Priming in Dise', 'LPCAT3-Mediated Lands Cycle Remodeling a', 'ALOX15-Driven Enzymatic Ferroptosis in A', 'LPCAT3-Mediated Lands Cycle Amplificatio', 'LPCAT3-Mediated Lands Cycle Amplificatio', 'SIRT3-Mediated Mitochondrial Deacetylati']
matrix = np.array([[0.85, 0.75, 0.85, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.6, 0.7, 0.8, 0.8, 0.0, 0.7, 0.7, 0.8, 0.6], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.36, 0.0, 0.0, 0.0, 0.0], [0.7, 0.65, 0.72, 0.0, 0.272, 0.0, 0.0, 0.0, 0.0]])
dims = ['novelty_score', 'feasibility_score', 'impact_score', 'mechanistic_plausibility_score', 'clinical_relevance_score', 'data_availability_score', 'reproducibility_score', 'druggability_score', 'safety_profile_score']
if matrix.size:
fig, ax = plt.subplots(figsize=(10, 5))
im = ax.imshow(matrix, cmap='RdYlGn', aspect='auto', vmin=0, vmax=1)
ax.set_xticks(range(len(dims)))
ax.set_xticklabels([d.replace('_score','').replace('_',' ').title() for d in dims],
rotation=45, ha='right', fontsize=8)
ax.set_yticks(range(len(labels))); ax.set_yticklabels(labels, fontsize=7)
ax.set_title('Score dimensions — hypotheses')
plt.colorbar(im, ax=ax, shrink=0.8)
plt.tight_layout(); plt.show()
else:
print('No score data available')
6. PubMed literature per hypothesis¶
Hypothesis 1: ACSL4-Driven Ferroptotic Priming in Disease-Associated Microglia¶
Target genes: ACSL4 · Composite score: 0.847
1. Molecular Mechanism and Rationale¶
ACSL4 (acyl-CoA synthetase long-chain family member 4) catalyzes the esterification of arachidonic acid (AA, C20:4) and adrenic acid (AdA, C22:4) into membrane phospholipids, specifically phosphatidylethanolamines (PE-AA and PE-AdA). These polyunsaturated fat
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 2: 40 Hz Gamma Entrainment Gates ACSL4-Mediated Ferroptotic Priming to Se¶
Target genes: ACSL4 · Composite score: 0.801
Molecular Mechanism and Rationale¶
The core mechanism centers on ACSL4 (Acyl-CoA Synthetase Long Chain Family Member 4) as a critical enzyme that converts polyunsaturated fatty acids (PUFAs) into acyl-CoA derivatives, which are subsequently incorporated into phosphatidylethanolamine (PE) membrane
print('No PubMed results for hypothesis h-var-261452bfb4')
No PubMed results for hypothesis h-var-261452bfb4
Hypothesis 3: ACSL4-Ferroptotic Priming in Stressed Oligodendrocytes Drives White Ma¶
Target genes: ACSL4 · Composite score: 0.801
Molecular Mechanism and Rationale¶
ACSL4 (Acyl-CoA Synthetase Long Chain Family Member 4) catalyzes the conversion of polyunsaturated fatty acids, particularly arachidonic acid (AA) and adrenic acid (AdA), into their respective acyl-CoA derivatives for subsequent incorporation into phosphatidylet
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 4: Microglial TREM2-SYK Pathway Enhancement¶
Target genes: TREM2 · Composite score: 0.798
Microglial TREM2-SYK Pathway Enhancement in Neurodegeneration¶
Mechanistic Basis¶
The triggering receptor expressed on myeloid cells 2 (TREM2) is a surface receptor predominantly expressed on microglia and other tissue-resident macrophages. Extensive genetic evidence ties TREM2 to Alzheimer's
print('No PubMed results for hypothesis h-48858e2a')
No PubMed results for hypothesis h-48858e2a
Hypothesis 5: ACSL4-Driven Ferroptotic Priming in Disease-Associated Oligodendrocyte¶
Target genes: ACSL4 · Composite score: 0.779
Molecular Mechanism and Rationale¶
ACSL4 (Acyl-CoA Synthetase Long Chain Family Member 4) catalyzes the ATP-dependent esterification of arachidonic acid (AA) and other long-chain polyunsaturated fatty acids (PUFAs) into phosphatidylethanolamine (PE) and phosphatidylserine pools, creating lipid pe
print('No PubMed results for hypothesis h-var-f96e38ec20')
No PubMed results for hypothesis h-var-f96e38ec20
Hypothesis 6: LPCAT3-Mediated Lands Cycle Remodeling as the Primary Ferroptotic Prim¶
Target genes: LPCAT3 · Composite score: 0.779
Molecular Mechanism and Rationale¶
LPCAT3-mediated Lands cycle remodeling represents a critical regulatory node for membrane PUFA incorporation that operates through direct lysophospholipid acylation, bypassing the energy-intensive CoA-ligation step required by ACSL4-dependent de novo synthesis.
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 7: ALOX15-Driven Enzymatic Ferroptosis in AD Oligodendrocytes via PUFA-PE¶
Target genes: ALOX15 · Composite score: 0.777
Molecular Mechanism and Rationale¶
ALOX15 (15-lipoxygenase) catalyzes the stereospecific oxygenation of polyunsaturated fatty acids (PUFAs) esterified to phosphatidylethanolamine (PE) at the sn-2 position, generating 15-hydroperoxyeicosatetraenoic acid-PE (15-HpETE-PE) and other lipid hydroperoxi
print('No PubMed results for hypothesis h-var-97b18b880d')
No PubMed results for hypothesis h-var-97b18b880d
Hypothesis 8: LPCAT3-Mediated Lands Cycle Amplification of Ferroptotic Substrate Poo¶
Target genes: LPCAT3 · Composite score: 0.776
Molecular Mechanism and Rationale¶
LPCAT3 catalyzes the selective reacylation of lysophosphatidylcholine (LPC) and lysophosphatidylethanolamine (LPE) with polyunsaturated fatty acids, particularly arachidonic acid (AA, 20:4) and adrenic acid (AdA, 22:4), through the Lands cycle pathway. This enzy
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 9: LPCAT3-Mediated Lands Cycle Amplification of Ferroptotic Vulnerability¶
Target genes: LPCAT3 · Composite score: 0.77
Molecular Mechanism and Rationale¶
LPCAT3-mediated ferroptotic vulnerability in disease-associated microglia operates through a sophisticated remodeling mechanism within the Lands cycle pathway. Unlike de novo phospholipid synthesis, LPCAT3 catalyzes the reacylation of lysophosphatidylcholine (LP
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 10: SIRT3-Mediated Mitochondrial Deacetylation Failure with PINK1/Parkin M¶
Target genes: SIRT3 · Composite score: 0.738
1. Molecular Mechanism and Rationale¶
SIRT3 is the primary mitochondrial NAD⁺-dependent deacetylase, responsible for maintaining the activity of over 100 mitochondrial proteins through lysine deacetylation. In cortical projection neurons—particularly Layer II/III excitatory neurons of the entorhi
print('No PubMed results for hypothesis h-seaad-v4-5a7a4079')
No PubMed results for hypothesis h-seaad-v4-5a7a4079
Hypothesis 11: Disease-Associated Microglia Metabolic Reprogramming¶
Target genes: TREM2 · Composite score: 0.718
Disease-Associated Microglia Metabolic Reprogramming via TREM2-mTOR Axis Modulation¶
Introduction and Background¶
Neurodegenerative diseases, including Alzheimer's disease (AD), Parkinson's disease (PD), and amyotrophic lateral sclerosis (ALS), share a common pathological hallmark: the progress
print('No PubMed results for hypothesis h-2531ed61')
No PubMed results for hypothesis h-2531ed61
Hypothesis 12: Vascular-Glial Interface Restoration¶
Target genes: CLDN5 · Composite score: 0.716
Vascular-Glial Interface Restoration as a Therapeutic Target in Neurodegeneration¶
Introduction and Conceptual Framework¶
The blood-brain barrier (BBB) represents a highly specialized interface where vascular cells—endothelial cells, pericytes, and surrounding glial populations—coordinate to ma
print('No PubMed results for hypothesis h-6cfb4671')
No PubMed results for hypothesis h-6cfb4671
Hypothesis 13: Selective Tau Kinase Inhibition in Vulnerable Neuronal Subtypes¶
Target genes: MAPT · Composite score: 0.676
Background and Rationale
Alzheimer's disease (AD) and related tauopathies are characterized by the progressive accumulation of hyperphosphorylated tau protein into neurofibrillary tangles (NFTs), leading to neuronal dysfunction and death. The microtubule-associated protein tau (MAPT) plays a cr
print('No PubMed results for hypothesis h-3fdee932')
No PubMed results for hypothesis h-3fdee932
Hypothesis 14: Astrocyte MCT1/MCT4 Ratio Disruption with Metabolic Uncoupling¶
Target genes: SLC16A1 · Composite score: 0.668
1. Molecular Mechanism and Rationale¶
The astrocyte-neuron lactate shuttle (ANLS) is a fundamental metabolic coupling mechanism where astrocytes convert glucose to lactate via aerobic glycolysis and export it to neurons for oxidative metabolism. This metabolic symbiosis depends critically on two
print('No PubMed results for hypothesis h-seaad-v4-29e81bbc')
No PubMed results for hypothesis h-seaad-v4-29e81bbc
Hypothesis 15: Astrocyte APOE4-Specific Lipid Metabolism Correction¶
Target genes: APOE · Composite score: 0.651
Astrocyte APOE4-Specific Lipid Metabolism Correction¶
Hypothesis Expansion¶
APOE4 (apolipoprotein E4), the strongest genetic risk factor for late-onset Alzheimer's disease (AD), exerts its pathogenic effects through cell-type-specific mechanisms that extend far beyond its canonical role in amyl
lit_data = [{'year': '2025', 'journal': 'Phytomedicine', 'title': 'Integrating metagenomics, lipidomics and proteomics to explore the effect and me', 'pmid': '41014671'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
1 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2025 | Phytomedicine | Integrating metagenomics, lipidomics and prote... | 41014671 |
Hypothesis 16: Cell-Type Specific Metabolic Reprogramming¶
Target genes: PPARA · Composite score: 0.643
Background and Rationale
Neurodegeneration represents a complex pathological process characterized by the progressive loss of neuronal structure and function, ultimately leading to cognitive and motor impairments. While traditionally viewed through the lens of protein aggregation and neuronal d
print('No PubMed results for hypothesis h-b34120a1')
No PubMed results for hypothesis h-b34120a1
Hypothesis 17: Spatially-Targeted Regional Vulnerability Prevention¶
Target genes: Regional vulnerability genes · Composite score: 0.616
Background and Rationale
Neurodegenerative diseases exhibit remarkable spatial and cellular selectivity in their pathological progression, with specific brain regions showing differential vulnerability patterns that cannot be explained by uniform disease processes alone. Recent advances in sing
print('No PubMed results for hypothesis h-80ff3fd6')
No PubMed results for hypothesis h-80ff3fd6
Hypothesis 18: Oligodendrocyte DNA Repair Enhancement¶
Target genes: PARP1 · Composite score: 0.55
Oligodendrocyte DNA Repair Enhancement¶
Mechanistic Foundation¶
Oligodendrocytes represent one of the most metabolically demanding cell types in the central nervous system, synthesizing approximately 3 million meters of myelin membrane per neuron during development and maintaining this elaborat
print('No PubMed results for hypothesis h-43ec636e')
No PubMed results for hypothesis h-43ec636e
7. Knowledge graph edges (215 total)¶
edge_data = [{'source': 'neuron', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.9}, {'source': 'DAM', 'relation': 'associated_with', 'target': 'microglia', 'strength': 0.85}, {'source': 'excitatory_neuron', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.85}, {'source': 'microglia', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.85}, {'source': 'ACSL4', 'relation': 'associated_with', 'target': "Alzheimer's Disease", 'strength': 0.82}, {'source': 'ACSL4', 'relation': 'participates_in', 'target': 'ferroptosis', 'strength': 0.82}, {'source': 'inhibitory_neuron', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.8}, {'source': 'reactive_astrocyte', 'relation': 'associated_with', 'target': 'astrocyte', 'strength': 0.8}, {'source': 'astrocyte', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.8}, {'source': 'oligodendrocyte', 'relation': 'implicated_in', 'target': "Alzheimer's disease", 'strength': 0.75}, {'source': 'OPC', 'relation': 'associated_with', 'target': 'oligodendrocyte', 'strength': 0.75}, {'source': 'diseases-atypical-parkinsonism', 'relation': 'investigated_in', 'target': 'h-b34120a1', 'strength': 0.75}, {'source': 'CLDN5', 'relation': 'maintains', 'target': 'blood_brain_barrier', 'strength': 0.7}, {'source': 'APOE4', 'relation': 'dysregulates', 'target': 'cholesterol_metabolism', 'strength': 0.7}, {'source': 'microglia', 'relation': 'performs', 'target': 'amyloid_clearance', 'strength': 0.7}, {'source': 'oligodendrocytes', 'relation': 'vulnerable_to', 'target': 'myelin_breakdown', 'strength': 0.7}, {'source': 'astrocytes', 'relation': 'regulates', 'target': 'lipid_metabolism', 'strength': 0.7}, {'source': 'MAPT', 'relation': 'phosphorylated_by', 'target': 'GSK3B', 'strength': 0.7}, {'source': 'SIRT3', 'relation': 'associated_with', 'target': "Alzheimer's Disease", 'strength': 0.68}, {'source': 'SIRT3', 'relation': 'participates_in', 'target': 'mitochondrial quality control', 'strength': 0.68}, {'source': 'ACSL4', 'relation': 'promoted: ACSL4-Driven Fe', 'target': "Alzheimer's Disease", 'strength': 0.64}, {'source': 'SLC16A1', 'relation': 'associated_with', 'target': "Alzheimer's Disease", 'strength': 0.58}, {'source': 'SLC16A1', 'relation': 'participates_in', 'target': 'astrocyte-neuron lactate shutt', 'strength': 0.58}, {'source': 'h-seaad-v4-29e81bbc', 'relation': 'targets', 'target': 'SLC16A1', 'strength': 0.5}, {'source': 'h-seaad-v4-26ba859b', 'relation': 'targets', 'target': 'ACSL4', 'strength': 0.5}]
if edge_data:
pd.DataFrame(edge_data).head(25)
else:
print('No KG edge data available')
Caveats¶
This notebook uses real Forge tool calls from live APIs:
- Enrichment is against curated gene-set libraries (Enrichr)
- STRING/Reactome/HPA/MyGene reflect curated knowledge
- PubMed literature is search-relevance ranked, not systematic review