wiki:MolGraphics

Version 2 (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. 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.

Atom

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

 drawMode (Dot, Sphere, EndCap, Ball)

 color

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

 *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?)

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

 *Thermal ellipsoids for atoms -- in Python in Chimera 1
 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)

Bond

 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)

PseudoBond (same attributes as Bond)

 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?)

Other changes

  1. Make color objects immutable. Chimera 1 allows redefining a color and having all graphics objects using that color automatically update. Complexity of that is not worth it.
  1. Integrating Nucleotides, Thermal ellipsoid, and Pipes and Plank styles into core is a lot of work.
Note: See TracWiki for help on using the wiki.