{
  "filename": "agk_cerk_evidence_assessment.png",
  "iteration": 1,
  "description": "Create comprehensive 4-panel figure comparing AGK and CERK: domain architecture, evidence types, substrate specificity, and functional properties",
  "timestamp": "2026-07-06 22:13:35",
  "code": "\nimport matplotlib.pyplot as plt\nimport matplotlib.patches as mpatches\nimport numpy as np\n\nfig, axes = plt.subplots(2, 2, figsize=(16, 14))\nfig.suptitle(\"AGK Ceramide Kinase Activity (GO:0001729) \u2014 Evidence Assessment\", \n             fontsize=14, fontweight='bold', y=0.98)\n\n# === Panel A: Domain Architecture Comparison ===\nax = axes[0, 0]\nax.set_title(\"A. Domain Architecture: AGK vs CERK\", fontweight='bold', fontsize=11)\n\n# AGK\nax.broken_barh([(0, 422)], (3.5, 0.8), facecolors='lightgray', edgecolors='black', linewidth=1)\nax.broken_barh([(58, 142)], (3.5, 0.8), facecolors='#4CAF50', edgecolors='black', linewidth=1.5)\nax.broken_barh([(310, 112)], (3.5, 0.8), facecolors='#FF9800', edgecolors='black', linewidth=1.5)\nax.broken_barh([(1, 30)], (3.5, 0.8), facecolors='#9E9E9E', edgecolors='black', linewidth=1)\nax.text(129, 3.9, 'DAGKc', ha='center', va='center', fontsize=9, fontweight='bold', color='white')\nax.text(366, 3.9, 'AGK_C', ha='center', va='center', fontsize=9, fontweight='bold')\nax.text(-15, 3.9, 'AGK', ha='right', va='center', fontsize=10, fontweight='bold')\nax.text(15, 4.4, 'MTS', ha='center', va='bottom', fontsize=8, fontstyle='italic')\n\n# CERK\nax.broken_barh([(0, 537)], (2.0, 0.8), facecolors='lightgray', edgecolors='black', linewidth=1)\nax.broken_barh([(1, 125)], (2.0, 0.8), facecolors='#2196F3', edgecolors='black', linewidth=1.5)\nax.broken_barh([(128, 151)], (2.0, 0.8), facecolors='#4CAF50', edgecolors='black', linewidth=1.5)\nax.broken_barh([(390, 147)], (2.0, 0.8), facecolors='#E91E63', edgecolors='black', linewidth=1.5)\nax.text(63, 2.4, 'PH', ha='center', va='center', fontsize=9, fontweight='bold', color='white')\nax.text(203, 2.4, 'DAGKc', ha='center', va='center', fontsize=9, fontweight='bold', color='white')\nax.text(463, 2.4, 'CERK_C', ha='center', va='center', fontsize=9, fontweight='bold', color='white')\nax.text(-15, 2.4, 'CERK', ha='right', va='center', fontsize=10, fontweight='bold')\n\nax.set_xlim(-60, 570)\nax.set_ylim(1.5, 5.0)\nax.set_xlabel('Residue position', fontsize=9)\nax.set_yticks([])\n\nlegend_patches = [\n    mpatches.Patch(color='#4CAF50', label='DAGKc (shared)'),\n    mpatches.Patch(color='#2196F3', label='PH domain (CERK only)'),\n    mpatches.Patch(color='#FF9800', label='AGK_C (AGK only)'),\n    mpatches.Patch(color='#E91E63', label='CERK_C (CERK only)'),\n]\nax.legend(handles=legend_patches, fontsize=8, loc='upper right')\n\n# === Panel B: Evidence Type Summary ===\nax = axes[0, 1]\nax.set_title(\"B. Evidence Code Comparison for GO:0001729\", fontweight='bold', fontsize=11)\n\nevidence_types = ['IDA\\n(Direct Assay)', 'EXP\\n(Experiment)', 'ISS\\n(Seq Sim)', 'IBA\\n(Phylogenetic)', 'IEA\\n(Electronic)']\nagk_counts = [0, 0, 1, 1, 1]\ncerk_counts = [4, 1, 0, 1, 1]\n\nx = np.arange(len(evidence_types))\nwidth = 0.35\nbars1 = ax.bar(x - width/2, agk_counts, width, label='AGK', color='#FF5722', alpha=0.8, edgecolor='black')\nbars2 = ax.bar(x + width/2, cerk_counts, width, label='CERK', color='#2196F3', alpha=0.8, edgecolor='black')\nax.set_xticks(x)\nax.set_xticklabels(evidence_types, fontsize=8)\nax.set_ylabel('Number of annotations')\nax.legend()\nax.set_ylim(0, 5.5)\n\n# Add labels\nfor bar in bars1:\n    if bar.get_height() > 0:\n        ax.text(bar.get_x() + bar.get_width()/2., bar.get_height() + 0.1, \n                int(bar.get_height()), ha='center', va='bottom', fontsize=9)\nfor bar in bars2:\n    if bar.get_height() > 0:\n        ax.text(bar.get_x() + bar.get_width()/2., bar.get_height() + 0.1, \n                int(bar.get_height()), ha='center', va='bottom', fontsize=9)\n\nax.axhline(y=0, color='black', linewidth=0.5)\nax.text(0.02, 0.95, 'AGK: 0 direct experimental\\nCERK: 5 direct experimental', \n        transform=ax.transAxes, fontsize=8, va='top',\n        bbox=dict(boxstyle='round', facecolor='lightyellow', alpha=0.8))\n\n# === Panel C: Substrate Specificity ===\nax = axes[1, 0]\nax.set_title(\"C. AGK Substrate Specificity (Waggoner 2004)\", fontweight='bold', fontsize=11)\n\nsubstrates = ['DAG\\n(diacylglycerol)', 'Ceramide', 'MAG\\n(monoacylglycerol)', 'Sphingosine']\n# Relative activity based on Waggoner 2004 findings\nvmax_relative = [1.0, 0.5, 0.7, 0.0]  # Approximate relative Vmax\nkm_relative = [1.0, 1.0, 0.8, 0.0]  # Approximate relative affinity\n\ncolors = ['#4CAF50', '#FF9800', '#4CAF50', '#F44336']\nbars = ax.bar(substrates, vmax_relative, color=colors, edgecolor='black', alpha=0.8)\nax.set_ylabel('Relative Vmax (DAG = 1.0)')\nax.set_ylim(0, 1.3)\nax.axhline(y=0, color='black', linewidth=0.5)\n\n# Add note\nax.text(0.02, 0.95, 'Higher Vmax for DAG than ceramide\\n\u2192 \"primarily a diacylglycerol kinase\"\\n\\nVan Overloop 2006: Could NOT\\nreplicate ceramide activity', \n        transform=ax.transAxes, fontsize=8, va='top',\n        bbox=dict(boxstyle='round', facecolor='lightyellow', alpha=0.8))\n\n# === Panel D: Key Properties Comparison ===\nax = axes[1, 1]\nax.set_title(\"D. Functional Properties: AGK vs CERK\", fontweight='bold', fontsize=11)\nax.axis('off')\n\ntable_data = [\n    ['Property', 'AGK', 'CERK'],\n    ['Primary activity', 'Acylglycerol kinase', 'Ceramide kinase'],\n    ['EC number', '2.7.1.94 / 2.7.1.107', '2.7.1.138'],\n    ['Main products', 'LPA, PA', 'Ceramide-1-P'],\n    ['Localization', 'Mito. inner membrane', 'Plasma membrane/Golgi'],\n    ['Non-kinase role', 'TIM22 complex subunit', 'None known'],\n    ['PH domain', 'ABSENT', 'PRESENT'],\n    ['Disease', 'Sengers syndrome', 'None (OMIM)'],\n    ['PANTHER subfamily', 'SF31 (AGK)', 'SF25 (CERK)'],\n    ['DAGKc identity', '34% to CERK', 'Reference'],\n    ['Cer kinase evidence', 'ISS/IBA/IEA only', 'IDA + EXP'],\n]\n\ntable = ax.table(cellText=table_data, loc='center', cellLoc='center',\n                 colWidths=[0.3, 0.35, 0.35])\ntable.auto_set_font_size(False)\ntable.set_fontsize(8.5)\ntable.scale(1, 1.6)\n\n# Style header row\nfor j in range(3):\n    table[0, j].set_facecolor('#37474F')\n    table[0, j].set_text_props(color='white', fontweight='bold')\n\n# Highlight key rows\nfor i in [1, 10]:\n    for j in range(3):\n        table[i, j].set_facecolor('#FFF9C4')\n\nplt.tight_layout(rect=[0, 0, 1, 0.96])\nplt.savefig('agk_cerk_evidence_assessment.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Figure saved.\")\n"
}