{
  "filename": "plot_4.png",
  "iteration": 3,
  "description": "Create final GO curation decision table and comprehensive evidence summary figure",
  "timestamp": "2026-07-01 04:15:55",
  "code": "\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nfig, axes = plt.subplots(2, 1, figsize=(16, 14))\n\n# Panel A: GO Decision Table\nax1 = axes[0]\nax1.axis('off')\n\ntable_data = [\n    ['GO:0005777\\nperoxisome', 'Q8IPE8\\n(isoform B)', 'IDA', 'PMID:22758915', 'RETAIN\\n(high confidence)', \n     'mCherry-CG4389-PB colocalized\\nwith PMP34-Cerulean in S2 cells.\\nPaper: \"exclusively peroxisomal\"'],\n    ['GO:0005777\\nperoxisome', 'Q9V397\\n(isoform A)', 'IDA', 'PMID:22758915', 'RETAIN\\n(dual localized)', \n     'PA has PTS1 (SKL) + MTS extension.\\nPaper: \"dually localized to\\nperoxisomes and mitochondria\"'],\n    ['GO:0005739\\nmitochondrion', 'Q8IPE8\\n(isoform B)', 'HDA', 'PMID:16212416\\nPMID:19317464', 'REVIEW\\n(may be PA signal)',\n     'HDA proteomics cannot distinguish\\nisoforms. PB lacks MTS.\\nMay reflect PA contamination.'],\n    ['GO:0005739\\nmitochondrion', 'Q9V397\\n(isoform A)', 'HDA', 'PMID:16212416\\nPMID:19317464', 'RETAIN\\n(supported)',\n     'PA has 39-aa MTS extension\\n(net charge +7, MitoProtII 97%).\\nConsistent with dual targeting.'],\n    ['GO:0005743\\nmito inner membrane', 'Q8IPE8\\n(isoform B)', 'IEA', 'UniProtKB-SubCell', 'REVIEW\\n(gene-level IEA)',\n     'IEA from gene family. PB has\\nno MTS and no experimental\\nevidence for mito membrane.'],\n    ['GO:0005782\\nperoxisomal matrix', 'Q8IPE8\\n(isoform B)', '\u2014', '\u2014', 'CONSIDER\\nADDING',\n     'PTS1 targets to matrix.\\nMore specific than GO:0005777.\\nConsistent with IDA evidence.'],\n]\n\ncol_labels = ['GO Term', 'UniProt\\nAccession', 'Evidence\\nCode', 'Reference', 'Recommended\\nAction', 'Rationale']\ntable = ax1.table(cellText=table_data, colLabels=col_labels, loc='center',\n                  cellLoc='center', colWidths=[0.14, 0.1, 0.08, 0.13, 0.12, 0.33])\ntable.auto_set_font_size(False)\ntable.set_fontsize(8)\ntable.scale(1, 2.8)\n\n# Color code by action\naction_colors = {\n    'RETAIN': '#ABEBC6',      # green\n    'REVIEW': '#F9E79F',      # yellow\n    'CONSIDER': '#AED6F1',    # blue\n}\nfor i in range(len(table_data)):\n    row = i + 1\n    action = table_data[i][4]\n    color = '#ABEBC6'\n    if 'REVIEW' in action:\n        color = '#F9E79F'\n    elif 'CONSIDER' in action:\n        color = '#AED6F1'\n    for j in range(6):\n        table[row, j].set_facecolor(color)\n        \nfor j in range(6):\n    table[0, j].set_facecolor('#D5D8DC')\n    table[0, j].set_text_props(fontweight='bold')\n\nax1.set_title('A. GO Curation Decision Table for CG4389/Mtpalpha Isoforms', \n              fontweight='bold', fontsize=12, pad=20)\n\n# Panel B: Comprehensive evidence summary\nax2 = axes[1]\nax2.axis('off')\n\nsummary = \"\"\"FINAL EVIDENCE SUMMARY\n\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nVERDICT: SUPPORTED \u2014 GO:0005777 (peroxisome) annotation on Q8IPE8\n\nKEY EVIDENCE CHAIN:\n1. Q8IPE8 = CG4389-PB = isoform B (RefSeq NP_723470.1, 744 aa)\n2. CG4389-PB LACKS the 39-aa MTS extension present in isoform A\n3. CG4389-PB was EXPERIMENTALLY CONFIRMED as peroxisomal:\n   \u2192 mCherry-CG4389-PB + PMP34-Cerulean colocalization (S2 cells)\n   \u2192 Figure 4 of Faust et al. 2012 (PMID:22758915 / PMC3443258)\n4. Paper explicitly states: PB/PC are \"exclusively peroxisomal\"\n5. C-terminal PTS1 (SKL) is canonical; conserved across 10+ Drosophila spp.\n6. AlphaFold: PTS1 on flexible tail (pLDDT ~26), accessible for Pex5\n7. N-terminus has no MTS features (pLDDT 34-40, 8.3% identity to HADHA MTS)\n\nISOFORM-SPECIFIC LOCALIZATION:\n\u2022 Isoform A (Q9V397, 783 aa): +39-aa MTS \u2192 DUAL (mito + perox)\n\u2022 Isoform B (Q8IPE8, 744 aa): no MTS    \u2192 PEROXISOME ONLY\n\u2022 Mitochondrial HDA evidence cannot distinguish isoforms\n\nGENE FAMILY vs. PROTEIN FUNCTION:\n\u2022 PANTHER/InterPro classify gene family as HADHA (mitochondrial)\n\u2022 Faust et al. classify CG4389 as LBP/EHHADH homolog (peroxisomal)\n\u2022 Resolution: ancestral gene split between HADHA/EHHADH in vertebrates;\n  Drosophila retains single gene with isoform-specific targeting\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\"\"\"\n\nax2.text(0.02, 0.95, summary, transform=ax2.transAxes,\n         fontsize=9.5, verticalalignment='top', fontfamily='monospace',\n         bbox=dict(boxstyle='round', facecolor='#fef9e7', alpha=0.9))\nax2.set_title('B. Final Evidence Summary', fontweight='bold', fontsize=12)\n\nplt.tight_layout()\nplt.savefig('final_decision_table.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Final decision table saved\")\n",
  "plot_number": 4
}