wiki:MolGraphics

Version 6 (modified by Tom Goddard, 11 years ago) ( diff )

--

Molecule graphics attributes for Chimera 2, based on Chimera 1

These are graphical molecular attributes that should be part of the C++ molecule classes or their base classes. This list is based on Chimera 1 and is meant as a starting point for discussing possible changes in Chimera 2.

"*" indicates something we may change in Chimera 2.

Molecular graphics for Feb 2015

Atom

 hide (true/false, is atom shown when ribbon style shown)

 *surfaceDisplay (drop this, visibility of surface per-atom)
 *surfaceColor (drop this, used for color by atom, instead have surface remember this mapping)
 *surfaceOpacity (drop this, used for color by atom)
 *surfaceCategory (drop this? categories will be like other named selectors?)

 *Thermal ellipsoids for atoms -- in Python in Chimera 1, maybe should be Molecule attributes
 scaleFactor (float, scales size)
 probabilityLevelForScaling (percentage)
 smoothingLevel (level of detail for ellipsoid)
 displayEllipsoid (true/false)
 displayPrincipalAxes (true/false, show lines for ellipsoid axes)
 axesLengthFactor (float)
 axesThickness (float)
 displayPrincipalEllipses (true/false, show orthogonal planes of ellipsoid)
 ellipsesSizeFactor (float)
 ellipsesThickness (float)

BaseSphere (base class for Atom)

 drawMode (Dot, Sphere, EndCap, Ball)

 *vdwPoints (drop this)
 *vdwColor (drop this)

Connectible (base class for BaseSphere)

 display (true/false)

 color

 label (text string for 3d label)
 labelOffset (xyz position relative to atom)
 labelColor
 minimumLabelRadius (float)

Connection (base class for Bond/PseudoBond)

 display (true/false)

 drawMode (wire, stick, spring)
 radius

 color
 halfbond (color each half of bond to match near atom)

 label (text)
 labelColor
 labelOffset (xyz position relative to bond center)

Residue

 ribbonDisplay (true/False)
 ribbonDrawMode (2D, edged, round, custom)
 ribbonColor
 ribbonXSection (for custom cross-sections)
 ribbonStyle (width and thickness scale factors, e.g. for worms)

 fillDisplay (true/false, fill rings in residue)
 fillMode (thin, thick)
 fillColor

 label (text)
 labelColor
 labelOffset (xyz position relative to residue CA?)

Nucleotides - nucleic acid slab depictions in Python/VRML in Chimera 1

  *These attributes should probably be moved to Residue C++ object in Chimera 2

 style (sugar base styles: fill/slab, fill/fill, tube/slab, ladder, atoms+bonds)
 baseOrientationIndicator (true/false)
 slabThickness (float)
 slabShape (box, tube, ellipsoid)
 slabColor
 hideBaseAtoms (true/false)
 separateGlycosidicBond (true/false)
 slabDimensionsPurines (lower left, upper right xy offsets)
 slabDimensionsPyrimidines (lower left, upper right xy offsets)
 anchor (base, sugar)
 slabStyle (long, big, fat, skinny)
 ladderIgnoreNonBaseHBonds (true/false)
 ladderShowStubs (true/false)
 ladderRungRadius (float)
 ladderUseExistingHBonds (true/false)
 ladderRelaxHBondConstraints (true/false)
 ladderHBondConstraints(angstroms and degrees, if relax enabled)

Chain

  No graphical attributes, Chain class does not exist in Chimera 1

  *Might put Pipes and Planks graphical attributes in Chain or Residue.
  Current pipes and planks attributes:

  helixColor
  helixEdgeColor
  showArrowOnHelix (true/false)
  fixedHelixRadius (true/false)
  helixRadius (float)
  splitCurvedHelices(true/false)
  helixSplitThreshold (float, where to split)

  strandColor
  strandEdgeColor
  showArrowOnStrand (true/false)
  fixedStrandThickness (true/false)
  strandThickness (float)
  splitCurvedStrands(true/false)
  strandSplitThreshold (float, where to split)

  displayCoil (true/false)
  coilColor
  coilEdgeColor
  coilSubdivision (integer, level of detail)
  coilWidth (float)
  coilThickness (float)

Molecule, also inherits from Model

 ballScale (float, scale ball size in ball and stick)
 pointSize (pixels for dot display)

 autoChain (true/false, connect CA atoms with pseudobonds)
 stickScale (float, scale factor for bond radius)
 lineWidth (pixels, for wire display)
 lineType (solid, dash, dot, dash-dot, dash-dot-dot)
 wireStipple (stipple pattern for wire bonds)
 showStubBonds (true/false, show a bond if atom not shown?)

 ribbonType (bspline, cardinal)
 ribbonStiffness (float, interpolation parameter)
 ribbonSmoothing (strand | coil mask, to smooth specific secondary structures)
 ribbonInsideColor (for inside/outside dual coloring)
 ribbonHidesMainChain (true/false)
 residueLabelPositionMode (centroid, backbone, primary-atom)

 aromaticDisplay (true/false, show circle or disk in aromatic rings)
 aromaticMode (circle, disk)
 aromaticLineType (solid, dash, dot, ... for circle display)

 *surfaceColor (drop this, for single color molecular surface, use surface attribute)
 *surfaceOpacity (drop this, for molecular surface, use surface attribute)
 *vdwDensity (drop this, density of surface vertices)

Model

 display (true/false)

 color

 useClipPlane (true/False)
 clipPlane (center point and normal)
 useClipThickness (true/false, clip to a slab)
 clipThickness (float, slab thickness)

 silhouette (true/false, silhouettes enabled for this model)

PseudoBondGroup (global bond settings like Molecule)

 stickScale (float, scale factor for bond radius)
 lineWidth (pixels, for wire display)
 lineType (solid, dash, dot, dash-dot, dash-dot-dot)
 wireStipple (stipple pattern for wire bonds)
 showStubBonds (true/false, show a bond if atom not shown?)

Global attributes

 labelFontSize (integer points)
 labelFont (e.g. helvetica)
 labelStyle (normal, bold, italic)
 labelsOnTop (true/false, labels drawn on top of molecules)

Changes

  1. Should molecular surface attributes (color, per-atom visibility, category) be removed from Atom objects?
  1. Should nucleotide display style be in the Residue class (currently in Python / VRML in Chimera 1)?
  1. Should pipes and planks display style be part of Chain class?
  1. Should thermal ellipsoid display style be part of Atom class?
  1. Should wire bond and dot atom display styles be supported?
  1. Should vdw dot surfaces be removed from molecule classes?
  1. Should color objects be immutable? Chimera 1 allows redefining a color and having all graphics objects using that color automatically update. Complex code.
  1. How to handle different materials in addition to colors?
  1. Keep color hierarchy (model->atom, model->ribbon)? What about surface colors?
Note: See TracWiki for help on using the wiki.