优德88官方网站

iCn3D Web APIs



COVID-19-related gallery with live examples back to top


iCn3D gallery with live examples ("iCn3D PNG Images", all images below except the first five snapshots, can be loaded into iCn3D by clicking "Open File > iCn3D PNG Image" in iCn3D File menu) back to top



How to embed iCn3D Structure Viewer in your html page:back to top


URL parameters for the advanced interfaceback to top

ParameterBasic interface
(index.html)
Advanced interface
(full.html)
Description
mmdbidYesYesNCBI MMDB ID or PDB ID, e.g., ?mmdbid=1tup&showanno=1&show2d=1
mmtfidYesYesMMTF ID, e.g., ?mmtfid=1tup
pdbidYesYesPDB ID, e.g., ?pdbid=1tup
mmcifidYesYesmmCIF ID, e.g., ?mmcifid=1tup
giYesYesNCBI protein gi number, e.g., ?gi=827343227
cidYesYesPubChem Compound ID, e.g., ?cid=2244
blast_rep_idNoYesNCBI protein accession of a chain of a 3D structure. "blast_rep_id" combines with the parameter "query_id" of a protein sequence to show the sequence-structure alignment, e.g., from=icn3d&blast_rep_id=1TSR_A&query_id=NP_001108451.1
alignNoYesTwo PDB IDs or MMDB IDs for structure alignment, e.g., ?align=1hho,4n7n
chainalignNoYesTwo chains for structure alignment, e.g., ?chainalign=1HHO_A,4N7N_A
urlYesYesUse the url (encoded) to retrieve the 3D structure. The url requires another parameter "type", e.g., ?type=pdb&url=https%3A%2F%2Ffiles.rcsb.org%2Fview%2F1gpk.pdb
widthYesYesWidth of the structure image. It can be percentage such as '100%', or pixel values such as 400. The default is "100%".
heightYesYesHeight of the structure image. It can be percentage such as '100%', or pixel values such as 400. The default is "100%".
resizeYesYesSet "true" or "1" to resize the image when the container is resized. The default is "true".
rotateYesYesSet "right", "left", "up", or "down" to rotate the structure when it is displayed at the beginning. The default is "right".
showannoNoYesSet "true" or "1" to show annotations, such as SNPs, ClinVar, domains, binding sites. The default is "false".
showalignseqNoYesSet "true" or "1" to show the aligned sequence window. The default is "false".
showsetsNoYesSet "true" or "1" to show the defined sets. The default is "false".
show2dNoYesSet "true" or "1" to show the 2D interaction. The default is "false".
showmenuYesYesSet "false" or "0" to hide the menus and buttons at the top of the structure canvas. The default is "true".
showtitleYesYesSet "false" or "0" to hide the title at the top of the structure canvas. The default is "true".
showcommandNoYesSet "false" or "0" to hide the command window. The default is "true".
simplemenuNoYesSet "true" or "1" to show only the menus "File", "View", "Style", and "Color" to simplify the UI. The default is "false".
mobilemenuNoYesSet "true" or "1" to show the mobile-style menu. Users can click to see all menus. The default is "false".
closepopupNoYesSet "true" or "1" to close the dialogs of "Defined Sets", "Interactions", and "Sequences and Annotations". The default is "false".
commandNoYesBesides the "Script/Log" section at the bottom of the canvas, commands can also be attached to the url parameter "command". The easy way to generate the commands is to operate manually to get your custom display and then click "File > Share Link" to find the URL with full commands or just the short URL.
replayNoYesSet "true" or "1" to replay each step of a custom display.

Menus, Commands, and Methods of the advanced interfaceback to top

1. File    
MenuCommandMethod
a) Retrieve by ID
MMDB ID: load mmdb [1GPK] downloadMmdb
MMTF ID: load mmtf [1GPK] downloadMmtf
PDB ID: load pdb [1GPK] downloadPdb
OPM PDB ID: load opm [6JXR] downloadOpm
mmCIF ID: load mmcif [1GPK] downloadMmcif
NCBI gi: load gi [827343227] downloadGi
PubChem CID: load cid [2244] downloadCid
b) Open File
PDB File: [no command available]
mmCIF File: [no command available]
Mol2 File: [no command available]
SDF File: [no command available]
XYZ File: [no command available]
URL (Same Host): load url [http://files.rcsb.org/view/1gpk.pdb] downloadUrl
iCn3D PNG Image: [no command available]
State/Script File: [no command available] loadScript
Selection File: [no command available]
Electron Density (DSN6) - Local File: set map 2fofc sigma 1.5 loadDsn6Data()
Electron Density (DSN6) - URL (Same Host): set map 2fofc sigma 1.5 | [URL] Dsn6ParserBase()
c) Align
Sequence to Structure: load seq_struc_ids [23491729,1TUP_A] downloadBlast_rep_id
Structure to Structure - Invariant Substructure Superposed: load alignment [1HHO,4N7N] | parameters atype=1 downloadAlignment
Structure to Structure - All Matching Molecules Superposed: load alignment [1HHO,4N7N] | parameters atype=0 downloadAlignment
Chain to Chain: load chainalignment [1HHO_A,4N7N_A] downloadChainAlignment
d) Realign Selection realign on seq align realignOnSeqAlign
e) 3D Printing
VRML (Color, W/ Stabilizers): export vrml stabilizer file saveVrmlFile
STL (W/ Stabilizers): export stl stabilizer file saveStlFile
VRML (Color): export vrml file saveVrmlFile
STL: export stl file saveStlFile
Add All Stabilizers: stabilizer addStabilizer
Remove All Stabilizers: set stabilizer off hideStabilizer
Add One Stabilizer: add one stabilizer | [atom serial] [atom serial]
Remove One Stabilizer: remove one stabilizer | [atom serial] [atom serial]
Set Thickness: set thickness | linerad 0.6 | coilrad 1 | stickrad 0.8 | ribbonthick 0.8 | proteinwidth 2 | nucleotidewidth 1.2 | ballscale 0.6
Reset Thickness: reset thickness resetAfter3Dprint
f) Save Files
iCn3D PNG Image: export canvas (URL example: http://foodzines.com/Structure/icn3d/full.html?mmdbid=1top&command=export%20canvas) saveFile([filename], 'png')
State File: [no command available] saveFile
All Selections: [no command available] saveFile
Residue Counts: [no command available] saveFile
g) Share Link: [no command available] shareLink
g) Replay Each Step: replay on replayon

2. Select    
MenuCommandMethod
a) Defined Sets: defined sets showSets
Select sets: select saved atoms [name1] or/and/not [name2] changeCustomAtoms
Delete selected sets: delete selected sets deleteSelectedSets
b) All: select all selectAll
c) Displayed Set: select displayed set ic.hAtoms = ic.cloneHash(ic.dAtoms)
d) by Distance
Display: select zone cutoff [cutoff in angstrom] pickCustomSphere

e) by Property
Positive: select prop positive selectProperty
Negative: select prop negative selectProperty
Hydrophobic: select prop hydrophobic selectProperty
Polar: select prop polar selectProperty
B-factor: select prop b factor selectProperty
Solvent Accessibility: select prop percent out selectProperty
f) Inverse: select complement selectComplement
g) Main Chains: select main chains selectMainChains
h) Side Chains: select side chains selectSideChains
i) Advancedselect [command] | name [commandname] selectByCommand

j) Select on 3D
Chain (Alt): set pk chain ic.pk = 5; ic.opts['pk'] = 'chain';
3D Domain (Alt): set pk domain ic.pk = 4; ic.opts['pk'] = 'domain';
Strand/Helix (Alt): set pk strand ic.pk = 3; ic.opts['pk'] = 'strand';
Residue (Alt): set pk residue ic.pk = 2; ic.opts['pk'] = 'residue';
Atom (Alt): set pk atom ic.pk = 1; ic.opts['pk'] = 'atom';
k) Save Selection: select [command] | name [commandname] selectByCommand
l) Clear Selection: clear all selectAll

m) Highlight Color
Yellow: set highlight color yellow
Green: set highlight color green
Red: set highlight color red

n) Highlight Style
Outline: set highlight style outline ic.bHighlight = 1;
3D Objects: set highlight style 3d ic.bHighlight = 2;
o) Toggle Highlighttoggle highlight toggleHighlight

p) Switch Highlight Level
↑: highlight level up switchHighlightLevelUp
↓: highlight level down switchHighlightLevelDown

2b. Selection Definition    
In the dialog Select -> Advanced, users can use simple specification to select atoms:

Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,KRDE,chemicals@CA,C": Set Operation: Full commands in url or command window:

3. View    
MenuCommandMethod
a) View -> View Only Selection: show selection showSelection
b) View -> Zoom in Selection: zoom selection zoominSelection
c) View -> Center Selection: center selection centerSelection
d) View -> View Full Structure: show all showAll
e) View -> Show Side by Side: side by side | [url] window.open()

f) View -> Rotate

f1) Rotate 90°
X-axis: rotate x setRotation
Y-axis: rotate y setRotation
Z-axis: rotate z setRotation

f2) Auto Rotation
Rotate Left: rotate left rotStruc
Rotate Right: rotate right rotStruc
Rotate Up: rotate up rotStruc
Rotate Down: rotate down rotStruc

g) View -> Camera
Perspective: set camera perspective ic.opts['camera'] = 'perspective';
Orthographic: set camera orthographic ic.opts['camera'] = 'orthographic';

h) View -> Fog for Selection
On: set fog on ic.opts['fog'] = 'yes';
Off: set fog off ic.opts['fog'] = 'no';

i) View -> Slab for Selection
On: set slab on ic.opts['slab'] = 'yes';
Off: set slab off ic.opts['slab'] = 'no';

j) View -> XYZ-axes
Show: set axis on ic.opts['axis'] = 'yes';
Hide: set axis off ic.opts['axis'] = 'no';

k) View -> Reset:
All: reset renderFinalStep
Orientation: reset orientation resetOrientation
l) View -> Undo: back back
m) View -> Redo: forward forward
n) View -> Full Screen: [no command available]

4. Style    
MenuCommandMethod
a) Style -> Protein
Ribbon: style proteins ribbon setStyle
Strand: style proteins strand setStyle
Cylinder and Plate: style proteins cylinder and plate setStyle
Schematic: style proteins schematic setStyle
C Alpha Trace: style proteins c alpha trace setStyle
Backbone: style proteins backbone setStyle
B-factor Tube: style proteins b factor tube setStyle
Lines: style proteins lines setStyle
Stick: style proteins stick setStyle
Ball and Stick: style proteins ball and stick setStyle
Sphere: style proteins sphere setStyle
Hide: style proteins nothing setStyle

b) Style -> Side Chains
Lines: style sidec lines setStyle
Stick: style sidec stick setStyle
Ball and Stick: style sidec ball and stick setStyle
Sphere: style sidec sphere setStyle
Hide: style sidec nothing setStyle

c) Style -> Nucleotides
Nucleotide Cartoon: style nucleotides nucleotide cartoon setStyle
O3' Trace: style nucleotides o3 trace setStyle
Backbone: style nucleotides backbone setStyle
Schematic: style nucleotides schematic setStyle
Lines: style nucleotides lines setStyle
Stick: style nucleotides stick setStyle
Ball and Stick: style nucleotides ball and stick setStyle
Sphere: style nucleotides sphere setStyle
Hide: style nucleotides nothing setStyle

d) Style -> Chemicals
Lines: style chemicals lines setStyle
Stick: style chemicals stick setStyle
Ball and Stick: style chemicals ball and stick setStyle
Schematic: style chemicals schematic setStyle
Sphere: style chemicals sphere setStyle
Hide: style chemicals nothing setStyle

d2) Style -> Hydrogens
Show: hydrogens showHydrogens
Hide: set hydrogens off hideHydrogens

e) Style -> Ions
Sphere: style ions sphere setStyle
Dot: style ions dot setStyle
Hide: style ions nothing setStyle

f) Style -> Water
Sphere: style water sphere setStyle
Dot: style water dot setStyle
Hide: style water nothing setStyle
g) Style -> Set Thickness: set thickness | linerad 0.6 | coilrad 1 | stickrad 0.8 | ribbonthick 0.8 | proteinwidth 2 | nucleotidewidth 1.2 | ballscale 0.6
h) Style -> Save Style: save style saveStyle
i) Style -> Apply Saved Style: apply saved style applySavedStyle

j) Style -> Surface Type
Van der Waals: set surface Van der Waals surface applySurfaceOptions
VDW with Context: set surface Van der Waals surface with context applySurfaceOptions
Molecular Surface: set surface molecular surface applySurfaceOptions
MS with Context: set surface molecular surface with context applySurfaceOptions
Solvent Accessible: set surface solvent accessible surface applySurfaceOptions
SA with Context: set surface solvent accessible surface with context applySurfaceOptions
k) Style -> Remove Surface: set surface nothing applySurfaceOptions

l) Style -> Surface Opacity
1.0: set surface opacity 1.0 applySurfaceOptions
0.9: set surface opacity 0.9 applySurfaceOptions
0.8: set surface opacity 0.8 applySurfaceOptions
0.7: set surface opacity 0.7 applySurfaceOptions
0.6: set surface opacity 0.6 applySurfaceOptions
0.5: set surface opacity 0.5 applySurfaceOptions
0.4: set surface opacity 0.4 applySurfaceOptions
0.3: set surface opacity 0.3 applySurfaceOptions
0.2: set surface opacity 0.2 applySurfaceOptions
0.1: set surface opacity 0.1 applySurfaceOptions

m) Style -> Surface Wireframe
Yes set surface wireframe on applySurfaceOptions
No set surface wireframe off applySurfaceOptions

n) Style -> Electron Density
2Fo-Fc Map: set map 2fofc sigma 1.5 applyCommandMap
Fo-Fc Map: set map 2fofc sigma 3 applyCommandMap
o) Style -> Remove Map: set map nothing applyMapOptions

p) Style -> Map Wireframe
Yes set map wireframe on applyMapOptions
No set map wireframe off applyMapOptions
q) Style -> EM Density Map: set emmap percentage 20 applyCommandEmmap
r) Style -> Remove EM Map: set emmap nothing applyEmmapOptions

s) Style -> EM Map Wireframe
Yes set emmap wireframe on applyEmmapOptions
No set emmap wireframe off applyEmmapOptions

t) Style -> Background
Transparent: set background transparent ic.opts['background'] = 'transparent'
Black: set background black ic.opts['background'] = 'black'
Grey: set background grey ic.opts['background'] = 'grey'
White: set background white ic.opts['background'] = 'white'

u) Style -> Dialog Color
Blue: set theme blue setTheme
Orange: set theme orange setTheme
Black: set theme black setTheme

5. Color    
MenuCommandMethod
a)
Color -> Spectrum: color spectrum setColorByOptions
Color -> Secondary (Sheet in Green): color secondary structure setColorByOptions
Color -> Secondary (Sheet in Yellow): color secondary structure yellow setColorByOptions
Color -> Secondary (Spectrum): color secondary structure spectrum setColorByOptions
Color -> Charge: color charge setColorByOptions
Color -> Wimley-White Hydrophobicity: color hydrophobic setColorByOptions
Color -> B-factor (Original): color b factor setColorByOptions
Color -> B-factor (Percentile): color b factor percentile setColorByOptions
Color -> Solvent Accessibility: color area | 35 setColorByOptions
Color -> Chain: color chain setColorByOptions
Color -> 3D Domain: color 3ddomain setColorByOptions
Color -> Residue - Default: color residue setColorByOptions
Color -> Residue - Custom: color residue custom setColorByOptions
Color -> Atom: color atom setColorByOptions

b) Color -> Unicolor
Red: color red setColorByOptions
Green: color green setColorByOptions
Blue: color blue setColorByOptions
Magenta: color magenta setColorByOptions
Yellow: color yellow setColorByOptions
Cyan: color cyan setColorByOptions
White: color white setColorByOptions
Grey: color grey setColorByOptions

c) Color -> Color Picker
Apply: color [e.g., FF0000] setColorByOptions
Color -> Save Color: save color saveColor
Color -> Apply Saved Color:apply saved color applySavedColor

6. Analysis    
MenuCommandMethod
a) Analysis -> View Sequences & Annotations: view annotations applyCommandAnnotationsAndCddSite
b) Analysis -> View 2D Diagram view interactions set2DDiagrams
c) Analysis -> Defined Sets defined sets showSets
d) Analysis -> H-Bonds & Interactions: hbonds 3.5 | sets non-selected selected;
salt bridges 4 | sets non-selected selected;
interactions 4 | sets non-selected selected
showHbonds;showSaltbridge;pickCustomSphere
e) Analysis -> Bring to Front: window ... openDlg

f) Analysis -> Delphi Potential
Local Phi/Cube File: [no command available] loadPhiFile
URL (Same Host) Phi/Cube: set phimap cubeurl contour 1 | [url] loadPhiFileUrl
g) Analysis -> Remove Potential: setoption phimap nothing setOption('phimap', 'nothing')

h) Analysis -> Chemical Binding
Show: set chemicalbinding show me.setOption('chemicalbinding', 'show');
Hide: set hbonds off me.setOption('chemicalbinding', 'hide');

i) Analysis -> Disulfide Bonds
Show: disulfide bonds showSsbonds
Export Pairs: [no command available]
Hide: set disulfide bonds off ic.opts["ssbonds"] = "no";

j) Analysis -> Cross-Linkages
Show: cross linkage ic.bShowCrossResidueBond = true;
Hide: set cross linkage off ic.bShowCrossResidueBond = false;

k) Analysis -> Assembly (PDB, mmCIF, or MMTF files only)
yes: set assembly on ic.bAssembly = true;
no: set assembly off ic.bAssembly = false;
l) Analysis -> Symmetry: symmetry C6 (global) retrieveSymmetry; applySymmetry

m) Analysis -> Distance
Measure: add label [label text] | x [x] y [y] z [z] | size [label size] | color [FF0000] | background [FFFFFF] addLabel
add line | x1 [x1] y1 [y1] z1 [z1] | x2 [x2] y2 [y2] z2 [z2] | color [FFFF00] | dashed [true] addLine
Hide: set lines off ic.labels['distance'] = []; ic.lines['distance'] = [];

n) Analysis -> Label
by Picking Atoms: add label [label text] | x [x] y [y] z [z] | size [label size] | color [FF0000] | background [FFFFFF] addLabel
per Selection: add label [label text] | size [label size] | color [FF0000] | background [FFFFFF] addLabel
per Atom: add atom labels addAtomLabels
per Residue: add residue labels addResiudeLabels
per Chain: add chain labels addLabel
N- & C- Termini: add terminal labels addTerminiLabels
Remove: set labels off addChainLabels

o) Analysis -> Label Scale
0.1: set label scale 0.1 ic.labelScale=0.1
0.2: set label scale 0.2 ic.labelScale=0.2
0.4: set label scale 0.4 ic.labelScale=0.4
0.6: set label scale 0.6 ic.labelScale=0.6
0.8: set label scale 0.8 ic.labelScale=0.8
1.0: set label scale 1.0 ic.labelScale=1.0
2.0: set label scale 2.0 ic.labelScale=2.0
4.0: set label scale 4.0 ic.labelScale=4.0
6.0: set label scale 6.0 ic.labelScale=6.0
8.0: set label scale 8.0 ic.labelScale=8.0
10.0: set label scale 10.0 ic.labelScale=10.0
p) Analysis -> Your Note / Window Title your note | [text]

q) Analysis -> View Links
Structure Summary: [no command available]
Find Similar Structures: [no command available]
Literature: [no command available]
Protein: [no command available]

7. Help    
MenuCommand
a) Help -> About iCn3D: [no command available]
b) Help -> Help DOc: [no command available]
c) Help -> Web Methods: [no command available]
d) Help -> Transform Hints: [no command available]
e) Help -> Selection Hints: [no command available]

Data Structureback to top


Display Optionsback to top


Method Documents of the core library iCn3Dback to top

Options    


bHighlight    
If its value is 1, the selected atoms will be highlighted with outlines around the structure. If its value is 2, the selected atoms will be highlighted with transparent 3D objects such as boxes, ribbons, cylinders, etc. If its value is undefined, no highlight will be shown.
bImpo    
This is a flag to turn on the rendering of spheres and cylinders using shaders instead of geometries. It's true by default if the browser supports the EXT_frag_depth extension.

bRender    
This is a flag to turn off the rendering part if a sequence of commands are executed. It's true by default.

bStopRotate    
Once clicked, this flag can be set as "true" to the automatic rotation. It's false by default.

coilWidth    
This is the coil radius for coils. It's 0.4 by default.

cylinderHelixRadius    
This is the cylinder radius for the style 'Cylinder and Plate'. It's 1.6 by default.

dAtoms    
This is a hash used to store all atoms to be displayed. The key is the atom index. Its value is set as 1.

dotSphereScale    
This is the ball scale for styles 'Ball and Stick' and 'Dot'. It's 0.3 by default.

hAtoms    
This is a hash used to store all atoms to be highlighted. The key is the atom index. Its value is set as 1.

hColor    
This defines the highlight color.

helixSheetWidth    
This is the width of protein ribbons. It's 1.3 by default.

lineRadius    
This is the line radius for stabilizers, hydrogen bonds, and distance lines. It's 0.1 by default.

matShader    
This defines the highlight color using the outline method. It can be defined using the function setOutlineColor().

nucleicAcidWidth    
This is the width of nucleotide ribbons. It's 0.8 by default.

pAtom    
"pAtom" has the value of the atom index of the picked atom.

pAtom2    
When two atoms are required to be selected (e.g., for measuring distance), "pAtom2" has the value of the atom index of the 2nd picked atom.

pk    
If its value is 1, selecting an atom will select the atom. If its value is 2, selecting an atom will select the residue containing this atom. If its value is 3, selecting an atom will select the strand or helix or coil containing this atom. If its value is 0, no selecting will work.

ribbonthickness    
This is the ribbon thickness for helix and sheet ribbons, and nucleotide ribbons. It's 0.4 by default.

sphereRadius    
This is the sphere radius for the style 'Sphere'. It's 1.5 by default.

stickRadius    
This is the stick radius for sticks. It's 0.4 by default.

traceRadius    
This is the stick radius for C alpha trace and O3' trace. It's 0.2 by default.


Methods    


addHlObjects()    
Show the highlight for the selected atoms: hAtoms.

addResiudeLabels(atoms, bSchematic)    
Add labels for all residues containing the input "atoms". The labels are one-letter residue abbreviations. If "bSchematic" is true, the labels are in circles. Otherwise, they are in round-corner rectangles.

applyDisplayOptions(options, atoms)    
Apply style and label options to a certain set of atoms.

applyOtherOptions(options)    
Apply the rest options (e.g., hydrogen bonds, center, etc).

applySsbondsOptions(options)    
Apply the disulfide bond options.

applyEmmapOptions(options)    
Apply options for EM density map.

applyMapOptions(options)    
Apply options for electron density map.

applySurfaceOptions(options)    
Apply the surface options.

applyTransformation()    
Update the rotation, translation, and zooming before rendering. Typically used before the function render().

buildAxes(radius)    
Build the xyz-axes from the center of atoms. The maximum axes length is equal to "radius" in angstrom.

calculateChemicalHbonds(protein, chemicals, threshold)    
Set up hydrogen bonds between chemical and protein/nucleotide in the same structure. "protein" and "chemicals" are hashes with atom indices as keys and 1 as values. "threshold" is the maximum distance of hydrogen bonds and has the unit of angstrom.

centerAtoms(atoms)    
Return an object {"center": center, "maxD": maxD}, where "center" is the center of a set of "atoms" with a value of THREE.Vector3(), and "maxD" is the maximum distance between any two atoms in the set.

centerSelection()    
Center on the selected atoms.

createBox(atom, defaultRadius, forceDefault, scale, color, bHighlight)    
Create a cube for "atom" with the "defaultRadius". "forceDefault" means to use the default radius. "scale" means scale on the radius. "color" means the color of the cube. "bHighlight" is an option to draw the highlight for the atom.

createCylinderCurve(atoms, atomNameArray, radius, bLines, bHighlight)    
Create small cylinders (thick lines) for "atoms", whose atom name should be in the array atomNameArray. "radius" is radius of the small cylinders. "bLine" is an option to show the cylinders as lines. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createCylinderHelix(atoms, radius, bHighlight)    
Create cylinders for alpha helices and ribbons for beta strands in "atoms". "radius" is radius of the cylinders. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createLabelRepresentation(labels)    
Create labels for a list of "labels", each of which has the properties 'position', 'text', 'size', 'color', and 'background'.

createLineRepresentation(atoms, bHighlight)    
Create lines for "atoms". "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createLines(lines)    
Create lines for a list of "lines", each of which has the properties 'position1', 'position2', 'color', and a boolean of 'dashed'.

createSphereRepresentation(atoms, radius, forceDefault, scale, bHighlight)    
Create spheres for "atoms" with the "radius". "forceDefault" means to use the default radius. "scale" means scale on the radius. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createStickRepresentation(atoms, atomR, bondR, scale, bHighlight)    
Create sticks for "atoms". "bondR" is the radius of the sticks. "atomR" is the radius of the spheres in the joints. "scale" means scale on the radius. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createStrand(atoms, num, div, fill, coilWidth, helixSheetWidth, doNotSmoothen, thickness, bHighlight)    
Create the style of ribbon or strand for "atoms". "num" means how many lines define the curve. "num" is 2 for ribbon and 6 for strand. "div" means how many pnts are used to smooth the curve. It's typically 5. "coilWidth" is the width of curve for coil. "helixSheetWidth" is the width of curve for helix or sheet. "doNotSmoothen" is a flag to smooth the curve or not. "thickness" is the thickness of the curve. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

createSurfaceRepresentation(atoms, type, wireframe, opacity)    
Create surface for "atoms". "type" can be 1 (Van der Waals surface), 2 (molecular surface), and 3 (solvent accessible surface). "wireframe" is a boolean to determine whether to show the surface as a mesh. "opacity" is a value between 0 and 1. "1" means not transparent at all. "0" means 100% transparent.

createTube(atoms, atomName, radius, bHighlight)    
Create tubes for "atoms" with certain "atomName". "radius" is the radius of the tubes. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

draw()    
Draw the 3D structure. It rebuilds scene, applies previous color, applies the transformation, and renders the image.
drawCartoonNucleicAcid(atoms, div, thickness, bHighlight)    
Create curves for nucleotide "atoms". "div" means how many pnts are used to smooth the curve. It's typically 5. "thickness" is the thickness of the curve. "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

drawNucleicAcidStick(atoms, bHighlight)    
Create sticks between two nucleotide curves for nucleotide "atoms". "bHighlight" is an option to draw the highlight for these atoms. The highlight could be outlines with bHighlight=1 and 3D objects with bHighlight=2 as mentioned above.

drawSymmetryMates2()    
Draw the biological unit assembly using the matrix.

exportCanvas()    
Export the current view as a PNG file.

getAtomsWithinAtom(allAtoms, targetAtoms, distance)    
This function returns atoms within a certain "distance" (in angstrom) from the "targetAtoms". The returned atoms are stored in a hash with atom indices as keys and 1 as values. Only those atoms in "allAtoms" are considered.

getChainsFromAtoms(atomHash)    
Return the chain hash from the atom hash. The chain hash has the chainid as the key and 1 as the value.

getExtent(atomlist)    
For a list of atoms, return an array containing three coordinates: minimum x- y- z- values, maximum x- y- z- values, and average x- y- z- values.

getFirstAtomObj(atomsHash)    
Return the first atom in the atom hash, which has the atom serial number as the key.

getLastAtomObj(atomsHash)    
Return the last atom in the atom hash, which has the atom serial number as the key.

getResiduesFromAtoms(atomHash)    
Return the residue hash from the atom hash. The residue hash has the resid as the key and 1 as the value.

hasCovalentBond(atom1, atom2)    
Determine whether atom1 and atom2 have covalent bond.

hideHbonds()    
Remove hydrogen bonds.

init()    
When users first load a structure, call this function to empty previous settings.

loadPDB(pdbData)    
This PDB parser feeds the viewer with the content of a PDB file, pdbData.

rebuildScene(options)    
This core function sets up the scene and display the structure according to the input options (shown above), which is a hash containing values for different keys.

reinitAfterLoad()    
Reset parameters for displaying the loaded structure.

removeHlObjects()    
Remove the highlight. The atom selection does not change.

removeSurfaces()    
Remove previously drawn surfaces.

render()    
Render the scene and objects into pixels.

resetOrientation()    
Set the orientation to the original one, but leave the style, color, etc alone.

residueName2Abbr(residueName)    
Convert a three-letter residue name to a one-letter residue abbreviation, e.g., 'LYS' to 'K', or ' A' to 'A' for nucleotides.

rotateDown(degree)    
Rotate the structure certain degree to the bottom, e.g., 5 degree.

rotateLeft(degree)    
Rotate the structure certain degree to the left, e.g., 5 degree.

rotateRight(degree)    
Rotate the structure certain degree to the right, e.g., 5 degree.

rotateUp(degree)    
Rotate the structure certain degree to the top, e.g., 5 degree.

saveFile(filename, type)    
Save the state file or the image file with "filename". "type" is either "text" for state file or "png" for image file.

selectStrandHelixFromAtom(atom)    
For an "atom", select all atoms in the same strand, helix, or coil.

setAtomStyleByOptions(options)    
Set atom style according to the definition in options (options.secondaryStructure, etc).

setCamera()    
Set the camera according to the size of the structure.

setColorByOptions(options, atoms)    
Set atom color according to the definition in options (options.color).

setOutlineColor(colorStr)    
Set the outline color when highlighting atoms. The available options are "yellow", "green", and "red".

setRotationCenter(coord)    
Set the center at the position with coordinated "coord".

setStyle2Atoms(atomlist)    
For a list of atoms, set the hash with style as key and atom serial as value.

setWidthHeight(width, height)    
Set the width and height of the canvas.

showPicking(atom)    
Define actions when an atom is picked. By default, the atom information ($[structure id].[chain id]:[residue number]@[atom name]) is displayed.

translateDown(percentScreenSize)    
Translate the structure certain distance to the bottom, e.g., "percentScreenSize" 1 means 1% of the screen height.

translateLeft(percentScreenSize)    
Translate the structure certain distance to the left, e.g., "percentScreenSize" 1 means 1% of the screen width.

translateRight(percentScreenSize)    
Translate the structure certain distance to the right, e.g., "percentScreenSize" 1 means 1% of the screen width.

translateUp(percentScreenSize)    
Translate the structure certain distance to the top, e.g., "percentScreenSize" 1 means 1% of the screen height.

zoomIn(normalizedFactor)    
Zoom in the structure at certain ratio, e.g., 0.1 is a reasonable value.

zoominSelection()    
Center on the selected atoms and zoom in.

zoomOut(normalizedFactor)    
Zoom out the structure at certain ratio, e.g., 0.1 is a reasonable value.

Hash Operations    

cloneHash(fromHash)    
Clone the "fromHash" and return the cloned hash.

exclHash(includeAtoms, excludeAtoms)    
Get atoms in "includeAtoms", but not in "excludeAtoms". The returned hash has atom index as key and 1 as value.

exclHash2Atoms(includeAtoms, excludeAtoms)    
Get atoms in "includeAtoms", but not in "excludeAtoms". The returned hash has atom index as key and atom object as value.

hash2Atoms(hash)    
The input "hash" has atom index as key and 1 as value. The returned hash has atom index as key and atom object as value.

intHash(atoms1, atoms2)    
Get the intersection of two hashes "atoms1" and "atoms2". The returned hash has atom index as key and 1 as value.

intHash2Atoms(atoms1, atoms2)    
Get the intersection of two hashes "atoms1" and "atoms2". The returned hash has atom index as key and atom object as value.

unionHash(atoms1, atoms2)    
Get the union of two hashes "atoms1" and "atoms2". The returned hash has atom index as key and 1 as value.

unionHash2Atoms(atoms1, atoms2)    
Get the union of two hashes "atoms1" and "atoms2". The returned hash has atom index as key and atom object as value.

Method Documents of the advanced UI library iCn3DUIback to top

Options    


b2DShown    
A flag to remember whether the 2D interaction diagram was set.

bAddCommands    
A flag to determine whether to add current step into the command history.

bAddLogs    
A flag to determine whether to add current step into the log window.

bAnnoShown    
A flag to remember whether the annotation window was set.

bSetChainsAdvancedMenu    
A flag to remember whether the menu of defined sets was set.

bNotLoadStructure    
A flag to determine whether to load the coordinates of the structure. When resetting the view, it is true so that the coordinates of the structure will not be loaded again.

cfg    
A hash containing all input parameters.

LESSHEIGHT    
The height (in px) that was left empty by the 3D viewer. The default is 20px.

LESSWIDTH    
The width (in px) that was left empty by the 3D viewer. The default is 20px.

opts    
The default display options as shown above.

pre    
A prefix for all custom html element id. It ensures all html elements have specific ids, even when multiple iCn3D viewers are shown together.

Methods    


addChainLabels(atomHash)    
Display chain name in the 3D structure display for the chains intersecting with the atoms in "atomHash".

addCustomSelection(residueAtomArray, commandname, commanddesc, command, bResidue)    
Define a custom selection based on the array of residues or atoms. The custom selection is defined by the "command" with the name "commandname" and the description "commanddesc". If "bResidue" is true, the custom selection is based on residues. Otherwise, the custom selection is based on atoms.

addLabel(text, x, y, z, size, color, background)    
Add a "text" at the position (x, y, z) with the input "size", "color", and "background".

addLine(x1, y1, z1, x2, y2, z2, color, dashed)    
Add a line between the position (x1, y1, z1) and the position (x2, y2, z2) with the input "color". The line can be dashed if "dashed" is set true.

addStabilizer()    
Add stabilizers in the model for 3D printing. This is especially important for the cartoon display such as ribbons. addTerminiLabels(atomHash)    
Display the terminal labels for the atoms in "atomHash". The termini of proteins are labeld as "N-" and "C-". The termini of nucleotides are labeled as "5'" and "3'".

allCustomEvents()    
You can add your custom events in this function if you want to add new links in the function setTools.

allEventFunctions()    
Hold all functions related to click events.

alternateStructures()    
Show structures one by one.

applyCommand(command)    
Execute a command. If the command is to load a structure, use the Method "applyCommandLoad".

applyCommandAnnotationsAndCddSite()    
The annotation window calls many Ajax calls. Thus the command "view interactions" (in Share Link or loading state file) is handled specially to wait for the Ajax calls to finish before executing the next command.

applyCommandMap(command)    
Apply the command to show electron density map.

applyCommandEmmap(command)    
Apply the command to show EM density map.

applySavedColor()    
Restore the previously saved color.

applySavedStyle()    
Restore the previously saved style.

applyCommandLoad(command)    
Execute the command to load a structure. This step is different from the rest steps since it has to finish before the rest steps start.

back()    
Go back one step. Basically the commands are sequentially executed, but with one less step.

changeCustomAtoms(nameArray)    
HighlightAtoms are set up based on the selected custom names "nameArray" in the atom menu. The corresponding atoms are neither highlighted in the sequence dialog nor in the 3D structure since not all residue atom are selected.

changeSeqColor(residueArray)    
Change the residue color in the annotation window for the residues in the array "residueArray".

clearSelection()    
Clear the "Structure", "Chain", and "Custom" dropdown menu.

deleteSelectedSets()    
Delete selected sets in the menu of "Defined Sets".

downloadAlignment(align)    
Load the VAST+ structure alignment for the pair of structures "align", e.g., "align" could be "1HHO,4N7N".

downloadBlast_rep_id(sequence_id_comma_structure_id)    
Ajax call was used to get the atom data from "sequence_id_comma_structure_id", comma-separated NCBI protein accessions of a protein sequence and a chain of a 3D structure (e.g., 23491729,1TUP_A). This function was deferred so that it can be chained together with other deferred functions for sequential execution. Note that only one structure corresponding to the blast_rep_id will be shown. If there is no structures available for the blast_rep_id, a warning message will be shown.

downloadCid(cid)    
Ajax call was used to get the atom data from the PubChem "cid". This function was deferred so that it can be chained together with other deferred functions for sequential execution.

downloadGi(gi)    
Ajax call was used to get the atom data from the NCBI "gi". This function was deferred so that it can be chained together with other deferred functions for sequential execution. Note that only one structure corresponding to the gi will be shown. If there is no structures available for the gi, a warning message will be shown.

downloadMmcif(mmcifid)    
Ajax call was used to get the atom data from the "mmcifid". This function was deferred so that it can be chained together with other deferred functions for sequential execution.

downloadMmdb(mmdbid)    
Ajax call was used to get the atom data from the NCBI "mmdbid". This function was deferred so that it can be chained together with other deferred functions for sequential execution. If the structure is too large, a 3D dgm will show up. You can select your interested chains to see the details.

Atom "data" from MMDB file was parsed to set up parameters for the 3D viewer by calling the function loadAtomDataIn. The deferred parameter was resolved after the parsing so that other javascript code can be executed.

downloadMmtf(mmtfid)    
MMTF is a new binary data format besides the previous PDB and mmCIF formats for 3D structures. The JavaScript Methods at was used to load and parse the data.

downloadPdb(pdbid)    
Ajax call was used to get the atom data from the "pdbid". This function was deferred so that it can be chained together with other deferred functions for sequential execution. A wrapper was added to support both http and https.

downloadUrl(URL, type)    
Load structures from a "URL". Due to the same domain policy of Ajax call, the URL should be in the same domain. "type" could be "pdb", "mol2", "sdf", or "xyz" for pdb file, mol2file, sdf file, and xyz file, respectively.

execCommands(steps)    
Execute a list of commands. "steps" is the total number of commands.

exportInteractions()    
Export the list of residues in some chain interacting with residues in another chain.

forward()    
Go forward one step. Basically the commands are sequentially executed, but with one more step.

getAlignSequencesAnnotations(alignChainArray, bUpdateHighlightAtoms, residueArray, bShowHighlight)    
Set up the sequence display with the aligned sequences. Either chains in "alignChainArray" or residues in "residueArray" will be highlighted. "bUpdateHighlightAtoms" is a flag to update the highlight atoms or not. "bShowHighlight" is a flag to show highlight or not.

getCommandsBeforeCrash()    
Set the commands before the browser crashed. These commands are used to restore your previous state by refreshing the crashed page. It works in Chrome, Firefox, and Internet Explorer in PC, but neither Safari nor Mac.

hideMenu(width, height)    
Hide the menu at the top and just show the canvas. "width" and "height" are the width and height of the canvas.

hideStabilizer()    
Remove all the added stabilizers.

init()    
When users load a state file, call this function to close all dialogs and reset the flags of these dialogs.


hideStabilizer()    
Remove stabilizers in the model.

isIE()    
Determine whether the current browser is Internet Explorer.

isMac()    
Determine whether it is a Mac.

isMobile()    
Determine whether it is a mobile device.

isSessionStorageSupported()    
Determine whether Session Storage is supported in your browser. Session Storage is not supported in Safari.

loadAtomDataIn(data, id, type)    
This function was used to parse atom "data" to set up parameters for the 3D viewer. "type" is mmcifid or mmdbid. "id" is the MMDB ID or mmCIF ID.

loadSdfAtomData(data)    
Atom "data" from SDF file was parsed to set up parameters for the 3D viewer. The deferred parameter was resolved after the parsing so that other javascript code can be executed.

loadMmcifData(data)    
Atom "data" from mmCIF file was parsed to set up parameters for the 3D viewer by calling the function loadAtomDataIn. The deferred parameter was resolved after the parsing so that other javascript code can be executed.

loadPdbData(data)    
Atom "data" from PDB file was parsed to set up parameters for the 3D viewer. The deferred parameter was resolved after the parsing so that other javascript code can be executed.

loadScript(commands)    
Run commands one after another. The commands can be semicolon ';' or new line '\n' separated.

modifyIcn3d()    
Hold all modification to the core iCn3D library.

modifyIcn3dshowPicking()    
Modify the function "showPicking" in the core iCn3D library.

openDlg(id, title)    
Open a dialog to input parameters. "id" is the id of the div section holding the html content. "title" is the title of the dialog. The dialog can be out of the viewing area.

outputSelection()    
Output the selected residues in the residue dialog.

pickCustomSphere(distance)    
Select a sphere around the highlight atoms with a predefined distance.

prepareFor3Dprint()    
Prepare for 3D printing by changing dashed lines to solid lines, changing the thickness of the model.

removeHl2D()    
Remove the highlight in the 2D interaction diagram.

removeHlAll()    
Remove the highlight in 3D structure, 2D interaction, 1D sequence, and the menu of defined sets.

removeHlMenus()    
Remove the selection in the menu of defined sets.

removeHlObjects()    
Remove the highlight in the 3D structure display.

removeHlSeq()    
Remove the highlight in the sequence display of the annotation window.

removeSeqChainBkgd()    
Remove the background of the highlighted chain in the sequence dialog.

removeSeqResidueBkgd()    
Remove the background of the highlighted residues in the sequence dialog.

renderFinalStep(steps)    
When reading a list of commands, apply transformation at the last step.

renderStructure()    
Update the dropdown menu and show the structure by calling the function "draw()".

resetAfter3Dprint()    
Reset the hydrogen bonds, distance lines to dashed lines. Reset the thickness to the default values.

resizeCanvas(width, height)    
Resize the canvas with the defined "width" and "height".

rotStruc(direction)    
Rotate the structure in one of the directions: "left", "right", "up", and "down".

saveCommandsToSession()    
Save the command history to session storage so that the viewer can show the previous state when refreshing the same page.

saveColor()    
Save the current color setting so that these colors can be restored later by clicking "Apply Saved Color" in the Color menu.

saveFile(filename, type, data)    
Five types are used: command, png, html, text, and binary. The type "command" is used to save the statefile. The type "png" is used to save the current canvas image. The type "html" is used to save html file with the "data". This can be used to save any text. The type "text" is used to save an array of text, where "data" is actually an array. The type "binary" is used to save an array of binary, where "data" is actually an array.

saveStyle()    
Save the current style setting so that these styles can be restored later by clicking "Apply Saved Style" in the Style menu.

saveStlFile()    
Save the binary STL file for 3D monocolor printing.

saveVrmlFile()    
Save the VRML file for 3D color printing.

selectAAlignChain(alignChainid, commandname)    
Select an aligned chain with the chain id "alignChainid" in the sequence dialog and save it as a custom selection with the name "commandname".

selectAChain(chainid, commandname)    
Select a chain with the chain id "chainid" in the sequence dialog and save it as a custom selection with the name "commandname".

selectAll()    
Select all atom in the structures.

selectByCommand(command, commandname, commanddesc)    
Set a custom selection with the "command", its name "commandname" and its description "commanddesc".

selectComplement()    
Select the complement of the current selection.

selectSideChains()    
Select only the side chain atoms of the current selection.

set2DDiagrams(mmdbid)    
Generate the 2D interaction diagram for the structure "mmdbid", which could be PDB ID. The 2D interaction diagram is only available when the input is NCBI MMDB ID, i.e., the URL is something like "&mmdbid=...".

setAlignChainMenu(bInitial)    
Set the aligned chain menu. "bInitial" is a flag for the initial loading.

setAtomMenu(commandnameArray)    
Set the menu of defined sets with an array of defined names "commandnameArray".

setCustomDialogs()    
A placeholder for all custom dialogs.

setDialogs()    
Set the html for all popup dialogs.

setLogCmd(command, bSetCommand)    
Show the input command in log. If "bSetCommand" is true, the command will be saved in the state file as well.

setLogWindow()    
Set the textarea for the log output.

setMenu1()    
Set the menu "File" at the top of the viewer.

setMenu2()    
Set the menu "Select" at the top of the viewer.

setMenu3()    
Set the menu "Style" at the top of the viewer.

setMen4()    
Set the menu "Color" at the top of the viewer.

setMenu5()    
Set the menu "Surface" at the top of the viewer.

setMenu6()    
Set the menu "Other" at the top of the viewer.

setOption(id, value)    
Modify the display options, e.g., setOption('color', 'green')

setStyle(selectionType, style)    
Set the styles of predefined "protein", "nucleotides", etc.

setTools()    
Set the HTML code for the tools section. It includes several buttons, and is the second line at the top of the viewer.

setTopMenus()    
Set the HTML code for the menus shown at the top of the viewer.

shareLink()    
Generate a URL to capture the current state and open it in a new window. Basically the state file (the comand history) is concatenated in the URL to show the current state.

show3DStructure()    
The main function to show the 3D structure.

showAnnotations()    
show annotations such as SNPs, ClinVar, domains, binding sites, etc.

showCddSite(chainid, chainidBase)    
Show the annotations of CDD domains and binding sites.

showDomain(chainid, chainidBase)    
Show the annotations of 3D domains.

showHbonds(threshold)    
Show the hydrogen bonds between chemicals and proteins/nucleotides with dashed-lines."threshold" defines the distance of hydrogen bonds.

showInteraction(chainid, chainidBase)    
Show the residues interacting with the chain.

showMenu(width, height)    
Show the menu at the top and the canvas. "width" and "height" are the width and height of the canvas.

showSelection()    
Show the selection.

showSeq(chainid, chainidBase)    
Show the sequences and secondary structures.

showSets()    
Display the menu of defined sets. All chains and defined custom sets are listed in the menu. All new custom sets will be displayed in the menu.

showSnpClinvar(chainid, chainidBase)    
Show the annotations of SNPs and ClinVar.

showSsbonds()    
Show the disulfide bonds and show the side chain in the style of "stick".

showTitle()    
Show the title and PDB ID of the PDB structure at the beginning of the viewer.

switchHighlightLevelDown()    
When users pick an atom, a residue, a strand/helix, a chain, or a structure, they can use upper arrow to increase the highlight level by one, or use down arrow to decrease the highlight level by one. This function switchHighlightLevelDown() decreases the highlight level by one.

switchHighlightLevelUp()    
When users pick an atom, a residue, a strand/helix, a chain, or a structure, they can use upper arrow to increase the highlight level by one, or use down arrow to decrease the highlight level by one. This function switchHighlightLevelUp() increases the highlight level by one.

toggleSelection()    
Toggle on and off the current selection.

update2DdgmContent()    
The 2D diagram only shows the currently displayed chains when users click the option "View Only Selection". This method is called to dynamically update the content of the 2D interaction diagram.

updateHl2D()    
Update the highlight of 2D interaction diagram according to the current highlighted atoms.

updateHlAll(commandnameArray, bSetMenu)    
Update the highlight of 3D structure, 2D interaction, sequences, and the menu of defined sets according to the current highlighted atoms.

updateHlMenus()    
Update the selection in the menu of defined sets according to the current highlighted atoms.

updateHlObjects()    
Update the highlight of 3D structure display according to the current highlighted atoms.

updateHlSeq()    
Update the highlight of sequences in the annotation window according to the current highlighted atoms.


Change Log:back to top

icn3d-2.19.0 was release on August 12, 2020. Delphi potential map can be displayed for PDB structures at "Analysis > Delphi Potential". The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The Delphi potential file can be calculated at Delphi Web Server and be exported as a Cube file. The potential file can be accessed in a URL if it is located in the same host as iCn3D.

icn3d-2.18.4 was release on August 10, 2020. Fixed bugs in recently modified dropdown menus.

icn3d-2.18.3 was release on August 3, 2020. Moved "H-Bonds & Interactions" to "Analysis" menu and merged "Windows" menu with "Analysis" menu. Changed the default dialog color to blue. Users can change it at the menu "Style > Dialog Color".

icn3d-2.18.2 was release on July 28, 2020. Use strict mode and shrink code size.

icn3d-2.18.1 was release on July 23, 2020. Fixed the issue in the Jupyter Notebook widget icn3dpy; fixed the synchronized issue of the function show3DStructure().

icn3d-2.18.0 was release on July 20, 2020. Showed SNPs for SARS-CoV-2 proteins; generated icn3dpy (the Jupyter Notebook widget of iCn3D) at http://pypi.org/project/icn3dpy; added "2D Interaction Map" in the menu "View > H-Bonds & Interactions"; added the shrink/expand icon in each orange dialog/window.

icn3d-2.17.7 was release on July 7, 2020. Added iCn3D tutorial videos and slides.

icn3d-2.17.6 was release on June 29, 2020. All "Share Link" URLs can show the static view using the archived version of iCn3D at "File > Open File > Share Link URL in Fixed Ver.".

icn3d-2.17.5 was release on June 26, 2020. Made a versioned full_[version].html file so that "Share Link" URL could point to a fixed version by replacing "full.html" with "full_[version].html".

icn3d-2.17.4 was release on June 24, 2020. Users now can select options for cross structure interaction in alignment. Get ClinVar annotations from database.

icn3d-2.17.3 was release on June 18, 2020. Added the track "Cross-Linkages" for glycans, etc.

icn3d-2.17.2 was release on June 17, 2020. Added pinger to log usage.

icn3d-2.17.1 was release on June 15, 2020. Enabled to accept RID from BLAST result page.

icn3d-2.17.0 was release on June 12, 2020. Users can now show "2D Interaction Graph" and also "Highlight Interactions in Table" in the menu "View > H-Bonds & Interactions". Users can also replay the share link step by step to learn how to generate a custom display in the menu "File > Replay Each Step".

icn3d-2.16.4 was release on June 8, 2020. Enabled to turn force off in 2D Graph so that users can manually arrange the nodes.

icn3d-2.16.3 was release on June 5, 2020. Added halogen bonds, pi-cation, and pi-stacking interactions in the menu "View > H-Bonds & Interaction" and showed the interactions in sorted tables.

icn3d-2.16.2 was release on May 29, 2020. Added the following features: 1. save contents in any dialog/window using the save icon next to the closeicon, 2. set names for each tab/window using the menu "Analysis > Your Note / Window Title", 3. select by property (such as residue type, solvent accessibilty, etc) in the "Select" menu, 4. Use a custom file to define the color or tube size for each residue by clicking the button "Custom Color / Tube" in the "Sequences & Annotations" window.

icn3d-2.16.1 was release on May 27, 2020. Enabled to show gaps when adding multiple sequence alignment data as tracks.

icn3d-2.16.0 was release on May 21, 2020. Enabled to show interactions using force-directed graph in the menu "View > H-Bonds & Interactions > Force-Directed Graph". Enabled to calculate Solvent Accessible Surface Area (SASA) in the menu "View > Surface Area", or color by SASA in the menu "Color > Solvent Accessibility". Fixed ClinVar and SNP annotations.

icn3d-2.15.3 was release on May 8, 2020. Enabled to update the short "Share Link" URL; enabled to save in a sharable URL the "Side by Side" view, which is useful to view two aligned structures.

icn3d-2.15.2 was release on May 5, 2020. Fixed the display of electron density map and EM map.

icn3d-2.15.1 was release on April 27, 2020. Improved the unionHash function to speed up selection. Improved the message when loading a list of commands.

icn3d-2.15.0 was release on April 21, 2020. Enabled to show the same structure "Side by Side" in two views in the "View" menu. Each view has the same orientation, but can have independent 3D display. Enabled to add multiple sequence alignments as tracks when clicking "Add Track" in the "Sequences & Annotations" window. Added "Hide Selection" in the "View" menu. Improved selection on "H-Bonds & Interactions". Improved the UI for "Realign Selection" in the "File" menu. The gallery shows COVID-19-related structures at the top.

icn3d-2.14.0 was release on April 15, 2020. Added the features to load Electron Density data in the menu "File > Open File > Electron Density (DSN6)", resize the 3D window, realign two structures in the menu "File > Realign", color residues with custom colors in the menu "Color > Residue > Custom", and add custom colors when aligning a sequence to a structure.

icn3d-2.13.1 was release on March 26, 2020. Showed membranes for transmembrane proteins in VAST+ alignment.

icn3d-2.13.0 was release on March 23, 2020. Added the "Symmetry" feature in the View menu.

icn3d-2.12.1 was release on March 12, 2020. Fixed a bug on hydrogen bonds between residues with the same residue number but different chain names. Removed duplicated names in the menu of "Defined Sets".

icn3d-2.12.0 was release on March 2, 2020. Enabled to realign selected residues in VAST+ structure alignment. The option "Realign Selection" is in the View menu.

icn3d-2.11.5 was release on February 11, 2020. Add colors to aligned sequence track based on Blosum62.

icn3d-2.11.4 was release on January 14, 2020. The compiling tool gulp was upgraded to version 4.

icn3d-2.11.3 was release on January 7, 2020. A bug was fixed to have predefined sets available for hydrogen bonds/interations.

icn3d-2.11.2 was release on December 20, 2019. Added the style Backbone and added 'use strict' to each function.

icn3d-2.11.1 was release on December 19, 2019. Fixed a bug in chain alignment due to the introduction of membranes.

icn3d-2.11.0 was release on December 16, 2019. Enabled to show membranes for transmembrane proteins for data from PDB or MMDB by aligning the coordinates to the data from Orientations of Proteins in Membranes (OPM) database. Users could adjust the location of the membrane as well.

icn3d-2.10.1 was release on December 9, 2019. Enabled to select the currently displayed set in the Select menu and fixed some bugs on H-Bonds & Interactions.

icn3d-2.10.0 was release on December 5, 2019. Enabled to show each hydrogen bond and contact in 3D using the menu "View > H-Bonds & Interactions".

icn3d-2.9.2 was release on November 18, 2019. Added Transmembrane track if the input is opmid. Added angle constraint for hydrogen bonds.

icn3d-2.9.1 was release on November 14, 2019. Enable to select regions between two X-Y membranes for transmembrane proteins.

icn3d-2.9.0 was release on November 8, 2019. Display membranes for transmembrane proteins using data from Orientations of Proteins in Membranes (OPM). The feature is at "File > Retrieve by ID > OPM PDB ID".

icn3d-2.8.3 was release on November 5, 2019. Display/output salt bridges; color helices and sheets with spectrum in the menu "Color > Secondary > Spectrum".

icn3d-2.8.2 was release on October 29, 2019. Reduced the size of three.js (version 103) library. Added links to dbSNP in the mouseover texts of SNP annotations.

icn3d-2.8.1 was release on October 21, 2019. Fixed the 2D interaction display in structure alignment. The bug was introduced in the last release.

icn3d-2.8.0 was release on October 10, 2019. Allowed to align any chain to another chain in the menu "File > Align > Chain to Chain".

icn3d-2.7.19 was release on September 9, 2019. Fixed the input width and height with "%".

icn3d-2.7.18 was release on September 4, 2019. Added the option to view in Full Screen mode by clicking the expansion icon in the top-right corner when "mobilemenu" is turned on, or by clicking "Full Screen" in the View menu.

icn3d-2.7.17 was release on September 3, 2019. Made it easy to save interactive work by clicking "File > Save Files > iCn3D PNG Images". This saves both "iCn3D PNG Image" and an HTML file with a clickable PNG image, which is link to the custom display via a sharable link.

icn3d-2.7.16 was release on August 29, 2019. Fixed the transparent display by switching three.js from version 107 to 103.

icn3d-2.7.15 was release on August 21, 2019. Added an example page to embed multiple iCn3D viewers in one page.

icn3d-2.7.14 was release on August 21, 2019. Enabled the mobile style menu with the URL parameter "mobilemenu=1".

icn3d-2.7.13 was release on August 14, 2019. Fixed the calculations on contacting atoms by considering the centers of atoms and not radii of atoms. Minimized the code size by retrieving some rarely used code on the fly.

icn3d-2.7.12 was release on August 8, 2019. The backend to retrieve ClinVar annotation was fixed.

icn3d-2.7.11 was release on August 6, 2019. Added "Label Scale" in the View menu to scale all labels.

icn3d-2.7.10 was release on August 5, 2019. Improved the display of binding sites with fog and slab.

icn3d-2.7.9 was release on August 1, 2019. Fixed the effect of Fog on sticks and spheres.

icn3d-2.7.8 was release on July 31, 2019. Fixed SNP annotation in the sequences and annotations window.

icn3d-2.7.7 was release on July 30, 2019. Added the option to show or hide hydrogens when displaying PubChem compounds.

icn3d-2.7.6 was release on July 18, 2019. Enabled to show disulfide bonds when a custom pdb file is input; added the option to output pairs for disulfide bonds, hydrogen bonds, and interacting/contacting residues by distance.

icn3d-2.7.5 was release on July 16, 2019. Added a Gallery section. Fixed the picking and centering issues in some Mac computers. Optimized the width and height of embedded iCn3D viewer.

icn3d-2.7.4 was release on July 8, 2019. Included Miniland1333's fix on clickTab for the basic display; auto-detected lipids and treated them as chemicals; improved the display of modified PDB files; mouseover showed the structure names when there are more than one structures.

icn3d-2.7.3 was release on June 6, 2019. Improved the display of transparent surfaces.

icn3d-2.7.2 was release on June 5, 2019. Fixed the display of transparent surfaces.

icn3d-2.7.1 was release on June 3, 2019. Fixed the sequence display when there are insertion codes or missing coordinates.

icn3d-2.7.0 was release on May 20, 2019. "Share Link" can be used to reproduce a custom display when the input is a known ID. "iCn3D PNG Image" can be saved and opened in the File menu to reproduce a custom display for all cases, even when the input is a PDB file or other files.

icn3d-2.6.6 was release on May 16, 2019. The sequence display was fixed when the input is a MMTF ID or a mmCIF ID.

icn3d-2.6.5 was release on May 14, 2019. The sequence display was fixed when the input is a pdb file.

icn3d-2.6.4 was release on April 29, 2019. jQuery was upgraded to version 3.4.0.

icn3d-2.6.3 was release on April 23, 2019. Showed SNP annotations for more 3D structures.

icn3d-2.6.2 was release on April 15, 2019. Enabled to show large structure such as HIV-1 capsid (3J3Q) in the basic version of iCn3D (http://foodzines.com/Structure/icn3d/?mmtfid=3j3q).

icn3d-2.6.1 was release on April 1, 2019. Enabled to link from BLAST result page to iCn3D.

icn3d-2.6.0 was release on March 19, 2019. Users can now align any sequence to a hit structure by clicking "Align > Sequence to Structure" in the File menu. The default color scheme is color by sequence "Conservation" for sequence-structure or structure-structure alignments.

icn3d-2.5.3 was release on March 12, 2019. Added commands for up arraow and down arrow after picking a residue.

icn3d-2.5.2 was release on March 5, 2019. The style Lines was fixed by replacing THREE.Line with THREE.LineSegments.

icn3d-2.5.1 was release on February 14, 2019. Change log was moved to the file CHANGELOG.md. Share Link was changed from http://d55qc.app.goo.gl/### to http://structure.ncbi.nlm.nih.gov/icn3d/share.html?###. All previous share links still work. iCn3D library file was renamed from full_ui_all_#.#.#.min.js to icn3d_full_ui_#.#.#.min.js. Both files are available to make it backward compatible.

icn3d-2.5.0 was release on January 31, 2019. Updated Three.js from version 80 to version 99. Enabled the basic version (simple_ui_all.min.js) to hide the Tools menu and title. Fixed a bug in picking an atom for distance or labeling.

icn3d-2.4.3 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.

icn3d-2.4.2 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.

icn3d-2.4.1 was release on January 7, 2019. Enabled users to show EM density map for any subset of an EM structure.

icn3d-2.4.0 was release on December 17, 2018. Enabled users to show electron density map for any subset of a crystal structure.

icn3d-2.3.4 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.

icn3d-2.3.3 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.

icn3d-2.3.2 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.

icn3d-2.3.1 was release on October 25, 2018. The color of the the first residue in a coil was fixed.

icn3d-2.3.0 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.

icn3d-2.2.5 was release on September 17, 2018. A bug in loading local PDB file was fixed.

icn3d-2.2.4 was release on September 6, 2018. The location of 2D interaction dialog was optimized.

icn3d-2.2.3 was release on August 30, 2018. Added an option to show N- and C-terminal labels.

icn3d-2.2.2 was release on August 9, 2018. Defined sets can be combined using "or", "and", and "not".

icn3d-2.2.1 was release on August 3, 2018. Mouseover on the 3D structure shows the residue or atom name. Some Ajax calls are combined into one Ajax call.

icn3d-2.2.0 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".

icn3d-2.1.8 was release on July 12, 2018. Checked the code with the strict mode.

icn3d-2.1.7 was release on June 28, 2018. Simplified the addition of custom text as a track in the Sequences and Annotations window.

icn3d-2.1.6 was release on June 21, 2018. A color picker was added to the color menu.

icn3d-2.1.5 was release on June 18, 2018. 3D printing are enabled for biological assemblies.

icn3d-2.1.4 was release on June 7, 2018. The retrieval of transformation matrix from mmCIF was fixed for Mac.

icn3d-2.1.3 was release on May 30, 2018. "Sequences and Annotations" is now able to be highlighted even if some annotations didn't show up.

icn3d-2.1.2 was release on May 23, 2018. The surface display was improved by adding light reflection. Light was added to the display of instanced biological assemblies.

icn3d-2.1.1 was release on May 22, 2018. The option of color by "Spectrum" was added back.

icn3d-2.1.0 was release on May 21, 2018. The instancing method is used to display a biological assembly. It significantly improved the rendering speed by sending only the geometry of its assymmetruic unit to GPU and applying transformation matrices to display the assembly.

icn3d-2.0.3 was release on May 2, 2018. Removed the "Description" field when saving a set of atoms. This made "Share Link" URL shorter. Made the size of stabilizer thicker for 3D printing.

icn3d-2.0.2 was release on April 30, 2018. Reset WebGLRenderer when WebGL context is lost in Internet Explore 11.

icn3d-2.0.1 was release on April 23, 2018. The bug about extra 3D domains in the "Sequences & Annotations" window was fixed. The stabilizers for 3D printing were improved.

icn3d-2.0.0 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)".

icn3d-1.4.1 was release on November 3, 2017. The version of THREE.js in the zip file was fixed.

icn3d-1.4.0 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.

icn3d-1.3.10 was release on October 27, 2017. The "Save File" issue in Chrome 60 and after was fixed.

icn3d-1.3.9 was release on September 5, 2017. The handling of residues with insertion codes was fixed in structure alignment.

icn3d-1.3.8 was release on August 7, 2017. The handling of residues with insertion codes was fixed.

icn3d-1.3.7 was release on April 18, 2017. A bug in the output order of commands was fixed.

icn3d-1.3.6 was release on April 10, 2017. A bug introduced in the version of icn3d-1.3.5 was fixed in the function unionHash.

icn3d-1.3.5 was release on March 23, 2017. The codes were optimized to show 3D structures as soon as possible. Vast+ structure alignment was optimized as well.

icn3d-1.3.4 was release on March 1, 2017. The backend of structure alignment was updated.

icn3d-1.3.3 was release on November 15, 2016. Now users can save the image with "transparent" background using a single url, e.g., http://foodzines.com/Structure/icn3d/full.html?mmdbid=1tup&width=300&height=300&command=set%20background%20transparent;%20export%20canvas.

icn3d-1.3.2 was release on October 18, 2016. The atom specification in "Advanced set selection" was modified to use "$" instead of "#" in front of structure IDs. This modification avoids to the problem of showing multiple "#" in the urls of "Share Link".

icn3d-1.3.1 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.

icn3d-1.2.3 was release on September 13, 2016. The MMTF format started to support https.

icn3d-1.2.2 was release on August 18, 2016. Added a switch button to switch between all atoms and selected atoms. When the mode is "selected atoms", the switch and the text "selection" next to it are colored in orange. The menu "Style", "Color", and "Surface" are colored in orange and only apply to selected atoms.

icn3d-1.2.1 was release on August 18, 2016. Some bugs were fixed.

icn3d-1.2.0 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.

icn3d-1.1.1 was release on July 25, 2016. Some bugs were fixed.

icn3d-1.1.0 was release on July 18, 2016. The new binary MMTF file format was supported. A new "Analysis" menu was added with an option to show disulfide bonds. Users can also input data from a url, either through the UI or through a encoded url parameter "?type=pdb&url=...", e.g., http://foodzines.com/Structure/icn3d/full.html?type=pdb&url=https%3A%2F%2Ffiles.rcsb.org%2Fview%2F1gpk.pdb.

icn3d-1.0.1 was release on May 16, 2016.

icn3d-1.0.0 was release on April 28, 2016.

The beta version icn3d-0.9.6-dev was release on April 21, 2016. Enabled to export and import selection file where each custom sets of atoms are defined. Javascript files and CSS files are versioned. Developers can use the default latest version or specify the specific version in their pages.

The beta version icn3d-0.9.5-dev was release on April 4, 2016. Enabled to import Mol2, SDF, XYZ, PDB, and mmCIF files. Added "Schematic" style for chemicals. Improved the coordination between pk on 3D structure and selection on sequences.

The beta version icn3d-0.9.4-dev was release on March 14, 2016. Added "Fog" and "Slab" features.

The beta version icn3d-0.9.3-dev was release on March 9, 2016. Improved the following features: "Back" and "Forward" button, Export State, Open State.

The beta version icn3d-0.9.2-dev was release on March 4, 2016. CSS namespace was added. The file simple_ui.js was reorganized to share some codes with full_ui.js. A "Schematic" style was added to show one letter residue name in the C-alpha (for protein) or O3' (for nucleotide) position.

The beta version icn3d-0.9.1-dev was release on Feb 9, 2016. The surface generation was switched from the iview version (surface.js) to the more efficient 3Dmol version (ProteinSurface4.js and marchingcube.js).

The beta version icn3d-0.9.0-dev was release on Jan 17, 2016.