Ferroptosis in ALS and motor neuron disease: GPX4, lipid peroxidation, and iron chelation therapies¶
Notebook ID: nb-SDA-2026-04-16-gap-ferroptosis-als-d2fb6bf796ed · Analysis: SDA-2026-04-16-gap-ferroptosis-als-d2fb6bf796ed · Generated: 2026-04-21T18:44:55
Research question¶
Iron-dependent cell death (ferroptosis) as a mechanism in ALS and motor neuron diseases. Focus on GPX4 (glutathione peroxidase 4), lipid peroxidation, system Xc- cystine/glutamate antiporter, and iron chelation therapies.
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.589 · Rounds: 5
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'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': 'BH4', 'name': 'sepiapterin reductase', 'summary': 'This gene encodes an aldo-keto reductase that catalyzes the NADPH-dependent reduction of pteridine derivatives and is im'}, {'gene': 'GCH1', 'name': 'GTP cyclohydrolase 1', 'summary': 'This gene encodes a member of the GTP cyclohydrolase family. The encoded protein is the first and rate-limiting enzyme i'}, {'gene': 'GPX4', 'name': 'glutathione peroxidase 4', 'summary': 'The protein encoded by this gene belongs to the glutathione peroxidase family, members of which catalyze the reduction o'}, {'gene': 'HFE', 'name': 'homeostatic iron regulator', 'summary': 'The protein encoded by this gene is a membrane protein that is similar to MHC class I-type proteins and associates with '}, {'gene': 'KEAP1', 'name': 'kelch like ECH associated protein 1', 'summary': 'This gene encodes a cytoplasmic regulatory protein that plays a role in the cellular response to oxidative and electroph'}, {'gene': 'NCOA4', 'name': 'nuclear receptor coactivator 4', 'summary': 'This gene encodes an androgen receptor coactivator. The encoded protein interacts with the androgen receptor in a ligand'}, {'gene': 'NRF2', 'name': 'NRF2 regulation associated lncRNA', 'summary': '—'}, {'gene': 'SELENOP', 'name': 'selenoprotein P', 'summary': 'This gene encodes a selenoprotein that is predominantly expressed in the liver and secreted into the plasma. This seleno'}, {'gene': 'SLC7A11', 'name': 'solute carrier family 7 member 11', 'summary': 'This gene encodes a member of a heteromeric, sodium-independent, anionic amino acid transport system that is highly spec'}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | ALOX15 | arachidonate 15-lipoxygenase | This gene encodes a member of the lipoxygenase... |
| 1 | BH4 | sepiapterin reductase | This gene encodes an aldo-keto reductase that ... |
| 2 | GCH1 | GTP cyclohydrolase 1 | This gene encodes a member of the GTP cyclohyd... |
| 3 | GPX4 | glutathione peroxidase 4 | The protein encoded by this gene belongs to th... |
| 4 | HFE | homeostatic iron regulator | The protein encoded by this gene is a membrane... |
| 5 | KEAP1 | kelch like ECH associated protein 1 | This gene encodes a cytoplasmic regulatory pro... |
| 6 | NCOA4 | nuclear receptor coactivator 4 | This gene encodes an androgen receptor coactiv... |
| 7 | NRF2 | NRF2 regulation associated lncRNA | — |
| 8 | SELENOP | selenoprotein P | This gene encodes a selenoprotein that is pred... |
| 9 | SLC7A11 | solute carrier family 7 member 11 | This gene encodes a member of a heteromeric, s... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Lipoxygenase Pathway (GO:0019372)', 'p_value': 4.71859981396871e-06, 'odds_ratio': 999.25, 'genes': ['GPX4', 'ALOX15']}, {'rank': 2, 'term': 'Long-Chain Fatty Acid Biosynthetic Process (GO:0042759)', 'p_value': 6.70875366203682e-05, 'odds_ratio': 217.0326086956522, 'genes': ['GPX4', 'ALOX15']}, {'rank': 3, 'term': 'Unsaturated Fatty Acid Metabolic Process (GO:0033559)', 'p_value': 0.00026130779010617516, 'odds_ratio': 106.07978723404256, 'genes': ['GPX4', 'ALOX15']}, {'rank': 4, 'term': 'Icosanoid Metabolic Process (GO:0006690)', 'p_value': 0.00029440241859604355, 'odds_ratio': 99.7, 'genes': ['GPX4', 'ALOX15']}, {'rank': 5, 'term': 'Arachidonic Acid Metabolic Process (GO:0019369)', 'p_value': 0.00029440241859604355, 'odds_ratio': 99.7, 'genes': ['GPX4', 'ALOX15']}, {'rank': 6, 'term': 'Fatty Acid Biosynthetic Process (GO:0006633)', 'p_value': 0.00046021034561651085, 'odds_ratio': 79.07539682539682, 'genes': ['GPX4', 'ALOX15']}, {'rank': 7, 'term': 'Long-Chain Fatty Acid Metabolic Process (GO:0001676)', 'p_value': 0.0006621298425578926, 'odds_ratio': 65.50657894736842, 'genes': ['GPX4', 'ALOX15']}, {'rank': 8, 'term': 'Regulation Of Proteasomal Ubiquitin-Dependent Protein Catabolic Process (GO:0032434)', 'p_value': 0.0012871159553875, 'odds_ratio': 46.455607476635514, 'genes': ['HFE', 'KEAP1']}, {'rank': 9, 'term': 'Fatty Acid Metabolic Process (GO:0006631)', 'p_value': 0.0016084465825751896, 'odds_ratio': 41.395833333333336, 'genes': ['GPX4', 'ALOX15']}, {'rank': 10, 'term': 'Cellular Response To Metal Ion (GO:0071248)', 'p_value': 0.001964236966804282, 'odds_ratio': 37.32518796992481, 'genes': ['HFE', 'ALOX15']}]
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 | Lipoxygenase Pathway (GO:0019372) | 2 | 4.72e-06 | 999.2 | GPX4, ALOX15 |
| 1 | Long-Chain Fatty Acid Biosynthetic Process (GO... | 2 | 6.71e-05 | 217.0 | GPX4, ALOX15 |
| 2 | Unsaturated Fatty Acid Metabolic Process (GO:0... | 2 | 2.61e-04 | 106.1 | GPX4, ALOX15 |
| 3 | Icosanoid Metabolic Process (GO:0006690) | 2 | 2.94e-04 | 99.7 | GPX4, ALOX15 |
| 4 | Arachidonic Acid Metabolic Process (GO:0019369) | 2 | 2.94e-04 | 99.7 | GPX4, ALOX15 |
| 5 | Fatty Acid Biosynthetic Process (GO:0006633) | 2 | 4.60e-04 | 79.1 | GPX4, ALOX15 |
| 6 | Long-Chain Fatty Acid Metabolic Process (GO:00... | 2 | 6.62e-04 | 65.5 | GPX4, ALOX15 |
| 7 | Regulation Of Proteasomal Ubiquitin-Dependent ... | 2 | 1.29e-03 | 46.5 | HFE, KEAP1 |
| 8 | Fatty Acid Metabolic Process (GO:0006631) | 2 | 1.61e-03 | 41.4 | GPX4, ALOX15 |
| 9 | Cellular Response To Metal Ion (GO:0071248) | 2 | 1.96e-03 | 37.3 | HFE, ALOX15 |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Lipoxygenase Pathway (GO:0019372)', 'p_value': 4.71859981396871e-06, 'odds_ratio': 999.25, 'genes': ['GPX4', 'ALOX15']}, {'rank': 2, 'term': 'Long-Chain Fatty Acid Biosynthetic Process (GO:0042759)', 'p_value': 6.70875366203682e-05, 'odds_ratio': 217.0326086956522, 'genes': ['GPX4', 'ALOX15']}, {'rank': 3, 'term': 'Unsaturated Fatty Acid Metabolic Process (GO:0033559)', 'p_value': 0.00026130779010617516, 'odds_ratio': 106.07978723404256, 'genes': ['GPX4', 'ALOX15']}, {'rank': 4, 'term': 'Icosanoid Metabolic Process (GO:0006690)', 'p_value': 0.00029440241859604355, 'odds_ratio': 99.7, 'genes': ['GPX4', 'ALOX15']}, {'rank': 5, 'term': 'Arachidonic Acid Metabolic Process (GO:0019369)', 'p_value': 0.00029440241859604355, 'odds_ratio': 99.7, 'genes': ['GPX4', 'ALOX15']}, {'rank': 6, 'term': 'Fatty Acid Biosynthetic Process (GO:0006633)', 'p_value': 0.00046021034561651085, 'odds_ratio': 79.07539682539682, 'genes': ['GPX4', 'ALOX15']}, {'rank': 7, 'term': 'Long-Chain Fatty Acid Metabolic Process (GO:0001676)', 'p_value': 0.0006621298425578926, 'odds_ratio': 65.50657894736842, 'genes': ['GPX4', 'ALOX15']}, {'rank': 8, 'term': 'Regulation Of Proteasomal Ubiquitin-Dependent Protein Catabolic Process (GO:0032434)', 'p_value': 0.0012871159553875, 'odds_ratio': 46.455607476635514, 'genes': ['HFE', 'KEAP1']}]
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-5ok_8h0b 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': 'GABPA', 'protein2': 'KEAP1', 'score': 0.457, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.457, 'dscore': 0, '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)
1 STRING edges
| protein1 | protein2 | score | escore | tscore | |
|---|---|---|---|---|---|
| 0 | GABPA | KEAP1 | 0.457 | 0.457 | 0 |
import math
ppi = [{'protein1': 'GABPA', 'protein2': 'KEAP1', 'score': 0.457, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.457, 'dscore': 0, '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': 'ALOX15', 'n_pathways': 8, 'top_pathway': 'Synthesis of Leukotrienes (LT) and Eoxins (EX)'}, {'gene': 'BH4', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'GCH1', 'n_pathways': 1, 'top_pathway': 'Tetrahydrobiopterin (BH4) synthesis, recycling, salvage and regulation'}, {'gene': 'GPX4', 'n_pathways': 7, 'top_pathway': 'Synthesis of 5-eicosatetraenoic acids'}, {'gene': 'HFE', 'n_pathways': 1, 'top_pathway': 'Transferrin endocytosis and recycling'}, {'gene': 'KEAP1', 'n_pathways': 6, 'top_pathway': 'Ub-specific processing proteases'}, {'gene': 'NCOA4', 'n_pathways': 1, 'top_pathway': 'MLL4 and MLL3 complexes regulate expression of PPARG target genes in a'}, {'gene': 'NRF2', 'n_pathways': 8, 'top_pathway': 'Neddylation'}, {'gene': 'SELENOP', 'n_pathways': 1, 'top_pathway': 'Platelet degranulation'}, {'gene': 'SLC7A11', 'n_pathways': 3, 'top_pathway': 'Basigin interactions'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 0 | ALOX15 | 8 | Synthesis of Leukotrienes (LT) and Eoxins (EX) |
| 7 | NRF2 | 8 | Neddylation |
| 3 | GPX4 | 7 | Synthesis of 5-eicosatetraenoic acids |
| 5 | KEAP1 | 6 | Ub-specific processing proteases |
| 9 | SLC7A11 | 3 | Basigin interactions |
| 4 | HFE | 1 | Transferrin endocytosis and recycling |
| 6 | NCOA4 | 1 | MLL4 and MLL3 complexes regulate expression of... |
| 2 | GCH1 | 1 | Tetrahydrobiopterin (BH4) synthesis, recycling... |
| 8 | SELENOP | 1 | Platelet degranulation |
| 1 | BH4 | 0 | — |
5. Hypothesis ranking (7 hypotheses)¶
hyp_data = [('GPX4 Selenopeptide Mimetics as Neuroprotective Ferropto', 0.68), ('NRF2-KEAP1 Pathway Activation to Coordinate Multi-Layer', 0.65), ('Microglial xCT/SLC7A11 Selective Inhibition to Reduce N', 0.62), ('ALOX15 Inhibition Combined with Selenium Augmentation f', 0.58), ('GCH1/BH4 Axis Stabilization for Dual Ferroptosis and Mi', 0.56), ('H63D HFE Genotype-Guided Iron Chelation Therapy for Sub', 0.55), ('FUS-ALS-Specific Ferroptosis Vulnerability Through NCOA', 0.48)]
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('Ferroptosis in ALS and motor neuron disease: GPX4, lipid peroxidation, and iron chelation therapies')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['GPX4 Selenopeptide Mimetics as Neuroprot', 'NRF2-KEAP1 Pathway Activation to Coordin', 'Microglial xCT/SLC7A11 Selective Inhibit', 'ALOX15 Inhibition Combined with Selenium', 'GCH1/BH4 Axis Stabilization for Dual Fer', 'H63D HFE Genotype-Guided Iron Chelation ', 'FUS-ALS-Specific Ferroptosis Vulnerabili']
matrix = np.array([[0.65, 0.52, 0.68, 0.82, 0.0, 0.7, 0.75, 0.48, 0.55], [0.5, 0.58, 0.65, 0.78, 0.0, 0.72, 0.68, 0.75, 0.6], [0.55, 0.42, 0.62, 0.7, 0.0, 0.68, 0.65, 0.6, 0.45], [0.7, 0.38, 0.58, 0.72, 0.0, 0.55, 0.6, 0.45, 0.5], [0.75, 0.32, 0.56, 0.65, 0.0, 0.52, 0.55, 0.35, 0.48], [0.6, 0.55, 0.55, 0.58, 0.0, 0.45, 0.42, 0.65, 0.5], [0.8, 0.25, 0.48, 0.55, 0.0, 0.38, 0.4, 0.28, 0.35]])
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: GPX4 Selenopeptide Mimetics as Neuroprotective Ferroptosis Blockade¶
Target genes: GPX4 · Composite score: 0.68
Glutathione peroxidase 4 (GPX4) represents a critical enzymatic gatekeeper against ferroptosis, a regulated cell death pathway characterized by iron-dependent lipid peroxidation that has emerged as a central mechanism in amyotrophic lateral sclerosis (ALS) pathogenesis. This hypothesis proposes that
lit_data = [{'year': '2023', 'journal': 'Cell Death Differ', 'title': 'SPY1 inhibits neuronal ferroptosis in amyotrophic lateral sclerosis by reducing ', 'pmid': '36443440'}]
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 | 2023 | Cell Death Differ | SPY1 inhibits neuronal ferroptosis in amyotrop... | 36443440 |
Hypothesis 2: NRF2-KEAP1 Pathway Activation to Coordinate Multi-Layer Antioxidant De¶
Target genes: NRF2 (NFE2L2), KEAP1 · Composite score: 0.65
The Nrf2 transcription factor regulates >200 antioxidant response element (ARE)-containing genes including GPX4, SLC7A11, HO-1, and ferritin. KEAP1-NRF2 signaling is impaired in ALS, creating a permissive environment for ferroptosis. Nrf2 activators could simultaneously upregulate multiple ferroptos
print('No PubMed results for hypothesis h-64c36c7c')
No PubMed results for hypothesis h-64c36c7c
Hypothesis 3: Microglial xCT/SLC7A11 Selective Inhibition to Reduce Non-Cell-Autonom¶
Target genes: SLC7A11 · Composite score: 0.62
System xC- (SLC7A11) is specifically expressed in microglia but not motor neurons, driving excessive glutamate release contributing to excitotoxicity. Consistent with this, xCT expression is enriched in microglia compared to total spinal cord, and xCT levels increase in spinal cord and isolated micr
print('No PubMed results for hypothesis h-aecdf76b')
No PubMed results for hypothesis h-aecdf76b
Hypothesis 4: ALOX15 Inhibition Combined with Selenium Augmentation for Synergistic¶
Target genes: ALOX15, SELENOP · Composite score: 0.58
15-lipoxygenase (ALOX15) catalyzes peroxidation of arachidonic acid-containing phospholipids, a key step in ferroptosis execution. Combined pharmacological inhibition of ALOX15 plus selenium supplementation to augment selenoprotein biosynthesis would provide synergistic blockade at both initiation a
print('No PubMed results for hypothesis h-d645402b')
No PubMed results for hypothesis h-d645402b
Hypothesis 5: GCH1/BH4 Axis Stabilization for Dual Ferroptosis and Mitochondrial Pro¶
Target genes: GCH1, BH4 · Composite score: 0.56
The GCH1 (GTP cyclohydrolase 1)/tetrahydrobiopterin (BH4) pathway counteracts ferroptosis through lipid remodeling independent of GPX4. SPY1 activates GCH1 to suppress ferroptosis in ALS by regulating TFR1-mediated iron import. Pharmacological GCH1 activation or BH4 supplementation could provide GPX
lit_data = [{'year': '2023', 'journal': 'Cell Death Differ', 'title': 'SPY1 inhibits neuronal ferroptosis in amyotrophic lateral sclerosis by reducing ', 'pmid': '36443440'}]
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 | 2023 | Cell Death Differ | SPY1 inhibits neuronal ferroptosis in amyotrop... | 36443440 |
Hypothesis 6: H63D HFE Genotype-Guided Iron Chelation Therapy for Subset-Selected AL¶
Target genes: HFE (H63D variant) · Composite score: 0.55
The H63D mutation in HFE gene disrupts systemic iron homeostasis, leading to iron accumulation in motor neurons. Iron chelation therapy (deferiprone, deferoxamine) specifically benefits ALS patients carrying H63D genotype by reducing labile iron in the CNS.
print('No PubMed results for hypothesis h-25be864e')
No PubMed results for hypothesis h-25be864e
Hypothesis 7: FUS-ALS-Specific Ferroptosis Vulnerability Through NCOA4-Mediated Ferr¶
Target genes: NCOA4 · Composite score: 0.48
FUS mutations cause increased ferroptosis vulnerability due to impaired ferritinophagy regulation. The NCOA4-mediated ferritinophagy pathway delivers ferritin to lysosomes for iron release. In FUS-ALS, this pathway is dysregulated, leading to labile iron pool accumulation.
print('No PubMed results for hypothesis h-39c4d643')
No PubMed results for hypothesis h-39c4d643
7. Knowledge graph edges (0 total)¶
edge_data = []
if edge_data:
pd.DataFrame(edge_data).head(25)
else:
print('No KG edge data available')
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