{
  "filename": "hydropathy_comparison.png",
  "iteration": 1,
  "description": "Hydropathy comparison showing lrx-1 lacks transmembrane hydrophobic segment in mature protein while CD320 has clear TM helix",
  "timestamp": "2026-07-04 22:46:45",
  "code": "\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Create a hydropathy comparison figure\nfig, axes = plt.subplots(2, 1, figsize=(14, 8), sharex=False)\nfig.suptitle('Hydropathy Analysis: lrx-1 vs Human CD320', fontsize=14, fontweight='bold')\n\nkd = {\n    'A': 1.8, 'R': -4.5, 'N': -3.5, 'D': -3.5, 'C': 2.5,\n    'Q': -3.5, 'E': -3.5, 'G': -0.4, 'H': -3.2, 'I': 4.5,\n    'L': 3.8, 'K': -3.9, 'M': 1.9, 'F': 2.8, 'P': -1.6,\n    'S': -0.8, 'T': -0.7, 'W': -0.9, 'Y': -1.3, 'V': 4.2\n}\n\ndef hydro_profile(seq, window=19):\n    scores = []\n    for i in range(len(seq) - window + 1):\n        segment = seq[i:i+window]\n        score = sum(kd.get(aa, 0) for aa in segment) / window\n        scores.append(score)\n    return scores\n\nlrx1_seq = \"MAWLTSIFFILLAVQPVLPQDLYGTATQQQPYPYVQPSASSGSGGYVPNPQSSIHTVQQPYPNIDVVEPDVDSVDIYETEEPQFKVVNPVFPLGGSGIVEPGTIPPPMPQTQAPEKPDNSYAINYCDKREFPDDVLAQYGLERIDYFVYNTSCSHVFFQCSIGQTFPLACMSEDQAFDKSTENCNHKNAIKFCPEYDHVMHCTIKDTCTENEFACCAMPQSCIHVSKRCDGHPDCADGEDENNCPSCARDEFACVKSEHCIPANKRCDGVADDCEDGSNLDEIGCSKNTTCIGKFVCGTSRGGVSCVDLDMHCDGKKDCLNGEDEMNCKQEGRQKYLLCENQKQSVTRLQWCNGETDCADGSDEKYCY\"\ncd320_seq = \"MSGGWMAQVGAWRTGALGLALLLLLGLGLGLEAAASPLSTPTSAQAADHLAMRSLVKTLGSARPEFEAQLRYQLFFFSFLWAGCRAPSCQPGQEIEVCNHLPCARDDEWLCDGDNDCADSSDEQNCVAAASCPPVTFANRIHWRKQSQFPSGQAQALEFQVFAQLAGKNGPELNSPTFIPEDPDYEPEDPEEPYEFNQNQCNTAPCRKKLEDQCIGQFYCVNTSCATYVFHQCNSSEVHFPLCHSPHPLQVYSGVIAAAAVLSASLVTATLLLLSWLRAQERLRPLGLLVAMKESLLLSEQKTSLP\"\n\n# lrx-1 hydropathy\nh1 = hydro_profile(lrx1_seq)\npos1 = np.arange(1, len(h1)+1)\nax1 = axes[0]\nax1.fill_between(pos1, h1, 0, where=[x>0 for x in h1], color='#FF6666', alpha=0.5, label='Hydrophobic')\nax1.fill_between(pos1, h1, 0, where=[x<=0 for x in h1], color='#6666FF', alpha=0.5, label='Hydrophilic')\nax1.plot(pos1, h1, 'k-', linewidth=0.5)\nax1.axhline(y=1.6, color='red', linestyle='--', linewidth=1, label='TM threshold (1.6)')\nax1.axhline(y=0, color='gray', linestyle='-', linewidth=0.5)\n# Annotate signal peptide\nax1.axvspan(1, 19, alpha=0.2, color='gold', label='Signal peptide')\nax1.set_title('C. elegans lrx-1 (Q22179, 368 aa)', fontsize=12)\nax1.set_ylabel('Hydropathy Score\\n(KD, window=19)')\nax1.set_xlim(1, 370)\nax1.set_ylim(-3, 3)\nax1.legend(loc='upper right', fontsize=8)\nax1.annotate('Signal peptide\\n(only hydrophobic region)', xy=(10, 1.8), \n            fontsize=9, color='darkred', fontweight='bold')\nax1.annotate('NO transmembrane helix\\nin mature protein', xy=(250, 1.5),\n            fontsize=10, color='red', fontweight='bold',\n            bbox=dict(boxstyle='round,pad=0.3', facecolor='lightyellow', edgecolor='red'))\n\n# CD320 hydropathy\nh2 = hydro_profile(cd320_seq)\npos2 = np.arange(1, len(h2)+1)\nax2 = axes[1]\nax2.fill_between(pos2, h2, 0, where=[x>0 for x in h2], color='#FF6666', alpha=0.5, label='Hydrophobic')\nax2.fill_between(pos2, h2, 0, where=[x<=0 for x in h2], color='#6666FF', alpha=0.5, label='Hydrophilic')\nax2.plot(pos2, h2, 'k-', linewidth=0.5)\nax2.axhline(y=1.6, color='red', linestyle='--', linewidth=1, label='TM threshold (1.6)')\nax2.axhline(y=0, color='gray', linestyle='-', linewidth=0.5)\nax2.axvspan(1, 35, alpha=0.2, color='gold', label='Signal peptide')\nax2.axvspan(230, 250, alpha=0.3, color='red', label='Transmembrane helix')\nax2.set_title('Human CD320 (Q9NPF0, 282 aa) - Ortholog', fontsize=12)\nax2.set_ylabel('Hydropathy Score\\n(KD, window=19)')\nax2.set_xlabel('Residue Position')\nax2.set_xlim(1, 290)\nax2.set_ylim(-3, 3)\nax2.legend(loc='upper right', fontsize=8)\nax2.annotate('Transmembrane helix\\n(confirmed)', xy=(240, 2.3), \n            fontsize=9, color='darkred', fontweight='bold')\n\nplt.tight_layout()\nplt.savefig('hydropathy_comparison.png', dpi=150, bbox_inches='tight')\nplt.show()\nprint(\"Figure saved: hydropathy_comparison.png\")\n"
}