new GLModel(mid, defaultcolors)
GLModel represents a group of related atoms
Parameters:
| Name | Type | Argument | Description |
|---|---|---|---|
mid |
number |
<optional> |
|
defaultcolors |
Object |
<optional> |
Object defining default atom colors as atom => color property value pairs |
- See:
Methods
-
<static> setColorByProperty(sel, prop, gradient)
-
Parameters:
Name Type Description seltype proptype gradienttype -
addAtoms(newatoms)
-
Add list of new atoms to model. Adjusts bonds appropriately.
Parameters:
Name Type Description newatomstype Example
var atoms = [{elem: 'C', x: 0, y: 0, z: 0, bonds: [1,2], bondOrder: [1,2]}, {elem: 'O', x: -1.5, y: 0, z: 0, bonds: [0]},{elem: 'O', x: 1.5, y: 0, z: 0, bonds: [0], bondOrder: [2]}]; viewer.setBackgroundColor(0xffffffff); var m = viewer.addModel(); m.addAtoms(atoms); m.setStyle({},{stick:{}}); viewer.zoomTo(); viewer.render(); -
addAtomSpecs(customAtomSpecs)
-
add atomSpecs to validAtomSelectionSpecs
Parameters:
Name Type Description customAtomSpecsArray array of strings that can be used as atomSelectionSpecs
this is to prevent the 'Unknown Selector x' message on the console for the strings passed -
addFrame(atom)
-
Add atoms as frames of model
Parameters:
Name Type Description atomAtomSpec atoms to be added
-
addMolData(data, format, options)
-
add atoms to this model from molecular data string
Parameters:
Name Type Description datastring | ArrayBuffer atom structure file input data string, for gzipped input use ArrayBuffer
formatstring input file string format (e.g 'pdb', 'sdf', 'sdf.gz', etc.)
optionsParserOptionsSpec format dependent options. Attributes depend on the input format
-
addPropertyLabels(prop, sel, viewer, options)
-
Create labels for atoms that show the value of the passed property.
Parameters:
Name Type Description propString property name
selAtomSelectionSpec viewer$3Dmol.GLViewer optionsLabelSpec -
addResLabels(sel, viewer, options)
-
Create labels for residues of selected atoms.
Will create a single label at the center of mass of all atoms
with the same chain,resn, and resi.Parameters:
Name Type Description selAtomSelectionSpec viewer$3Dmol.GLViewer optionsLabelSpec -
atomIsSelected(atom, sel) → {boolean}
-
given a selection specification, return true if atom is selected
Parameters:
Name Type Description atomAtomSpec selAtomSelectionSpec Returns:
- Type
- boolean
-
getID() → {number}
-
Returns model id number
Returns:
Model ID
- Type
- number
-
getNumFrames() → {number}
-
Returns model's frames property, a list of atom lists
Returns:
- Type
- number
-
globj(group, Object)
-
manage the globj for this model in the possed modelGroup - if it has to be regenerated, remove and add
Parameters:
Name Type Description group$3Dmol.Object3D Objectoptions
-
hide()
-
Example
$3Dmol.download("pdb:3ucr",viewer,{},function(){ viewer.setStyle({},{stick:{}}); viewer.getModel().hide(); viewer.render(); }); -
removeAtoms(badatoms) → {removeAtoms}
-
Remove specified atoms from model
Parameters:
Name Type Description badatomstype list of atoms
Returns:
- Type
- removeAtoms
-
removegl(group)
-
Remove any renderable mol object from scene
Parameters:
Name Type Description group$3Dmol.Object3D -
selectedAtoms(sel) → {Array.<Object>}
-
return list of atoms selected by sel, this is specific to glmodel
Parameters:
Name Type Description selAtomSelectionSpec Returns:
- Type
- Array.<Object>
Example
$3Dmol.download("pdb:4wwy",viewer,{},function(){ var atoms = viewer.selectedAtoms({chain:'A'}); for(var i = 0, n = atoms.length; i < n; i++) { atoms[i].b = 0.0; } viewer.setStyle({cartoon:{colorscheme:{prop:'b',gradient: 'roygb',min:0,max:30}}}); viewer.render(); }); -
setClickable(sel, clickable, callback)
-
Set clickable and callback of selected atoms
Parameters:
Name Type Description selAtomSelectionSpec atom selection to apply clickable settings to
clickableboolean whether click-handling is enabled for the selection
callbackfunction function called when an atom in the selection is clicked
-
setColorByElement(sel, colors)
-
given a mapping from element to color, set atom colors
Parameters:
Name Type Description seltype colorstype -
setColorByFunction(sel, func)
-
Parameters:
Name Type Description seltype selection object
functype function to be used to set the color
- Deprecated:
-
- use setStyle and colorfunc attribute
Example
$3Dmol.download("pdb:4UAA",viewer,{},function(){ viewer.setBackgroundColor(0xffffffff); var colorAsSnake = function(atom) { return atom.resi % 2 ? 'white': 'green' }; viewer.setStyle( {}, { cartoon: {colorfunc: colorAsSnake }}); viewer.render(); }); -
setCoordinates(str, format)
-
Set coordinates for the atoms parsed from the prmtop file.
Parameters:
Name Type Description strstring contains the data of the file
formatstring contains the format of the file
-
setCoordinatesFromURL(url, path) → {Promise}
-
Set coordinates for the atoms parsed from various topology files.
Parameters:
Name Type Description urlstring contains the url where mdsrv has been hosted
pathstring contains the path of the file (
/filename) Returns:
- Type
- Promise
-
setFrame(framenum) → {Promise}
-
Sets model's atomlist to specified frame
Sets to last frame if framenum out of rangeParameters:
Name Type Description framenumnumber model's atoms are set to this index in frames list
Returns:
- Type
- Promise
-
setHoverable(sel, hoverable, hover_callback, unhover_callback)
-
Set hoverable and callback of selected atoms
Parameters:
Name Type Description selAtomSelectionSpec atom selection to apply hoverable settings to
hoverableboolean whether hover-handling is enabled for the selection
hover_callbackfunction function called when an atom in the selection is hovered over
unhover_callbackfunction function called when the mouse moves out of the hover area
-
setStyle(sel, style, add)
-
Set atom style of selected atoms
Parameters:
Name Type Description selAtomSelectionSpec styleAtomStyleSpec addboolean if true, add to current style, don't replace
Example
$3Dmol.download("pdb:4UB9",viewer,{},function(){ viewer.setBackgroundColor(0xffffffff); viewer.setStyle({chain:'A'},{line:{hidden:true,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.Sinebow($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'B'},{line:{colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.Sinebow($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'C'},{cross:{hidden:true,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.Sinebow($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'D'},{cross:{colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.RWB($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'E'},{cross:{radius:2.0,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.RWB($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'F'},{stick:{hidden:true,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.RWB($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'G'},{stick:{radius:0.8,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.ROYGB($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.setStyle({chain:'H'},{stick:{singleBonds:true,colorscheme:{prop:'b',gradient: new $3Dmol.Gradient.ROYGB($3Dmol.getPropertyRange(viewer.selectedAtoms(),'b'))}}}); viewer.render(); }); -
show()
-
Example
$3Dmol.download("pdb:3ucr",viewer,{},function(){ viewer.setStyle({},{stick:{}}); viewer.getModel().hide(); viewer.render( ) viewer.getModel().show() viewer.render(); }); -
toCDObject(whether) → {Object}
-
Convert the model into an object in the format of a ChemDoodle JSON model.
Parameters:
Name Type Description whetherboolean or not to include style information. Defaults to false.
Returns:
- Type
- Object
-
vibrate(numFrames, amplitude)
-
If model atoms have dx, dy, dz properties (in some xyz files), vibrate populates the model's frame property based on parameters.
Model can then be animatedParameters:
Name Type Description numFramesnumber number of frames to be created, default to 10
amplitudenumber amplitude of distortion, default to 1 (full)
Example
$3Dmol.download("pdb:4UAA",viewer,{},function(){ viewer.setStyle({},{stick:{}}); viewer.vibrate(10, 1); viewer.animate({loop: "forward",reps: 1}); viewer.zoomTo(); viewer.render(); });