Class PyMOLScene

  • All Implemented Interfaces:
    JmolSceneGenerator

    class PyMOLScene
    extends Object
    implements JmolSceneGenerator
    A class to allow manipulation of scenes dissociated from file loading. A "scene" in this context is a distillation of PyMOL information into a Hashtable for easier retrieval using RESTORE SCENE name.
    • Field Detail

      • pymolVersion

        private int pymolVersion
      • bsHidden

        javajs.util.BS bsHidden
      • bsNucleic

        javajs.util.BS bsNucleic
      • bsNonbonded

        javajs.util.BS bsNonbonded
      • bsLabeled

        javajs.util.BS bsLabeled
      • bsHydrogen

        javajs.util.BS bsHydrogen
      • bsNoSurface

        javajs.util.BS bsNoSurface
      • htSpacefill

        private Map<Float,​javajs.util.BS> htSpacefill
      • ssMapAtom

        private Map<String,​javajs.util.BS> ssMapAtom
      • atomColorList

        private javajs.util.Lst<Integer> atomColorList
      • colixes

        private short[] colixes
      • objectSettings

        private Map<Integer,​javajs.util.Lst<Object>> objectSettings
      • bsCartoon

        private javajs.util.BS bsCartoon
      • htCarveSets

        private Map<String,​javajs.util.BS> htCarveSets
      • htDefinedAtoms

        private Map<String,​javajs.util.BS> htDefinedAtoms
      • moleculeNames

        private javajs.util.Lst<String> moleculeNames
      • jmolObjects

        private javajs.util.Lst<JmolObject> jmolObjects
      • htAtomMap

        private Map<String,​int[]> htAtomMap
      • htObjectAtoms

        private Map<String,​javajs.util.BS> htObjectAtoms
      • settings

        private javajs.util.Lst<Object> settings
      • uniqueSettings

        private Map<Integer,​javajs.util.Lst<Object>> uniqueSettings
      • bsUniqueBonds

        private javajs.util.BS bsUniqueBonds
      • bgRgb

        private int bgRgb
      • dotColor

        private int dotColor
      • surfaceMode

        private int surfaceMode
      • surfaceColor

        private int surfaceColor
      • cartoonColor

        private int cartoonColor
      • ribbonColor

        private int ribbonColor
      • sphereColor

        private int sphereColor
      • labelFontId

        private int labelFontId
      • labelColor

        private int labelColor
      • cartoonTranslucency

        private float cartoonTranslucency
      • ribbonTranslucency

        private float ribbonTranslucency
      • labelSize

        private float labelSize
      • meshWidth

        private float meshWidth
      • nonbondedSize

        private float nonbondedSize
      • nonbondedTranslucency

        private float nonbondedTranslucency
      • sphereScale

        private float sphereScale
      • sphereTranslucency

        private float sphereTranslucency
      • stickTranslucency

        private float stickTranslucency
      • transparency

        private float transparency
      • cartoonLadderMode

        private boolean cartoonLadderMode
      • cartoonRockets

        private boolean cartoonRockets
      • haveNucleicLadder

        private boolean haveNucleicLadder
      • labelPosition

        private javajs.util.P3 labelPosition
      • labelPosition0

        private javajs.util.P3 labelPosition0
      • objectName

        private String objectName
      • objectNameID

        private String objectNameID
      • objectJmolName

        private String objectJmolName
      • objectType

        private int objectType
      • bsAtoms

        private javajs.util.BS bsAtoms
      • objectHidden

        private boolean objectHidden
      • uniqueIDs

        private int[] uniqueIDs
      • cartoonTypes

        private int[] cartoonTypes
      • sequenceNumbers

        private int[] sequenceNumbers
      • newChain

        private boolean[] newChain
      • radii

        private float[] radii
      • baseModelIndex

        private int baseModelIndex
      • baseAtomIndex

        private int baseAtomIndex
      • stateCount

        private int stateCount
      • doCache

        boolean doCache
      • haveScenes

        private boolean haveScenes
      • bsCarve

        private javajs.util.BS bsCarve
      • solventAccessible

        private boolean solventAccessible
      • bsLineBonds

        private javajs.util.BS bsLineBonds
      • bsStickBonds

        private javajs.util.BS bsStickBonds
      • thisState

        private int thisState
      • currentAtomSetIndex

        int currentAtomSetIndex
      • surfaceInfoName

        String surfaceInfoName
      • ptTemp

        private final javajs.util.P3 ptTemp
      • MEAS_DIGITS

        private static final int[] MEAS_DIGITS
    • Constructor Detail

      • PyMOLScene

        PyMOLScene​(PymolAtomReader reader,
                   Viewer vwr,
                   javajs.util.Lst<Object> settings,
                   Map<Integer,​javajs.util.Lst<Object>> uniqueSettings,
                   int pymolVersion,
                   boolean haveScenes,
                   int baseAtomIndex,
                   int baseModelIndex,
                   boolean doCache,
                   String filePath)
    • Method Detail

      • clearReaderData

        private void clearReaderData()
      • setUniqueBond

        void setUniqueBond​(int index,
                           int uniqueID)
      • setStateCount

        void setStateCount​(int stateCount)
      • colorSetting

        private int colorSetting​(int i)
      • pointSetting

        private javajs.util.P3 pointSetting​(int i)
      • ensureCapacity

        void ensureCapacity​(int n)
      • setReaderObjectInfo

        void setReaderObjectInfo​(String name,
                                 int type,
                                 String groupName,
                                 boolean isHidden,
                                 javajs.util.Lst<Object> listObjSettings,
                                 javajs.util.Lst<Object> listStateSettings,
                                 String ext)
      • listToSettings

        private void listToSettings​(javajs.util.Lst<Object> list,
                                    Map<Integer,​javajs.util.Lst<Object>> objectSettings)
      • getObjectSettings

        private void getObjectSettings()
      • setAtomInfo

        void setAtomInfo​(int[] uniqueIDs,
                         int[] cartoonTypes,
                         int[] sequenceNumbers,
                         boolean[] newChain,
                         float[] radii)
      • setSceneObject

        private void setSceneObject​(String name,
                                    int istate)
        Set scene object/state-specific global fields and settings based on the name and state or stored values from when the file was loaded.
        Parameters:
        name -
        istate -
      • buildScene

        void buildScene​(String name,
                        javajs.util.Lst<Object> thisScene,
                        Map<String,​javajs.util.Lst<Object>> htObjNames,
                        Map<String,​javajs.util.Lst<Object>> htSecrets)
        Build a scene at file reading time. We only implement frame-specific scenes. Creates a map of information that can be used later and will also be a reference to this instance of PyMOLScene, which is an implementation of JmolSceneGenerator.
        Parameters:
        name -
        thisScene -
        htObjNames -
        htSecrets -
      • generateScene

        public void generateScene​(Map<String,​Object> scene)
        Generate the saved scene using file settings preserved here and scene-specific information including frame, view, colors, visibilities, . Called by StateManager via implemented JmolSceneGenerator.
        Specified by:
        generateScene in interface JmolSceneGenerator
        Parameters:
        scene -
      • generateColors

        private void generateColors​(Object[] colors)
        Set PyMOL "atom-wise" colors -- the colors that are defined initially as element colors but possibly set with the PyMOL 'color' command and are used when representation colors (cartoon, dots, etc.) are not defined (-1). This is the same as Jmol's inherited atom color.
        Parameters:
        colors -
      • processSelection

        void processSelection​(javajs.util.Lst<Object> selection)
        process the selection sets (sele), (...)
        Parameters:
        selection -
      • getSelectionAtoms

        private javajs.util.BS getSelectionAtoms​(javajs.util.Lst<Object> molecules,
                                                 int istate,
                                                 javajs.util.BS bs)
        Add selected atoms to a growing bit set.
        Parameters:
        molecules -
        istate -
        bs -
        Returns:
        bs for convenience
      • selectAllAtoms

        private void selectAllAtoms​(javajs.util.Lst<Object> obj,
                                    int istate,
                                    javajs.util.BS bs)
        Collect all the atoms specified by an object state into a bit set.
        Parameters:
        obj -
        istate - 0 for "all states"
        bs -
      • generateVisibilities

        private void generateVisibilities​(Map<String,​Object> vis)
        Hide everything, then just make visible the sets of atoms specified in the visibility (i.e. "activity") list within scene_dict.
        Parameters:
        vis -
      • generateShapes

        private void generateShapes​(Object[] reps)
        Create all Jmol shape objects.
        Parameters:
        reps -
      • getBS

        private javajs.util.BS getBS​(javajs.util.Lst<Object> list)
      • getBsAtoms

        private void getBsAtoms​(javajs.util.Lst<Object> list,
                                int[] atomMap,
                                javajs.util.BS bs)
      • setReaderObjects

        void setReaderObjects()
      • finalizeObjects

        private void finalizeObjects()
        Finally, we turn each JmolObject into its Jmol equivalent.
      • offsetObjects

        void offsetObjects()
      • getJmolObject

        private JmolObject getJmolObject​(int id,
                                         javajs.util.BS bsAtoms,
                                         Object info)
      • addJmolObject

        private JmolObject addJmolObject​(int id,
                                         javajs.util.BS bsAtoms,
                                         Object info)
      • getPymolView

        private float[] getPymolView​(javajs.util.Lst<Object> view,
                                     boolean isViewObj)
        adds depth_cue, fog, and fog_start
        Parameters:
        view -
        isViewObj -
        Returns:
        22-element array
      • globalSetting

        float globalSetting​(int i)
      • addGroup

        PyMOLGroup addGroup​(javajs.util.Lst<Object> object,
                            String parent,
                            int type,
                            javajs.util.BS bsAtoms)
        Create a hierarchical list of named groups as generally seen on the PyMOL app's right-hand object menu.
        Parameters:
        object -
        parent -
        type -
        bsAtoms -
        Returns:
        group
      • finalizeVisibility

        void finalizeVisibility()
        Create group JmolObjects, and set hierarchical visibilities
      • setCarveSets

        void setCarveSets​(Map<String,​javajs.util.Lst<Object>> htObjNames)
      • setGroupVisibilities

        private void setGroupVisibilities()
      • defineAtoms

        private void defineAtoms​(String name,
                                 javajs.util.BS bs)
      • createShapeObjects

        void createShapeObjects​(javajs.util.BS[] reps,
                                boolean allowSurface,
                                int ac0,
                                int ac)
        create all objects for a given molecule or scene
        Parameters:
        reps -
        allowSurface -
        ac0 - > 0 for a molecule; -1 for a scene
        ac -
      • addLabel

        void addLabel​(int atomIndex,
                      int uniqueID,
                      int atomColor,
                      float[] labelPos,
                      String label)
      • getUniqueFloatDef

        float getUniqueFloatDef​(int id,
                                int key,
                                float defaultValue)
      • getUniquePoint

        javajs.util.P3 getUniquePoint​(int id,
                                      int key,
                                      javajs.util.P3 pt)
      • getObjectSetting

        javajs.util.Lst<Object> getObjectSetting​(int i)
      • booleanSetting

        boolean booleanSetting​(int i)
      • floatSetting

        float floatSetting​(int i)
      • stringSetting

        String stringSetting​(int i)
      • getSetting

        private javajs.util.Lst<Object> getSetting​(int i)
      • setLabelPosition

        float[] setLabelPosition​(javajs.util.P3 offset,
                                 float[] labelPos)
      • addCGO

        String addCGO​(javajs.util.Lst<Object> data,
                      int color)
      • addMeasurements

        boolean addMeasurements​(MeasurementData[] mdList,
                                int nCoord,
                                javajs.util.Lst<Object> list,
                                javajs.util.BS bsReps,
                                int color,
                                javajs.util.Lst<Object> offsets,
                                boolean haveLabels)
      • getViewScript

        javajs.util.SB getViewScript​(javajs.util.Lst<Object> view)
      • getColix

        short getColix​(int colorIndex,
                       float translucency)
      • setAtomColor

        void setAtomColor​(int atomColor)
      • setFrameObject

        void setFrameObject​(int type,
                            Object info)
      • getObjectType

        private int getObjectType​(String name)
      • setAtomMap

        javajs.util.BS setAtomMap​(int[] atomMap,
                                  int ac0)
      • newTextLabel

        private Text newTextLabel​(String label,
                                  float[] labelOffset,
                                  int colorIndex,
                                  int fontID,
                                  float fontSize)
      • setVersionSettings

        private void setVersionSettings()
        Attempt to adjust for PyMOL versions. See PyMOL layer3.Executive.c
      • addSetting

        private void addSetting​(int key,
                                int type,
                                Object val)
      • fixReps

        private void fixReps​(javajs.util.BS[] reps)
      • cleanSingletons

        private void cleanSingletons​(javajs.util.BS bs)
        PyMOL does not display cartoons or traces for single-residue runs. This two-pass routine first sets bits in a residue bitset, then it clears out all singletons, and in a second pass all atom bits for not-represented residues are cleared.
        Parameters:
        bs -
      • createShapeObject

        private void createShapeObject​(int shapeID,
                                       javajs.util.BS bs)
        Create JmolObjects for each shape. Note that LINES and STICKS are done initially, then all the others are processed.
        Parameters:
        shapeID -
        bs -
      • setUniqueObjects

        private JmolObject setUniqueObjects​(int shape,
                                            javajs.util.BS bs,
                                            int setColor,
                                            int color,
                                            int setTrans,
                                            float trans,
                                            int setSize,
                                            float size,
                                            float f)
      • createSpacefillObjects

        private void createSpacefillObjects()
        Create a BALLS JmolObject for each radius.
      • createTraceObject

        private void createTraceObject​(javajs.util.BS bs)
        trace, or cartoon in the case of cartoon ladders.
        Parameters:
        bs -
      • checkNucleicObject

        private void checkNucleicObject​(javajs.util.BS bs,
                                        boolean isTrace)
      • createPuttyObject

        private void createPuttyObject​(javajs.util.BS bs)
        "Putty" shapes scaled in a variety of ways.
        Parameters:
        bs -
      • createRibbonObject

        private void createRibbonObject​(javajs.util.BS bs)
        PyMOL "ribbons" could be Jmol backbone or trace, depending upon the value of PyMOL.ribbon_sampling.
        Parameters:
        bs -
      • createCartoonObject

        private void createCartoonObject​(String key,
                                         int sizeID)
      • setGroupVisible

        private void setGroupVisible​(PyMOLGroup g,
                                     boolean parentVis)
        Iterate through groups, setting visibility flags.
        Parameters:
        g -
        parentVis -
      • getSSMapAtom

        javajs.util.BS getSSMapAtom​(String ssType)
      • needSelections

        boolean needSelections()
      • setUniqueBonds

        void setUniqueBonds​(javajs.util.BS bsBonds,
                            boolean isSticks)
      • finalizeUniqueBonds

        private void finalizeUniqueBonds()
      • setBondParameters

        void setBondParameters​(Bond b,
                               int modelIndex,
                               float rad,
                               float pymolValence,
                               int argb,
                               float trans)
        used in PyMOL reader to set unique bond settings and for valence
        Parameters:
        modelIndex -
        b -
        rad -
        pymolValence - 1 for "show multiple bonds"
        argb -
        trans -
      • addMesh

        void addMesh​(int tok,
                     javajs.util.Lst<Object> obj,
                     String objName,
                     boolean isMep)