{
  "filename": "aarsd1_readthrough_architecture.png",
  "iteration": 2,
  "description": "Create comprehensive figure showing PTGES3L-AARSD1 genomic architecture and readthrough explanation for HSP90 link",
  "timestamp": "2026-06-22 01:56:15",
  "code": "\nimport matplotlib.pyplot as plt\nimport matplotlib.patches as mpatches\nimport numpy as np\n\nfig, ax = plt.subplots(figsize=(14, 9))\n\n# Colors\nc_ptges3l = '#C73E1D'   # Red - PTGES3L\nc_aarsd1 = '#2E86AB'    # Blue - AARSD1 AlaX\nc_readthrough = '#F18F01' # Orange - readthrough region\nc_cterm = '#3B7A57'      # Green - C-terminal\nc_inactive = '#999999'    # Gray - inactive\nc_active = '#228B22'      # Green - active\n\n# Title\nax.text(7, 9.5, 'AARSD1 Genomic Context: PTGES3L-AARSD1 Readthrough', \n        fontsize=14, fontweight='bold', ha='center')\nax.text(7, 9.1, 'Chromosome 17 \u2014 Explains HSP90 cochaperone attribution', \n        fontsize=10, ha='center', color='gray')\n\n# === Row 1: Genomic arrangement ===\ny = 8.0\nax.text(0.5, y+0.3, 'Genomic\\nlocus', fontsize=9, fontweight='bold', va='center')\n\n# PTGES3L gene\nax.add_patch(mpatches.FancyBboxPatch((2.5, y-0.15), 3, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_ptges3l, edgecolor='black', alpha=0.8))\nax.text(4, y+0.1, 'PTGES3L', ha='center', va='center', color='white', fontsize=10, fontweight='bold')\nax.text(4, y-0.3, 'p23/wos2 family', ha='center', fontsize=7, color=c_ptges3l)\n\n# Arrow for readthrough\nax.annotate('', xy=(6.8, y+0.1), xytext=(5.5, y+0.1),\n            arrowprops=dict(arrowstyle='->', color=c_readthrough, lw=2, ls='--'))\nax.text(6.15, y+0.4, 'readthrough', fontsize=7, color=c_readthrough, ha='center', style='italic')\n\n# AARSD1 gene\nax.add_patch(mpatches.FancyBboxPatch((6.8, y-0.15), 5, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_aarsd1, edgecolor='black', alpha=0.8))\nax.text(9.3, y+0.1, 'AARSD1', ha='center', va='center', color='white', fontsize=10, fontweight='bold')\nax.text(9.3, y-0.3, 'AlaX editing enzyme', ha='center', fontsize=7, color=c_aarsd1)\n\n# Direction arrow\nax.annotate('', xy=(12.5, y+0.1), xytext=(11.8, y+0.1),\n            arrowprops=dict(arrowstyle='->', color='gray', lw=1.5))\n\n# === Row 2: Canonical AARSD1 (isoform 1) ===\ny = 6.5\nax.text(0.5, y+0.1, 'Isoform 1\\n(canonical)\\n412 aa', fontsize=9, fontweight='bold', va='center')\n\n# Small unique N-term\nax.add_patch(mpatches.FancyBboxPatch((3, y-0.15), 0.5, 0.5, boxstyle=\"round,pad=0.03\",\n             facecolor='#D4A5A5', edgecolor='black'))\nax.text(3.25, y+0.1, 'N', ha='center', va='center', fontsize=8)\n\n# AlaX domain\nax.add_patch(mpatches.FancyBboxPatch((3.5, y-0.15), 5, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_aarsd1, edgecolor='black', alpha=0.85))\nax.text(6, y+0.1, 'AlaX Editing Domain', ha='center', va='center', color='white', fontsize=9, fontweight='bold')\n\n# C-terminal\nax.add_patch(mpatches.FancyBboxPatch((8.5, y-0.15), 3, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_cterm, edgecolor='black', alpha=0.7))\nax.text(10, y+0.1, 'C-terminal', ha='center', va='center', color='white', fontsize=9)\n\n# Status\nax.text(12.5, y+0.1, '\u2713 ACTIVE\\nSer-tRNA(Ala)\\ndeacylase', fontsize=8, color=c_active, \n        fontweight='bold', va='center')\n\n# Zinc binding markers\nfor x_pos, label in [(5.2, 'H109'), (5.5, 'H113'), (7.7, 'C209'), (8.0, 'H213')]:\n    ax.plot(x_pos, y+0.5, 'v', color='#FFD700', markersize=6, markeredgecolor='black', markeredgewidth=0.5)\n    ax.text(x_pos, y+0.65, label, fontsize=5, ha='center', fontweight='bold')\n\n# === Row 3: Readthrough (isoform 2) ===\ny = 5.0\nax.text(0.5, y+0.1, 'Isoform 2\\n(readthrough)\\n525 aa', fontsize=9, fontweight='bold', va='center')\n\n# PTGES3L portion\nax.add_patch(mpatches.FancyBboxPatch((2.5, y-0.15), 2.5, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_ptges3l, edgecolor='black', alpha=0.8))\nax.text(3.75, y+0.1, 'PTGES3L\\n(p23-like)', ha='center', va='center', color='white', fontsize=8, fontweight='bold')\n\n# AlaX domain\nax.add_patch(mpatches.FancyBboxPatch((5, y-0.15), 4, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_inactive, edgecolor='black', alpha=0.6))\nax.text(7, y+0.1, 'AlaX Domain (INHIBITED)', ha='center', va='center', color='white', fontsize=8)\n\n# C-terminal  \nax.add_patch(mpatches.FancyBboxPatch((9, y-0.15), 2.5, 0.5, boxstyle=\"round,pad=0.05\",\n             facecolor=c_inactive, edgecolor='black', alpha=0.5))\nax.text(10.25, y+0.1, 'C-terminal', ha='center', va='center', color='white', fontsize=8)\n\n# Status\nax.text(12.5, y+0.1, '\u2717 INACTIVE\\nfor editing\\n(Nawaz 2011)', fontsize=8, color='#CC0000', \n        fontweight='bold', va='center')\n\n# === Explanation box ===\ny = 3.0\nexplanation = \"\"\"KEY INSIGHT: The HSP90 cochaperone association derives from the adjacent PTGES3L gene,\na p23/wos2 family member, NOT from AARSD1 itself.\n\n\u2022 PTGES3L-AARSD1 readthrough (NCBI Gene 100885850) = isoform 2 (Q9BTE6-2)\n\u2022 The p23-like domain is from PTGES3L, a separate gene on chromosome 17\n\u2022 STRING: No HSP90 in AARSD1's top 20 interaction partners\n\u2022 IntAct: Q9BTE6-2 (readthrough) has 2.2\u00d7 more interactions than canonical Q9BTE6\n\u2022 The readthrough fusion is catalytically INACTIVE for editing\n\u2022 No TPR domain exists in any AARSD1 product\"\"\"\n\nax.text(0.5, y+0.5, explanation, fontsize=8, va='top', family='monospace',\n        bbox=dict(boxstyle='round', facecolor='lightyellow', edgecolor='#888', alpha=0.9))\n\n# Legend\nlegend_elements = [\n    mpatches.Patch(facecolor=c_ptges3l, label='PTGES3L (p23/wos2 family)'),\n    mpatches.Patch(facecolor=c_aarsd1, label='AARSD1 AlaX Editing Domain'),\n    mpatches.Patch(facecolor=c_cterm, label='C-terminal Extension'),\n    mpatches.Patch(facecolor='#FFD700', label='Zinc-binding catalytic residues'),\n    mpatches.Patch(facecolor=c_readthrough, label='Readthrough junction'),\n]\nax.legend(handles=legend_elements, loc='lower center', ncol=3, fontsize=7, frameon=True)\n\nax.set_xlim(0, 14)\nax.set_ylim(0.5, 10.2)\nax.set_frame_on(False)\nax.set_xticks([])\nax.set_yticks([])\n\nplt.tight_layout()\nplt.savefig('aarsd1_readthrough_architecture.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Readthrough architecture figure saved.\")\n"
}