Skip to content

Commit

Permalink
Merge pull request #97 in STRUC/icn3d from release243 to master
Browse files Browse the repository at this point in the history
* commit '523913e51eab7a8a8474f0fa5d12f14bc9a88d33':
  Non-standard proteins or nucleotides were still displayed as "Biopolymer" in 2D interactions and were displayed in the style of protein or nucleotide in 3D. The usage tracking was implemented in iCn3D.
  • Loading branch information
jiywang3 committed Jan 22, 2019
2 parents f4e2350 + 523913e commit 0b59c9d
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 15 deletions.
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ We provided two types of iCn3D widgets: [basic interface](https://www.ncbi.nlm.n

Either of these widgets could be easily added to your own web pages. Please see the [help page](https://www.ncbi.nlm.nih.gov/Structure/icn3d/docs/icn3d_help.html#HowToUse) for more details.

<b>Complete package</b> of iCn3D including Three.js and jQuery can be downloaded from [https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.2.zip](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.2.zip). The "Download ZIP" link in this page does not include third-party libraries.
<b>Complete package</b> of iCn3D including Three.js and jQuery can be downloaded from [https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.3.zip](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.3.zip). The "Download ZIP" link in this page does not include third-party libraries.

## Usage

Expand Down Expand Up @@ -73,20 +73,14 @@ gulp
```

## Change log
The production version [icn3d-2.4.3](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.3.zip) was release on January 22, 2019. Non-standard proteins or nucleotides were still displayed as "Biopolymer" in 2D interactions and were displayed in the style of protein or nucleotide in 3D. The usage tracking was implemented in iCn3D.

The production version [icn3d-2.4.2](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.2.zip) was release on January 16, 2019. Non-standard proteins or nucleotides were displayed as "Biopolymer" in 2D interactions and were displayed in the style of "Stick" in 3D. A new kind of annotation "Disulfie Bonds" was added to the "Sequences and Annotations" window.

The production version [icn3d-2.4.1](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.1.zip) was release on January 7, 2019. Enabled users to show EM density map for any subset of an EM structure.

The production version [icn3d-2.4.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.0.zip) was release on December 17, 2018. Enabled users to show electron density map for any subset of a crystal structure.

The production version [icn3d-2.3.4](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.3.4.zip) was release on December 12, 2018. Enabled users to load a saved iCn3D PNG image into iCn3D to reproduce the display using the URL embedded in the image.

The production version [icn3d-2.3.3](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.3.3.zip) was release on December 6, 2018. Made the list of interacting residues consistent in "File -> Save Files -> Interaction List" and in the "Sequences and Annotations" window.

The production version [icn3d-2.3.2](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.3.2.zip) was release on October 30, 2018. Water molecules were enabled to be shown when the structure is not a biological assembly. Gene symbols were shown for each chain in the "Sequences and Annotations" window.

The production version [icn3d-2.3.1](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.3.1.zip) was release on October 25, 2018. The color of the the first residue in a coil was fixed.

The production version [icn3d-2.3.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.3.0.zip) was release on October 18, 2018. Added set operations (union,intersection, exclusion) in "Defined Sets"; added buttons "Helix Sets" and "Sheet Sets" in the "Sequences and Annotations" window to define helix sets and sheet sets in the window "Defined Sets"; added "Save Color" and "Apply Saved Color" in the menu "Color"; added "Save Style" and "Apply Saved Style" in the menu "Style"; added "Side Chains" in the menu "Select" to select side chains; added two options for color by "Secondary" structures: "Sheets in Green" and "Sheets in Yellow"; added color by "B-factor" that is normalized with "Original" values or "Percentile" values.

The production version [icn3d-2.2.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.2.0.zip) was release on July 30, 2018. The smoothing algorithm was switched from Catmull-Rom spline to cubic spline to make the curves more smooth. The thickness of ribbon was decreased to make the sides of the ribbons less apparent. The radio buttons in the menus was replaced by the check sign. A "Save Image" button was added in the "Toolbar".
Expand All @@ -95,6 +89,18 @@ The production version [icn3d-2.1.0](https://www.ncbi.nlm.nih.gov/Structure/icn3

The production version [icn3d-2.0.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.0.0.zip) was release on April 17, 2018. By clicking the menu "Windows: View Sequences & Annotations", users can view all kinds of annotations: ClinVar, SNPs, CDD domains, 3D domains, binding sites, interactions, and custom tracks. Users can click the menu "View: Chemical Binding" to show the chemical binding sites. Users can also export files for 3D printing at the menu "File: 3D Printing: VRML (Color, W/ Stabilizers)".

The production version [icn3d-1.4.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-1.4.0.zip) was release on November 2, 2017. The rendering speed has been significantly improved by using the Imposter shaders from NGL Viewer. A bug in "Share Link" was fixed.

The production version [icn3d-1.3.1](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-1.3.1.zip) was release on October 4, 2016. Partial diplay of helices or beta-sheets are enabled. The side chains, if displayed, are connected to C-alphas.

The production version [icn3d-1.2.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-1.2.0.zip) was release on August 17, 2016. The dialog of 2D interactions was added to show the interactions among different chains. Both the nodes (chains) and lines (interactions) can be selected. Secondary structures will be calculated if the input PDB file has no defined secondary structure information. The previous files src/icn3d.js, src/full_ui.js, and src/simple_ui.js were separated into small files.

The production version [icn3d-1.1.1](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-1.1.1.zip) was release on July 25, 2016. Some bugs were fixed.

The production version [icn3d-1.0.0](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-1.0.0.zip) was release on April 28, 2016.

The beta version [icn3d-0.9.0-dev](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-0.9.0-dev.zip) was release on Jan 17, 2016.

All previous releases can be found at the [API page](https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#log).

## Contact
Expand Down
13 changes: 10 additions & 3 deletions full.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="iCn3D Structure Viewer">
<meta name="ncbi_db" content="structure">
<meta name="ncbi_db" content="structure"><meta name="ncbi_app" content="iCn3D"><meta name="ncbi_pdid" content="advanced">
<meta name="keywords" content="NCBI, Structure, JavaScript, iCn3D, 3D, Viewer, WebGL, three.js, sequence, chemical">
<meta name="robots" content="index,follow,noarchive">
<title>iCn3D: Web-based 3D Structure Viewer</title>
Expand Down Expand Up @@ -247,7 +247,14 @@

</script>



<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-68648221-3']);
_gaq.push(['_setDomainName', '.ncbi.nlm.nih.gov']);
_gaq.push(['_trackPageview']);
setTimeout("_gaq.push(['_trackEvent', '10_seconds', 'read'])",10000);
(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
</script>
</body></html>

3 changes: 3 additions & 0 deletions icn3d.html
Original file line number Diff line number Diff line change
Expand Up @@ -1798,6 +1798,9 @@ <h3>Methods <a href="#Top"><span class="top">&nbsp;&nbsp;&nbsp;</span></a></h3>

<a name="log"></a>
<h2>Change Log:<img src="https://www.ncbi.nlm.nih.gov/Structure/IMG/spacer.gif" width="25" height="1" border="0"><a href="#Top"><img src="https://www.ncbi.nlm.nih.gov/Structure/IMG/arrowup_blue.gif" width="12" height="12" border="0" alt="back to top"></a></h2>
The production version <a href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.3.zip">icn3d-2.4.3</a> was release on January 22, 2019. Non-standard proteins or nucleotides were still displayed as "Biopolymer" in 2D interactions and were displayed in the style of protein or nucleotide in 3D. The usage tracking was implemented in iCn3D.
<br><br>

The production version <a href="https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d-2.4.2.zip">icn3d-2.4.2</a> was release on January 16, 2019. Non-standard proteins or nucleotides were displayed as "Biopolymer" in 2D interactions and were displayed in the style of "Stick" in 3D. A new kind of annotation "Disulfie Bonds" was added to the "Sequences and Annotations" window.
<br><br>

Expand Down
11 changes: 10 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="iCn3D Structure Viewer">
<meta name="ncbi_db" content="structure">
<meta name="ncbi_db" content="structure"><meta name="ncbi_app" content="iCn3D"><meta name="ncbi_pdid" content="basic">
<meta name="keywords" content="NCBI, Structure, JavaScript, iCn3D, 3D, Viewer, WebGL, three.js, sequence, chemical">
<meta name="robots" content="index,follow,noarchive">
<title>iCn3D: Web-based 3D Structure Viewer</title>
Expand Down Expand Up @@ -148,5 +148,14 @@

</script>

<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-68648221-3']);
_gaq.push(['_setDomainName', '.ncbi.nlm.nih.gov']);
_gaq.push(['_trackPageview']);
setTimeout("_gaq.push(['_trackEvent', '10_seconds', 'read'])",10000);
(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "icn3d",
"version": "2.4.2",
"version": "2.4.3",
"description": "iCn3D Structure Viewer",
"main": "index.html",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion src/icn3dui/annotations/annotations.js
Original file line number Diff line number Diff line change
Expand Up @@ -2193,7 +2193,7 @@ iCn3DUI.prototype.showSsbond_base = function(chnid, chnidBase) {

var residueArray = Object.keys(resid2resids);

var title = "Disulfide Bond";
var title = "Disulfide Bonds";
if(title.length > 17) title = title.substr(0, 17) + '...';

var fulltitle = title;
Expand Down
43 changes: 43 additions & 0 deletions src/icn3dui/parsers/mmcif_mmdb_parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,8 @@ iCn3DUI.prototype.loadAtomDataIn = function (data, id, type, seqalign) { var me
var bPhosphorusOnly = me.icn3d.isCalphaPhosOnly(atoms, "O3'", "O3*");
var miscCnt = 0;

biopolymerChainsHash = {};

for (var i in atoms) {
++serial;

Expand Down Expand Up @@ -815,6 +817,17 @@ iCn3DUI.prototype.loadAtomDataIn = function (data, id, type, seqalign) { var me
//var bChemicalIons = (me.cfg.mmcifid === undefined) ? (chainid2kind[chainNum] === 'ligand' || chainid2kind[chainNum] === 'otherPolymer' || chainid2kind[chainNum] === undefined) : atm.mt === 'l';
// kind: other, otherPolymer, etc
var bChemicalIons = (me.cfg.mmcifid === undefined) ? (chainid2kind[chainNum] === 'ligand' || (chainid2kind[chainNum] !== undefined && chainid2kind[chainNum].indexOf('other') !== -1) || chainid2kind[chainNum] === undefined) : atm.mt === 'l';
if((atm.chain === 'Misc' || chainid2kind[chainNum] === 'other') && biopolymerChainsHash[chainNum] !== 'protein' && biopolymerChainsHash[chainNum] !== 'nucleotide') { // biopolymer, could be protein or nucleotide
if(atm.name === 'CA') {
biopolymerChainsHash[chainNum] = 'protein';
}
else if(atm.name === 'P') {
biopolymerChainsHash[chainNum] = 'nucleotide';
}
else {
biopolymerChainsHash[chainNum] = 'chemical';
}
}

/*
// sometimes proteins or nucleotide may input as chemicals
Expand Down Expand Up @@ -968,6 +981,36 @@ iCn3DUI.prototype.loadAtomDataIn = function (data, id, type, seqalign) { var me
prevmmdbId = mmdbId;
}

// adjust biopolymer type
for(var chainid in biopolymerChainsHash) {
if(Object.keys(me.icn3d.chains[chainid]).length < 10) continue;

if(biopolymerChainsHash[chainid] === 'chemical') continue;

for(var serial in me.icn3d.chains[chainid]) {
var atm = me.icn3d.atoms[serial];

delete me.icn3d.chemicals[serial];
atm.het = false;

if(biopolymerChainsHash[chainid] === 'protein') {
me.icn3d.proteins[serial] = 1;
//atm.style = (me.cfg.align !== undefined) ? 'c alpha trace' : 'ribbon';

if (atm.name === 'CA') me.icn3d.calphas[serial] = 1;
if (atm.name !== 'N' && atm.name !== 'CA' && atm.name !== 'C' && atm.name !== 'O') me.icn3d.sidec[serial] = 1;
}
else if(biopolymerChainsHash[chainid] === 'nucleotide') {
me.icn3d.nucleotides[serial] = 1;
//atm.style = 'nucleotide cartoon';

if (atm.name == "O3'" || atm.name == "O3*" || (bPhosphorusOnly && atm.name == 'P') ) {
me.icn3d.nucleotidesO3[serial] = 1;
}
}
}
}

// me.icn3d.adjustSeq(me.chainMissingResidueArray);

// remove the reference
Expand Down

0 comments on commit 0b59c9d

Please sign in to comment.