org.jmol.modelsetbio
Class BioPolymer

java.lang.Object
  extended by org.jmol.modelset.Polymer
      extended by org.jmol.modelsetbio.BioPolymer
Direct Known Subclasses:
AlphaPolymer, CarbohydratePolymer, NucleicPolymer, PhosphorusPolymer

public abstract class BioPolymer
extends Polymer


Field Summary
(package private)  java.util.BitSet bsSelectedMonomers
           
protected  boolean hasWingPoints
           
 boolean haveParameters
           
protected  boolean invalidControl
           
private  boolean invalidLead
           
(package private)  Monomer[] monomers
           
private static java.lang.String[] qColor
           
private  int selectedMonomerCount
           
protected  float sheetSmoothing
           
private  javax.vecmath.Vector3f unitVectorX
           
 
Fields inherited from class org.jmol.modelset.Polymer
bioPolymerIndexInModel, controlPoints, leadAtomIndices, leadMidpoints, leadPoints, model, monomerCount, type, TYPE_AMINO, TYPE_CARBOHYDRATE, TYPE_NOBONDING, TYPE_NUCLEIC, wingVectors
 
Constructor Summary
BioPolymer(Monomer[] monomers)
           
 
Method Summary
(package private) static BioPolymer allocateBioPolymer(Group[] groups, int firstGroupIndex, boolean checkConnections)
           
protected  boolean calcEtaThetaAngles()
           
private  void calcLeadMidpointsAndWingVectors()
           
 boolean calcParameters()
           
protected  boolean calcPhiPsiAngles()
           
 void calcSelectedMonomersCount(java.util.BitSet bsSelected)
           
protected  float calculateRamachandranHelixAngle(int m, char qtype)
           
 java.lang.String calculateStructures(Polymer[] bioPolymers, int bioPolymerCount, java.util.List vHBonds, boolean doReport, boolean dsspIgnoreHydrogens, boolean setStructure)
           
 void clearStructures()
           
 void findNearestAtomIndex(int xMouse, int yMouse, Atom[] closest, short[] mads, int myVisibilityFlag, java.util.BitSet bsNot)
           
private static float get3DStraightness(java.lang.String id, Quaternion dq, Quaternion dqnext)
           
 void getConformation(java.util.BitSet bsConformation, int conformationIndex)
           
protected  javax.vecmath.Point3f getControlPoint(int i, javax.vecmath.Vector3f v)
           
 javax.vecmath.Point3f[] getControlPoints(boolean isTraceAlpha, float sheetSmoothing, boolean invalidate)
           
protected  javax.vecmath.Point3f[] getControlPoints(float sheetSmoothing)
           
private static void getData(Viewer viewer, int m0, int mStep, BioPolymer p, char ctype, char qtype, int derivType, java.util.BitSet bsAtoms, java.util.BitSet bsSelected, java.util.BitSet bsWritten, boolean isDraw, boolean isRamachandran, boolean calcRamachandranStraightness, boolean useQuaternionStraightness, boolean writeRamachandranStraightness, boolean quaternionStraightness, float factor, boolean isAmino, boolean isRelativeAlias, OutputStringBuffer pdbATOM, java.lang.StringBuffer pdbCONECT)
           
 Group[] getGroups()
           
(package private)  int getIndex(char chainID, int seqcode)
           
(package private)  javax.vecmath.Point3f getInitiatorPoint()
           
 int[] getLeadAtomIndices()
           
(package private)  void getLeadMidPoint(int groupIndex, javax.vecmath.Point3f midPoint)
           
 javax.vecmath.Point3f[] getLeadMidpoints()
           
(package private)  javax.vecmath.Point3f getLeadPoint(int monomerIndex)
           
(package private)  void getLeadPoint(int groupIndex, javax.vecmath.Point3f midPoint)
           
(package private)  javax.vecmath.Point3f[] getLeadPoints()
           
static void getPdbData(Viewer viewer, BioPolymer p, char ctype, char qtype, int mStep, int derivType, boolean isDraw, java.util.BitSet bsAtoms, OutputStringBuffer pdbATOM, java.lang.StringBuffer pdbCONECT, java.util.BitSet bsSelected, boolean addHeader, boolean bothEnds, java.util.BitSet bsWritten)
           
 java.util.Map getPolymerInfo(java.util.BitSet bs)
           
 int getPolymerPointsAndVectors(int last, java.util.BitSet bs, java.util.List vList, boolean isTraceAlpha, float sheetSmoothing)
           
 void getPolymerSequenceAtoms(int group1, int nGroups, java.util.BitSet bsInclude, java.util.BitSet bsResult)
           
 ProteinStructure getProteinStructure(int monomerIndex)
           
private static float getQuaternionStraightness(java.lang.String id, Quaternion dq, Quaternion dqnext)
           
 void getRange(java.util.BitSet bs)
           
 void getRangeGroups(int nResidues, java.util.BitSet bsAtoms, java.util.BitSet bsResult)
           
(package private)  int getSelectedMonomerCount()
           
 java.lang.String getSequence()
           
private static float getStraightness(float cosHalfTheta)
           
(package private)  javax.vecmath.Point3f getTerminatorPoint()
           
(package private)  javax.vecmath.Point3f getWingPoint(int polymerIndex)
           
 javax.vecmath.Vector3f[] getWingVectors()
           
 boolean isDna()
           
(package private)  boolean isMonomerSelected(int i)
           
 boolean isRna()
           
 void recalculateLeadMidpointsAndWingVectors()
           
(package private)  void removeProteinStructure(int monomerIndex, int count)
           
protected  void resetHydrogenPoints()
           
 void setConformation(java.util.BitSet bsSelected)
           
 
Methods inherited from class org.jmol.modelset.Polymer
addSecondaryStructure, calcRasmolHydrogenBonds, calculateStructures, calculateStruts, getPdbData, getType, setStructureList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

monomers

Monomer[] monomers

invalidLead

private boolean invalidLead

invalidControl

protected boolean invalidControl

sheetSmoothing

protected float sheetSmoothing

hasWingPoints

protected boolean hasWingPoints

unitVectorX

private final javax.vecmath.Vector3f unitVectorX

selectedMonomerCount

private int selectedMonomerCount

bsSelectedMonomers

java.util.BitSet bsSelectedMonomers

haveParameters

public boolean haveParameters

qColor

private static final java.lang.String[] qColor
Constructor Detail

BioPolymer

BioPolymer(Monomer[] monomers)
Method Detail

getGroups

public Group[] getGroups()
Overrides:
getGroups in class Polymer

getRange

public void getRange(java.util.BitSet bs)
Overrides:
getRange in class Polymer

allocateBioPolymer

static BioPolymer allocateBioPolymer(Group[] groups,
                                     int firstGroupIndex,
                                     boolean checkConnections)

clearStructures

public void clearStructures()
Overrides:
clearStructures in class Polymer

removeProteinStructure

void removeProteinStructure(int monomerIndex,
                            int count)

getLeadAtomIndices

public int[] getLeadAtomIndices()

getIndex

int getIndex(char chainID,
             int seqcode)

getLeadPoint

final javax.vecmath.Point3f getLeadPoint(int monomerIndex)

getInitiatorPoint

final javax.vecmath.Point3f getInitiatorPoint()

getTerminatorPoint

final javax.vecmath.Point3f getTerminatorPoint()

getLeadMidPoint

void getLeadMidPoint(int groupIndex,
                     javax.vecmath.Point3f midPoint)

getLeadPoint

void getLeadPoint(int groupIndex,
                  javax.vecmath.Point3f midPoint)

getWingPoint

final javax.vecmath.Point3f getWingPoint(int polymerIndex)

getConformation

public void getConformation(java.util.BitSet bsConformation,
                            int conformationIndex)
Overrides:
getConformation in class Polymer

setConformation

public void setConformation(java.util.BitSet bsSelected)
Overrides:
setConformation in class Polymer

recalculateLeadMidpointsAndWingVectors

public void recalculateLeadMidpointsAndWingVectors()
Overrides:
recalculateLeadMidpointsAndWingVectors in class Polymer

resetHydrogenPoints

protected void resetHydrogenPoints()

getLeadMidpoints

public javax.vecmath.Point3f[] getLeadMidpoints()
Overrides:
getLeadMidpoints in class Polymer

getLeadPoints

javax.vecmath.Point3f[] getLeadPoints()

getControlPoints

public javax.vecmath.Point3f[] getControlPoints(boolean isTraceAlpha,
                                                float sheetSmoothing,
                                                boolean invalidate)

getControlPoints

protected javax.vecmath.Point3f[] getControlPoints(float sheetSmoothing)

getControlPoint

protected javax.vecmath.Point3f getControlPoint(int i,
                                                javax.vecmath.Vector3f v)
Parameters:
i -
v -
Returns:
the leadPoint unless a protein sheet residue (see AlphaPolymer)

getWingVectors

public final javax.vecmath.Vector3f[] getWingVectors()

calcLeadMidpointsAndWingVectors

private final void calcLeadMidpointsAndWingVectors()

findNearestAtomIndex

public void findNearestAtomIndex(int xMouse,
                                 int yMouse,
                                 Atom[] closest,
                                 short[] mads,
                                 int myVisibilityFlag,
                                 java.util.BitSet bsNot)

getSelectedMonomerCount

int getSelectedMonomerCount()

calcSelectedMonomersCount

public void calcSelectedMonomersCount(java.util.BitSet bsSelected)
Overrides:
calcSelectedMonomersCount in class Polymer

isMonomerSelected

boolean isMonomerSelected(int i)

getPolymerPointsAndVectors

public int getPolymerPointsAndVectors(int last,
                                      java.util.BitSet bs,
                                      java.util.List vList,
                                      boolean isTraceAlpha,
                                      float sheetSmoothing)
Overrides:
getPolymerPointsAndVectors in class Polymer
Returns:
number of points

getSequence

public java.lang.String getSequence()
Overrides:
getSequence in class Polymer

getPolymerInfo

public java.util.Map getPolymerInfo(java.util.BitSet bs)
Overrides:
getPolymerInfo in class Polymer
Returns:
info

getPolymerSequenceAtoms

public void getPolymerSequenceAtoms(int group1,
                                    int nGroups,
                                    java.util.BitSet bsInclude,
                                    java.util.BitSet bsResult)
Overrides:
getPolymerSequenceAtoms in class Polymer

getProteinStructure

public ProteinStructure getProteinStructure(int monomerIndex)

calcParameters

public boolean calcParameters()

calcEtaThetaAngles

protected boolean calcEtaThetaAngles()

calcPhiPsiAngles

protected boolean calcPhiPsiAngles()

getPdbData

public static final void getPdbData(Viewer viewer,
                                    BioPolymer p,
                                    char ctype,
                                    char qtype,
                                    int mStep,
                                    int derivType,
                                    boolean isDraw,
                                    java.util.BitSet bsAtoms,
                                    OutputStringBuffer pdbATOM,
                                    java.lang.StringBuffer pdbCONECT,
                                    java.util.BitSet bsSelected,
                                    boolean addHeader,
                                    boolean bothEnds,
                                    java.util.BitSet bsWritten)

getData

private static void getData(Viewer viewer,
                            int m0,
                            int mStep,
                            BioPolymer p,
                            char ctype,
                            char qtype,
                            int derivType,
                            java.util.BitSet bsAtoms,
                            java.util.BitSet bsSelected,
                            java.util.BitSet bsWritten,
                            boolean isDraw,
                            boolean isRamachandran,
                            boolean calcRamachandranStraightness,
                            boolean useQuaternionStraightness,
                            boolean writeRamachandranStraightness,
                            boolean quaternionStraightness,
                            float factor,
                            boolean isAmino,
                            boolean isRelativeAlias,
                            OutputStringBuffer pdbATOM,
                            java.lang.StringBuffer pdbCONECT)
Parameters:
viewer -
m0 -
mStep -
p -
ctype -
qtype -
derivType -
bsAtoms -
bsSelected -
bsWritten -
isDraw -
isRamachandran -
calcRamachandranStraightness -
useQuaternionStraightness -
writeRamachandranStraightness -
quaternionStraightness - NOT USED
factor -
isAmino -
isRelativeAlias -
pdbATOM -
pdbCONECT -

calculateRamachandranHelixAngle

protected float calculateRamachandranHelixAngle(int m,
                                                char qtype)
Parameters:
m -
qtype -
Returns:
calculated value

get3DStraightness

private static float get3DStraightness(java.lang.String id,
                                       Quaternion dq,
                                       Quaternion dqnext)
Parameters:
id - for debugging only
dq -
dqnext -
Returns:
calculated straightness

getQuaternionStraightness

private static float getQuaternionStraightness(java.lang.String id,
                                               Quaternion dq,
                                               Quaternion dqnext)
Parameters:
id - for debugging only
dq -
dqnext -
Returns:
straightness

getStraightness

private static float getStraightness(float cosHalfTheta)

isDna

public boolean isDna()
Overrides:
isDna in class Polymer

isRna

public boolean isRna()
Overrides:
isRna in class Polymer

getRangeGroups

public void getRangeGroups(int nResidues,
                           java.util.BitSet bsAtoms,
                           java.util.BitSet bsResult)
Overrides:
getRangeGroups in class Polymer

calculateStructures

public java.lang.String calculateStructures(Polymer[] bioPolymers,
                                            int bioPolymerCount,
                                            java.util.List vHBonds,
                                            boolean doReport,
                                            boolean dsspIgnoreHydrogens,
                                            boolean setStructure)
Overrides:
calculateStructures in class Polymer
vHBonds - TODO
Returns:
DSSP report