Add cation-pi directory with histidine interface files and models

This commit is contained in:
james-m-jordan 2025-05-05 16:30:25 -04:00
parent 866139051a
commit 064d39a163
110 changed files with 755987 additions and 0 deletions

3
cation-pi/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
}

View File

@ -0,0 +1,674 @@
<?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd"><key id="d6" for="edge" attr.name="pdb_file" attr.type="string"/>
<key id="d5" for="edge" attr.name="interaction" attr.type="string"/>
<key id="d4" for="node" attr.name="residue_number" attr.type="long"/>
<key id="d3" for="node" attr.name="residue_name" attr.type="string"/>
<key id="d2" for="node" attr.name="label" attr.type="string"/>
<key id="d1" for="node" attr.name="chain" attr.type="string"/>
<key id="d0" for="node" attr.name="file" attr.type="string"/>
<graph edgedefault="undirected"><node id="UQCRFS1_Q9CR68|A|H141">
<data key="d0">UQCRFS1_Q9CR68_MACROD1_Q922B1_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">H</data>
<data key="d4">141</data>
</node>
<node id="YARS2_Q8BYL4|B|F5">
<data key="d0">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">YARS2_Q8BYL4</data>
<data key="d3">F</data>
<data key="d4">5</data>
</node>
<node id="YARS2_Q8BYL4|B|F6">
<data key="d0">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">YARS2_Q8BYL4</data>
<data key="d3">F</data>
<data key="d4">6</data>
</node>
<node id="UQCRFS1_Q9CR68|A|H161">
<data key="d0">UQCRFS1_Q9CR68_MACROD1_Q922B1_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">H</data>
<data key="d4">161</data>
</node>
<node id="UQCRFS1_Q9CR68|A|H164">
<data key="d0">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">H</data>
<data key="d4">164</data>
</node>
<node id="YARS2_Q8BYL4|B|R156">
<data key="d0">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">YARS2_Q8BYL4</data>
<data key="d3">R</data>
<data key="d4">156</data>
</node>
<node id="COX8A_Q64445|A|H36">
<data key="d0">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">COX8A_Q64445</data>
<data key="d3">H</data>
<data key="d4">36</data>
</node>
<node id="MRPS15_Q9DC71|B|K155">
<data key="d0">COX8A_Q64445_MRPS15_Q9DC71_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MRPS15_Q9DC71</data>
<data key="d3">K</data>
<data key="d4">155</data>
</node>
<node id="UQCRFS1_Q9CR68|A|R118">
<data key="d0">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">R</data>
<data key="d4">118</data>
</node>
<node id="CBR4_Q91VT4|B|H192">
<data key="d0">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">CBR4_Q91VT4</data>
<data key="d3">H</data>
<data key="d4">192</data>
</node>
<node id="CBR4_Q91VT4|B|F193">
<data key="d0">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">CBR4_Q91VT4</data>
<data key="d3">F</data>
<data key="d4">193</data>
</node>
<node id="UQCRFS1_Q9CR68|A|R172">
<data key="d0">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">R</data>
<data key="d4">172</data>
</node>
<node id="UQCRFS1_Q9CR68|A|K173">
<data key="d0">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">UQCRFS1_Q9CR68</data>
<data key="d3">K</data>
<data key="d4">173</data>
</node>
<node id="NDUFS6_P52503|A|H68">
<data key="d0">NDUFS6_P52503_DBT_P53395_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS6_P52503</data>
<data key="d3">H</data>
<data key="d4">68</data>
</node>
<node id="PDHA1_P35486|B|R205">
<data key="d0">NDUFS6_P52503_PDHA1_P35486_unrelaxed_rank_001_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">PDHA1_P35486</data>
<data key="d3">R</data>
<data key="d4">205</data>
</node>
<node id="COX4I1_P19783|A|H109">
<data key="d0">COX4I1_P19783_MRPS9_Q9D7N3_unrelaxed_rank_010_alphafold2_multimer_v3_model_1_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">COX4I1_P19783</data>
<data key="d3">H</data>
<data key="d4">109</data>
</node>
<node id="MRPL44_Q9CY73|B|Y240">
<data key="d0">COX4I1_P19783_MRPL44_Q9CY73_unrelaxed_rank_001_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">MRPL44_Q9CY73</data>
<data key="d3">Y</data>
<data key="d4">240</data>
</node>
<node id="MACROD1_Q922B1|B|F304">
<data key="d0">UQCRFS1_Q9CR68_MACROD1_Q922B1_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MACROD1_Q922B1</data>
<data key="d3">F</data>
<data key="d4">304</data>
</node>
<node id="MRPS9_Q9D7N3|B|K344">
<data key="d0">COX4I1_P19783_MRPS9_Q9D7N3_unrelaxed_rank_010_alphafold2_multimer_v3_model_1_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MRPS9_Q9D7N3</data>
<data key="d3">K</data>
<data key="d4">344</data>
</node>
<node id="DBT_P53395|B|R409">
<data key="d0">NDUFS6_P52503_DBT_P53395_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">DBT_P53395</data>
<data key="d3">R</data>
<data key="d4">409</data>
</node>
<node id="NDUFS7_Q9DC70|A|Y149">
<data key="d0">NDUFS7_Q9DC70_BCKDK_O55028_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">Y</data>
<data key="d4">149</data>
</node>
<node id="BCKDK_O55028|B|H74">
<data key="d0">NDUFS7_Q9DC70_BCKDK_O55028_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">BCKDK_O55028</data>
<data key="d3">H</data>
<data key="d4">74</data>
</node>
<node id="CCDC90B_Q8C3X2|A|Y9">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">CCDC90B_Q8C3X2</data>
<data key="d3">Y</data>
<data key="d4">9</data>
</node>
<node id="CLPX_Q9JHS4|B|H75">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">CLPX_Q9JHS4</data>
<data key="d3">H</data>
<data key="d4">75</data>
</node>
<node id="CCDC90B_Q8C3X2|A|H83">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">CCDC90B_Q8C3X2</data>
<data key="d3">H</data>
<data key="d4">83</data>
</node>
<node id="CLPX_Q9JHS4|B|K69">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">CLPX_Q9JHS4</data>
<data key="d3">K</data>
<data key="d4">69</data>
</node>
<node id="CLPX_Q9JHS4|B|K72">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">CLPX_Q9JHS4</data>
<data key="d3">K</data>
<data key="d4">72</data>
</node>
<node id="CLPX_Q9JHS4|B|F76">
<data key="d0">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">CLPX_Q9JHS4</data>
<data key="d3">F</data>
<data key="d4">76</data>
</node>
<node id="COX8A_Q64445|A|H2">
<data key="d0">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">COX8A_Q64445</data>
<data key="d3">H</data>
<data key="d4">2</data>
</node>
<node id="GFM1_Q8K0D5|B|H42">
<data key="d0">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">H</data>
<data key="d4">42</data>
</node>
<node id="GFM1_Q8K0D5|B|K429">
<data key="d0">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">K</data>
<data key="d4">429</data>
</node>
<node id="ACAD9_Q8JZN5|A|H452">
<data key="d0">ACAD9_Q8JZN5_MDH2_P08249_unrelaxed_rank_006_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
<data key="d1">A</data>
<data key="d2">ACAD9_Q8JZN5</data>
<data key="d3">H</data>
<data key="d4">452</data>
</node>
<node id="MDH2_P08249|B|K245">
<data key="d0">ACAD9_Q8JZN5_MDH2_P08249_unrelaxed_rank_006_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">MDH2_P08249</data>
<data key="d3">K</data>
<data key="d4">245</data>
</node>
<node id="ACAD9_Q8JZN5|A|H522">
<data key="d0">ACAD9_Q8JZN5_GFM1_Q8K0D5_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">ACAD9_Q8JZN5</data>
<data key="d3">H</data>
<data key="d4">522</data>
</node>
<node id="MDH2_P08249|B|R167">
<data key="d0">ACAD9_Q8JZN5_MDH2_P08249_unrelaxed_rank_006_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
<data key="d1">B</data>
<data key="d2">MDH2_P08249</data>
<data key="d3">R</data>
<data key="d4">167</data>
</node>
<node id="NDUFS7_Q9DC70|A|H146">
<data key="d0">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">H</data>
<data key="d4">146</data>
</node>
<node id="ACSF3_Q3URE1|B|R296">
<data key="d0">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">ACSF3_Q3URE1</data>
<data key="d3">R</data>
<data key="d4">296</data>
</node>
<node id="NDUFS7_Q9DC70|A|Y164">
<data key="d0">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">Y</data>
<data key="d4">164</data>
</node>
<node id="ACSF3_Q3URE1|B|H284">
<data key="d0">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">ACSF3_Q3URE1</data>
<data key="d3">H</data>
<data key="d4">284</data>
</node>
<node id="NDUFS7_Q9DC70|A|Y177">
<data key="d0">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">Y</data>
<data key="d4">177</data>
</node>
<node id="COX4I1_P19783|A|K7">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">COX4I1_P19783</data>
<data key="d3">K</data>
<data key="d4">7</data>
</node>
<node id="MTIF2_Q91YJ5|B|H474">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MTIF2_Q91YJ5</data>
<data key="d3">H</data>
<data key="d4">474</data>
</node>
<node id="COX4I1_P19783|A|Y11">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">COX4I1_P19783</data>
<data key="d3">Y</data>
<data key="d4">11</data>
</node>
<node id="COX4I1_P19783|A|F13">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">COX4I1_P19783</data>
<data key="d3">F</data>
<data key="d4">13</data>
</node>
<node id="MTIF2_Q91YJ5|B|H470">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MTIF2_Q91YJ5</data>
<data key="d3">H</data>
<data key="d4">470</data>
</node>
<node id="COX4I1_P19783|A|H29">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">COX4I1_P19783</data>
<data key="d3">H</data>
<data key="d4">29</data>
</node>
<node id="MTIF2_Q91YJ5|B|R478">
<data key="d0">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MTIF2_Q91YJ5</data>
<data key="d3">R</data>
<data key="d4">478</data>
</node>
<node id="TUFM_Q8BFR5|B|H324">
<data key="d0">ACAD9_Q8JZN5_TUFM_Q8BFR5_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">TUFM_Q8BFR5</data>
<data key="d3">H</data>
<data key="d4">324</data>
</node>
<node id="TUFM_Q8BFR5|B|K325">
<data key="d0">ACAD9_Q8JZN5_TUFM_Q8BFR5_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">TUFM_Q8BFR5</data>
<data key="d3">K</data>
<data key="d4">325</data>
</node>
<node id="NDUFS7_Q9DC70|A|Y147">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">Y</data>
<data key="d4">147</data>
</node>
<node id="MTIF2_Q91YJ5|B|H550">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MTIF2_Q91YJ5</data>
<data key="d3">H</data>
<data key="d4">550</data>
</node>
<node id="NDUFS7_Q9DC70|A|R153">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">R</data>
<data key="d4">153</data>
</node>
<node id="NDUFS7_Q9DC70|A|K185">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">K</data>
<data key="d4">185</data>
</node>
<node id="NDUFS7_Q9DC70|A|Y196">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS7_Q9DC70</data>
<data key="d3">Y</data>
<data key="d4">196</data>
</node>
<node id="MTIF2_Q91YJ5|B|H485">
<data key="d0">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">MTIF2_Q91YJ5</data>
<data key="d3">H</data>
<data key="d4">485</data>
</node>
<node id="GFM1_Q8K0D5|B|R683">
<data key="d0">ACAD9_Q8JZN5_GFM1_Q8K0D5_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">R</data>
<data key="d4">683</data>
</node>
<node id="ACAD9_Q8JZN5|A|H524">
<data key="d0">ACAD9_Q8JZN5_GFM1_Q8K0D5_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">ACAD9_Q8JZN5</data>
<data key="d3">H</data>
<data key="d4">524</data>
</node>
<node id="NDUFS3_Q9DCT2|A|F157">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">F</data>
<data key="d4">157</data>
</node>
<node id="GFM1_Q8K0D5|B|H580">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">H</data>
<data key="d4">580</data>
</node>
<node id="NDUFS3_Q9DCT2|A|F162">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">F</data>
<data key="d4">162</data>
</node>
<node id="GFM1_Q8K0D5|B|H581">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">H</data>
<data key="d4">581</data>
</node>
<node id="NDUFS3_Q9DCT2|A|R163">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">R</data>
<data key="d4">163</data>
</node>
<node id="NDUFS3_Q9DCT2|A|K164">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">K</data>
<data key="d4">164</data>
</node>
<node id="NDUFS3_Q9DCT2|A|F166">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">F</data>
<data key="d4">166</data>
</node>
<node id="NDUFS3_Q9DCT2|A|Y171">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">Y</data>
<data key="d4">171</data>
</node>
<node id="NDUFS3_Q9DCT2|A|F194">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">A</data>
<data key="d2">NDUFS3_Q9DCT2</data>
<data key="d3">F</data>
<data key="d4">194</data>
</node>
<node id="GFM1_Q8K0D5|B|H503">
<data key="d0">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
<data key="d1">B</data>
<data key="d2">GFM1_Q8K0D5</data>
<data key="d3">H</data>
<data key="d4">503</data>
</node>
<edge source="UQCRFS1_Q9CR68|A|H141" target="YARS2_Q8BYL4|B|F5">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|H141" target="YARS2_Q8BYL4|B|F6">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|H141" target="MACROD1_Q922B1|B|F304">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_MACROD1_Q922B1_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="YARS2_Q8BYL4|B|F5" target="UQCRFS1_Q9CR68|A|H161">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
</edge>
<edge source="YARS2_Q8BYL4|B|F6" target="UQCRFS1_Q9CR68|A|H161">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|H161" target="CBR4_Q91VT4|B|F193">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|H161" target="MACROD1_Q922B1|B|F304">
<data key="d5">pp</data>
<data key="d6">UQCRFS1_Q9CR68_MACROD1_Q922B1_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|H164" target="YARS2_Q8BYL4|B|R156">
<data key="d5">cp</data>
<data key="d6">UQCRFS1_Q9CR68_YARS2_Q8BYL4_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_001.pdb</data>
</edge>
<edge source="COX8A_Q64445|A|H36" target="MRPS15_Q9DC71|B|K155">
<data key="d5">cp</data>
<data key="d6">COX8A_Q64445_MRPS15_Q9DC71_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="COX8A_Q64445|A|H36" target="GFM1_Q8K0D5|B|K429">
<data key="d5">cp</data>
<data key="d6">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="UQCRFS1_Q9CR68|A|R118" target="CBR4_Q91VT4|B|H192">
<data key="d5">cp</data>
<data key="d6">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="CBR4_Q91VT4|B|H192" target="UQCRFS1_Q9CR68|A|R172">
<data key="d5">cp</data>
<data key="d6">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="CBR4_Q91VT4|B|H192" target="UQCRFS1_Q9CR68|A|K173">
<data key="d5">cp</data>
<data key="d6">UQCRFS1_Q9CR68_CBR4_Q91VT4_unrelaxed_rank_001_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="NDUFS6_P52503|A|H68" target="PDHA1_P35486|B|R205">
<data key="d5">cp</data>
<data key="d6">NDUFS6_P52503_PDHA1_P35486_unrelaxed_rank_001_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
</edge>
<edge source="NDUFS6_P52503|A|H68" target="DBT_P53395|B|R409">
<data key="d5">cp</data>
<data key="d6">NDUFS6_P52503_DBT_P53395_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="COX4I1_P19783|A|H109" target="MRPL44_Q9CY73|B|Y240">
<data key="d5">pp</data>
<data key="d6">COX4I1_P19783_MRPL44_Q9CY73_unrelaxed_rank_001_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
</edge>
<edge source="COX4I1_P19783|A|H109" target="MRPS9_Q9D7N3|B|K344">
<data key="d5">cp</data>
<data key="d6">COX4I1_P19783_MRPS9_Q9D7N3_unrelaxed_rank_010_alphafold2_multimer_v3_model_1_seed_000.pdb</data>
</edge>
<edge source="NDUFS7_Q9DC70|A|Y149" target="BCKDK_O55028|B|H74">
<data key="d5">pp</data>
<data key="d6">NDUFS7_Q9DC70_BCKDK_O55028_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
</edge>
<edge source="CCDC90B_Q8C3X2|A|Y9" target="CLPX_Q9JHS4|B|H75">
<data key="d5">pp</data>
<data key="d6">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="CCDC90B_Q8C3X2|A|H83" target="CLPX_Q9JHS4|B|K69">
<data key="d5">cp</data>
<data key="d6">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="CCDC90B_Q8C3X2|A|H83" target="CLPX_Q9JHS4|B|K72">
<data key="d5">cp</data>
<data key="d6">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="CCDC90B_Q8C3X2|A|H83" target="CLPX_Q9JHS4|B|F76">
<data key="d5">pp</data>
<data key="d6">CCDC90B_Q8C3X2_CLPX_Q9JHS4_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="COX8A_Q64445|A|H2" target="GFM1_Q8K0D5|B|H42">
<data key="d5">pp</data>
<data key="d6">COX8A_Q64445_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_001.pdb</data>
</edge>
<edge source="ACAD9_Q8JZN5|A|H452" target="MDH2_P08249|B|K245">
<data key="d5">cp</data>
<data key="d6">ACAD9_Q8JZN5_MDH2_P08249_unrelaxed_rank_006_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
</edge>
<edge source="ACAD9_Q8JZN5|A|H522" target="MDH2_P08249|B|R167">
<data key="d5">cp</data>
<data key="d6">ACAD9_Q8JZN5_MDH2_P08249_unrelaxed_rank_006_alphafold2_multimer_v3_model_2_seed_001.pdb</data>
</edge>
<edge source="ACAD9_Q8JZN5|A|H522" target="TUFM_Q8BFR5|B|H324">
<data key="d5">pp</data>
<data key="d6">ACAD9_Q8JZN5_TUFM_Q8BFR5_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
</edge>
<edge source="ACAD9_Q8JZN5|A|H522" target="TUFM_Q8BFR5|B|K325">
<data key="d5">cp</data>
<data key="d6">ACAD9_Q8JZN5_TUFM_Q8BFR5_unrelaxed_rank_003_alphafold2_multimer_v3_model_2_seed_000.pdb</data>
</edge>
<edge source="ACAD9_Q8JZN5|A|H522" target="GFM1_Q8K0D5|B|R683">
<data key="d5">cp</data>
<data key="d6">ACAD9_Q8JZN5_GFM1_Q8K0D5_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="NDUFS7_Q9DC70|A|H146" target="ACSF3_Q3URE1|B|R296">
<data key="d5">cp</data>
<data key="d6">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="NDUFS7_Q9DC70|A|Y164" target="ACSF3_Q3URE1|B|H284">
<data key="d5">pp</data>
<data key="d6">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="ACSF3_Q3URE1|B|H284" target="NDUFS7_Q9DC70|A|Y177">
<data key="d5">pp</data>
<data key="d6">NDUFS7_Q9DC70_ACSF3_Q3URE1_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="COX4I1_P19783|A|K7" target="MTIF2_Q91YJ5|B|H474">
<data key="d5">cp</data>
<data key="d6">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="MTIF2_Q91YJ5|B|H474" target="COX4I1_P19783|A|Y11">
<data key="d5">pp</data>
<data key="d6">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="MTIF2_Q91YJ5|B|H474" target="COX4I1_P19783|A|F13">
<data key="d5">pp</data>
<data key="d6">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="COX4I1_P19783|A|F13" target="MTIF2_Q91YJ5|B|H470">
<data key="d5">pp</data>
<data key="d6">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="MTIF2_Q91YJ5|B|H470" target="NDUFS7_Q9DC70|A|K185">
<data key="d5">cp</data>
<data key="d6">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="COX4I1_P19783|A|H29" target="MTIF2_Q91YJ5|B|R478">
<data key="d5">cp</data>
<data key="d6">COX4I1_P19783_MTIF2_Q91YJ5_unrelaxed_rank_003_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="NDUFS7_Q9DC70|A|Y147" target="MTIF2_Q91YJ5|B|H550">
<data key="d5">pp</data>
<data key="d6">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="MTIF2_Q91YJ5|B|H550" target="NDUFS7_Q9DC70|A|R153">
<data key="d5">cp</data>
<data key="d6">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="NDUFS7_Q9DC70|A|Y196" target="MTIF2_Q91YJ5|B|H485">
<data key="d5">pp</data>
<data key="d6">NDUFS7_Q9DC70_MTIF2_Q91YJ5_unrelaxed_rank_002_alphafold2_multimer_v3_model_3_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|R683" target="ACAD9_Q8JZN5|A|H524">
<data key="d5">cp</data>
<data key="d6">ACAD9_Q8JZN5_GFM1_Q8K0D5_unrelaxed_rank_002_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="NDUFS3_Q9DCT2|A|F157" target="GFM1_Q8K0D5|B|H580">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|H580" target="NDUFS3_Q9DCT2|A|F166">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|H580" target="NDUFS3_Q9DCT2|A|Y171">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="NDUFS3_Q9DCT2|A|F162" target="GFM1_Q8K0D5|B|H581">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|H581" target="NDUFS3_Q9DCT2|A|R163">
<data key="d5">cp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|H581" target="NDUFS3_Q9DCT2|A|K164">
<data key="d5">cp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="GFM1_Q8K0D5|B|H581" target="NDUFS3_Q9DCT2|A|F166">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
<edge source="NDUFS3_Q9DCT2|A|F194" target="GFM1_Q8K0D5|B|H503">
<data key="d5">pp</data>
<data key="d6">NDUFS3_Q9DCT2_GFM1_Q8K0D5_unrelaxed_rank_006_alphafold2_multimer_v3_model_4_seed_000.pdb</data>
</edge>
</graph></graphml>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Histidine Interface Visualization - Index</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://3dmol.org/build/3Dmol-min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.viewer-container {
margin-bottom: 30px;
border: 1px solid #ccc;
padding: 10px;
border-radius: 5px;
}
.view-title {
font-weight: bold;
margin-bottom: 10px;
}
.viewer {
width: 600px;
height: 400px;
position: relative;
}
.divider {
border-top: 1px solid #ccc;
margin: 30px 0;
}
button {
padding: 8px 16px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
margin-top: 10px;
}
button:hover {
background-color: #45a049;
}
h2 {
margin-top: 30px;
}
.index-container {
display: flex;
flex-wrap: wrap;
gap: 15px;
}
.protein-card {
border: 1px solid #ddd;
border-radius: 8px;
padding: 15px;
width: 200px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.protein-card:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.protein-card h3 {
margin-top: 0;
color: #2c4e6f;
}
.protein-card p {
color: #666;
margin-bottom: 10px;
}
.protein-card a {
display: inline-block;
background: #4e79a7;
color: white;
padding: 8px 12px;
text-decoration: none;
border-radius: 4px;
}
.protein-card a:hover {
background: #3d6491;
}
</style>
</head>
<body>
<h1>Histidine Interface Visualization - Index</h1>
<p>Generated on: 2025-04-15 01:40:56</p>
<p>This visualization shows histidine-mediated cation-π and π-π interactions in protein structures.</p>
<h2>Protein Structures</h2>
<div style="margin: 20px 0;">
<a href="manuscript.html" style="display: inline-block; background: #4CAF50; color: white;
padding: 10px 20px; text-decoration: none; border-radius: 4px;
font-weight: bold; font-size: 16px;">
Manuscript Figure Builder
</a>
<p>Create publication-ready figures with optimized layouts and visualization settings</p>
</div>
<p>Click on a protein to view its histidine interfaces:</p><div class='index-container'>
<div class='protein-card'>
<h3>ACOT9</h3>
<p>1 structure</p>
<a href='histidine_acot9_20250415_014056.html'>View Structures</a>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,441 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Manuscript Figure Builder</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://3dmol.org/build/3Dmol-min.js"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.manuscript-container {
display: flex;
flex-direction: column;
gap: 20px;
}
.figure-panel {
border: 1px solid #ccc;
padding: 15px;
border-radius: 5px;
background-color: white;
}
.figure-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 15px;
}
.figure-cell {
border: 1px dashed #ccc;
padding: 5px;
position: relative;
}
.viewer-small {
width: 300px;
height: 300px;
position: relative;
}
.viewer-medium {
width: 450px;
height: 450px;
position: relative;
}
.viewer-large {
width: 600px;
height: 500px;
position: relative;
}
h2, h3 {
margin-top: 20px;
}
button {
padding: 8px 16px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
margin-top: 10px;
margin-right: 5px;
}
button:hover {
background-color: #45a049;
}
.controls {
margin: 20px 0;
padding: 15px;
background-color: #f5f5f5;
border-radius: 5px;
}
.inset-controls {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 10px;
}
.inset-controls label {
margin-right: 5px;
}
.panel-label {
position: absolute;
top: 0;
left: 0;
background: rgba(0,0,0,0.7);
color: white;
padding: 2px 6px;
font-weight: bold;
border-bottom-right-radius: 5px;
z-index: 100;
}
.figure-title {
font-weight: bold;
margin-bottom: 10px;
}
.label-settings {
margin-top: 15px;
border-top: 1px solid #ddd;
padding-top: 15px;
}
.color-picker {
display: inline-block;
width: 30px;
height: 20px;
border: 1px solid #ccc;
margin-right: 5px;
vertical-align: middle;
}
</style>
</head>
<body>
<h1>Manuscript Figure Builder</h1>
<p>Create optimized views for manuscript figures. Group structures, create insets, and export ready-to-use figures.</p>
<p><a href="index.html">← Back to Main Index</a></p>
<div class="controls">
<h3>Figure Settings</h3>
<div>
<button id="add-row-btn">Add Row</button>
<button id="add-2col-btn">Add 2-Column Row</button>
<button id="add-3col-btn">Add 3-Column Row</button>
<button id="capture-figure-btn">Export Figure as PNG</button>
</div>
<div class="label-settings">
<h4>Global Label Settings</h4>
<div>
<label>Font Size:</label>
<select id="global-font-size">
<option value="20">Small (20px)</option>
<option value="28" selected>Medium (28px)</option>
<option value="36">Large (36px)</option>
</select>
<label style="margin-left:15px">Font Weight:</label>
<select id="global-font-weight">
<option value="normal">Normal</option>
<option value="bold" selected>Bold</option>
</select>
<label style="margin-left:15px">Background:</label>
<select id="global-background">
<option value="false">None</option>
<option value="true" selected>Show</option>
</select>
</div>
<div style="margin-top:10px">
<label>Chain A Label Color:</label>
<input type="color" id="chain-a-color" value="#2c4e6f" class="color-picker">
<label style="margin-left:15px">Chain B Label Color:</label>
<input type="color" id="chain-b-color" value="#8B4513" class="color-picker">
<label style="margin-left:15px">Stroke Width:</label>
<select id="global-stroke-width">
<option value="2">Thin (2px)</option>
<option value="3" selected>Medium (3px)</option>
<option value="4">Thick (4px)</option>
</select>
</div>
</div>
</div>
<div id="manuscript-container" class="manuscript-container">
<!-- Rows and viewers will be added here -->
</div>
</body>
</html>
<script>
// Available protein structures
const availableProteins = [
{ id: 'ACOT9', name: 'ACOT9 (1 structures)', url: 'histidine_acot9_20250415_014056.html' },
];
// Global settings that will be applied to new viewers
const globalSettings = {
fontSize: 28,
fontWeight: 'bold',
showBackground: true,
chainAColor: '#2c4e6f',
chainBColor: '#8B4513',
strokeWidth: 3
};
// Load and display a protein structure with specified options
function loadStructure(proteinId, viewerId, viewType) {
if (!proteinId) return;
// Find the protein in our available list
const protein = availableProteins.find(p => p.id === proteinId);
if (!protein) return;
// Open the protein's HTML file in a hidden iframe to extract the structure data
const iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = protein.url;
document.body.appendChild(iframe);
// Wait for iframe to load
iframe.onload = function() {
try {
// Find a 3DMol viewer in the iframe that matches our viewType
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
// Create a new viewer in our current document
let viewer = $3Dmol.createViewer($(`#${viewerId}`), {
backgroundColor: "white"
});
// Based on viewType, try to extract either ribbon or labeled view HTML
let scriptContent;
let modelData;
// Find all scripts in the iframe
const scripts = iframeDoc.querySelectorAll('script');
for (let script of scripts) {
// Look for scripts that contain our viewer type
if ((viewType === 'ribbon' && script.textContent.includes('cartoon')) ||
(viewType === 'label' && script.textContent.includes('addLabel'))) {
scriptContent = script.textContent;
break;
}
}
// If we found a script with the right content
if (scriptContent) {
// Extract the PDB data from the script
const pdbMatch = scriptContent.match(/let pdbData = `([^`]+)`/);
if (pdbMatch && pdbMatch[1]) {
modelData = pdbMatch[1];
// Configure the viewer with the extracted data
viewer.addModel(modelData, "pdb");
// Set basic view style
viewer.setViewStyle({
style: 'outline',
color: 'gray',
width: 0.01
});
// Add surfaces
viewer.addSurface($3Dmol.SAS, {opacity: 0.6, color: '#4e79a7'}, {chain: 'A'});
viewer.addSurface($3Dmol.SAS, {opacity: 0.6, color: '#f2be2b'}, {chain: 'B'});
if (viewType === 'ribbon') {
// Add ribbons
viewer.setStyle({chain: 'A'}, {cartoon: {color: '#4e79a7', opacity: 1.0}});
viewer.setStyle({chain: 'B'}, {cartoon: {color: '#f2be2b', opacity: 1.0}});
} else {
// Hide cartoon for label view
viewer.setStyle({model: -1}, {cartoon: {hidden: true}});
// Add sticks and labels by extracting this data from the script
const stickMatch = scriptContent.match(/viewer.setStyle\(\{\s*chain:.*?\},\s*\{\s*stick:.*?\}\)/g);
if (stickMatch) {
for (let stick of stickMatch) {
eval('viewer.' + stick.substring(7));
}
}
const labelMatch = scriptContent.match(/viewer.addLabel\(.*?\)/g);
if (labelMatch) {
for (let label of labelMatch) {
// Apply global label settings
let modifiedLabel = label.replace(/fontSize: \d+/, `fontSize: ${globalSettings.fontSize}`);
modifiedLabel = modifiedLabel.replace(/fontWeight: ['"].*?['"]/, `fontWeight: '${globalSettings.fontWeight}'`);
modifiedLabel = modifiedLabel.replace(/strokeWidth: \d+/, `strokeWidth: ${globalSettings.strokeWidth}`);
// Font colors
if (label.includes("chain: 'A'")) {
modifiedLabel = modifiedLabel.replace(/fontColor: ['"].*?['"]/, `fontColor: '${globalSettings.chainAColor}'`);
} else {
modifiedLabel = modifiedLabel.replace(/fontColor: ['"].*?['"]/, `fontColor: '${globalSettings.chainBColor}'`);
}
// Background
if (globalSettings.showBackground) {
modifiedLabel = modifiedLabel.replace(/showBackground: \w+/, `showBackground: true`);
} else {
modifiedLabel = modifiedLabel.replace(/showBackground: \w+/, `showBackground: false`);
}
eval('viewer.' + modifiedLabel.substring(7));
}
}
}
viewer.zoomTo();
viewer.render();
}
}
} catch (e) {
console.error("Error loading structure:", e);
} finally {
// Clean up
document.body.removeChild(iframe);
}
};
}
// Add a new row to the figure
function addRow(numCols = 1) {
const container = document.getElementById('manuscript-container');
const rowIndex = container.children.length + 1;
const row = document.createElement('div');
row.className = 'figure-row';
row.id = `row-${rowIndex}`;
for (let i = 1; i <= numCols; i++) {
const cell = document.createElement('div');
cell.className = 'figure-cell';
const cellControls = document.createElement('div');
cellControls.innerHTML = `
<div style="margin-bottom:10px">
<select class="protein-select" data-row="${rowIndex}" data-col="${i}">
<option value="">Select protein...</option>
${availableProteins.map(p => `<option value="${p.id}">${p.name}</option>`).join('')}
</select>
<select class="view-type" data-row="${rowIndex}" data-col="${i}">
<option value="ribbon">Ribbon view</option>
<option value="label">Labeled view</option>
</select>
<select class="viewer-size" data-row="${rowIndex}" data-col="${i}">
<option value="small">Small</option>
<option value="medium" selected>Medium</option>
<option value="large">Large</option>
</select>
</div>
<div class="viewer-container">
<div class="panel-label">${String.fromCharCode(64 + rowIndex)}${i}</div>
<div id="viewer-${rowIndex}-${i}" class="viewer-medium"></div>
</div>
`;
cell.appendChild(cellControls);
row.appendChild(cell);
}
container.appendChild(row);
// Add event listeners to the new selects
row.querySelectorAll('.protein-select').forEach(select => {
select.addEventListener('change', function() {
const row = this.dataset.row;
const col = this.dataset.col;
const viewType = document.querySelector(`.view-type[data-row="${row}"][data-col="${col}"]`).value;
const viewerId = `viewer-${row}-${col}`;
loadStructure(this.value, viewerId, viewType);
});
});
row.querySelectorAll('.view-type').forEach(select => {
select.addEventListener('change', function() {
const row = this.dataset.row;
const col = this.dataset.col;
const proteinId = document.querySelector(`.protein-select[data-row="${row}"][data-col="${col}"]`).value;
const viewerId = `viewer-${row}-${col}`;
if (proteinId) {
loadStructure(proteinId, viewerId, this.value);
}
});
});
row.querySelectorAll('.viewer-size').forEach(select => {
select.addEventListener('change', function() {
const row = this.dataset.row;
const col = this.dataset.col;
const viewerId = document.getElementById(`viewer-${row}-${col}`);
// Remove existing size classes
viewerId.classList.remove('viewer-small', 'viewer-medium', 'viewer-large');
// Add the new size class
viewerId.classList.add(`viewer-${this.value}`);
// Reload the viewer to update the size
setTimeout(() => {
const proteinId = document.querySelector(`.protein-select[data-row="${row}"][data-col="${col}"]`).value;
if (proteinId) {
const viewType = document.querySelector(`.view-type[data-row="${row}"][data-col="${col}"]`).value;
loadStructure(proteinId, `viewer-${row}-${col}`, viewType);
}
}, 100);
});
});
}
// Capture the figure as an image
function captureFigure() {
html2canvas(document.getElementById('manuscript-container')).then(canvas => {
const link = document.createElement('a');
link.download = 'manuscript-figure.png';
link.href = canvas.toDataURL('image/png');
link.click();
});
}
// Event listeners for the control buttons
document.getElementById('add-row-btn').addEventListener('click', () => addRow(1));
document.getElementById('add-2col-btn').addEventListener('click', () => addRow(2));
document.getElementById('add-3col-btn').addEventListener('click', () => addRow(3));
document.getElementById('capture-figure-btn').addEventListener('click', captureFigure);
// Update global settings when controls change
document.getElementById('global-font-size').addEventListener('change', function() {
globalSettings.fontSize = parseInt(this.value);
});
document.getElementById('global-font-weight').addEventListener('change', function() {
globalSettings.fontWeight = this.value;
});
document.getElementById('global-background').addEventListener('change', function() {
globalSettings.showBackground = this.value === 'true';
});
document.getElementById('chain-a-color').addEventListener('change', function() {
globalSettings.chainAColor = this.value;
});
document.getElementById('chain-b-color').addEventListener('change', function() {
globalSettings.chainBColor = this.value;
});
document.getElementById('global-stroke-width').addEventListener('change', function() {
globalSettings.strokeWidth = parseInt(this.value);
});
// Add an initial row to get started
addRow(2);
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,89 @@
# Histidine Interface Visualization Project - Progress Log
Date: April 15, 2024
## Project Overview
We've been adapting a Jupyter notebook script for visualizing histidine-mediated cation-π and π-π interactions into a standalone Python script (his-interface-visualization.py) that works in VS Code with py3Dmol visualization.
## Completed Improvements
1. **Separate HTML Files for Different Proteins**
- Created individual HTML files for each anchor protein (Chain A) to prevent browser crashes
- Added an index page with links to each protein's visualization page
- Added manuscript figure builder tool for publication-ready figures
2. **CIF Filename Parsing**
- Fixed the extraction of anchor protein names from CIF filenames
- Added logic to parse patterns like `fold_2025_03_16_23_33_acad_acat1_model_0.cif` to extract "ACAD"
- Added safeguards to prevent returning "FOLD" as an anchor protein name
- Still seeing some files grouped under "FOLD" that need better parsing
3. **Label Visibility Improvements**
- Increased font size from 20px to 28px for better readability
- Changed Chain B label color from gold to dark brown (#8B4513) for better contrast against gold surface
- Added semi-transparent white backgrounds behind labels
- Increased stroke width around text from 2px to 3px
- Changed Chain B stroke color from white to black for better visibility
- Added comments in code to document these styling improvements
4. **Manuscript Figure Builder**
- Created a new tool for building publication figures with multiple panels
- Added ability to select different proteins and view types for each panel
- Implemented global label settings for customizing appearance
- Added size control for individual viewers (small, medium, large)
- Added export to PNG functionality
- Uses iframe approach to extract data from individual protein pages
5. **Code Organization**
- Moved from Jupyter notebook to standalone Python script
- Added proper command-line argument handling
- Added documentation and docstrings
- Improved error handling and messaging
## Remaining Issues
1. **Regex Pattern Escaping**
- SyntaxWarning: invalid escape sequence '\(' in JavaScript regex
- Need to properly escape backslashes in JavaScript regex patterns
2. **Some CIF Files Still Under "FOLD"**
- Some CIF files are still being grouped under a "FOLD" category
- Need to improve filename parsing for more variants
3. **Browser Stability**
- While greatly improved, very large files might still cause slowness
- Consider adding pagination for proteins with many structures
4. **JavaScript Integration**
- The manuscript figure builder's dynamic loading of protein structures could be enhanced
- Consider adding a loading indicator while structures load
## Usage Instructions
```bash
# Basic usage
python his-interface-visualization.py path/to/pdb/folder
# With output directory specified
python his-interface-visualization.py path/to/pdb/folder --output output_dir
# Auto-open in browser
python his-interface-visualization.py path/to/pdb/folder --open
```
## Next Steps
1. Fix the JavaScript regex escape warnings
2. Further refine the CIF filename parsing to reduce "FOLD" grouping
3. Enhance the manuscript figure builder UI for easier use
4. Add configuration options for colors and styling
5. Consider adding more export formats beyond PNG
6. Add option to modify distance cutoff via command line
## Dependencies
- py3Dmol
- Biopython
- jQuery (web interface)
- html2canvas (for PNG export)

Some files were not shown because too many files have changed in this diff Show More