{
  "filename": "evidence_summary.png",
  "iteration": 3,
  "description": "Create final evidence summary visualization for the report",
  "timestamp": "2026-06-22 10:14:27",
  "code": "\nimport matplotlib.pyplot as plt\nimport matplotlib.patches as mpatches\nimport numpy as np\n\nfig, ax = plt.subplots(figsize=(14, 8))\n\n# Title\nax.text(0.5, 0.97, 'A0A804UIX9 Core Function Hypothesis: Evidence Summary',\n        transform=ax.transAxes, ha='center', va='top', fontsize=16, fontweight='bold')\n\n# Verdict box\nverdict_box = dict(boxstyle='round,pad=0.5', facecolor='#C8E6C9', edgecolor='green', linewidth=2)\nax.text(0.5, 0.88, 'VERDICT: SUPPORTED \u2014 GO:0003674 (molecular_function) is correct',\n        transform=ax.transAxes, ha='center', va='top', fontsize=13, fontweight='bold',\n        bbox=verdict_box)\n\n# Evidence categories\ncategories = [\n    ('Database Evidence\\n(Supports root MF)', [\n        'PE=4 (predicted only)',\n        'Annotation score 1.0 (lowest)',\n        'PGG domain = DUF (unknown function)',\n        'Zero PGG proteins have MF annotations',\n        'Zero PDB structures for PGG domain',\n        'Not in STRING database'\n    ], '#E3F2FD', 'blue'),\n    ('Family Context\\n(Qualifies hypothesis)', [\n        'ACD6: ion channel-like (PMID:37995686)',\n        'ITN1: salt stress signaling (PMID:18643991)',\n        'ACD6 family: growth-defense tradeoff',\n        'Large plant family (~29,000 proteins)',\n        '6-TM topology suggests channel/transport',\n        'Conserved PGG repeat unit (3 TM per PGG)'\n    ], '#FFF3E0', 'orange'),\n    ('Key Barriers\\n(Prevent specific MF)', [\n        'Missing ankyrin repeats (all char. have)',\n        'ACD6 Ank repeats = channel gating domain',\n        'Paralog maps to different PANTHER family',\n        'Closest rice ortholog: only 13.4% identity',\n        'CASKIN label: cross-kingdom artifact',\n        'No interaction or localization data'\n    ], '#FFEBEE', 'red'),\n    ('Gene Activity\\n(Not pseudogene)', [\n        'Expressed in 17 RNA-seq experiments',\n        'Multiple maize tissues (B73/Mo17)',\n        'AlphaFold pLDDT 88-94 for TM regions',\n        'Chromosome 9 protein-coding gene',\n        'Internal PGG duplication (40% identity)',\n        'Highly basic C-terminal (+16 charge)'\n    ], '#F3E5F5', 'purple'),\n]\n\ny_start = 0.76\nfor i, (title, items, color, edge) in enumerate(categories):\n    x = 0.01 + (i % 2) * 0.50\n    y = y_start - (i // 2) * 0.40\n    \n    # Category box\n    cat_box = dict(boxstyle='round,pad=0.3', facecolor=color, edgecolor=edge, linewidth=1.5)\n    ax.text(x + 0.22, y, title, transform=ax.transAxes, ha='center', va='top',\n            fontsize=11, fontweight='bold', bbox=cat_box)\n    \n    for j, item in enumerate(items):\n        ax.text(x + 0.02, y - 0.04 - j * 0.045, f'\u2022 {item}',\n                transform=ax.transAxes, ha='left', va='top', fontsize=8.5)\n\n# Bottom note\nax.text(0.5, 0.02, 'Curation lead: Consider upgrading CC from GO:0016020 (membrane) to GO:0016021 (integral component of membrane)\\n'\n        'Key references: PMID:37995686 (ACD6 ion channel), PMID:14507999 (ACD6 defense), PMID:18643991 (ITN1 salt stress)',\n        transform=ax.transAxes, ha='center', va='bottom', fontsize=9, style='italic',\n        bbox=dict(boxstyle='round', facecolor='lightyellow', alpha=0.8))\n\nax.set_xlim(0, 1)\nax.set_ylim(0, 1)\nax.axis('off')\n\nplt.tight_layout()\nplt.savefig('evidence_summary.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Evidence summary visualization saved.\")\n"
}