Immune atlas neuroinflammation analysis in neurodegeneration¶
Notebook ID: nb-SDA-2026-04-03-gap-immune-atlas-neuroinflam-20260402 · Analysis: SDA-2026-04-03-gap-immune-atlas-neuroinflam-20260402 · Generated: 2026-04-20T13:46:26
Research question¶
Comprehensive analysis of immune cell subtypes in neurodegeneration: microglia subtypes (DAM, homeostatic, inflammatory), astrocyte reactivity states, T-cell infiltration. Anchor to existing TREM2 (h-b234254c, h-044ee057) and complement cascade hypotheses (h-58e4635a, h-1fe4ba9b, h-5a55aabc). Produce inflammatory pathway diagrams and generate 3-5 new hypotheses connecting immune findings to disease mechanisms.
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.85 · Rounds: 4
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'gene': 'NLRP3', 'name': 'NLR family pyrin domain containing 3', 'summary': 'This gene encodes a pyrin-like protein containing a pyrin domain, a nucleotide-binding site (NBS) domain, and a leucine-'}, {'gene': 'PINK1', 'name': 'PTEN induced kinase 1', 'summary': 'This gene encodes a serine/threonine protein kinase that localizes to mitochondria. It is thought to protect cells from '}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | NLRP3 | NLR family pyrin domain containing 3 | This gene encodes a pyrin-like protein contain... |
| 1 | PINK1 | PTEN induced kinase 1 | This gene encodes a serine/threonine protein k... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Negative Regulation Of Intracellular Signal Transduction (GO:1902532)', 'p_value': 0.0001328265947258122, 'odds_ratio': 39538.0, 'genes': ['PINK1', 'NLRP3']}, {'rank': 2, 'term': 'Positive Regulation Of T-helper 2 Cell Differentiation (GO:0045630)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 3, 'term': 'Osmosensory Signaling Pathway (GO:0007231)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 4, 'term': 'Regulation Of Protein Targeting (GO:1903533)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 5, 'term': 'Positive Regulation Of Autophagy Of Mitochondrion In Response To Mitochondrial Depolarization (GO:1904925)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 6, 'term': 'Regulation Of Type 2 Immune Response (GO:0002828)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 7, 'term': 'TORC2 Signaling (GO:0038203)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 8, 'term': 'Negative Regulation Of Acute Inflammatory Response (GO:0002674)', 'p_value': 0.000599909243874975, 'odds_ratio': 3998.6, 'genes': ['NLRP3']}, {'rank': 9, 'term': 'Positive Regulation Of Mitophagy In Response To Mitochondrial Depolarization (GO:0098779)', 'p_value': 0.000599909243874975, 'odds_ratio': 3998.6, 'genes': ['PINK1']}, {'rank': 10, 'term': 'Positive Regulation Of Intracellular Signal Transduction (GO:1902533)', 'p_value': 0.000687766998281551, 'odds_ratio': 38950.0, 'genes': ['PINK1', 'NLRP3']}]
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 | Negative Regulation Of Intracellular Signal Tr... | 2 | 1.33e-04 | 39538.0 | PINK1, NLRP3 |
| 1 | Positive Regulation Of T-helper 2 Cell Differe... | 1 | 5.00e-04 | 4998.5 | NLRP3 |
| 2 | Osmosensory Signaling Pathway (GO:0007231) | 1 | 5.00e-04 | 4998.5 | NLRP3 |
| 3 | Regulation Of Protein Targeting (GO:1903533) | 1 | 5.00e-04 | 4998.5 | PINK1 |
| 4 | Positive Regulation Of Autophagy Of Mitochondr... | 1 | 5.00e-04 | 4998.5 | PINK1 |
| 5 | Regulation Of Type 2 Immune Response (GO:0002828) | 1 | 5.00e-04 | 4998.5 | NLRP3 |
| 6 | TORC2 Signaling (GO:0038203) | 1 | 5.00e-04 | 4998.5 | PINK1 |
| 7 | Negative Regulation Of Acute Inflammatory Resp... | 1 | 6.00e-04 | 3998.6 | NLRP3 |
| 8 | Positive Regulation Of Mitophagy In Response T... | 1 | 6.00e-04 | 3998.6 | PINK1 |
| 9 | Positive Regulation Of Intracellular Signal Tr... | 2 | 6.88e-04 | 38950.0 | PINK1, NLRP3 |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Negative Regulation Of Intracellular Signal Transduction (GO:1902532)', 'p_value': 0.0001328265947258122, 'odds_ratio': 39538.0, 'genes': ['PINK1', 'NLRP3']}, {'rank': 2, 'term': 'Positive Regulation Of T-helper 2 Cell Differentiation (GO:0045630)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 3, 'term': 'Osmosensory Signaling Pathway (GO:0007231)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 4, 'term': 'Regulation Of Protein Targeting (GO:1903533)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 5, 'term': 'Positive Regulation Of Autophagy Of Mitochondrion In Response To Mitochondrial Depolarization (GO:1904925)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 6, 'term': 'Regulation Of Type 2 Immune Response (GO:0002828)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['NLRP3']}, {'rank': 7, 'term': 'TORC2 Signaling (GO:0038203)', 'p_value': 0.0004999362185987752, 'odds_ratio': 4998.5, 'genes': ['PINK1']}, {'rank': 8, 'term': 'Negative Regulation Of Acute Inflammatory Response (GO:0002674)', 'p_value': 0.000599909243874975, 'odds_ratio': 3998.6, 'genes': ['NLRP3']}]
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()
3. STRING protein interaction network¶
print('No STRING PPI data available')
No STRING PPI data available
4. Reactome pathway footprint¶
pw_rows = [{'gene': 'NLRP3', 'n_pathways': 6, 'top_pathway': 'Metalloprotease DUBs'}, {'gene': 'PINK1', 'n_pathways': 2, 'top_pathway': 'PINK1-PRKN Mediated Mitophagy'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 0 | NLRP3 | 6 | Metalloprotease DUBs |
| 1 | PINK1 | 2 | PINK1-PRKN Mediated Mitophagy |
5. Hypothesis ranking (2 hypotheses)¶
hyp_data = [('NLRP3/Mitophagy Coupling Modulation', 0.646), ('PINK1/PARK2-Mediated Mitophagy Enhancement for Neuroinf', 0.571)]
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('Immune atlas neuroinflammation analysis in neurodegeneration')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['NLRP3/Mitophagy Coupling Modulation', 'PINK1/PARK2-Mediated Mitophagy Enhanceme']
matrix = np.array([[0.7, 0.8, 0.85, 0.85, 0.0, 0.75, 0.8, 0.9, 0.8], [0.0, 0.0, 0.0, 0.85, 0.0, 0.75, 0.8, 0.9, 0.8]])
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: NLRP3/Mitophagy Coupling Modulation¶
Target genes: NLRP3 · Composite score: 0.646
NLRP3/Mitophagy Coupling Modulation in Microglia: A Mechanistic Hypothesis for Neurodegeneration Intervention¶
Introduction¶
The pathogenesis of major neurodegenerative disorders, including Alzheimer's disease (AD), Parkinson's disease (PD), and amyotrophic lateral sclerosis (ALS), converges up
lit_data = [{'year': '2019', 'journal': 'Redox Biol', 'title': 'PINK1-parkin pathway of mitophagy protects against contrast-induced acute kidney', 'pmid': '31229841'}, {'year': '2021', 'journal': 'Autophagy', 'title': 'Inhibiting NLRP3 inflammasome attenuates apoptosis in contrast-induced acute kid', 'pmid': '33345685'}, {'year': '2021', 'journal': 'Front Immunol', 'title': 'NLRP3 Deficiency Protects Against Intermittent Hypoxia-Induced Neuroinflammation', 'pmid': '33717152'}, {'year': '2023', 'journal': 'Autophagy', 'title': 'Mitochondria ROS and mitophagy in acute kidney injury.', 'pmid': '35678504'}, {'year': '2025', 'journal': 'Phytomedicine', 'title': 'Intestinal 8 gingerol attenuates TBI-induced neuroinflammation by inhibiting mic', 'pmid': '40058316'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
5 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2019 | Redox Biol | PINK1-parkin pathway of mitophagy protects aga... | 31229841 |
| 1 | 2021 | Autophagy | Inhibiting NLRP3 inflammasome attenuates apopt... | 33345685 |
| 2 | 2021 | Front Immunol | NLRP3 Deficiency Protects Against Intermittent... | 33717152 |
| 3 | 2023 | Autophagy | Mitochondria ROS and mitophagy in acute kidney... | 35678504 |
| 4 | 2025 | Phytomedicine | Intestinal 8 gingerol attenuates TBI-induced n... | 40058316 |
Hypothesis 2: PINK1/PARK2-Mediated Mitophagy Enhancement for Neuroinflammation Contr¶
Target genes: PINK1 · Composite score: 0.571
This hypothesis proposes that direct pharmacological enhancement of the PINK1/PARK2 mitophagy pathway in microglia represents a upstream therapeutic intervention to prevent NLRP3 inflammasome hyperactivation in neurodegeneration. When mitochondria become depolarized due to neuroinflammatory stress,
lit_data = [{'year': '2019', 'journal': 'Redox Biol', 'title': 'PINK1-parkin pathway of mitophagy protects against contrast-induced acute kidney', 'pmid': '31229841'}, {'year': '2021', 'journal': 'Autophagy', 'title': 'Inhibiting NLRP3 inflammasome attenuates apoptosis in contrast-induced acute kid', 'pmid': '33345685'}, {'year': '2021', 'journal': 'Front Immunol', 'title': 'NLRP3 Deficiency Protects Against Intermittent Hypoxia-Induced Neuroinflammation', 'pmid': '33717152'}, {'year': '2023', 'journal': 'Autophagy', 'title': 'Mitochondria ROS and mitophagy in acute kidney injury.', 'pmid': '35678504'}, {'year': '2025', 'journal': 'Phytomedicine', 'title': 'Intestinal 8 gingerol attenuates TBI-induced neuroinflammation by inhibiting mic', 'pmid': '40058316'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
5 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2019 | Redox Biol | PINK1-parkin pathway of mitophagy protects aga... | 31229841 |
| 1 | 2021 | Autophagy | Inhibiting NLRP3 inflammasome attenuates apopt... | 33345685 |
| 2 | 2021 | Front Immunol | NLRP3 Deficiency Protects Against Intermittent... | 33717152 |
| 3 | 2023 | Autophagy | Mitochondria ROS and mitophagy in acute kidney... | 35678504 |
| 4 | 2025 | Phytomedicine | Intestinal 8 gingerol attenuates TBI-induced n... | 40058316 |
7. Knowledge graph edges (1 total)¶
edge_data = [{'source': 'MFN2', 'relation': 'co_discussed', 'target': 'NLRP3', 'strength': 0.4}]
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