{
  "filename": "sou1_evidence_matrix.png",
  "iteration": 1,
  "description": "SDR motif/active-site/cofactor residue analysis + evidence matrix artifact for sou1",
  "timestamp": "2026-07-10 10:34:45",
  "code": "\nimport re\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\nseq=\"MTSMFSLKGKTTLITGGSGGIGFSIAKAFAAAGSNVGLLYGRNKKALEYAAELRDKHGVQAKAYSCPIENRSAVIETTNQAVEELGGRLDVMIANAGIAIPHLSLEDKNEDIWTKVVGINLNGAYYTAQAAGHHFKKQGKGSLIFTASMSGHIANWPQQWASYHATKAAVKHLARALAVEWAPFARVNSVSPGYIDTDLTLYADENLRKKWKEYTPQARIGLPDELPGAYLYLASDASSYCTGSDIIVDGGYCSR\"\nprint(\"Length:\", len(seq))\n\n# 1) Rossmann glycine-rich cofactor motif TGxxxGxG (SDR fingerprint)\nm=re.search(r\"TG..[A-Z]G.G\", seq)   # T-G-x-x-x-G-x-G\ngm=re.search(r\"G.{2}G.G\", seq[8:24])\nprint(\"\\nGlycine-rich motif region (res 11-22):\", seq[10:22], \"-> TGGSGGIG canonical SDR fingerprint\")\n\n# 2) Catalytic YxxxK motif (SDR catalytic Tyr + Lys)\nfor mm in re.finditer(r\"Y...K\", seq):\n    print(\"YxxxK catalytic motif at res %d-%d:\"%(mm.start()+1,mm.end()), mm.group())\n\n# 3) Cofactor-discriminating region (end of betaB strand, ~res 33-45)\nregion=seq[32:46]\nprint(\"\\nCofactor-discriminating region (res 33-46):\", region)\nbasic=[(i+33,a) for i,a in enumerate(region) if a in \"RK\"]\nacidic=[(i+33,a) for i,a in enumerate(region) if a in \"DE\"]\nprint(\"  Basic residues (NADP 2'-phosphate binders):\", basic)\nprint(\"  Acidic residues (NAD adenosine-ribose Asp discriminator):\", acidic)\nprint(\"  => NO Asp/Glu at betaB C-terminus; basic cluster R42/K44/K45 present => NADP-preference signature\")\n\n# Build evidence matrix table\nrows=[\n [\"Fold/family\",\"InterPro IPR002347 SDR_fam; Pfam PF13561; Gene3D Rossmann\",\"SDR / NAD(P)-binding Rossmann fold\",\"CONFIRMED\"],\n [\"Glycine fingerprint\",\"TGGSGGIG (res11-22) = TGxxxGxG\",\"Classical SDR coenzyme motif\",\"CONFIRMED\"],\n [\"Catalytic tetrad\",\"Tyr-x-x-x-Lys (YHATK) + upstream Asn/Ser\",\"Functional SDR active site\",\"CONFIRMED\"],\n [\"Cofactor NADP+\",\"Basic cluster R42/K44/K45, no acidic Asp discriminator; UniProt kw NADP; ortholog NADPH\",\"NADP+ preference\",\"SUPPORTED\"],\n [\"Substrate=arabitol\",\"No assay; ortholog=sorbose/fructose; PANTHER=L-xylulose reductase-related\",\"Arabitol specificity\",\"UNSUPPORTED\"],\n [\"Sorbose reductase\",\"S.pombe cannot assimilate L-sorbose (UniProt CAUTION)\",\"Sorbose-specific fn\",\"REFUTED (species-level)\"],\n]\ndf=pd.DataFrame(rows,columns=[\"Feature\",\"Evidence\",\"Interpretation\",\"Verdict\"])\nprint(\"\\n\",df.to_string(index=False))\n\nfig,ax=plt.subplots(figsize=(13,3.2)); ax.axis('off')\nt=ax.table(cellText=df.values,colLabels=df.columns,loc='center',cellLoc='left')\nt.auto_set_font_size(False); t.set_fontsize(8.5); t.scale(1,1.6)\nax.set_title(\"SPAC8E11.10 (sou1/Q9Y6Z9): SDR fold & cofactor-specificity evidence\",fontweight='bold')\nplt.tight_layout(); plt.savefig(\"sou1_evidence_matrix.png\",dpi=140,bbox_inches='tight')\nprint(\"\\nsaved sou1_evidence_matrix.png\")\n"
}