{
  "filename": "domain_architecture_comparison.png",
  "iteration": 1,
  "description": "Domain architecture comparison visualization: squid ADAR2 vs human ADAR2 vs human ADAT1, showing the mis-annotation",
  "timestamp": "2026-06-24 03:38:50",
  "code": "\nimport matplotlib.pyplot as plt\nimport matplotlib.patches as patches\nimport numpy as np\n\nfig, axes = plt.subplots(4, 1, figsize=(14, 10), gridspec_kw={'height_ratios': [1.2, 1.2, 1.2, 1.5]})\n\n# Color scheme\ndsrbd_color = '#4CAF50'  # green\ndeaminase_color = '#2196F3'  # blue\ndeaminase_adat_color = '#FF9800'  # orange for ADAT\nbackbone_color = '#E0E0E0'  # grey\n\ndef draw_protein(ax, name, length, domains, y=0.5, height=0.6, label_offset=0):\n    \"\"\"Draw a protein with domains\"\"\"\n    # Draw backbone\n    ax.add_patch(patches.FancyBboxPatch((0, y-height/2), length, height, \n                                         boxstyle=\"round,pad=2\", \n                                         facecolor=backbone_color, edgecolor='black', linewidth=1))\n    \n    for domain in domains:\n        start, end, color, label = domain\n        ax.add_patch(patches.FancyBboxPatch((start, y-height/2+0.05), end-start, height-0.1,\n                                             boxstyle=\"round,pad=1\",\n                                             facecolor=color, edgecolor='black', linewidth=1.5, alpha=0.9))\n        ax.text((start+end)/2, y, label, ha='center', va='center', fontsize=8, fontweight='bold', color='white')\n    \n    ax.set_xlim(-50, max(800, length+50))\n    ax.set_ylim(-0.1, 1.1)\n    ax.set_ylabel(name, fontsize=11, fontweight='bold', rotation=0, labelpad=120, va='center')\n    ax.set_xlabel('')\n    ax.spines['top'].set_visible(False)\n    ax.spines['right'].set_visible(False)\n    ax.spines['left'].set_visible(False)\n    ax.set_yticks([])\n    ax.set_xticks(range(0, max(800, length+50), 100))\n    ax.tick_params(axis='x', labelsize=8)\n\n# Squid ADAR2\ndraw_protein(axes[0], \"Squid ADAR2\\n(C1JAR3)\\n786 aa\", 786, [\n    (57, 106, dsrbd_color, 'dsRBD1'),\n    (164, 230, dsrbd_color, 'dsRBD2'),\n    (315, 364, dsrbd_color, 'dsRBD3'),\n    (434, 761, deaminase_color, 'Adenosine Deaminase\\n(A-to-I editase)'),\n])\n# Mark active site\naxes[0].annotate('CHAE\\n(457)', xy=(457, 0.15), fontsize=7, color='red', fontweight='bold', ha='center')\naxes[0].plot(457, 0.22, 'v', color='red', markersize=8)\n\n# Human ADAR2\ndraw_protein(axes[1], \"Human ADAR2\\n(P78563)\\n741 aa\", 741, [\n    (78, 144, dsrbd_color, 'dsRBD1'),\n    (231, 298, dsrbd_color, 'dsRBD2'),\n    (370, 737, deaminase_color, 'Adenosine Deaminase\\n(A-to-I editase)'),\n])\naxes[1].annotate('CHAE\\n(394)', xy=(394, 0.15), fontsize=7, color='red', fontweight='bold', ha='center')\naxes[1].plot(394, 0.22, 'v', color='red', markersize=8)\n\n# Human ADAT1\ndraw_protein(axes[2], \"Human ADAT1\\n(Q9BUB4)\\n502 aa\", 502, [\n    (63, 501, deaminase_adat_color, 'Adenosine Deaminase\\n(tRNA-specific, A37)'),\n])\naxes[2].annotate('No CHAE\\nmotif', xy=(89, 0.15), fontsize=7, color='red', fontweight='bold', ha='center')\naxes[2].plot(89, 0.22, 'v', color='red', markersize=8)\n\n# Legend and summary\naxes[3].axis('off')\nlegend_elements = [\n    patches.Patch(facecolor=dsrbd_color, edgecolor='black', label='dsRNA Binding Domain (dsRBD)'),\n    patches.Patch(facecolor=deaminase_color, edgecolor='black', label='ADAR-type Deaminase (mRNA substrate)'),\n    patches.Patch(facecolor=deaminase_adat_color, edgecolor='black', label='ADAT-type Deaminase (tRNA substrate)'),\n]\naxes[3].legend(handles=legend_elements, loc='upper left', fontsize=10, frameon=True, \n               fancybox=True, shadow=True, ncol=1)\n\n# Add verdict text\nverdict_text = \"\"\"VERDICT: GO:0008251 (tRNA-specific adenosine deaminase activity) is INCORRECT for squid ADAR2\n\nKey evidence:\n\u2022 Domain architecture: 3 dsRBDs + ADAR-type deaminase = classic ADAR2 (mRNA editing enzyme)\n\u2022 ADAT1 has NO dsRBDs \u2014 completely different architecture\n\u2022 CHAE active-site motif conserved with human ADAR2, absent in ADAT1\n\u2022 Deaminase domain: 23% 3-mer similarity to human ADAR2, only 6.4% to ADAT1\n\u2022 Correct term: GO:0003726 (double-stranded RNA adenosine deaminase activity)\n\u2022 Failure mode: Within-superfamily mis-placement (ADAR \u2260 ADAT)\"\"\"\n\naxes[3].text(0.02, 0.55, verdict_text, transform=axes[3].transAxes, fontsize=9,\n            verticalalignment='top', fontfamily='monospace',\n            bbox=dict(boxstyle='round', facecolor='#FFEBEE', edgecolor='#F44336', alpha=0.8))\n\nfig.suptitle('Domain Architecture Comparison: Squid ADAR2 vs. Human ADAR2 vs. Human ADAT1',\n             fontsize=14, fontweight='bold', y=0.98)\nplt.tight_layout(rect=[0, 0, 1, 0.96])\nplt.savefig('domain_architecture_comparison.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Figure saved as domain_architecture_comparison.png\")\n"
}