Why do TAM receptors protect against neuroinvasive viruses despite their known immunosuppressive role?¶
Notebook ID: nb-SDA-2026-04-14-gap-pubmed-20260410-174607-708e8d91 · Analysis: SDA-2026-04-14-gap-pubmed-20260410-174607-708e8d91 · Generated: 2026-04-21T18:43:02
Research question¶
The finding that Mertk/Axl deficiency increases viral susceptibility contradicts the established paradigm that TAM receptors dampen antiviral immunity. This unexpected protective role challenges current understanding of TAM receptor function in neuroinvasive infections.
Gap type: contradiction Source paper: The TAM receptor Mertk protects against neuroinvasive viral infection by maintaining blood-brain barrier integrity. (2015, Nature medicine, PMID:26523970)
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.75 · Rounds: 4
1. Target gene annotations (MyGene)¶
import pandas as pd
ann_rows = [{'gene': 'COMPLEX', 'name': 'HLA complex P5', 'summary': '—'}, {'gene': 'GAS6', 'name': 'growth arrest specific 6', 'summary': 'This gene encodes a gamma-carboxyglutamic acid (Gla)-containing protein thought to be involved in the stimulation of cel'}, {'gene': 'RECEPTOR', 'name': 'calcitonin receptor like receptor', 'summary': 'Enables adrenomedullin binding activity; adrenomedullin receptor activity; and calcitonin gene-related peptide receptor '}, {'gene': 'TAM', 'name': 'Myeloproliferative syndrome, transient (transient abnormal', 'summary': '—'}, {'gene': 'TYRO3', 'name': 'TYRO3 protein tyrosine kinase', 'summary': 'The gene is part of a 3-member transmembrane receptor kinase receptor family with a processed pseudogene distal on chrom'}]
pd.DataFrame(ann_rows)
| gene | name | summary | |
|---|---|---|---|
| 0 | COMPLEX | HLA complex P5 | — |
| 1 | GAS6 | growth arrest specific 6 | This gene encodes a gamma-carboxyglutamic acid... |
| 2 | RECEPTOR | calcitonin receptor like receptor | Enables adrenomedullin binding activity; adren... |
| 3 | TAM | Myeloproliferative syndrome, transient (transi... | — |
| 4 | TYRO3 | TYRO3 protein tyrosine kinase | The gene is part of a 3-member transmembrane r... |
2. GO Biological Process enrichment (Enrichr)¶
go_bp = [{'rank': 1, 'term': 'Protein Kinase B Signaling (GO:0043491)', 'p_value': 1.3769525171482697e-05, 'odds_ratio': 605.2424242424242, 'genes': ['TYRO3', 'GAS6']}, {'rank': 2, 'term': 'Apoptotic Cell Clearance (GO:0043277)', 'p_value': 1.8850777419928716e-05, 'odds_ratio': 512.025641025641, 'genes': ['TYRO3', 'GAS6']}, {'rank': 3, 'term': 'Phagocytosis (GO:0006909)', 'p_value': 0.00011651719460226656, 'odds_ratio': 198.28855721393035, 'genes': ['TYRO3', 'GAS6']}, {'rank': 4, 'term': 'Positive Regulation Of Kinase Activity (GO:0033674)', 'p_value': 0.0002650830977784653, 'odds_ratio': 130.01960784313727, 'genes': ['TYRO3', 'GAS6']}, {'rank': 5, 'term': 'Endocytosis (GO:0006897)', 'p_value': 0.0008718252945615399, 'odds_ratio': 70.61675579322637, 'genes': ['TYRO3', 'GAS6']}, {'rank': 6, 'term': 'B Cell Chemotaxis (GO:0035754)', 'p_value': 0.0012494733811348967, 'odds_ratio': 1249.4375, 'genes': ['GAS6']}, {'rank': 7, 'term': 'Regulation Of Glomerular Filtration (GO:0003093)', 'p_value': 0.0012494733811348967, 'odds_ratio': 1249.4375, 'genes': ['GAS6']}, {'rank': 8, 'term': 'Positive Regulation Of Phosphorylation (GO:0042327)', 'p_value': 0.0012981262690588075, 'odds_ratio': 57.542940320232894, 'genes': ['TYRO3', 'GAS6']}, {'rank': 9, 'term': 'Receptor-Mediated Virion Attachment To Host Cell (GO:0046813)', 'p_value': 0.0014992198216206949, 'odds_ratio': 999.5, 'genes': ['GAS6']}, {'rank': 10, 'term': 'Negative Regulation Of Dendritic Cell Apoptotic Process (GO:2000669)', 'p_value': 0.0014992198216206949, 'odds_ratio': 999.5, 'genes': ['GAS6']}]
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 | Protein Kinase B Signaling (GO:0043491) | 2 | 1.38e-05 | 605.2 | TYRO3, GAS6 |
| 1 | Apoptotic Cell Clearance (GO:0043277) | 2 | 1.89e-05 | 512.0 | TYRO3, GAS6 |
| 2 | Phagocytosis (GO:0006909) | 2 | 1.17e-04 | 198.3 | TYRO3, GAS6 |
| 3 | Positive Regulation Of Kinase Activity (GO:003... | 2 | 2.65e-04 | 130.0 | TYRO3, GAS6 |
| 4 | Endocytosis (GO:0006897) | 2 | 8.72e-04 | 70.6 | TYRO3, GAS6 |
| 5 | B Cell Chemotaxis (GO:0035754) | 1 | 1.25e-03 | 1249.4 | GAS6 |
| 6 | Regulation Of Glomerular Filtration (GO:0003093) | 1 | 1.25e-03 | 1249.4 | GAS6 |
| 7 | Positive Regulation Of Phosphorylation (GO:004... | 2 | 1.30e-03 | 57.5 | TYRO3, GAS6 |
| 8 | Receptor-Mediated Virion Attachment To Host Ce... | 1 | 1.50e-03 | 999.5 | GAS6 |
| 9 | Negative Regulation Of Dendritic Cell Apoptoti... | 1 | 1.50e-03 | 999.5 | GAS6 |
import matplotlib.pyplot as plt
import numpy as np
go_bp = [{'rank': 1, 'term': 'Protein Kinase B Signaling (GO:0043491)', 'p_value': 1.3769525171482697e-05, 'odds_ratio': 605.2424242424242, 'genes': ['TYRO3', 'GAS6']}, {'rank': 2, 'term': 'Apoptotic Cell Clearance (GO:0043277)', 'p_value': 1.8850777419928716e-05, 'odds_ratio': 512.025641025641, 'genes': ['TYRO3', 'GAS6']}, {'rank': 3, 'term': 'Phagocytosis (GO:0006909)', 'p_value': 0.00011651719460226656, 'odds_ratio': 198.28855721393035, 'genes': ['TYRO3', 'GAS6']}, {'rank': 4, 'term': 'Positive Regulation Of Kinase Activity (GO:0033674)', 'p_value': 0.0002650830977784653, 'odds_ratio': 130.01960784313727, 'genes': ['TYRO3', 'GAS6']}, {'rank': 5, 'term': 'Endocytosis (GO:0006897)', 'p_value': 0.0008718252945615399, 'odds_ratio': 70.61675579322637, 'genes': ['TYRO3', 'GAS6']}, {'rank': 6, 'term': 'B Cell Chemotaxis (GO:0035754)', 'p_value': 0.0012494733811348967, 'odds_ratio': 1249.4375, 'genes': ['GAS6']}, {'rank': 7, 'term': 'Regulation Of Glomerular Filtration (GO:0003093)', 'p_value': 0.0012494733811348967, 'odds_ratio': 1249.4375, 'genes': ['GAS6']}, {'rank': 8, 'term': 'Positive Regulation Of Phosphorylation (GO:0042327)', 'p_value': 0.0012981262690588075, 'odds_ratio': 57.542940320232894, 'genes': ['TYRO3', 'GAS6']}]
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-lwu1u0tr 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': 'TYRO3', 'protein2': 'GAS6', 'score': 0.989, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.457, 'dscore': 0, '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)
1 STRING edges
| protein1 | protein2 | score | escore | tscore | |
|---|---|---|---|---|---|
| 0 | TYRO3 | GAS6 | 0.989 | 0.457 | 0.982 |
import math
ppi = [{'protein1': 'TYRO3', 'protein2': 'GAS6', 'score': 0.989, 'nscore': 0, 'fscore': 0, 'pscore': 0, 'ascore': 0, 'escore': 0.457, 'dscore': 0, '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': 'COMPLEX', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'GAS6', 'n_pathways': 7, 'top_pathway': 'Platelet degranulation'}, {'gene': 'RECEPTOR', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'TAM', 'n_pathways': 0, 'top_pathway': '—'}, {'gene': 'TYRO3', 'n_pathways': 0, 'top_pathway': '—'}]
pd.DataFrame(pw_rows).sort_values('n_pathways', ascending=False)
| gene | n_pathways | top_pathway | |
|---|---|---|---|
| 1 | GAS6 | 7 | Platelet degranulation |
| 0 | COMPLEX | 0 | — |
| 2 | RECEPTOR | 0 | — |
| 3 | TAM | 0 | — |
| 4 | TYRO3 | 0 | — |
5. Hypothesis ranking (2 hypotheses)¶
hyp_data = [('GAS6/TAM Axis Activation Stabilizes Blood-Brain Barrier', 0.513), ('TYRO3-STAT1 Axis to Preserve Parvalbumin Interneuron Fu', 0.506)]
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('Why do TAM receptors protect against neuroinvasive viruses despite their known immunosuppressive role?')
ax.grid(axis='x', alpha=0.3)
plt.tight_layout(); plt.show()
labels = ['GAS6/TAM Axis Activation Stabilizes Bloo', 'TYRO3-STAT1 Axis to Preserve Parvalbumin']
matrix = np.array([[0.8, 0.42, 0.62, 0.51, 0.0, 0.52, 0.55, 0.4, 0.35], [0.88, 0.32, 0.55, 0.45, 0.0, 0.45, 0.5, 0.28, 0.38]])
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: GAS6/TAM Axis Activation Stabilizes Blood-Brain Barrier to Reduce Neur¶
Target genes: GAS6/TAM receptor complex · Composite score: 0.513
Blood-brain barrier breakdown allows peripheral immune cells to infiltrate the CNS, exacerbating neuroinflammation and synaptic damage in AD. GAS6-activated TAM receptors (particularly AXL and MERTK) maintain BBB integrity by promoting tight junction protein expression and suppressing matrix metallo
lit_data = [{'year': '2024', 'journal': 'Curr Issues Mol Biol', 'title': 'Could Gas6/TAM Axis Provide Valuable Insights into the Pathogenesis of Systemic ', 'pmid': '39057085'}, {'year': '2010', 'journal': 'J Thromb Haemost', 'title': 'Potentiating role of Gas6 and Tyro3, Axl and Mer (TAM) receptors in human and mu', 'pmid': '20546121'}, {'year': '2018', 'journal': 'J Pineal Res', 'title': 'Melatonin induces mechanisms of brain resilience against neurodegeneration.', 'pmid': '29907977'}, {'year': '2026', 'journal': 'Med Res Arch', 'title': 'Phytohormone Signaling Induces Dormancy and Apoptosis in Prostate Cancer Dissemi', 'pmid': '41789352'}]
if lit_data:
df = pd.DataFrame(lit_data)
print(f'{len(lit_data)} PubMed results')
display(df)
else:
print('No PubMed results')
4 PubMed results
| year | journal | title | pmid | |
|---|---|---|---|---|
| 0 | 2024 | Curr Issues Mol Biol | Could Gas6/TAM Axis Provide Valuable Insights ... | 39057085 |
| 1 | 2010 | J Thromb Haemost | Potentiating role of Gas6 and Tyro3, Axl and M... | 20546121 |
| 2 | 2018 | J Pineal Res | Melatonin induces mechanisms of brain resilien... | 29907977 |
| 3 | 2026 | Med Res Arch | Phytohormone Signaling Induces Dormancy and Ap... | 41789352 |
Hypothesis 2: TYRO3-STAT1 Axis to Preserve Parvalbumin Interneuron Function by Suppr¶
Target genes: TYRO3 · Composite score: 0.506
PV-expressing interneurons are particularly vulnerable to IL-1β-mediated inflammatory damage, contributing to hippocampal gamma oscillation deficits in AD. TYRO3 activation by GAS6 suppresses microglial IL-1β production through STAT1 activation, reducing inflammatory stress on PV interneurons and re
lit_data = [{'year': '2024', 'journal': 'Diabetes', 'title': 'GAS6 and AXL Promote Insulin Resistance by Rewiring Insulin Signaling and Increa', 'pmid': '39046834'}, {'year': '2021', 'journal': 'Proc Natl Acad Sci U S A', 'title': 'The GAS6-AXL signaling pathway triggers actin remodeling that drives membrane ru', 'pmid': '34244439'}, {'year': '2019', 'journal': 'Cell Commun Signal', 'title': 'TAM receptors, Phosphatidylserine, inflammation, and Cancer.', 'pmid': '31775787'}, {'year': '2014', 'journal': 'J Biol Chem', 'title': 'Receptor tyrosine kinases, TYRO3, AXL, and MER, demonstrate distinct patterns an', 'pmid': '25074926'}, {'year': '2010', 'journal': 'J Thromb Haemost', 'title': 'Potentiating role of Gas6 and Tyro3, Axl and Mer (TAM) receptors in human and mu', 'pmid': '20546121'}]
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 | 2024 | Diabetes | GAS6 and AXL Promote Insulin Resistance by Rew... | 39046834 |
| 1 | 2021 | Proc Natl Acad Sci U S A | The GAS6-AXL signaling pathway triggers actin ... | 34244439 |
| 2 | 2019 | Cell Commun Signal | TAM receptors, Phosphatidylserine, inflammatio... | 31775787 |
| 3 | 2014 | J Biol Chem | Receptor tyrosine kinases, TYRO3, AXL, and MER... | 25074926 |
| 4 | 2010 | J Thromb Haemost | Potentiating role of Gas6 and Tyro3, Axl and M... | 20546121 |
7. Knowledge graph edges (8 total)¶
edge_data = [{'source': 'h-315367de', 'relation': 'targets', 'target': 'TYRO3', 'strength': 0.5}, {'source': 'h-929f356e', 'relation': 'targets', 'target': 'GAS6/TAM receptor complex', 'strength': 0.5}, {'source': 'GAS6/TAM receptor complex', 'relation': 'associated_with', 'target': 'neuroinflammation', 'strength': 0.4}, {'source': 'TYRO3', 'relation': 'associated_with', 'target': 'neuroinflammation', 'strength': 0.4}, {'source': 'TYRO3', 'relation': 'involved_in', 'target': 'tam_receptor_tyrosine_kinase_s', 'strength': 0.4}, {'source': 'TYRO3', 'relation': 'co_associated_with', 'target': 'STAT1', 'strength': 0.3}, {'source': 'GAS6/TAM receptor complex', 'relation': 'co_associated_with', 'target': 'TAM', 'strength': 0.3}, {'source': 'GAS6/TAM receptor complex', 'relation': 'co_associated_with', 'target': 'GAS6', 'strength': 0.3}]
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