How does PIKFYVE inhibition activate unconventional protein clearance via exocytosis?¶
Notebook ID: nb-SDA-2026-04-13-gap-pubmed-20260410-143119-8ae42941 · Analysis: SDA-2026-04-13-gap-pubmed-20260410-143119-8ae42941 · Generated: 2026-04-21T18:42:43
Research question¶
The abstract describes a novel mechanism where PIKFYVE inhibition triggers exocytosis of aggregation-prone proteins, but the molecular pathway is not explained. Understanding this mechanism is critical since protein aggregation is central to ALS pathogenesis and this represents a potentially new therapeutic approach.
Gap type: unexplained_observation Source paper: PIKFYVE inhibition mitigates disease in models of diverse forms of ALS. (2023, Cell, PMID:36754049)
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.63 · Rounds: 4
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'gene': 'C9ORF72', 'name': 'C9orf72-SMCR8 complex subunit', 'summary': 'The protein encoded by this gene plays an important role in the regulation of endosomal trafficking, and has been shown '}, {'gene': 'MCOLN1', 'name': 'mucolipin TRP cation channel 1', 'summary': 'This gene encodes a memberof the transient receptor potential (TRP) cation channel gene family. The transmembrane protei'}, {'gene': 'PIKFYVE', 'name': 'phosphoinositide kinase, FYVE-type zinc finger containing', 'summary': 'Phosphorylated derivatives of phosphatidylinositol (PtdIns) regulate cytoskeletal functions, membrane trafficking, and r'}, {'gene': 'PPP3CB', 'name': 'protein phosphatase 3 catalytic subunit beta', 'summary': 'Enables several functions, including calmodulin binding activity; calmodulin-dependent protein phosphatase activity; and'}, {'gene': 'RAB7A', 'name': 'RAB7A, member RAS oncogene family', 'summary': 'RAB family members are small, RAS-related GTP-binding proteins that are important regulators of vesicular transport. Eac'}, {'gene': 'SMCR8', 'name': 'SMCR8-C9orf72 complex subunit', 'summary': 'Enables protein kinase binding activity and protein kinase inhibitor activity. Contributes to guanyl-nucleotide exchange'}, {'gene': 'TFEB', 'name': 'transcription factor EB', 'summary': 'Enables DNA-binding transcription factor activity; enzyme binding activity; and transcription cis-regulatory region bind'}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | C9ORF72 | C9orf72-SMCR8 complex subunit | The protein encoded by this gene plays an impo... |
| 1 | MCOLN1 | mucolipin TRP cation channel 1 | This gene encodes a memberof the transient rec... |
| 2 | PIKFYVE | phosphoinositide kinase, FYVE-type zinc finger... | Phosphorylated derivatives of phosphatidylinos... |
| 3 | PPP3CB | protein phosphatase 3 catalytic subunit beta | Enables several functions, including calmoduli... |
| 4 | RAB7A | RAB7A, member RAS oncogene family | RAB family members are small, RAS-related GTP-... |
| 5 | SMCR8 | SMCR8-C9orf72 complex subunit | Enables protein kinase binding activity and pr... |
| 6 | TFEB | transcription factor EB | Enables DNA-binding transcription factor activ... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Phagosome Maturation (GO:0090382)', 'p_value': 1.1922157015969443e-08, 'odds_ratio': 1248.8125, 'genes': ['PIKFYVE', 'MCOLN1', 'RAB7A']}, {'rank': 2, 'term': 'Regulation Of Autophagosome Assembly (GO:2000785)', 'p_value': 2.5792382404323026e-07, 'odds_ratio': 404.5135135135135, 'genes': ['PIKFYVE', 'SMCR8', 'C9ORF72']}, {'rank': 3, 'term': 'Regulation Of Lysosome Organization (GO:1905671)', 'p_value': 1.0494326119170083e-06, 'odds_ratio': 2665.3333333333335, 'genes': ['PPP3CB', 'MCOLN1']}, {'rank': 4, 'term': 'Negative Regulation Of Exocytosis (GO:0045920)', 'p_value': 4.71859981396871e-06, 'odds_ratio': 999.25, 'genes': ['SMCR8', 'RAB7A']}, {'rank': 5, 'term': 'Phagosome-Lysosome Fusion (GO:0090385)', 'p_value': 5.766229498988049e-06, 'odds_ratio': 888.1777777777778, 'genes': ['PIKFYVE', 'RAB7A']}, {'rank': 6, 'term': 'Phagolysosome Assembly (GO:0001845)', 'p_value': 9.535771922855927e-06, 'odds_ratio': 666.0333333333333, 'genes': ['PIKFYVE', 'RAB7A']}, {'rank': 7, 'term': 'Regulation Of Vacuole Organization (GO:0044088)', 'p_value': 1.4244198490555207e-05, 'odds_ratio': 532.7466666666667, 'genes': ['PIKFYVE', 'C9ORF72']}, {'rank': 8, 'term': 'Positive Regulation Of Vacuole Organization (GO:0044090)', 'p_value': 2.198015227094698e-05, 'odds_ratio': 420.5052631578947, 'genes': ['PPP3CB', 'MCOLN1']}, {'rank': 9, 'term': 'Axon Extension (GO:0048675)', 'p_value': 2.6472069779530597e-05, 'odds_ratio': 380.4190476190476, 'genes': ['PPP3CB', 'C9ORF72']}, {'rank': 10, 'term': 'Endocytosis (GO:0006897)', 'p_value': 2.8270157200566938e-05, 'odds_ratio': 79.86693548387096, 'genes': ['PIKFYVE', 'C9ORF72', 'RAB7A']}]
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 | Phagosome Maturation (GO:0090382) | 3 | 1.19e-08 | 1248.8 | PIKFYVE, MCOLN1, RAB7A |
| 1 | Regulation Of Autophagosome Assembly (GO:2000785) | 3 | 2.58e-07 | 404.5 | PIKFYVE, SMCR8, C9ORF72 |
| 2 | Regulation Of Lysosome Organization (GO:1905671) | 2 | 1.05e-06 | 2665.3 | PPP3CB, MCOLN1 |
| 3 | Negative Regulation Of Exocytosis (GO:0045920) | 2 | 4.72e-06 | 999.2 | SMCR8, RAB7A |
| 4 | Phagosome-Lysosome Fusion (GO:0090385) | 2 | 5.77e-06 | 888.2 | PIKFYVE, RAB7A |
| 5 | Phagolysosome Assembly (GO:0001845) | 2 | 9.54e-06 | 666.0 | PIKFYVE, RAB7A |
| 6 | Regulation Of Vacuole Organization (GO:0044088) | 2 | 1.42e-05 | 532.7 | PIKFYVE, C9ORF72 |
| 7 | Positive Regulation Of Vacuole Organization (G... | 2 | 2.20e-05 | 420.5 | PPP3CB, MCOLN1 |
| 8 | Axon Extension (GO:0048675) | 2 | 2.65e-05 | 380.4 | PPP3CB, C9ORF72 |
| 9 | Endocytosis (GO:0006897) | 3 | 2.83e-05 | 79.9 | PIKFYVE, C9ORF72, RAB7A |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Phagosome Maturation (GO:0090382)', 'p_value': 1.1922157015969443e-08, 'odds_ratio': 1248.8125, 'genes': ['PIKFYVE', 'MCOLN1', 'RAB7A']}, {'rank': 2, 'term': 'Regulation Of Autophagosome Assembly (GO:2000785)', 'p_value': 2.5792382404323026e-07, 'odds_ratio': 404.5135135135135, 'genes': ['PIKFYVE', 'SMCR8', 'C9ORF72']}, {'rank': 3, 'term': 'Regulation Of Lysosome Organization (GO:1905671)', 'p_value': 1.0494326119170083e-06, 'odds_ratio': 2665.3333333333335, 'genes': ['PPP3CB', 'MCOLN1']}, {'rank': 4, 'term': 'Negative Regulation Of Exocytosis (GO:0045920)', 'p_value': 4.71859981396871e-06, 'odds_ratio': 999.25, 'genes': ['SMCR8', 'RAB7A']}, {'rank': 5, 'term': 'Phagosome-Lysosome Fusion (GO:0090385)', 'p_value': 5.766229498988049e-06, 'odds_ratio': 888.1777777777778, 'genes': ['PIKFYVE', 'RAB7A']}, {'rank': 6, 'term': 'Phagolysosome Assembly (GO:0001845)', 'p_value': 9.535771922855927e-06, 'odds_ratio': 666.0333333333333, 'genes': ['PIKFYVE', 'RAB7A']}, {'rank': 7, 'term': 'Regulation Of Vacuole Organization (GO:0044088)', 'p_value': 1.4244198490555207e-05, 'odds_ratio': 532.7466666666667, 'genes': ['PIKFYVE', 'C9ORF72']}, {'rank': 8, 'term': 'Positive Regulation Of Vacuole Organization (GO:0044090)', 'p_value': 2.198015227094698e-05, 'odds_ratio': 420.5052631578947, 'genes': ['PPP3CB', 'MCOLN1']}]
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-8f1yb9vf 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': 'TFEB', 'protein2': 'PPP3CB', 'score': 0.483, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.301}, {'protein1': 'SMCR8', 'protein2': 'C9orf72', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.96, 'dscore': 0.8, 'tscore': 0.983}]
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)
2 STRING edges
| protein1 | protein2 | score | escore | tscore | |
|---|---|---|---|---|---|
| 1 | SMCR8 | C9orf72 | 0.999 | 0.960 | 0.983 |
| 0 | TFEB | PPP3CB | 0.483 | 0.292 | 0.301 |
import math
ppi = [{'protein1': 'TFEB', 'protein2': 'PPP3CB', 'score': 0.483, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.301}, {'protein1': 'SMCR8', 'protein2': 'C9orf72', 'score': 0.999, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.96, 'dscore': 0.8, 'tscore': 0.983}]
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': 'C9ORF72', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'MCOLN1', 'n_pathways': 2, 'top_pathway': 'TRP channels'}, {'gene': 'PIKFYVE', 'n_pathways': 3, 'top_pathway': 'Synthesis of PIPs at the Golgi membrane'}, {'gene': 'PPP3CB', 'n_pathways': 6, 'top_pathway': 'DARPP-32 events'}, {'gene': 'RAB7A', 'n_pathways': 8, 'top_pathway': 'MHC class II antigen presentation'}, {'gene': 'SMCR8', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'TFEB', 'n_pathways': 2, 'top_pathway': 'Transcriptional and post-translational regulation of MITF-M expression'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 4 | RAB7A | 8 | MHC class II antigen presentation |
| 3 | PPP3CB | 6 | DARPP-32 events |
| 2 | PIKFYVE | 3 | Synthesis of PIPs at the Golgi membrane |
| 6 | TFEB | 2 | Transcriptional and post-translational regulat... |
| 1 | MCOLN1 | 2 | TRP channels |
| 0 | C9ORF72 | 0 | — |
| 5 | SMCR8 | 0 | — |
5. Hypothesis ranking (2 hypotheses)¶
hyp_data = [('PIKFYVE Inhibition Activates Aggregate Exocytosis via P', 0.584), ('C9orf72-SMCR8-WDR41 Complex Dysfunction in C9-ALS Rescu', 0.562)]
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('How does PIKFYVE inhibition activate unconventional protein clearance via exocytosis?')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['PIKFYVE Inhibition Activates Aggregate E', 'C9orf72-SMCR8-WDR41 Complex Dysfunction ']
matrix = np.array([[0.8, 0.6, 0.55, 0.65, 0.0, 0.7, 0.6, 0.75, 0.45], [0.75, 0.5, 0.55, 0.55, 0.0, 0.55, 0.55, 0.65, 0.45]])
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: PIKFYVE Inhibition Activates Aggregate Exocytosis via PI(3,5)P2→TRPML1¶
Target genes: PIKFYVE/MCOLN1/PPP3CB/TFEB · Composite score: 0.584
PIKFYVE normally generates PI(3,5)P2 on late endosomal/lysosomal membranes, tonically suppressing TRPML1. Upon PIKFYVE inhibition, PI(3,5)P2 depletion de-represses TRPML1, triggering lysosomal Ca2+ release, calcineurin activation, TFEB nuclear translocation, and transcriptional upregulation of lysos
print('No PubMed results for hypothesis h-9025d807')
No PubMed results for hypothesis h-9025d807
Hypothesis 2: C9orf72-SMCR8-WDR41 Complex Dysfunction in C9-ALS Rescued by PIKFYVE I¶
Target genes: C9orf72/SMCR8/RAB7A/PIKFYVE · Composite score: 0.562
C9orf72 hexanucleotide repeat expansion reduces C9orf72 protein, impairing the C9orf72-SMCR8-WDR41 complex that normally facilitates autolysosome exocytosis. Loss of this complex impairs lysosomal acidification and exocytosis, causing toxic aggregate accumulation. PIKFYVE inhibition bypasses this bl
print('No PubMed results for hypothesis h-b3e97952')
No PubMed results for hypothesis h-b3e97952
7. Knowledge graph edges (6 total)¶
edge_data = [{'source': 'PIKFYVE/MCOLN1/PPP3CB/TFEB', 'relation': 'promoted: PIKFYVE Inhibit', 'target': 'neurodegeneration', 'strength': 0.56}, {'source': 'FUS', 'relation': 'co_discussed', 'target': 'LAMP1', 'strength': 0.4}, {'source': 'FUS', 'relation': 'co_discussed', 'target': 'RAB7', 'strength': 0.4}, {'source': 'FUS', 'relation': 'co_discussed', 'target': 'TFEB', 'strength': 0.4}, {'source': 'RAB7', 'relation': 'co_discussed', 'target': 'TFEB', 'strength': 0.4}, {'source': 'C9ORF72', 'relation': 'co_discussed', 'target': 'RAB7', '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