What are the specific PTM changes in synaptic vesicle proteins during early AD pathogenesis?¶
Notebook ID: nb-SDA-2026-04-16-gap-debate-20260411-065018-92a34465 · Analysis: SDA-2026-04-16-gap-debate-20260411-065018-92a34465 · Generated: 2026-04-21T18:44:27
Research question¶
The debate framework identified synaptic vesicle protein modifications as critical but no specific hypotheses were evaluated. Understanding which phosphorylation, ubiquitination, and glycosylation events drive synaptic dysfunction could reveal early therapeutic targets.
Source: Debate session sess_SDA-2026-04-04-frontier-proteomics-1c3dba72 (Analysis: SDA-2026-04-04-frontier-proteomics-1c3dba72)
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.73 · Rounds: 4
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'gene': 'C1QA', 'name': 'complement C1q A chain', 'summary': 'This gene encodes the A-chain polypeptide of serum complement subcomponent C1q, which associates with C1r and C1s to yie'}, {'gene': 'C3', 'name': 'complement C3', 'summary': 'Complement component C3 plays a central role in the activation of complement system. Its activation is required for both'}, {'gene': 'INPP5A', 'name': 'inositol polyphosphate-5-phosphatase A', 'summary': 'The protein encoded by this gene is a membrane-associated type I inositol 1,4,5-trisphosphate (InsP3) 5-phosphatase. Ins'}, {'gene': 'PIK3CA', 'name': 'phosphatidylinositol-4,5-bisphosphate 3-kinase catalytic sub', 'summary': 'Phosphatidylinositol 3-kinase is composed of an 85 kDa regulatory subunit and a 110 kDa catalytic subunit. The protein e'}, {'gene': 'PLCG1', 'name': 'phospholipase C gamma 1', 'summary': 'The protein encoded by this gene catalyzes the formation of inositol 1,4,5-trisphosphate and diacylglycerol from phospha'}, {'gene': 'SUMO1', 'name': 'small ubiquitin like modifier 1', 'summary': 'This gene encodes a protein that is a member of the SUMO (small ubiquitin-like modifier) protein family. It functions in'}, {'gene': 'SYNJ1', 'name': 'synaptojanin 1', 'summary': 'This gene encodes a phosphoinositide phosphatase that regulates levels of membrane phosphatidylinositol-4,5-bisphosphate'}, {'gene': 'SYT1', 'name': 'synaptotagmin 1', 'summary': 'This gene encodes a member of the synaptotagmin protein family. The synaptotagmins are integral membrane proteins of syn'}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | C1QA | complement C1q A chain | This gene encodes the A-chain polypeptide of s... |
| 1 | C3 | complement C3 | Complement component C3 plays a central role i... |
| 2 | INPP5A | inositol polyphosphate-5-phosphatase A | The protein encoded by this gene is a membrane... |
| 3 | PIK3CA | phosphatidylinositol-4,5-bisphosphate 3-kinase... | Phosphatidylinositol 3-kinase is composed of a... |
| 4 | PLCG1 | phospholipase C gamma 1 | The protein encoded by this gene catalyzes the... |
| 5 | SUMO1 | small ubiquitin like modifier 1 | This gene encodes a protein that is a member o... |
| 6 | SYNJ1 | synaptojanin 1 | This gene encodes a phosphoinositide phosphata... |
| 7 | SYT1 | synaptotagmin 1 | This gene encodes a member of the synaptotagmi... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Cellular Response To Nutrient Levels (GO:0031669)', 'p_value': 1.1316069188511993e-06, 'odds_ratio': 265.58666666666664, 'genes': ['LRRK2', 'TFEB', 'ATG7']}, {'rank': 2, 'term': 'Cellular Response To Chemical Stress (GO:0062197)', 'p_value': 1.6871429222139262e-06, 'odds_ratio': 231.48837209302326, 'genes': ['PINK1', 'LRRK2', 'ATG7']}, {'rank': 3, 'term': 'Positive Regulation Of Autophagy (GO:0010508)', 'p_value': 2.9427917452458996e-06, 'odds_ratio': 191.25, 'genes': ['PINK1', 'LRRK2', 'TFEB']}, {'rank': 4, 'term': 'Negative Regulation Of Autophagosome Assembly (GO:1902902)', 'p_value': 3.3713141681840526e-06, 'odds_ratio': 1249.125, 'genes': ['PINK1', 'LRRK2']}, {'rank': 5, 'term': 'Cellular Response To Starvation (GO:0009267)', 'p_value': 4.815633692564819e-06, 'odds_ratio': 161.5528455284553, 'genes': ['LRRK2', 'TFEB', 'ATG7']}, {'rank': 6, 'term': 'Protein Localization To Mitochondrion (GO:0070585)', 'p_value': 8.983080444348457e-06, 'odds_ratio': 713.5714285714286, 'genes': ['PINK1', 'LRRK2']}, {'rank': 7, 'term': 'Negative Regulation Of Macroautophagy (GO:0016242)', 'p_value': 1.7278715595310902e-05, 'odds_ratio': 499.35, 'genes': ['PINK1', 'LRRK2']}, {'rank': 8, 'term': 'Negative Regulation Of Oxidative Stress-Induced Cell Death (GO:1903202)', 'p_value': 1.8921800825806036e-05, 'odds_ratio': 475.54761904761904, 'genes': ['PINK1', 'LRRK2']}, {'rank': 9, 'term': 'Regulation Of Mitochondrial Fission (GO:0090140)', 'p_value': 2.6237275376282452e-05, 'odds_ratio': 399.38, 'genes': ['PINK1', 'LRRK2']}, {'rank': 10, 'term': 'Positive Regulation Of Protein Modification Process (GO:0031401)', 'p_value': 2.7404986673915108e-05, 'odds_ratio': 89.06306306306307, 'genes': ['PINK1', 'LRRK2', 'ATG7']}]
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 | Cellular Response To Nutrient Levels (GO:0031669) | 3 | 1.13e-06 | 265.6 | LRRK2, TFEB, ATG7 |
| 1 | Cellular Response To Chemical Stress (GO:0062197) | 3 | 1.69e-06 | 231.5 | PINK1, LRRK2, ATG7 |
| 2 | Positive Regulation Of Autophagy (GO:0010508) | 3 | 2.94e-06 | 191.2 | PINK1, LRRK2, TFEB |
| 3 | Negative Regulation Of Autophagosome Assembly ... | 2 | 3.37e-06 | 1249.1 | PINK1, LRRK2 |
| 4 | Cellular Response To Starvation (GO:0009267) | 3 | 4.82e-06 | 161.6 | LRRK2, TFEB, ATG7 |
| 5 | Protein Localization To Mitochondrion (GO:0070... | 2 | 8.98e-06 | 713.6 | PINK1, LRRK2 |
| 6 | Negative Regulation Of Macroautophagy (GO:0016... | 2 | 1.73e-05 | 499.4 | PINK1, LRRK2 |
| 7 | Negative Regulation Of Oxidative Stress-Induce... | 2 | 1.89e-05 | 475.5 | PINK1, LRRK2 |
| 8 | Regulation Of Mitochondrial Fission (GO:0090140) | 2 | 2.62e-05 | 399.4 | PINK1, LRRK2 |
| 9 | Positive Regulation Of Protein Modification Pr... | 3 | 2.74e-05 | 89.1 | PINK1, LRRK2, ATG7 |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Cellular Response To Nutrient Levels (GO:0031669)', 'p_value': 1.1316069188511993e-06, 'odds_ratio': 265.58666666666664, 'genes': ['LRRK2', 'TFEB', 'ATG7']}, {'rank': 2, 'term': 'Cellular Response To Chemical Stress (GO:0062197)', 'p_value': 1.6871429222139262e-06, 'odds_ratio': 231.48837209302326, 'genes': ['PINK1', 'LRRK2', 'ATG7']}, {'rank': 3, 'term': 'Positive Regulation Of Autophagy (GO:0010508)', 'p_value': 2.9427917452458996e-06, 'odds_ratio': 191.25, 'genes': ['PINK1', 'LRRK2', 'TFEB']}, {'rank': 4, 'term': 'Negative Regulation Of Autophagosome Assembly (GO:1902902)', 'p_value': 3.3713141681840526e-06, 'odds_ratio': 1249.125, 'genes': ['PINK1', 'LRRK2']}, {'rank': 5, 'term': 'Cellular Response To Starvation (GO:0009267)', 'p_value': 4.815633692564819e-06, 'odds_ratio': 161.5528455284553, 'genes': ['LRRK2', 'TFEB', 'ATG7']}, {'rank': 6, 'term': 'Protein Localization To Mitochondrion (GO:0070585)', 'p_value': 8.983080444348457e-06, 'odds_ratio': 713.5714285714286, 'genes': ['PINK1', 'LRRK2']}, {'rank': 7, 'term': 'Negative Regulation Of Macroautophagy (GO:0016242)', 'p_value': 1.7278715595310902e-05, 'odds_ratio': 499.35, 'genes': ['PINK1', 'LRRK2']}, {'rank': 8, 'term': 'Negative Regulation Of Oxidative Stress-Induced Cell Death (GO:1903202)', 'p_value': 1.8921800825806036e-05, 'odds_ratio': 475.54761904761904, 'genes': ['PINK1', 'LRRK2']}]
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-_qtqx6px 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': 'LRRK2', 'protein2': 'PRKN', 'score': 0.788, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.714}, {'protein1': 'PRKN', 'protein2': 'PINK1', 'score': 0.998, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.485, 'dscore': 0.9, 'tscore': 0.982}]
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 | PRKN | PINK1 | 0.998 | 0.485 | 0.982 |
| 0 | LRRK2 | PRKN | 0.788 | 0.292 | 0.714 |
import math
ppi = [{'protein1': 'LRRK2', 'protein2': 'PRKN', 'score': 0.788, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.292, 'dscore': 0, 'tscore': 0.714}, {'protein1': 'PRKN', 'protein2': 'PINK1', 'score': 0.998, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.485, 'dscore': 0.9, 'tscore': 0.982}]
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': 'C1QA', 'n_pathways': 3, 'top_pathway': 'Initial triggering of complement'}, {'gene': 'C3', 'n_pathways': 8, 'top_pathway': 'Alternative complement activation'}, {'gene': 'INPP5A', 'n_pathways': 1, 'top_pathway': 'Synthesis of IP2, IP, and Ins in the cytosol'}, {'gene': 'PIK3CA', 'n_pathways': 8, 'top_pathway': 'PI3K Cascade'}, {'gene': 'PLCG1', 'n_pathways': 8, 'top_pathway': 'ISG15 antiviral mechanism'}, {'gene': 'SUMO1', 'n_pathways': 8, 'top_pathway': 'SUMO is conjugated to E1 (UBA2:SAE1)'}, {'gene': 'SYNJ1', 'n_pathways': 4, 'top_pathway': 'Synthesis of PIPs at the plasma membrane'}, {'gene': 'SYT1', 'n_pathways': 8, 'top_pathway': 'Serotonin Neurotransmitter Release Cycle'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 1 | C3 | 8 | Alternative complement activation |
| 3 | PIK3CA | 8 | PI3K Cascade |
| 5 | SUMO1 | 8 | SUMO is conjugated to E1 (UBA2:SAE1) |
| 4 | PLCG1 | 8 | ISG15 antiviral mechanism |
| 7 | SYT1 | 8 | Serotonin Neurotransmitter Release Cycle |
| 6 | SYNJ1 | 4 | Synthesis of PIPs at the plasma membrane |
| 0 | C1QA | 3 | Initial triggering of complement |
| 2 | INPP5A | 1 | Synthesis of IP2, IP, and Ins in the cytosol |
5. Hypothesis ranking (2 hypotheses)¶
hyp_data = [('SUMO1-Mediated Synaptotagmin-1 SUMOylation at Lys124 Im', 0.652), ('SYNJ1 Aggregation and Solubility Loss Impairs PI(4,5)P2', 0.621)]
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('What are the specific PTM changes in synaptic vesicle proteins during early AD pathogenesis?')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['SUMO1-Mediated Synaptotagmin-1 SUMOylati', 'SYNJ1 Aggregation and Solubility Loss Im']
matrix = np.array([[0.78, 0.52, 0.7, 0.6, 0.0, 0.62, 0.6, 0.48, 0.42], [0.68, 0.48, 0.62, 0.55, 0.0, 0.58, 0.55, 0.38, 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: SUMO1-Mediated Synaptotagmin-1 SUMOylation at Lys124 Impairs Calcium S¶
Target genes: SUMO1, SYT1, C1QA, C3 · Composite score: 0.652
Aberrant SUMO1-mediated SUMOylation of synaptotagmin-1 (SYT1) at Lys124 in the C2A calcium-binding domain alters calcium affinity, impairing synchronous neurotransmitter release. This creates a hyperexcitable phenotype with impaired synaptic fidelity, triggering activity-dependent tau release and SA
print('No PubMed results for hypothesis h-fe472f00')
No PubMed results for hypothesis h-fe472f00
Hypothesis 2: SYNJ1 Aggregation and Solubility Loss Impairs PI(4,5)P2 Cycling at Syn¶
Target genes: SYNJ1, INPP5A, PIK3CA, PLCG1 · Composite score: 0.621
SYNJ1 undergoes significant alterations in expression and solubility in AD brain tissue, transitioning from functional soluble enzyme to insoluble aggregates. This loss-of-function creates localized dysregulation of PI(4,5)P2 microdomains at active zones, preventing proper clathrin coat assembly and
print('No PubMed results for hypothesis h-40fbbb01')
No PubMed results for hypothesis h-40fbbb01
7. Knowledge graph edges (1 total)¶
edge_data = [{'source': 'SUMO1, SYT1, C1QA, C3', 'relation': 'promoted: SUMO1-Mediated ', 'target': 'neurodegeneration', 'strength': 0.55}]
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