<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Mol. Biosci.</journal-id>
<journal-title>Frontiers in Molecular Biosciences</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Mol. Biosci.</abbrev-journal-title>
<issn pub-type="epub">2296-889X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">831740</article-id>
<article-id pub-id-type="doi">10.3389/fmolb.2022.831740</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Molecular Biosciences</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>iCn3D: From Web-Based 3D Viewer to Structural Analysis Tool in Batch Mode</article-title>
<alt-title alt-title-type="left-running-head">Wang et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">Batch Analysis with iCn3D</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wang</surname>
<given-names>Jiyao</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1372549/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Youkharibache</surname>
<given-names>Philippe</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1325669/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Marchler-Bauer</surname>
<given-names>Aron</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lanczycki</surname>
<given-names>Christopher</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Dachuan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lu</surname>
<given-names>Shennan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Madej</surname>
<given-names>Thomas</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Marchler</surname>
<given-names>Gabriele H.</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cheng</surname>
<given-names>Tiejun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chong</surname>
<given-names>Li Chuin</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1102899/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhao</surname>
<given-names>Sarah</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Yang</surname>
<given-names>Kevin</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lin</surname>
<given-names>Jack</given-names>
</name>
<xref ref-type="aff" rid="aff6">
<sup>6</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cheng</surname>
<given-names>Zhiyu</given-names>
</name>
<xref ref-type="aff" rid="aff7">
<sup>7</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Dunn</surname>
<given-names>Rachel</given-names>
</name>
<xref ref-type="aff" rid="aff8">
<sup>8</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Malkaram</surname>
<given-names>Sridhar Acharya</given-names>
</name>
<xref ref-type="aff" rid="aff9">
<sup>9</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Tai</surname>
<given-names>Chin-Hsien</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Enoma</surname>
<given-names>David</given-names>
</name>
<xref ref-type="aff" rid="aff10">
<sup>10</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Busby</surname>
<given-names>Ben</given-names>
</name>
<xref ref-type="aff" rid="aff11">
<sup>11</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Johnson</surname>
<given-names>Nicholas L.</given-names>
</name>
<xref ref-type="aff" rid="aff12">
<sup>12</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Tabaro</surname>
<given-names>Francesco</given-names>
</name>
<xref ref-type="aff" rid="aff13">
<sup>13</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Song</surname>
<given-names>Guangfeng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ge</surname>
<given-names>Yuchen</given-names>
</name>
<xref ref-type="aff" rid="aff14">
<sup>14</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>National Center for Biotechnology Information</institution>, <institution>National Library of Medicine</institution>, <institution>National Institutes of Health</institution>, <addr-line>Bethesda</addr-line>, <addr-line>MD</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>National Cancer Institute</institution>, <institution>National Institutes of Health</institution>, <addr-line>Bethesda</addr-line>, <addr-line>MD</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Beykoz Institute of Life Sciences and Biotechnology</institution>, <institution>Bezmialem Vakif University</institution>, <addr-line>Beykoz</addr-line>, <country>Turkey</country>
</aff>
<aff id="aff4">
<sup>4</sup>
<institution>Cary Academy</institution>, <addr-line>Cary</addr-line>, <addr-line>NC</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff5">
<sup>5</sup>
<institution>University of Maryland</institution>, <addr-line>College Park</addr-line>, <addr-line>MD</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff6">
<sup>6</sup>
<institution>University of Washington</institution>, <addr-line>Tacoma</addr-line>, <addr-line>WA</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff7">
<sup>7</sup>
<institution>University of California, Irvine</institution>, <addr-line>Irvine</addr-line>, <addr-line>CA</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff8">
<sup>8</sup>
<institution>University of British Columbia</institution>, <addr-line>Vancouver</addr-line>, <addr-line>BC</addr-line>, <country>Canada</country>
</aff>
<aff id="aff9">
<sup>9</sup>
<institution>West Virginia State University</institution>, <addr-line>Institute</addr-line>, <addr-line>WV</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff10">
<sup>10</sup>
<institution>Noma Technology</institution>, <addr-line>Port Harcourt</addr-line>, <country>Nigeria</country>
</aff>
<aff id="aff11">
<sup>11</sup>
<institution>DNAnexus</institution>, <addr-line>Pittsburgh</addr-line>, <addr-line>PA</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff12">
<sup>12</sup>
<institution>National Institute of Neurological Disorders and Stroke</institution>, <institution>National Institutes of Health</institution>, <addr-line>Bethesda</addr-line>, <addr-line>MD</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff13">
<sup>13</sup>
<institution>European Molecular Biology Laboratory</institution>, <institution>EMBL Rome</institution>, <addr-line>Monterotondo</addr-line>, <country>Italy</country>
</aff>
<aff id="aff14">
<sup>14</sup>
<institution>Johns Hopkins University</institution>, <addr-line>Baltimore</addr-line>, <addr-line>MD</addr-line>, <country>United&#x20;States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/76378/overview">Adrian Goldman</ext-link>, University of Helsinki, Finland</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/35938/overview">Joel L. Sussman</ext-link>, Weizmann Institute of Science, Israel</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/133531/overview">Esko Oksanen</ext-link>, European Spallation Source, Sweden</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Jiyao Wang, <email>wangjiy@ncbi.nlm.nih.gov</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Structural Biology, a section of the journal Frontiers in Molecular Biosciences</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>17</day>
<month>02</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>9</volume>
<elocation-id>831740</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>21</day>
<month>01</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Wang, Youkharibache, Marchler-Bauer, Lanczycki, Zhang, Lu, Madej, Marchler, Cheng, Chong, Zhao, Yang, Lin, Cheng, Dunn, Malkaram, Tai, Enoma, Busby, Johnson, Tabaro, Song and Ge.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Wang, Youkharibache, Marchler-Bauer, Lanczycki, Zhang, Lu, Madej, Marchler, Cheng, Chong, Zhao, Yang, Lin, Cheng, Dunn, Malkaram, Tai, Enoma, Busby, Johnson, Tabaro, Song and Ge</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>iCn3D was initially developed as a web-based 3D molecular viewer. It then evolved from visualization into a full-featured interactive structural analysis software. It became a collaborative research instrument through the sharing of permanent, shortened URLs that encapsulate not only annotated visual molecular scenes, but also all underlying data and analysis scripts in a FAIR manner. More recently, with the growth of structural databases, the need to analyze large structural datasets systematically led us to use <italic>Python</italic> scripts and convert the code to be used in Node. js scripts. We showed a few examples of <italic>Python</italic> scripts at <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/tree/master/icn3dpython">https://github.com/ncbi/icn3d/tree/master/icn3dpython</ext-link> to export secondary structures or PNG images from iCn3D. Users just need to replace the URL in the <italic>Python</italic> scripts to export other annotations from iCn3D. Furthermore, any interactive iCn3D feature can be converted into a Node. js script to be run in batch mode, enabling an interactive analysis performed on one or a handful of protein complexes to be scaled up to analysis features of large ensembles of structures. Currently available Node. js analysis scripts examples are available at <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/tree/master/icn3dnode">https://github.com/ncbi/icn3d/tree/master/icn3dnode</ext-link>. This development will enable ensemble analyses on growing structural databases such as AlphaFold or RoseTTAFold on one hand and Electron Microscopy on the other. In this paper, we also review new features such as DelPhi electrostatic potential, 3D view of mutations, alignment of multiple chains, assembly of multiple structures by realignment, dynamic symmetry calculation, 2D cartoons at different levels, interactive contact maps, and use of iCn3D in Jupyter Notebook as described at <ext-link ext-link-type="uri" xlink:href="https://pypi.org/project/icn3dpy">https://pypi.org/project/icn3dpy</ext-link>.</p>
</abstract>
<kwd-group>
<kwd>iCn3D</kwd>
<kwd>web-based</kwd>
<kwd>3d viewer</kwd>
<kwd>structural analysis</kwd>
<kwd>batch mode</kwd>
<kwd>Node.js script</kwd>
<kwd>Python script</kwd>
<kwd>delphi</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p>With the release of more and more AlphaFold (<xref ref-type="bibr" rid="B3">Jumper et&#x20;al., 2021</xref>) or RoseTTAFold (<xref ref-type="bibr" rid="B1">Baek et&#x20;al., 2021</xref>) predicted structures and experimentally determined structures, it is important to be able to do structural analysis in batch mode. Our recent development on iCn3D helps fill this&#x20;need.</p>
<p>iCn3D is not only a web-based 3D structure viewer, but also an analysis tool either interactively or in batch mode. All interactive structural analyses in iCn3D could be converted to analyses in batch mode using either <italic>Python</italic> scripts or Node. js scripts, which call functions in iCn3D. This feature has been available since we modernized the code of iCn3D to use JavaScript classes. As shown in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>, all recent additions are colored in orange. &#x201c;Users&#x201d; could use iCn3D for 3D views, annotations, or structural analyses through three different &#x201c;Front End&#x201d; interfaces: web pages, Jupyter Notebook, or <italic>Python</italic>/Node. js scripts in batch mode. The backends are &#x201c;RESTful APIs&#x201d; to retrieve 3D coordinates, annotations, or analysis&#x20;data.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Front end and backend of iCn3D. The new additions are colored in orange.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g001.tif"/>
</fig>
<p>iCn3D was first released in 2016 as a web-based 3D structure viewer with synchronized 1D, 2D and 3D views and many annotations. Any custom view from iCn3D can be shared in a permanent, shortened URL (<xref ref-type="bibr" rid="B9">Wang et&#x20;al., 2020</xref>). Since then, we introduced interaction analyses (<xref ref-type="bibr" rid="B13">Youkharibache et&#x20;al., 2020</xref>) and converted three pieces of software into RESTful APIs. First, DelPhi (<xref ref-type="bibr" rid="B5">Nicholls and Honig, 1991</xref>) was licensed from Columbia University and was used to calculate electrostatic potentials for nucleotides, proteins, and ligands in iCn3D. Second, scap (<xref ref-type="bibr" rid="B12">Xiang and Honig, 2001</xref>) was kindly provided by the Honig group at Columbia University and was used to predict the side chain change due to mutation. Third, SymD (<xref ref-type="bibr" rid="B7">Tai et&#x20;al., 2014</xref>) was kindly provided by Chin-Hsien Tai at the National Cancer Institute and was used to calculate protein symmetries dynamically (<xref ref-type="bibr" rid="B14">Youkharibache, 2021</xref>).</p>
<p>We also added other features including the alignment of multiple chains from different structures, realignment, dynamic symmetry calculation for any subsets, 2D cartoons at different levels, interactive contact maps, and the use of iCn3D in Jupyter Notebook.</p>
</sec>
<sec sec-type="materials|methods" id="s2">
<title>Materials and Methods</title>
<sec id="s2-1">
<title>Restful API Based on DelPhi</title>
<p>The &#x201c;DelPhi&#x201d; program calculates electrostatic potentials. The C&#x2b;&#x2b; code of DelPhi (<xref ref-type="bibr" rid="B5">Nicholls and Honig, 1991</xref>) was licensed from Columbia University and converted to a RESTful API &#x201c;delphi.cgi&#x201d; at National Center for Biotechnology Information (NCBI). To qualitatively illustrate the electrostatic potential and speed up the calculation, the linear Poisson-Boltzmann equation was solved. DelPhiPKa (<xref ref-type="bibr" rid="B10">Wang et&#x20;al., 2016</xref>) is used to add hydrogens and partial charges to proteins and nucleotides. Open Babel (<xref ref-type="bibr" rid="B6">O&#x27;Boyle et&#x20;al., 2011</xref>) is used to add hydrogens to ligands. Antechamber (<xref ref-type="bibr" rid="B8">Wang et&#x20;al., 2004</xref>) is used to add partial charges to ligands with the Gasteiger charge calculation method. The default grid size (<italic>n</italic>&#x20;&#x3d; 65) and default salt concentration (0.15&#xa0;M) can be changed. The pH is always set at 7.0. The parameters of all RESTful APIs are described at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#restfulapi">https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html&#x23;restfulapi</ext-link>.</p>
</sec>
<sec id="s2-2">
<title>Restful API Based on Scap</title>
<p>The &#x201c;scap&#x201d; program predicts side chain changes due to mutations. The C&#x2b;&#x2b; code of Jackal/scap (<xref ref-type="bibr" rid="B12">Xiang and Honig, 2001</xref>) was provided by the Honig group and converted to a RESTful API &#x201c;scap.cgi&#x201d; at NCBI. The scap program first iteratively samples all sidechain rotamers until convergence. The final lowest-energy conformation among all the conformations starting from the initial three conformations will then be minimized by refining the side-chain conformation with 2-degree rotation on each bond in the sidechain to search for lower energy conformations around the rotamer. The large rotamer library was&#x20;used.</p>
</sec>
<sec id="s2-3">
<title>Restful API Based on SymD</title>
<p>The &#x201c;SymD&#x201d; program determines symmetries in structures. The C&#x2b;&#x2b; code of SymD (<xref ref-type="bibr" rid="B7">Tai et&#x20;al., 2014</xref>) was provided by the Chin-Hsien Tai and Byungkook Lee group and converted to a RESTful API &#x201c;symd.cgi&#x201d; at NCBI. The maximum allowed number of atoms is 30,000. A symmetry is considered found if the Z score is greater than 8. Only C<sub>n</sub> and helical symmetries are considered.</p>
</sec>
<sec id="s2-4">
<title>Modernize iCn3D Code and Update Three.js</title>
<p>Before iCn3D version 3, two JavaScript objects &#x201c;iCn3DUI&#x201d; and &#x201c;iCn3D&#x201d; were used to hold all functions. In iCn3D version 3, we switched from ECMAScript 2009 (ES5) to ECMAScript 2015 (ES6) and used JavaScript classes. Each class is in a separate file and can access the classes &#x201c;iCn3DUI&#x201d; and &#x201c;iCn3D&#x2033;, which can access most functions. The class structure is described at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html">https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html&#x23;classstructure</ext-link>.</p>
<p>We also updated Three. js, which is used to generate and view 3D objects, from version 103 to version 128, which uses JavaScript classes as well. Since the changes on both iCn3D and Three. js are significant and JavaScript classes do not work in the Internet Explorer, we kept the previous library names untouched, and used new library names for Three. js and iCn3D. The updated embedding method is described at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html">https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html&#x23;HowToUse</ext-link>.</p>
</sec>
<sec id="s2-5">
<title>Build iCn3D Source Code</title>
<p>All JavaScript classes are bundled with rollup (<ext-link ext-link-type="uri" xlink:href="https://rollupjs.org/guide/en/">https://rollupjs.org/guide/en/</ext-link>). Then gulp (<ext-link ext-link-type="uri" xlink:href="https://gulpjs.com/">https://gulpjs.com</ext-link>) was used to set up all files for release in iCn3D GitHub page (<ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d">https://github.com/ncbi/icn3d</ext-link>) and icn3d npm package (<ext-link ext-link-type="uri" xlink:href="https://www.npmjs.com/package/icn3d">https://www.npmjs.com/package/icn3d</ext-link>).</p>
</sec>
</sec>
<sec sec-type="results" id="s3">
<title>Results</title>
<sec id="s3-1">
<title>Interaction Analysis</title>
<p>iCn3D shows eight kinds of interactions between molecular structures: contact, hydrogen bond, salt bridge or ionic interaction, halogen bond, &#x3c0;-cation interaction, and &#x3c0;-stacking. Users can generate the interactions shown in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref> in three steps: click the menu &#x201c;Analysis &#x3e; Interactions&#x201d;, select the two sets chain 6M0J_A and 6M0J_E in the popup window, and click &#x201c;2D Interaction Network&#x201d;. <xref ref-type="fig" rid="F2">Figure&#x20;2A</xref> shows the interacting residues between ACE2 (in pink) and SARS-CoV-2 spike protein (in blue) using the PDB structure 6M0J.&#x20;The green, cyan, and gray dotted lines show the hydrogen bonds, salt bridges, and contacts, respectively. <xref ref-type="fig" rid="F2">Figure&#x20;2B</xref> shows the 2D interaction network, where the nodes represent residues, and the lines represent interactions. The interaction includes multiple hydrogen bonds, two salt bridges and many contacts. The custom view can be reproduced with a permanent sharable link <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?kjX52TjcC8WzN2GB6">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?oLwZzGL59izJeEBVA</ext-link> as described in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>3D and 2D views of the interaction between ACE2 (pink) and SARS-CoV-2 spike protein (blue) (PDB 6M0J). <bold>(A)</bold> 3D view of the interaction. Hydrogen bonds, salt bridges, and contacts are depicted as dotted lines and are colored in green, cyan, and gray, respectively. <bold>(B)</bold> 2D interaction network of the interaction. Each node and line can be clicked to show the corresponding residue and interaction in the 3D view. Sharable Link: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8</ext-link>.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g002.tif"/>
</fig>
<p>This interactive analysis can be converted to a Node. js script <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8</ext-link> by using the npm package icn3d (<ext-link ext-link-type="uri" xlink:href="https://www.npmjs.com/package/icn3d">https://www.npmjs.com/package/icn3d</ext-link>). Users can simply run the command &#x201c;node epitope. js <italic>6M0J&#xa0;E&#xa0;A</italic>&#x201d; in a command line to get the interacting residues between the chain <italic>E</italic> (spike protein) and chain <italic>A</italic> (ACE2) of the PDB structure&#x20;<italic>6M0J</italic>.</p>
</sec>
<sec id="s3-2">
<title>Mutation Analysis</title>
<p>iCn3D can show residue mutations in 3D views. The side chain prediction is done with a RESTful API based on scap (<xref ref-type="bibr" rid="B12">Xiang and Honig, 2001</xref>). Users can show the change of interactions due to mutations by clicking the menu &#x201c;Analysis &#x3e; Mutation&#x201d;, inputting the mutation (such as &#x201c;<italic>6M0J</italic>_<italic>E</italic>_<italic>501</italic>_<italic>Y</italic>&#x201d; to indicate the mutation is at position <italic>501</italic> of the <italic>E</italic> chain of PDB <italic>6M0J</italic> and the mutant is <italic>Y</italic>/Tyr residue), and clicking the button &#x201c;Interactions&#x201d;. Users can press the key &#x201c;a&#x201d; to toggle between the wild type and the mutant. <xref ref-type="fig" rid="F3">Figure&#x20;3A</xref> shows the mutant&#x2019;s 3D structure in the stick style. The spike protein is in blue and ACE2 is in pink. <xref ref-type="fig" rid="F3">Figure&#x20;3B</xref> shows that the mutant Y501 (bottom panel) introduces one &#x3c0;-cation interaction (red line) and one &#x3c0;-stacking (blue line). The view can be reproduced with the sharable link as described in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>. The interactive analysis can be converted to a Node. js script <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/blob/master/icn3dnode/interaction2.js">https://github.com/ncbi/icn3d/blob/master/icn3dnode/interaction2.js</ext-link>. Users can run the command &#x201c;node interaction2. js 6M0J&#xa0;E 501 Y&#x201d; to get the change of interactions.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>3D and 2D views of mutation N501Y of SARS-Cov-2 spike protein (PDB 6M0J). <bold>(A)</bold> 3D view of the mutant with Asn at position 501 mutated to Tyr. The spike protein is colored in blue and ACE2 is colored in pink. Hydrogen bonds, contacts, &#x3c0;-cation interaction, and &#x3c0;-stacking are depicted as dotted lines and are colored in green, gray, red, blue, respectively. <bold>(B)</bold> Change of interactions due to mutation. The top panel shows the wild type, and the bottom panel shows the mutant. Sharable Link: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?j5Y5CkMQPU2R6smf9">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?j5Y5CkMQPU2R6smf9</ext-link>.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g003.tif"/>
</fig>
</sec>
<sec id="s3-3">
<title>DelPhi Electrostatic Potential</title>
<p>iCn3D can also show electrostatic potential for 3D structures. The electrostatic potential is calculated with a RESTful service based on the software DelPhi (<xref ref-type="bibr" rid="B5">Nicholls and Honig, 1991</xref>), which is licensed from Columbia University to be used in iCn3D. <xref ref-type="fig" rid="F4">Figure&#x20;4A</xref> shows the binding of the PH domain of phospholipase C Delta to IP<sub>3</sub> (or a membrane containing PIP<sub>2</sub>). The binding region contains multiple positively charged residues (in blue). <xref ref-type="fig" rid="F4">Figure&#x20;4B</xref> shows the electrostatic potential on the surface of the PH domain excluding IP<sub>3</sub>. Blue and red indicate greater than &#x2b;50&#xa0;mV and less than &#x2212;50&#xa0;mV, respectively. The binding region clearly has high positive electrostatic potential. The custom view of <xref ref-type="fig" rid="F4">Figure&#x20;4B</xref> can be reproduced with a sharable link: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?5hvduy8LQHtJ1NdL6">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?5hvduy8LQHtJ1NdL6</ext-link>. The DelPhi electrostatic potential on the surface of chain A can be exported from a Node. js script <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/blob/master/icn3dnode/delphipot.js">https://github.com/ncbi/icn3d/blob/master/icn3dnode/delphipot.js</ext-link> with the command &#x201c;node delphipot. js 1MAI A&#x201d;. Users could also choose to show equipotential maps (<xref ref-type="fig" rid="F4">Figure&#x20;4C</xref>) instead of surface potentials for the pH domain excluding IP<sub>3</sub>. The blue and red mesh show the &#x2b;50&#xa0;mV and &#x2212;50&#xa0;mV equipotential profiles.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>DelPhi electrostatic potential of membrane-binding PH domain (PDB 1MAI). <bold>(A)</bold> The PH domain is shown in ribbon style with positively and negatively charged residues colored in blue and red respectively. IP<sub>3</sub> is shown in stick style with three phosphate groups. <bold>(B)</bold> The electrostatic potential of the PH domain is shown on the surface. Blue indicates greater than &#x2b;50&#xa0;mV and red indicates less than &#x2212;50&#xa0;mV. Sharable link: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?5hvduy8LQHtJ1NdL6">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?5hvduy8LQHtJ1NdL6</ext-link>. <bold>(C)</bold> The equipotential map of the PH domain. The blue and red meshes indicate &#x2b;50 and &#x2212;50&#xa0;mV potential profile, respectively.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g004.tif"/>
</fig>
</sec>
<sec id="s3-4">
<title>Dynamic Symmetry Calculation</title>
<p>iCn3D can not only show the pre-calculated symmetry from PDB, but also calculate symmetry for any selected residues. The calculation is done with a RESTful API based on the software SymD (<xref ref-type="bibr" rid="B7">Tai et&#x20;al., 2014</xref>). <xref ref-type="fig" rid="F5">Figure&#x20;5B</xref> shows the structure of PDB 3HUJ.&#x20;Even though the whole structure has no symmetry, its subset of residues 1-178 in chain A (colored in blue and red) has C2 symmetry as shown in <xref ref-type="fig" rid="F5">Figure&#x20;5A</xref>. The red and blue colors indicate same residues and different residues in the symmetry alignment, respectively. The feature is available in the menu &#x201c;Analysis &#x3e; Symmetry &#x3e; from SymD (Dynamic)&#x201d;. The custom view can be reproduced in a sharable link as described in <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Dynamic symmetry calculation. <bold>(A)</bold> The subset of residues 1-178 in the A chain of PDB 3HUJ was used for symmetry calculation. The symmetric parts are colored in red (same residue) or blue (different residues). The rest are colored in pink. <bold>(B)</bold> The full structure of PDB 3HUJ with the symmetry in Chain A shown. Sharable link: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?gNe7MemEb5vqYSba6">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?gNe7MemEb5vqYSba6</ext-link>.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g005.tif"/>
</fig>
</sec>
<sec id="s3-5">
<title>Multiple Chain Alignment, and Realignment</title>
<p>iCn3D can align multiple chains from different structures as shown in <xref ref-type="fig" rid="F6">Figure&#x20;6</xref> with two structures. The master structure is the first PDB structure 1HHO. All other structures are aligned to it. <xref ref-type="fig" rid="F6">Figure&#x20;6A</xref> shows the alignment with full chains using the VAST algorithm (<xref ref-type="bibr" rid="B2">Gibrat et&#x20;al., 1996</xref>) based purely on geometric criteria. The aligned residues are colored in red. <xref ref-type="fig" rid="F6">Figure&#x20;6B</xref> shows the alignment to a subset of residue numbers 10&#x2013;50 in the master structure with the following steps. First, a sequence alignment to the set of residues is done. Then the coordinates of these residues are used for a structure superposition. <xref ref-type="fig" rid="F6">Figure&#x20;6C</xref> shows the alignment of predefined residue numbers 50&#x2013;100 in each structure. The coordinates of the pre-defined residues are used for a structure superposition. The sharable links are shown in <xref ref-type="fig" rid="F6">Figure&#x20;6</xref>.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Multiple chain alignment of chain A of PDB 4N7N with chain A of PDB 1HHO. <bold>(A)</bold> Align with the full chains. The aligned part is colored in red. The sharable link is <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign=1HHO_A,4N7N_Aandresnum=andresdef=andshowalignseq=1">https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign&#x003D;1HHO_A,4N7N_Aandresnum&#x003D;andresdef&#x003D;andshowalignseq&#x003D;1</ext-link>
<ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?CVTHSZocJpfXz99s8">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?CVTHSZocJpfXz99s8</ext-link>,4N7N_A&#x26;resnum &#x3d; &#x26;resdef &#x3d; &#x26;showalignseq &#x3d; 1. <bold>(B)</bold> Align with a subset of residues 10&#x2013;50 in the master chain A of PDB 1HHO. The sharable link is <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?QNcd4n3uHMn3wawG7">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?QNcd4n3uHMn3wawG7</ext-link>
<ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign=1HHO_A">www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign&#x3d;1HHO_A</ext-link>,2HCO_A&#x26;resnum &#x3d; 10-50&#x26;resdef &#x3d; &#x26;showalignseq &#x3d; 1. <bold>(C)</bold> Align with pre-defined residues: 50&#x2013;100 in chain A of PDB 4N7N and residues 50&#x2013;100 in chain A of PDB 1HHO. The sharable link is <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign=1HHO_A,4N7N_A&amp;resnum=&amp;resdef=50-100+|+50-100&amp;showalignseq=1">https://</ext-link>
<ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign=1HHO_A">www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?chainalign&#x3d;1HHO_A</ext-link>,4N7N_A&#x26;resnum &#x3d; &#x26;resdef &#x3d; 50&#x2013;100&#x2b;&#x7c;&#x2b;50&#x2013;100&#x26;showalignseq &#x3d; 1.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g006.tif"/>
</fig>
<p>Users can also load multiple PDB structures (either in a concatenated file or by appending PDB files with the menu &#x201c;File &#x3e; Open File &#x3e; PDB File (appendable)&#x201d;), and then use the &#x201c;File &#x3e; Realign Selection&#x201d; feature to align multiple structures. The option &#x201c;on Sequence Alignment&#x201d; is similar to <xref ref-type="fig" rid="F6">Figure&#x20;6B</xref> and uses a sequence alignment followed by a structure superposition. The other option &#x201c;Residue by Residue&#x201d; is similar to <xref ref-type="fig" rid="F6">Figure&#x20;6C</xref> and uses predefined residues for a structure superposition.</p>
</sec>
<sec id="s3-6">
<title>2D Cartoons at Chain, Domain, and Secondary Structure Levels</title>
<p>Previously, iCn3D only showed &#x201c;2D Interaction&#x201d; for structure data from NCBI (with the URL parameter &#x201c;mmdbid&#x3d; &#x201c;). We recently added &#x201c;2D Cartoons&#x201d; for any data source such as RCSB (with the URL parameter &#x201c;mmtfid &#x3d;&#x201d; or &#x201c;pdbid&#x3d; &#x201c;) or EMBL-EBI (with the URL parameter &#x201c;afid&#x3d; &#x201c;). <xref ref-type="fig" rid="F7">Figure&#x20;7A</xref> shows the AlphaFold predicted structure for the UniProt ID A0A061AD48. iCn3D uses the URL parameter &#x201c;afid&#x3d;A0A061AD48&#x201d; to get the AlphaFold predicted structure data from EMBL-EBI (<xref ref-type="bibr" rid="B3">Jumper et&#x20;al., 2021</xref>). The high confidence parts are colored in blue and the low confidence parts are colored in yellow and orange. <xref ref-type="fig" rid="F7">Figure&#x20;7B</xref> shows the 2D cartoon of the two domains in this protein: Nek and ATS1. The principal axes and size of the domains are used to determine the orientation and size of the ovals, respectively. The nodes can be dragged to modify the view of the cartoon and clicked to select in&#x20;3D.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>2D Cartoons of an AlphaFold structure. <bold>(A)</bold> AlphaFold predicted structure for the UniProt ID A0A061AD48. The high confidence parts of the structure are colored in blue and the low confidence parts are colored in yellow and orange. <bold>(B)</bold> 2D cartoon in the domain level. There are two domains in the protein: Nek and ATS1. <bold>(C)</bold> The Nek domain of the structure. <bold>(D)</bold> 2D cartoon at the secondary structure level. Helices are solid cylinders and labeled as &#x201c;H&#x201d; plus the first residue number. Sheets are empty cylinders and labeled as &#x201c;S&#x201d; plus the first residue number. The sharable link for panels A and B is: <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?R8Wtf9hDsdo6sH5Z9">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?R8Wtf9hDsdo6sH5Z9</ext-link>.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g007.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F7">Figure&#x20;7C</xref> shows the Nek domain. The 2D cartoon at the secondary structure level for the Nek domain (<xref ref-type="fig" rid="F7">Figure&#x20;7D</xref>) can be shown by clicking the menu &#x201c;Analysis &#x3e; 2D Cartoon &#x3e; Helix/Sheet Level&#x201d;. The helices and sheets are projected from 3D to 2D and thus the 2D view is dynamic depending on the orientation of the 3D view. The helices and sheets can be dragged to rearrange the view and clicked to select in 3D. For a structure with multiple chains, the 2D cartoon at the chain level is useful too. The sharable link is shown in <xref ref-type="fig" rid="F7">Figure&#x20;7A</xref>.</p>
</sec>
<sec id="s3-7">
<title>Interactive Contact Map</title>
<p>iCn3D can also display interactive 2D contact maps for any subsets. <xref ref-type="fig" rid="F8">Figure&#x20;8</xref> shows the contact map of AlphaFold structure with UniProt ID A0A061AD48. The contacts within 8&#xa0;&#xc5; of C-beta atoms are shown. The map has a scale of 0.04. If the scale is set as 1, the X- and <italic>Y</italic>-axes show residues as nodes with residue names and colors. The residue nodes and the contact points could be clicked to show the residues or contacts in 3D. This feature is available in the menu &#x201c;Analysis &#x3e; Contact Map&#x201d;. It can be dynamically applied to multiple structures or a subset of the structure. The sharable link is shown in <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Contact map of AlphaFold structure with UniProt ID A0A061AD48. The distance threshold is 8&#xa0;&#xc5; between C-beta atoms. The sharable link is <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?vTc6gkbCenTyLzt4A">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?vTc6gkbCenTyLzt4A</ext-link>.</p>
</caption>
<graphic xlink:href="fmolb-09-831740-g008.tif"/>
</fig>
</sec>
<sec id="s3-8">
<title>
<italic>Python</italic> Script Based on iCn3D</title>
<p>Users can export files such as &#x201c;iCn3D PNG Image&#x201d; from iCn3D interactively. This process can be saved with a URL <italic>via</italic> the menu &#x201c;File &#x3e; Share Link&#x201d;. Based on this URL, a simple <italic>Python</italic> script can be written to export files from iCn3D in batch mode. Some example <italic>Python</italic> scripts are listed at <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/tree/master/icn3dpython">https://github.com/ncbi/icn3d/tree/master/icn3dpython</ext-link>. Users can simply replace the URL in the <italic>Python</italic> scripts to export files such as PNG images or secondary structures from iCn3D. In order to make the <italic>Python</italic> script work, users need to install &#x201c;selenium&#x201d;, &#x201c;chrome&#x201d;, &#x201c;chromedriver&#x201d;, and &#x201c;Path&#x201d; as described in the example scripts.</p>
</sec>
<sec id="s3-9">
<title>Node.js Script Based on iCn3D</title>
<p>While <italic>Python</italic> scripts are easy to construct as described above, they can not get&#x20;all data from iCn3D. Node. js scripts can fulfil this requirement even though they are more complicated.</p>
<p>After we modernized iCn3D with JavaScript classes and released the npm package icn3d, we can use Node. js scripts to analyze a large set of structures in batch mode. A few Node. js scripts have been shown above in 3.1, 3.2, and 3.3. More examples are listed at <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/tree/master/icn3dnode">https://github.com/ncbi/icn3d/tree/master/icn3dnode</ext-link>. Here we use the Node. js script <ext-link ext-link-type="uri" xlink:href="https://github.com/ncbi/icn3d/tree/master/icn3dnode/ligand.js">https://github.com/ncbi/icn3d/tree/master/icn3dnode/ligand.js</ext-link> as an example to demonstrate the flow of the code. Users can use the command, &#x201c;node ligand. js [PDB ID] [three-letter ligand residue name]&#x201d;, to calculate the interactions between a ligand and a protein by calling iCn3D function &#x201c;ic.showInterCls.pickCustomSphere_base&#x201d;. The script first installs the required npm libraries &#x201c;icn3d&#x201d;, &#x201c;three&#x201d;, &#x201c;jsdom&#x201d;, and &#x201c;jquery&#x201d;. Then it sets up two variables used in all iCn3D functions: &#x201c;me&#x201d; is an instance of the iCn3DUI class, and &#x201c;ic&#x201d; is an instance of the iCn3D class. It then retrieves the coordinate data from NCBI and calculates the interactions. The class structure is described at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html">https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html&#x23;classstructure</ext-link>.</p>
</sec>
<sec id="s3-10">
<title>iCn3D in Jupyter Notebook</title>
<p>We released icn3dpy at <ext-link ext-link-type="uri" xlink:href="https://pypi.org/project/icn3dpy/">https://pypi.org/project/icn3dpy/</ext-link>to make iCn3D work in Jupyter Notebook. Users just need to install icn3dpy with the command &#x201c;pip install icn3dpy&#x201d; and install one lab extension with the commands &#x201c;pip install jupyterlab&#x201d; and &#x201c;jupyter labextension install jupyterlab_3dmol&#x201d;. Three commands are used to get icn3d viewer inside Jupyter Notebook: &#x201c;import icn3dpy&#x201d; to import the icn3dpy library, &#x201c;view &#x3d; icn3dpy.view(q &#x3d; &#x27;mmdbid &#x3d; 6m0j&#x2032;)&#x201d; and &#x201c;view&#x201d; to display the iCn3d viewer. The function inc3dpy.view can be optionally supplied with a command string to load a structure with a predefined view. For example, the command &#x201c;view&#x003D;icn3dpy.view(q&#x003D;mmdbid&#x003D;6m0j, command&#x003D;line graph interaction pairs | !A !E | hbonds, salt bridge, interactions,halogen,pi-cation,pistacking | false | threshold 3.8 6 4 3.8 6 5.5; show selection; add residue number labels; set label scale 2.0|||{&#x201c;factor&#x201d;:&#x201c;0.6758&#x201d;,&#x201c;mouseChange&#x201d;:{&#x201c;x&#x201d;:&#x201c;0.000&#x201d;,&#x201c;y&#x201d;:&#x201c;0.000&#x201d;},&#x201c;quaternion&#x201d;:{&#x201c;_x&#x201d;:&#x201c;-0.6336&#x201d;,&#x201c;_y&#x201d;:&#x201c;0.3127&#x201d;,&#x201c;_z&#x201d;:&#x201c;-0.3564&#x201d;,&#x201c;_w&#x201d;:&#x201c;0.6114&#x201d;}})&#x201d; produces the view as in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>. The string &#x201c;q &#x3d; mmdbid &#x3d; 6m0j&#x201d; specifies the structure to be loaded and the command string after the string &#x201c;command&#x3d; &#x201d; is used to set the predefined display. This command string can be retrieved from a web session. It is the string after the string &#x201c;command&#x3d; &#x201d; in the expanded URL of <ext-link ext-link-type="uri" xlink:href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8">https://structure.ncbi.nlm.nih.gov/icn3d/share.html?T86B34gEsPErfwRm8</ext-link> from <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>.</p>
</sec>
</sec>
<sec sec-type="discussion" id="s4">
<title>Discussion</title>
<p>Users can use either <italic>Python</italic> scripts or Node. js scripts to a large set of 3D structures. While the <italic>Python</italic> scripts are easy to construct, the iCn3D-based Node. js scripts fully leverage the power of iCn3D and can achieve any feature in iCn3D. We&#x2019;ll add more export features in iCn3D so that users can easily generate <italic>Python</italic> scripts to export files from iCn3D.</p>
<p>There are many ways to save work in iCn3D such as shortened URLs, iCn3D PNG images, or state files, etc. The recommended way is to save an iCn3D PNG image with the menu &#x201c;File &#x3e; Save File &#x3e; iCn3D PNG Image &#x3e; Original Size and HTML&#x201d;. Both an image and an HTML file are saved. The iCn3D PNG image not only contains the custom view, but also contains all data and the command history. It can be loaded back to iCn3D with the menu &#x201c;File &#x3e; Open File &#x3e; iCn3D PNG Image&#x201d;. It can also be stored in a web server, and be retrieved to reproduce the saved views, e.g., <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?type=icn3dpng&amp;url=https://www.ncbi.nlm.nih.gov/Structure/icn3d/pdb/3GVU.png">https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html?type&#x3d;icn3dpng&#x26;url&#x3d;https://www.ncbi.nlm.nih.gov/Structure/icn3d/pdb/3GVU.png</ext-link>. The saved HTML files can be concatenated to form a gallery page, similar to the iCn3D gallery page at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html">https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html&#x23;gallery</ext-link>.</p>
<p>We showed three examples to convert software packages to RESTful APIs so that iCn3D can use them in AJAX calls seamlessly. To follow the FAIR (Findable, Accessible, Interoperable and Reusable) guiding principles (<xref ref-type="bibr" rid="B4">Mons et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B11">Wilkinson et&#x20;al., 2017</xref>), bioinformatic tools had better provide RESTful APIs to make these tools accessible and reusable.</p>
<p>Our future plan includes linking iCn3D with multiple sequence alignment tools, adapting WebGL2 or WebGPU in iCn3D, and&#x20;more.</p>
</sec>
</body>
<back>
<sec id="s5">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s6">
<title>Author Contributions</title>
<p>PY is the driving force for the development of iCn3D. He provides many designing ideas and consistently tests the features of iCn3D. As part of iCn3D team, AM-B, CL and GM give many suggestions and test iCn3D features. DZ, SL and TM provide data for iCn3D from backend servers. TC developed the <italic>Python</italic> code to export 3D images in batch mode. The following people contributed to the iCn3D feature of 2D cartoon during the ISMB Codeathon 2021: LC, SZ, KY, JL, and ZC. The following people contributed to the iCn3D features of dynamic symmetry and side chain prediction due to mutation during the STRIDES Codeathon 2020: RD, SM, C-HT, and DE. The following people contributed to using iCn3D in Jupyter Notebook during the ISMB Codeathon 2020: BB, NJ, FT, GS, and&#x20;YG.</p>
</sec>
<sec id="s7">
<title>Funding</title>
<p>The work of JW, PY, AM-B, CL, DZ, SL, TM, GM, TC, and GS was supported by the National Center for Biotechnology Information of the National Library of Medicine (NLM), National Institutes of Health. Comments, suggestions and questions are welcome and should be directed to: info@ncbi.nlm.nih.gov. Funding to pay the Open Access publication charges for this article was provided by the National Center for Biotechnology Information of the National Library of Medicine (NLM), National Institutes of Health.</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of Interest</title>
<p>BB was employed by the DNAnexus</p>
<p>The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ack>
<p>We would like to specially thank Barry Honig for licensing DelPhi and providing scap to us; Emil Alexov for his very helpful suggestions about using DelPhi; David Koes for his help in using iCn3D in Jupyter Notebook; Ravinder Abrol, Raul Cachau, Todd Smith and Sandra Porter for their feedback and suggestions during the development of iCn3D; and Ravinder Abrol and Allissa Dillman for organizing several codeathons related to iCn3D.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baek</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>DiMaio</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Anishchenko</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Dauparas</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ovchinnikov</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>G. R.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Accurate Prediction of Protein Structures and Interactions Using a Three-Track Neural Network</article-title>. <source>Science</source> <volume>373</volume>, <fpage>871</fpage>&#x2013;<lpage>876</lpage>. <pub-id pub-id-type="doi">10.1126/science.abj8754</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gibrat</surname>
<given-names>J.-F.</given-names>
</name>
<name>
<surname>Madej</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Bryant</surname>
<given-names>S. H.</given-names>
</name>
</person-group> (<year>1996</year>). <article-title>Surprising Similarities in Structure Comparison</article-title>. <source>Curr. Opin. Struct. Biol.</source> <volume>6</volume>, <fpage>377</fpage>&#x2013;<lpage>385</lpage>. <pub-id pub-id-type="doi">10.1016/s0959-440x(96)80058-3</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jumper</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Evans</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Pritzel</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Green</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Figurnov</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Ronneberger</surname>
<given-names>O.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Highly Accurate Protein Structure Prediction with AlphaFold</article-title>. <source>Nature</source> <volume>596</volume>, <fpage>583</fpage>&#x2013;<lpage>589</lpage>. <pub-id pub-id-type="doi">10.1038/s41586-021-03819-2</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mons</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Neylon</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Velterop</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dumontier</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Bonino da Silva Santos</surname>
<given-names>L. O.</given-names>
</name>
<name>
<surname>Wilkinson</surname>
<given-names>M. D.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Cloudy, Increasingly FAIR; Revisiting the FAIR Data Guiding Principles for the European Open Science Cloud</article-title>. <source>Isu</source> <volume>3741</volume>, <fpage>49</fpage>&#x2013;<lpage>56</lpage>. <pub-id pub-id-type="doi">10.3233/isu-170824</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nicholls</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Honig</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>1991</year>). <article-title>A Rapid Finite Difference Algorithm, Utilizing Successive Over-relaxation to Solve the Poisson-Boltzmann Equation</article-title>. <source>J.&#x20;Comput. Chem.</source> <volume>12</volume>, <fpage>435</fpage>&#x2013;<lpage>445</lpage>. <pub-id pub-id-type="doi">10.1002/jcc.540120405</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>O&#x27;Boyle</surname>
<given-names>N. M.</given-names>
</name>
<name>
<surname>Banck</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>James</surname>
<given-names>C. A.</given-names>
</name>
<name>
<surname>Morley</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Vandermeersch</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hutchison</surname>
<given-names>G. R.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Open Babel: An Open Chemical Toolbox</article-title>. <source>J.&#x20;Cheminform</source> <volume>3</volume>, <fpage>33</fpage>. <pub-id pub-id-type="doi">10.1186/1758-2946-3-33</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tai</surname>
<given-names>C.-H.</given-names>
</name>
<name>
<surname>Paul</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kc</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Shilling</surname>
<given-names>J.&#x20;D.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>SymD Webserver: a Platform for Detecting Internally Symmetric Protein Structures</article-title>. <source>Nucleic Acids Res.</source> <volume>42</volume>, <fpage>W296</fpage>&#x2013;<lpage>W300</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gku364</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wolf</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Caldwell</surname>
<given-names>J.&#x20;W.</given-names>
</name>
<name>
<surname>Kollman</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Case</surname>
<given-names>D. A.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Development and Testing of a General Amber Force Field</article-title>. <source>J.&#x20;Comput. Chem.</source> <volume>25</volume>, <fpage>1157</fpage>&#x2013;<lpage>1174</lpage>. <pub-id pub-id-type="doi">10.1002/jcc.20035</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Youkharibache</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Lanczycki</surname>
<given-names>C. J.</given-names>
</name>
<name>
<surname>Geer</surname>
<given-names>R. C.</given-names>
</name>
<name>
<surname>Madej</surname>
<given-names>T.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>iCn3D, a Web-Based 3D Viewer for Sharing 1D/2D/3D Representations of Biomolecular Structures</article-title>. <source>Bioinformatics</source> <volume>36</volume>, <fpage>131</fpage>&#x2013;<lpage>135</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btz502</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Alexov</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>DelPhiPKa Web Server: Predicting pKaof Proteins, RNAs and DNAs</article-title>. <source>Bioinformatics</source> <volume>32</volume>, <fpage>614</fpage>&#x2013;<lpage>615</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btv607</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wilkinson</surname>
<given-names>M. D.</given-names>
</name>
<name>
<surname>Verborgh</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Bonino da Silva Santos</surname>
<given-names>L. O.</given-names>
</name>
<name>
<surname>Clark</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Swertz</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Kelpin</surname>
<given-names>F. D. L.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Interoperability and FAIRness through a Novel Combination of Web Technologies</article-title>. <source>Peerj&#x20;Comput. Sci.</source> <pub-id pub-id-type="doi">10.7717/peerj-cs.110</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Honig</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>Extending the Accuracy Limits of Prediction for Side-Chain Conformations</article-title>. <source>J.&#x20;Mol. Biol.</source> <volume>312</volume>, <fpage>419</fpage>. <pub-id pub-id-type="doi">10.1006/jmbi.2001.4985</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Youkharibache</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cachau</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Madej</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Using iCn3D and the World Wide Web for Structure-Based Collaborative Research: Analyzing Molecular Interactions at the Root of COVID-19</article-title>. <source>bioRxiv</source> <volume>2020</volume>, <fpage>182964</fpage>. <pub-id pub-id-type="doi">10.1101/2020.07.01.182964</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Youkharibache</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Topological and Structural Plasticity of the Single Ig Fold and the Double Ig Fold Present in CD19</article-title>. <source>Biomolecules</source> <volume>11</volume>, <fpage>1290</fpage>. <pub-id pub-id-type="doi">10.3390/biom11091290</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>