Classes
Members
userContextMenuHandler :function|null
User specified function for handling a context menu event.
Handler is passed the selected object, x and y in canvas coordinates,
and original event.
- function |
null
- Source
Methods
addArrow(spec) → {GLShape}
Create and add arrow shape
Name | Type | Description |
---|---|---|
spec | ArrowSpec | Style specification |
- Source
- Type:
- GLShape
$3Dmol.download("pdb:4DM7",viewer,{},function(){
viewer.setBackgroundColor(0xffffffff);
viewer.addArrow({
start: {x:-10.0, y:0.0, z:0.0},
end: {x:0.0, y:-10.0, z:0.0},
radius: 1.0,
radiusRadio:1.0,
mid:1.0,
clickable:true,
callback:function(){
this.color.setHex(0xFF0000FF);
viewer.render( );
}
});
viewer.render();
});
addAsOneMolecule(data, format) → {GLModel}
Create and add model to viewer. Given multimodel file and its format,
all atoms are added to one model
Name | Type | Description |
---|---|---|
data | string | Input data |
format | string | Input format (see |
- Source
- Type:
- GLModel
$3Dmol.get('../test_structs/multiple.sdf', function(data){
viewer.addAsOneMolecule(data, "sdf");
viewer.zoomTo();
viewer.render();
});
addBox(spec) → {GLShape}
Create and add box shape. This method provides a shorthand
way to create a box shape object
Name | Type | Description |
---|---|---|
spec | BoxSpec | Box shape style specification |
- Source
- Type:
- GLShape
viewer.addLine({color:'red',start:{x:0,y:0,z:0},end:{x:5,y:0,z:0}});
viewer.addLine({color:'blue',start:{x:0,y:0,z:0},end:{x:0,y:5,z:0}});
viewer.addLine({color:'green',start:{x:0,y:0,z:0},end:{x:0,y:0,z:5}});
viewer.addBox({center:{x:0,y:0,z:0},dimensions: {w:3,h:4,d:2},color:'magenta'});
viewer.zoomTo();
viewer.rotate(45, {x:1,y:1,z:1});
viewer.render();
addCurve(spec) → {GLShape}
Create and add Curve shape
Name | Type | Description |
---|---|---|
spec | CurveSpec | Style specification |
- Source
- Type:
- GLShape
viewer.addCurve({points: [{x:0.0,y:0.0,z:0.0}, {x:5.0,y:3.0,z:0.0}, {x:5.0,y:7.0,z:0.0}, {x:0.0,y:10.0,z:0.0}],
radius:0.5,
smooth: 10,
fromArrow:false,
toArrow: true,
color:'orange',
});
viewer.addCurve({points: [{x:-1,y:0.0,z:0.0}, {x:-5.0,y:5.0,z:0.0}, {x:-2,y:10.0,z:0.0}],
radius:1,
fromArrow:true,
toArrow: false,
color:'purple',
});
viewer.zoomTo();
viewer.render();
addCustom(spec) → {GLShape}
Add custom shape component from user supplied function
Name | Type | Description |
---|---|---|
spec | CustomSpec | Style specification |
- Source
- Type:
- GLShape
function triangle(viewer) {
var vertices = [];
var normals = [];
var colors = [];
var r = 20;
//triangle
vertices.push(new $3Dmol.Vector3(0,0,0));
vertices.push(new $3Dmol.Vector3(r,0,0));
vertices.push(new $3Dmol.Vector3(0,r,0));
normals.push(new $3Dmol.Vector3(0,0,1));
normals.push(new $3Dmol.Vector3(0,0,1));
normals.push(new $3Dmol.Vector3(0,0,1));
colors.push({r:1,g:0,b:0});
colors.push({r:0,g:1,b:0});
colors.push({r:0,g:0,b:1});
var faces = [ 0,1,2 ];
var spec = {vertexArr:vertices, normalArr: normals, faceArr:faces,color:colors};
viewer.addCustom(spec);
}
triangle(viewer);
viewer.render();
addCylinder(spec) → {GLShape}
Create and add cylinder shape
Name | Type | Description |
---|---|---|
spec | CylinderSpec | Style specification |
- Source
- Type:
- GLShape
viewer.setBackgroundColor(0xffffffff);
viewer.addCylinder({start:{x:0.0,y:0.0,z:0.0},
end:{x:10.0,y:0.0,z:0.0},
radius:1.0,
fromCap:1,
toCap:2,
color:'red',
hoverable:true,
clickable:true,
callback:function(){ this.color.setHex(0x00FFFF00);viewer.render( );},
hover_callback: function(){ viewer.render( );},
unhover_callback: function(){ this.color.setHex(0xFF000000);viewer.render( );}
});
viewer.addCylinder({start:{x:0.0,y:2.0,z:0.0},
end:{x:0.0,y:10.0,z:0.0},
radius:0.5,
fromCap:false,
toCap:true,
color:'teal'});
viewer.addCylinder({start:{x:15.0,y:0.0,z:0.0},
end:{x:20.0,y:0.0,z:0.0},
radius:1.0,
color:'black',
fromCap:false,
toCap:false});
viewer.render();
addIsosurface(data, spec) → {GLShape}
Construct isosurface from volumetric data. This is more flexible
than addVolumetricData, but can not be used with py3Dmol.
Name | Type | Description |
---|---|---|
data | VolumeData | volumetric data |
spec | IsoSurfaceSpec | Shape style specification |
- Source
- Type:
- GLShape
$3Dmol.get('../test_structs/benzene-homo.cube', function(data){
var voldata = new $3Dmol.VolumeData(data, "cube");
viewer.addIsosurface(voldata, {isoval: 0.01,
color: "blue"});
viewer.addIsosurface(voldata, {isoval: -0.01,
color: "red"});
viewer.zoomTo();
viewer.render();
});
addLabel(text, options, sel, noshow) → {Label}
Add label to viewer
Name | Type | Description |
---|---|---|
text | string | Label text |
options | LabelSpec | Label style specification |
sel | AtomSelection | Set position of label to center of this selection |
noshow | boolean | if true, do not immediately display label - when adding multiple labels this is more efficient |
- Source
- Type:
- Label
$3Dmol.download("pdb:2EJ0",viewer,{},function(){
viewer.addLabel("Aromatic", {position: {x:-6.89, y:0.75, z:0.35}, backgroundColor: 0x800080, backgroundOpacity: 0.8});
viewer.addLabel("Label",{font:'sans-serif',fontSize:18,fontColor:'white',fontOpacity:1,borderThickness:1.0,
borderColor:'red',borderOpacity:0.5,backgroundColor:'black',backgroundOpacity:0.5,
position:{x:50.0,y:0.0,z:0.0},inFront:true,showBackground:true});
viewer.setStyle({chain:'A'},{cross:{hidden:true}});
viewer.setStyle({chain:'B'},{cross:{hidden:false,
linewidth:1.0,
colorscheme:'greenCarbon'}});
viewer.setStyle({chain:'C'},{cross:{hidden:false,
linewidth:1.0,
radius:0.5}});
viewer.setStyle({chain:'D'},{cross:{hidden:false,
linewidth:10.0}});
viewer.setStyle({chain:'E'},{cross:{hidden:false,
linewidth:1.0,
color:'black'}});
viewer.render();
});
addLine(spec) → {GLShape}
Create and add line shape
Name | Type | Description |
---|---|---|
spec | LineSpec | Style specification, can specify dashed, dashLength, and gapLength |
- Source
- Type:
- GLShape
$3Dmol.download("pdb:2ABJ",viewer,{},function(){
viewer.setViewStyle({style:"outline"});
viewer.setStyle({chain:'A'},{sphere:{hidden:true}});
viewer.setStyle({chain:'D'},{sphere:{radius:3.0}});
viewer.setStyle({chain:'G'},{sphere:{colorscheme:'greenCarbon'}});
viewer.setStyle({chain:'J'},{sphere:{color:'blue'}});
viewer.addLine({dashed:true,start:{x:0,y:0,z:0},end:{x:100,y:100,z:100}});
viewer.render();
});
addLineDashed(spec, s)
Add dashed line to shape
Name | Type | Description |
---|---|---|
spec | CylinderSpec | |
s | GLShape |
- Source
addMesh(mesh, style) → {number}
Adds an explicit mesh as a surface object.
Name | Type | Description |
---|---|---|
mesh | Mesh | |
style | Object |
- Source
surfid
- Type:
- number
addModel(data, format, options) → {GLModel}
Create and add model to viewer, given molecular data and its format
Name | Type | Description |
---|---|---|
data | string | Input data |
format | string | Input format ('pdb', 'sdf', 'xyz', 'pqr', or 'mol2') |
options | ParserOptionsSpec | format dependent options. Attributes depend on the input file format. |
- Source
- Type:
- GLModel
viewer.setViewStyle({style:"outline"});
$3Dmol.get('data/1fas.pqr', function(data){
viewer.addModel(data, "pqr");
$3Dmol.get("data/1fas.cube",function(volumedata){
viewer.addSurface($3Dmol.SurfaceType.VDW, {opacity:0.85,voldata: new $3Dmol.VolumeData(volumedata, "cube"), volscheme: new $3Dmol.Gradient.RWB(-10,10)},{});
viewer.render();
});
viewer.zoomTo();
});
addModels(data, format) → {Array.<GLModel>}
Given multimodel file and its format, add atom data to the viewer as separate models
and return list of these models
Name | Type | Description |
---|---|---|
data | string | Input data |
format | string | Input format (see |
- Source
- Type:
- Array.<GLModel>
addModelsAsFrames(data, format) → {GLModel}
Create and add model to viewer. Given multimodel file and its format,
different atomlists are stored in model's frame
property and model's atoms are set to the 0th frame
Name | Type | Description |
---|---|---|
data | string | Input data |
format | string | Input format (see |
- Source
- Type:
- GLModel
$3Dmol.get('../test_structs/multiple2.xyz', function(data){
viewer.addModelsAsFrames(data, "xyz");
viewer.animate({loop: "forward",reps: 1});
viewer.setStyle({stick:{colorscheme:'magentaCarbon'}});
viewer.zoomTo();
viewer.render();
});
addPropertyLabels(prop, sel, style)
Add property labels. This will generate one label per a selected
atom at the atom's coordinates with the property value as the label text.
Name | Type | Description |
---|---|---|
prop | string | property name |
sel | AtomSelectionSpec | |
style | AtomStyleSpec |
|
- Source
addResLabels(sel, style, byframe)
Add residue labels. This will generate one label per a
residue within the selected atoms. The label will be at the
centroid of the atoms and styled according to the passed style.
The label text will be [resn][resi]
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | |
style | AtomStyleSpec | |
byframe | boolean | if true, create labels for every individual frame, not just current |
- Source
$3Dmol.download("mmtf:2ll5",viewer,{},function(){
viewer.setStyle({stick:{radius:0.15},cartoon:{}});
viewer.addResLabels({hetflag:false}, {font: 'Arial', fontColor:'black',showBackground:false, screenOffset: {x:0,y:0}});
viewer.zoomTo();
viewer.render();
});
addShape(shapeSpec) → {GLShape}
Add shape object to viewer
Name | Type | Description |
---|---|---|
shapeSpec | ShapeSpec | style specification for label |
- Source
- See
- {GLShape}
- Type:
- GLShape
addSphere(spec) → {GLShape}
Create and add sphere shape. This method provides a shorthand
way to create a spherical shape object
Name | Type | Description |
---|---|---|
spec | SphereShapeSpec | Sphere shape style specification |
- Source
- Type:
- GLShape
viewer.addSphere({center:{x:0,y:0,z:0},radius:10.0,color:'red'});
viewer.render();
addStyle(sel, style)
Add style properties to all selected atoms
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | Atom selection specification. Can be omitted to select all |
style | AtomStyleSpec | style spec to add to specified atoms |
- Source
$3Dmol.download('pdb:5IRE',viewer,{doAssembly: false},function(m) {
viewer.setStyle({cartoon:{}});
//keep cartoon style, but show thick sticks for chain A
viewer.addStyle({chain:'A'},{stick:{radius:.5,colorscheme:"magentaCarbon"}});
viewer.zoomTo();
viewer.render();
});
addSurface(type, style, atomsel, allsel, focus, surfacecallback) → {Promise}
Add surface representation to atoms
Name | Type | Description |
---|---|---|
type | SurfaceType | | Surface type (VDW, MS, SAS, or SES) |
style | SurfaceStyleSpec | optional style specification for surface material (e.g. for different coloring scheme, etc) |
atomsel | AtomSelectionSpec | Show surface for atoms in this selection |
allsel | AtomSelectionSpec | Use atoms in this selection to calculate surface; may be larger group than 'atomsel' |
focus | AtomSelectionSpec | Optionally begin rendering surface specified atoms |
surfacecallback | function | function to be called after setting the surface |
- Source
promise - Returns a promise that ultimately resovles to the surfid. Returns surfid immediately if surfacecallback is specified. Returned promise has a [surfid, GLViewer, style, atomsel, allsel, focus] fields for immediate access.
- Type:
- Promise
addUnitCell(model, spec)
Create and add unit cell visualization.
Name | Type | Description |
---|---|---|
model | GLModel | | Model with unit cell information (e.g., pdb derived). If omitted uses most recently added model. |
spec | UnitCellStyleSpec | visualization style |
- Source
$3Dmol.get('data/1jpy.cif', function(data) {
let m = viewer.addModel(data);
viewer.addUnitCell(m, {box:{color:'purple'},alabel:'X',blabel:'Y',clabel:'Z',alabelstyle: {fontColor: 'black',backgroundColor:'white',inFront:true,fontSize:40},astyle:{color:'darkred', radius:5,midpos: -10}});
viewer.zoomTo();
viewer.render();
});
addVolumetricData(data, format, spec) → {GLShape}
Construct isosurface from volumetric data in gaussian cube format
Name | Type | Description |
---|---|---|
data | String | Input file contents |
format | String | Input file format |
spec | VolumetricRendererSpec | | Shape style specification |
- Source
- Type:
- GLShape
$3Dmol.get('data/bohr.cube', function(data) {
viewer.addVolumetricData(data, "cube", {isoval: -0.01, color: "red", opacity: 0.95});
viewer.setStyle({cartoon:{},stick:{}});
viewer.zoomTo();
viewer.render();
});
addVolumetricRender(data, spec) → {GLShape}
Create volumetric renderer for volumetricData
Name | Type | Description |
---|---|---|
data | VolumeData | volumetric data |
spec | VolumetricRenderSpec | specification of volumetric render |
- Source
- Type:
- GLShape
animate(options)
Animate all models in viewer from their respective frames
Name | Type | Description |
---|---|---|
options | Object | can specify interval (speed of animation), loop (direction |
- Source
apngURI(nframes) → {Promise}
Return a promise that resolves to an animated PNG image URI of
viewer contents (base64 encoded) for nframes of viewer changes.
Name | Type | Description |
---|---|---|
nframes | number |
- Source
- Type:
- Promise
atomIsSelected(atom, sel) → {boolean}
Name | Type | Description |
---|---|---|
atom | AtomSpec | |
sel | AtomSelectionSpec |
- Source
- Type:
- boolean
carveUpExtent(extent, atomlist, atomstoshow) → {Array}
- Source
- Type:
- Array
center(selopt, animationDurationopt, fixedPathopt)
Re-center the viewer around the provided selection (unlike zoomTo, does not zoom).
Name | Type | Attributes | Description |
---|---|---|---|
sel | AtomSelectionSpec | <optional> | Selection specification specifying model and atom |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | Boolean | <optional> | if true animation is constrained to |
- Source
// if the user were to pass the animationDuration value to
// the function like so viewer.zoomTo({resn:'STI'},1000);
// the program would center on resn 'STI' over the course
// of 1 second(1000 milleseconds).
// Reposition to centroid of all atoms of all models in this
//viewer glviewer.center();
$3Dmol.get('data/4csv.pdb', function(data) {
viewer.addModel(data,'pdb');
viewer.setStyle({cartoon:{},stick:{}});
viewer.center();
viewer.render(callback);
});
clear()
Clear scene of all objects
- Source
closeEnoughForClick(event, options)
Determine if a positioned event is "close enough" to mouseStart to be considered a click.
With a mouse, the position should be exact, but allow a slight delta for a touch interface.
Name | Type | Description |
---|---|---|
event | Event | |
options | Object |
- Source
createModelFrom(sel, extractopt) → {GLModel}
Create a new model from atoms specified by sel.
If extract, removes selected atoms from existing models
Name | Type | Attributes | Description |
---|---|---|---|
sel | AtomSelectionSpec | Atom selection specification | |
extract | boolean | <optional> | If true, remove selected atoms from existing models |
- Source
- Type:
- GLModel
enableContextMenu(sel, contextMenuEnabled)
enable context menu and callback of selected atoms
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | atom selection to apply hoverable settings to |
contextMenuEnabled | boolean | whether contextMenu-handling is enabled for the selection |
- Source
enableFog(fog)
Enable/disable fog for content far from the camera
Name | Type | Description |
---|---|---|
fog | boolean | whether to enable or disable the fog |
- Source
exportJSON(includeStyles, modelID) → {string}
Export one or all of the loaded models into ChemDoodle compatible JSON.
Name | Type | Description |
---|---|---|
includeStyles | boolean | Whether or not to include style information. |
modelID | number | Optional parameter for which model to export. If left out, export all of them. |
- Source
- Type:
- string
exportVRML()
return a VRML string representation of the scene. Include VRML header information
- Source
VRML
fitSlab(sel)
Adjust slab to fully enclose selection (default everything).
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | Selection specification specifying model and atom |
- Source
getAtomsFromSel(sel) → {Array.<AtomSpec>}
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec |
- Source
- Type:
- Array.<AtomSpec>
getCanvas() → {HTMLCanvasElement}
Return underlying canvas element.
- Source
- Type:
- HTMLCanvasElement
getConfig()
Return configuration of viewer
- Source
getFrame()
Gets the current viewer frame.
- Source
getInternalState()
Return object representing internal state of
the viewer appropriate for passing to setInternalState
- Source
getModel(idopt) → {GLModel}
Return specified model
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
id | number | <optional> | last model id | Retrieve model with specified id |
- Default Value
- Returns last model added to viewer or null if there are no models
- Source
- Type:
- GLModel
// Retrieve reference to first GLModel added var m =
$3Dmol.download("pdb:1UBQ",viewer,{},function(m1){
$3Dmol.download("pdb:1UBI", viewer,{}, function(m2) {
viewer.zoomTo();
m1.setStyle({cartoon: {color:'green'}});
//could use m2 here as well
viewer.getModel().setStyle({cartoon: {color:'blue'}});
viewer.render();
})
});
getNumFrames() → {number}
Returns the number of frames that the model with the most frames in the viewer has
- Source
- Type:
- number
getPerceivedDistance() → {number}
Return the z distance between the model and the camera
- Source
distance
- Type:
- number
getRenderer()
Return renderer element.
- Source
getSlab() → {Object}
Get slab of view (contents outside of slab are clipped).
Name | Type | Description |
---|---|---|
near | number | near clipping plane distance |
far | number | far clipping plane distance |
- Source
- Type:
- Object
getSurface(surf)
Return surface object
Name | Type | Description |
---|---|---|
surf | number | surface id |
- Source
getUniqueValues(attribute, sel) → {Array.<Object>}
Returns valid values for the specified attribute in the given selection
Name | Type | Description |
---|---|---|
attribute | string | |
sel | AtomSelectionSpec |
- Source
- Type:
- Array.<Object>
getView() → {Array.<number>}
Returns an array representing the current viewpoint.
Translation, zoom, and rotation quaternion.
- Source
[ pos.x, pos.y, pos.z, rotationGroup.position.z, q.x, q.y, q.z, q.w ]
- Type:
- Array.<number>
hasVolumetricRender() → {boolean}
Return true if volumetric rendering is supported (WebGL 2.0 required)
- Source
- Type:
- boolean
isAnimated() → {boolean}
Return true if viewer is currently being animated, false otherwise
- Source
- Type:
- boolean
jmolMoveTo()
return Jmol moveto command to position this scene
- Source
linkViewer(otherview)
Synchronize this view matrix of this viewer to the passed viewer.
When the viewpoint of this viewer changes, the other viewer will
be set to this viewer's view.
Name | Type | Description |
---|---|---|
otherview | GLViewer |
- Source
mapAtomProperties(props,, sel)
Add specified properties to all atoms matching input argument
Name | Type | Description |
---|---|---|
props, | Object | either array of atom selectors with associated props, or function that takes atom and sets its properties |
sel | AtomSelectionSpec | subset of atoms to work on - model selection must be specified here |
- Source
$3Dmol.get('../test_structs/b.sdf', function(data){
viewer.addModel(data,'sdf');
let props = [];
//make the atom index a property x
for(let i = 0; i < 8; i++) {
props.push({index:i,props:{'x':i}});
}
viewer.mapAtomProperties(props);
viewer.setStyle({sphere:{colorscheme:{gradient:'roygb',prop:'x',min:0,max:8}}});
viewer.zoomTo();
viewer.render();
});
modelToScreen() → {object|list}
Convert model coordinates to screen coordinates.
Type | Description |
---|---|
object | | an object or list of objects with x,y,z attributes (e.g. an atom) |
- Source
- and object or list of {x: screenX, y: screenY}
- Type:
- object |
list
pauseAnimate()
Pause animation of all models in viewer
- Source
pdbData(sel) → {string}
Return pdb output of selected atoms (if atoms from pdb input)
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | Selection specification specifying model and atom properties to select. Default: all atoms in viewer |
- Source
PDB string of selected atoms
- Type:
- string
pngURI()
Return image URI of viewer contents (base64 encoded). *
- Source
removeAllLabels()
Remove all labels from viewer
- Source
$3Dmol.download("pdb:1ubq",viewer,{},function(){
viewer.addResLabels();
viewer.setStyle({},{stick:{}});
viewer.render( ); //show labels
viewer.removeAllLabels();
viewer.render(); //hide labels
});
removeAllModels()
Delete all existing models
- Source
removeAllShapes()
Remove all shape objects from viewer
- Source
removeAllSurfaces()
Remove all surfaces.
- Source
removeLabel(label)
Remove label from viewer
Name | Type | Description |
---|---|---|
label | Label | $3Dmol label |
- Source
// Remove labels created in
$3Dmol.download("pdb:2EJ0",viewer,{},function(){
var toremove = viewer.addLabel("Aromatic", {position: {x:-6.89, y:0.75, z:0.35}, backgroundColor: 0x800080, backgroundOpacity: 0.8});
viewer.addLabel("Label",{font:'sans-serif',fontSize:18,fontColor:'white',fontOpacity:1,borderThickness:1.0,
borderColor:'red',borderOpacity:0.5,backgroundColor:'black',backgroundOpacity:0.5,
position:{x:50.0,y:0.0,z:0.0},inFront:true,showBackground:true});
viewer.removeLabel(toremove);
viewer.render();
});
removeModel(model)
Delete specified model from viewer
Name | Type | Description |
---|---|---|
model | GLModel | |
- Source
removeShape(shape)
Remove shape object from viewer
Name | Type | Description |
---|---|---|
shape | GLShape | Reference to shape object to remove |
- Source
removeSurface(surf)
Remove surface with given ID
Name | Type | Description |
---|---|---|
surf | number | surface id |
- Source
removeUnitCell(model)
Remove unit cell visualization from model.
Name | Type | Description |
---|---|---|
model | GLModel | | Model with unit cell information (e.g., pdb derived). If omitted uses most recently added model. |
- Source
$3Dmol.get('data/icsd_200866.cif', function(data) {
let m = viewer.addModel(data);
viewer.setStyle({sphere:{}})
viewer.addUnitCell();
viewer.zoomTo();
viewer.removeUnitCell();
viewer.render();
});
render(callbackopt, extsopt)
Render current state of viewer, after
adding/removing models, applying styles, etc.
Name | Type | Attributes | Description |
---|---|---|---|
callback | <optional> | ||
exts | <optional> |
- Source
replicateUnitCell(A, B, C, model, addBonds, prune)
Replicate atoms in model to form a super cell of the specified dimensions.
Original cell will be centered as much as possible.
Name | Type | Description |
---|---|---|
A | integer | number of times to replicate cell in X dimension. |
B | integer | number of times to replicate cell in Y dimension. If absent, X value is used. |
C | integer | number of times to replicate cell in Z dimension. If absent, Y value is used. |
model | GLModel | Model with unit cell information (e.g., pdb derived). If omitted uses most recently added model. |
addBonds | boolean | Create bonds between unit cells based on distances. |
prune | boolean | Keep only atoms that are within the original unit cell (i.e., on edges). Alternatively, call replicateUnitCell(1). |
- Source
$3Dmol.get('data/icsd_200866.cif', function(data) {
let m = viewer.addModel(data);
viewer.setStyle({sphere:{scale:.25}})
viewer.addUnitCell();
viewer.zoomTo();
viewer.replicateUnitCell(3,2,1,m);
viewer.render();
});
resize()
Resize viewer according to containing HTML element's dimensions
- Source
resumeAnimate()
Resume animation of all models in viewer
- Source
rotate(angleopt, axisopt, animationDurationopt, fixedPathopt)
Rotate scene by angle degrees around axis
Name | Type | Attributes | Description |
---|---|---|---|
angle | number | <optional> | Angle, in degrees, to rotate by. |
axis | string | <optional> | Axis ("x", "y", "z", "vx", "vy", or "vz") to rotate around. |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | boolean | <optional> | if true animation is constrained to |
- Source
$3Dmol.download('cid:4000', viewer, {}, function() {
viewer.setStyle({stick:{}});
viewer.zoomTo();
viewer.rotate(90,'y',1);
viewer.render(callback);
});
screenOffsetToModel()
For a given screen (x,y) displacement return model displacement
- Source
screenToModelDistance()
Distance from screen coordinate to model coordinate assuming screen point
is projected to the same depth as model coordinate
- Source
selectedAtoms(sel) → {Array.<AtomSpec>}
return list of atoms selected by sel
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec |
- Source
- Type:
- Array.<AtomSpec>
setAutoEyeSeparation(isright, x) → {number}
Used for setting an approx value of eyeSeparation. Created for calling by StereoViewer object
Name | Type | Description |
---|---|---|
isright | boolean | |
x | number |
- Source
camera x position
- Type:
- number
setBackgroundColor(hex, a)
Set the background color (default white)
Name | Type | Description |
---|---|---|
hex | number | Hexcode specified background color, or standard color spec |
a | number | Alpha level (default 1.0) |
- Source
viewer.setBackgroundColor("green",0.5);
setCameraParameters()
Set camera parameters (distance to the origin and field of view)
Type | Description |
---|---|
parameters | new camera parameters, with possible fields |
- Source
$3Dmol.get("data/set1_122_complex.mol2", function(data) {
var m = viewer.addModel(data);
viewer.setStyle({stick:{}});
viewer.zoomTo();
viewer.setCameraParameters({ fov: 10 , z: 300 });
viewer.render();
});
setClickable(sel, clickable, callback)
Set click-handling properties to all selected atoms. Important: render must be called for this to take effect.
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | atom selection to apply clickable settings to |
clickable | boolean | whether click-handling is enabled for the selection |
callback | function | function called when an atom in the selection is clicked. The function is passed |
- Source
$3Dmol.download("cid:307900",viewer,{},function(){
viewer.setStyle({},{sphere:{}});
viewer.setClickable({},true,function(atom,viewer,event,container) {
viewer.addLabel(atom.resn+":"+atom.atom,{position: atom, backgroundColor: 'darkgreen', backgroundOpacity: 0.8});
});
viewer.render();
});
setColorByElement(sel, colors)
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | |
colors | object |
- Source
setColorByProperty(sel, prop, scheme, range)
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | |
prop | string | |
scheme | Gradient | | |
range | object |
- Source
setConfig(c)
Set the configuration object. Note that some settings may only
have an effect at viewer creation time.
Name | Type | Description |
---|---|---|
c | ViewerSpec |
- Source
setContainer(element)
Change the viewer's container element
Also useful if the original container element was removed from the DOM.
Name | Type | Description |
---|---|---|
element | Object | | Either HTML element or string identifier. Defaults to the element used to initialize the viewer. |
- Source
setDefaultCartoonQuality(val)
Set the default cartoon quality for newly created models. Default is 5.
Current models are not affected.
Name | Type | Description |
---|---|---|
val | number |
- Source
setFrame(framenum) → {Promise}
Sets the atomlists of all models in the viewer to specified frame.
Shapes and labels can also be displayed by frame.
Sets to last frame if framenum out of range
Name | Type | Description |
---|---|---|
framenum | number | fame index to use, starts at zero |
- Source
- Type:
- Promise
setHeight(h)
Set viewer height independently of the HTML container. This is probably not what you want.
Name | Type | Description |
---|---|---|
h | number | Height in pixels |
- Source
setHoverDuration(hoverDurationopt)
Set the duration of the hover delay
Name | Type | Attributes | Description |
---|---|---|---|
hoverDuration | number | <optional> | an optional parameter that denotes |
- Source
setHoverable(sel, hoverable, hover_callback, unhover_callback)
Set hoverable and callback of selected atoms
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | atom selection to apply hoverable settings to |
hoverable | boolean | whether hover-handling is enabled for the selection |
hover_callback | function | function called when an atom in the selection is hovered over. The function has the same signature as a click handler. |
unhover_callback | function | function called when the mouse moves out of the hover area |
- Source
$3Dmol.download("pdb:1ubq",viewer,{},function(){
viewer.setHoverable({},true,function(atom,viewer,event,container) {
if(!atom.label) {
atom.label = viewer.addLabel(atom.resn+":"+atom.atom,{position: atom, backgroundColor: 'mintcream', fontColor:'black'});
}
},
function(atom) {
if(atom.label) {
viewer.removeLabel(atom.label);
delete atom.label;
}
}
);
viewer.setStyle({},{stick:{}});
viewer.render();
});
setInternalState(state)
Overwrite internal state of the viewer with passed object
which should come from getInternalState.
Name | Type | Description |
---|---|---|
state |
- Source
setLabelStyle(label, stylespec) → {Label}
Modify existing label's style
- Source
- Type:
- Label
setLabelText(label, text) → {Label}
Modify existing label's text
Name | Type | Description |
---|---|---|
label | Label | $3Dmol label |
text | String | Label text |
- Source
- Type:
- Label
setPerceivedDistance(dist)
Set the distance between the model and the camera
Essentially zooming. Useful while stereo rendering.
Name | Type | Description |
---|---|---|
dist | number |
- Source
setProjection(proj)
Set view projection scheme. Either orthographic or perspective.
Default is perspective. Orthographic can also be enabled on viewer creation
by setting orthographic to true in the config object.
Name | Type | Description |
---|---|---|
proj |
- Source
viewer.setViewStyle({style:"outline"});
$3Dmol.get('data/1fas.pqr', function(data){
viewer.addModel(data, "pqr");
$3Dmol.get("data/1fas.cube",function(volumedata){
viewer.addSurface($3Dmol.SurfaceType.VDW, {opacity:0.85,voldata: new $3Dmol.VolumeData(volumedata, "cube"), volscheme: new $3Dmol.Gradient.RWB(-10,10)},{});
});
viewer.zoomTo();
viewer.setProjection("orthographic");
viewer.render(callback);
});
setSlab(near, far)
Set slab of view (contents outside of slab are clipped).
Must call render to update.
Name | Type | Description |
---|---|---|
near | number | near clipping plane distance |
far | number | far clipping plane distance |
- Source
setStateChangeCallback(callback)
Set a callback to call when the view has potentially changed.
Name | Type | Description |
---|---|---|
callback |
- Source
setStyle(sel, style)
Set style properties to all selected atoms
Name | Type | Description |
---|---|---|
sel | AtomSelectionSpec | Atom selection specification. Can be omitted to select all. |
style | AtomStyleSpec | Style spec to apply to specified atoms |
- Source
viewer.setBackgroundColor(0xffffffff);
$3Dmol.download('pdb:5IRE',viewer,{doAssembly: false},function(m) {
m.setStyle({chain:'A'},{'cartoon':{color:'spectrum'}});
m.setStyle({chain:'C'},{'cartoon':{style:'trace',color:'blue'}});
m.setStyle({chain:'E'},{'cartoon':{tubes:true,arrows:true,color:'green',opacity:0.75}});
m.setStyle({chain:'B'},{'cartoon':{color:'red',opacity:0.5}});
m.setStyle({chain:'D'},{'cartoon':{style:'trace',color:'grey',opacity:0.75}});
m.setStyle({chain:'F'},{'cartoon':{arrows:true,color:'white'}});
// viewer.addStyle({chain:'B'},{line:{}});
viewer.zoomTo();
viewer.render();
});
setSurfaceMaterialStyle(surf, style)
Set the surface material to something else, must render change
Name | Type | Description |
---|---|---|
surf | number | Surface ID to apply changes to |
style | SurfaceStyleSpec | new material style specification |
- Source
$3Dmol.get("data/9002806.cif",function(data){
viewer.addModel(data);
viewer.setStyle({stick:{}});
let surf = viewer.addSurface("SAS");
surf.then(function() {
viewer.setSurfaceMaterialStyle(surf.surfid, {color:'blue',opacity:0.5});
viewer.render();
});
});
setView(arg)
Sets the view to the specified translation, zoom, and rotation.
Name | Type | Description |
---|---|---|
arg | Array.<number> | Array formatted identically to the return value of getView |
- Source
setViewChangeCallback(callback)
Set a callback to call when the view has potentially changed.
Name | Type | Description |
---|---|---|
callback |
- Source
setViewStyle(parameters)
Set global view styles.
Name | Type | Description |
---|---|---|
parameters | ViewStyle |
- Source
viewer.setViewStyle({style:"outline"});
$3Dmol.get('data/1fas.pqr', function(data){
viewer.addModel(data, "pqr");
$3Dmol.get("data/1fas.cube",function(volumedata){
viewer.addSurface($3Dmol.SurfaceType.VDW, {opacity:0.85,voldata: new $3Dmol.VolumeData(volumedata, "cube"), volscheme: new $3Dmol.Gradient.RWB(-10,10)},{});
});
viewer.zoomTo();
viewer.render(callback);
});
setWidth(w)
Set viewer width independently of the HTML container. This is probably not what you want.
Name | Type | Description |
---|---|---|
w | number | Width in pixels |
- Source
setZoomLimits()
Set lower and upper limit stops for zoom.
Type | Description |
---|---|
lower | limit on zoom in (positive number). Default 0. |
upper | limit on zoom out (positive number). Default infinite. |
- Source
$3Dmol.get("data/set1_122_complex.mol2", function(moldata) {
var m = viewer.addModel(moldata);
viewer.setStyle({stick:{colorscheme:"Jmol"}});
viewer.setZoomLimits(100,200);
viewer.zoomTo();
viewer.zoom(10); //will not zoom all the way
viewer.render();
});
spin(axis, speed)
Continuously rotate a scene around the specified axis.
Call spin(false)
to stop spinning.
Name | Type | Description |
---|---|---|
axis | string | | [axis] - Axis ("x", "y", "z", "vx", "vy", or "vz") to rotate around. |
speed | number | [speed] - Speed multiplier for spinning the viewer. 1 is default and a negative |
- Source
stopAnimate()
Stop animation of all models in viewer
- Source
targetedObjects(x, y)
Return a list of objects that intersect that at the specified viewer position.
Name | Type | Description |
---|---|---|
x | x position in screen coordinates | |
y | y position in screen coordinates | |
| Array.<Object> | list of objects or selection object specifying what object to check for targeting |
- Source
translate(x, y, animationDurationopt, fixedPathopt)
Translate current view by x,y screen coordinates
This pans the camera rather than translating the model.
Name | Type | Attributes | Description |
---|---|---|---|
x | number | Relative change in view coordinates of camera | |
y | number | Relative change in view coordinates of camera | |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | Boolean | <optional> | if true animation is constrained to |
- Source
$3Dmol.get('data/4csv.pdb', function(data) {
viewer.addModel(data,'pdb');
viewer.setStyle({cartoon:{},stick:{}});
viewer.zoomTo();
viewer.translate(200,50);
viewer.rotate(90,'z');
viewer.render(callback);
});
translateScene(x, y, animationDurationopt, fixedPathopt)
Translate current models by x,y screen coordinates
This translates the models relative to the current view. It does
not change the center of rotation.
Name | Type | Attributes | Description |
---|---|---|---|
x | number | Relative change in x screen coordinate | |
y | number | Relative change in y screen coordinate | |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | Boolean | <optional> | if true animation is constrained to |
- Source
$3Dmol.get('data/4csv.pdb', function(data) {
viewer.addModel(data,'pdb');
viewer.setStyle({cartoon:{},stick:{}});
viewer.zoomTo();
viewer.translateScene(200,50);
viewer.rotate(90,'z'); // will no longer be around model center
viewer.render(callback);
});
vibrate(numFrames, amplitude, bothWays, arrowSpec)
If atoms have dx, dy, dz properties (in some xyz files), vibrate populates each model's frame property based on parameters.
Models can then be animated
Name | Type | Description |
---|---|---|
numFrames | number | number of frames to be created, default to 10 |
amplitude | number | amplitude of distortion, default to 1 (full) |
bothWays | boolean | if true, extend both in positive and negative directions by numFrames |
arrowSpec | ArrowSpec | specification for drawing animated arrows. If color isn't specified, atom color (sphere, stick, line preference) is used. |
- Source
zoom(factoropt, animationDurationopt, fixedPathopt)
Zoom current view by a constant factor
Name | Type | Attributes | Description |
---|---|---|---|
factor | number | <optional> | Magnification factor. Values greater than 1 |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | Boolean | <optional> | if true animation is constrained to |
- Source
$3Dmol.get('data/4csv.pdb', function(data) {
viewer.addModel(data,'pdb');
viewer.setStyle({cartoon:{},stick:{}});
viewer.zoomTo()
viewer.zoom(2,1000);
viewer.render();
});
zoomTo(selopt, animationDurationopt, fixedPathopt)
Zoom to center of atom selection. The slab will be set appropriately for
the selection, unless an empty selection is provided, in which case there will be no slab.
Name | Type | Attributes | Description |
---|---|---|---|
sel | Object | <optional> | Selection specification specifying model and atom |
animationDuration | number | <optional> | an optional parameter that denotes |
fixedPath | Boolean | <optional> | if true animation is constrained to |
- Source
$3Dmol.get('data/1fas.pqr', function(data){
viewer.addModel(data, "pqr");
viewer.zoomTo();
$3Dmol.get("data/1fas.cube",function(volumedata){
viewer.addSurface($3Dmol.SurfaceType.VDW, {
opacity:0.85,
voldata: new $3Dmol.VolumeData(volumedata, "cube"),
volscheme: new $3Dmol.Gradient.Sinebow($3Dmol.getPropertyRange(viewer.selectedAtoms(),'charge'))
},{});
viewer.render();
});
});
(static) generateMeshSyncHelper(type, expandedExtent, extendedAtoms, atomsToShow, atoms, vol) → {Object}
Name | Type | Description |
---|---|---|
type | SurfaceType | |
expandedExtent | Array | |
extendedAtoms | Array.<AtomSpec> | |
atomsToShow | Array.<AtomSpec> | |
atoms | Array.<AtomSpec> | |
vol | number |
- Source
- Type:
- Object
(static) generateSurfaceMesh(atoms, VandF, mat) → {Mesh}
Name | Type | Description |
---|---|---|
atoms | Array.<AtomSpec> | |
VandF | Object | |
mat | MeshLambertMaterial |
- Source
- Type:
- Mesh
(static) getAtomsWithin(atomlist, extent) → {Array}
Name | Type | Description |
---|---|---|
atomlist | Array.<AtomSpec> | |
extent | Array |
- Source
- Type:
- Array