org.jmol.modelsetbio
Class AlphaPolymer
java.lang.Object
org.jmol.modelset.Polymer
org.jmol.modelsetbio.BioPolymer
org.jmol.modelsetbio.AlphaPolymer
- Direct Known Subclasses:
- AminoPolymer
public class AlphaPolymer
- extends BioPolymer
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 |
Method Summary |
void |
addSecondaryStructure(EnumStructure type,
java.lang.String structureID,
int serialID,
int strandCount,
char startChainID,
int startSeqcode,
char endChainID,
int endSeqcode)
|
protected void |
addSecondaryStructure(EnumStructure type,
java.lang.String structureID,
int serialID,
int strandCount,
int indexStart,
int indexEnd)
|
private void |
addStructuresFromTags(EnumStructure[] tags)
|
private float[] |
calculateAnglesInDegrees()
|
private AlphaPolymer.Code[] |
calculateCodes(float[] angles)
|
private EnumStructure[] |
calculateRunsFourOrMore(AlphaPolymer.Code[] codes)
|
void |
calculateStructures(boolean alphaOnly)
Uses Levitt & Greer algorithm to calculate protein secondary
structures using only alpha-carbon atoms. |
java.util.List<Atom[]> |
calculateStruts(ModelSet modelSet,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom> vCA,
float thresh,
int delta,
boolean allowMultiple)
Algorithm of George Phillips phillips@biochem.wisc.edu
originally a contribution to pyMol as struts.py; adapted here by Bob Hanson
for Jmol 1/2010
Return a vector of support posts for rapid prototyping models along the
lines of George Phillips for Pymol except on actual molecular segments
(biopolymers), not PDB chains (which may or may not be continuous). |
private java.util.List<Atom[]> |
calculateStrutsStatic(ModelSet modelSet,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom> vCA,
float thresh,
int delta,
boolean allowMultiple)
|
private void |
checkBetaSheetAlphaHelixOverlap(AlphaPolymer.Code[] codes,
float[] angles)
|
private void |
extendRuns(EnumStructure[] tags)
|
protected javax.vecmath.Point3f |
getControlPoint(int i,
javax.vecmath.Vector3f v)
|
void |
getPdbData(Viewer viewer,
char ctype,
char qtype,
int mStep,
int derivType,
java.util.BitSet bsAtoms,
java.util.BitSet bsSelected,
boolean bothEnds,
boolean isDraw,
boolean addHeader,
LabelToken[] tokens,
OutputStringBuffer pdbATOM,
java.lang.StringBuffer pdbCONECT,
java.util.BitSet bsWritten)
|
private void |
searchForTurns(AlphaPolymer.Code[] codes,
float[] angles,
EnumStructure[] tags)
|
private static void |
setStrut(int i,
int j,
int n,
java.util.List<Atom> vCA,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom[]> vStruts,
java.util.BitSet bsStruts,
java.util.BitSet bsNotAvailable,
java.util.BitSet bsNearbyResidues,
int delta)
|
private static int |
strutPoint(int i,
int j,
int n)
|
Methods inherited from class org.jmol.modelsetbio.BioPolymer |
allocateBioPolymer, calcEtaThetaAngles, calcParameters, calcPhiPsiAngles, calcSelectedMonomersCount, calculateRamachandranHelixAngle, calculateStructures, clearStructures, findNearestAtomIndex, getConformation, getControlPoints, getControlPoints, getGroups, getIndex, getInitiatorPoint, getLeadAtomIndices, getLeadMidPoint, getLeadMidpoints, getLeadPoint, getLeadPoint, getLeadPoints, getPdbData, getPolymerInfo, getPolymerPointsAndVectors, getPolymerSequenceAtoms, getProteinStructure, getRange, getRangeGroups, getSelectedMonomerCount, getSequence, getTerminatorPoint, getWingPoint, getWingVectors, isDna, isMonomerSelected, isRna, recalculateLeadMidpointsAndWingVectors, removeProteinStructure, resetHydrogenPoints, setConformation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AlphaPolymer
AlphaPolymer(Monomer[] monomers)
getControlPoint
protected javax.vecmath.Point3f getControlPoint(int i,
javax.vecmath.Vector3f v)
- Overrides:
getControlPoint
in class BioPolymer
- Returns:
- the leadPoint unless a protein sheet residue (see AlphaPolymer)
getPdbData
public void getPdbData(Viewer viewer,
char ctype,
char qtype,
int mStep,
int derivType,
java.util.BitSet bsAtoms,
java.util.BitSet bsSelected,
boolean bothEnds,
boolean isDraw,
boolean addHeader,
LabelToken[] tokens,
OutputStringBuffer pdbATOM,
java.lang.StringBuffer pdbCONECT,
java.util.BitSet bsWritten)
- Overrides:
getPdbData
in class Polymer
addSecondaryStructure
public void addSecondaryStructure(EnumStructure type,
java.lang.String structureID,
int serialID,
int strandCount,
char startChainID,
int startSeqcode,
char endChainID,
int endSeqcode)
- Overrides:
addSecondaryStructure
in class Polymer
addSecondaryStructure
protected void addSecondaryStructure(EnumStructure type,
java.lang.String structureID,
int serialID,
int strandCount,
int indexStart,
int indexEnd)
calculateStruts
public java.util.List<Atom[]> calculateStruts(ModelSet modelSet,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom> vCA,
float thresh,
int delta,
boolean allowMultiple)
- Algorithm of George Phillips phillips@biochem.wisc.edu
originally a contribution to pyMol as struts.py; adapted here by Bob Hanson
for Jmol 1/2010
Return a vector of support posts for rapid prototyping models along the
lines of George Phillips for Pymol except on actual molecular segments
(biopolymers), not PDB chains (which may or may not be continuous).
Like George, we go from thresh-4 to thresh in units of 1 Angstrom, but we
do not require this threshold to be an integer. In addition, we prevent
double-creation of struts by tracking where struts are, and we do not look
for any addtional end struts if there is a strut already to an atom at a
particular biopolymer end. The three parameters are:
set strutDefaultRadius 0.3 set strutSpacingMinimum 6 set strutLengthMaximum
7.0
Struts will be introduced by:
calculate struts {atom set A} {atom set B}
where the two atom sets are optional and default to the currently selected
set.
They can be manipulated using the STRUTS command much like any "bond"
struts 0.3 color struts opaque pink connect {atomno=3} {atomno=4} strut
struts only
command
- Overrides:
calculateStruts
in class Polymer
- Parameters:
modelSet
- bs1
- bs2
- vCA
- thresh
- delta
- allowMultiple
-
- Returns:
- vector of pairs of atoms
calculateStrutsStatic
private java.util.List<Atom[]> calculateStrutsStatic(ModelSet modelSet,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom> vCA,
float thresh,
int delta,
boolean allowMultiple)
strutPoint
private static int strutPoint(int i,
int j,
int n)
setStrut
private static void setStrut(int i,
int j,
int n,
java.util.List<Atom> vCA,
java.util.BitSet bs1,
java.util.BitSet bs2,
java.util.List<Atom[]> vStruts,
java.util.BitSet bsStruts,
java.util.BitSet bsNotAvailable,
java.util.BitSet bsNearbyResidues,
int delta)
calculateStructures
public void calculateStructures(boolean alphaOnly)
- Uses Levitt & Greer algorithm to calculate protein secondary
structures using only alpha-carbon atoms.
Levitt and Greer
Automatic Identification of Secondary Structure in Globular Proteins
J.Mol.Biol.(1977) 114, 181-293
http://csb.stanford.edu/levitt/Levitt_JMB77_Secondary_structure.pdf
- Overrides:
calculateStructures
in class Polymer
calculateAnglesInDegrees
private float[] calculateAnglesInDegrees()
calculateCodes
private AlphaPolymer.Code[] calculateCodes(float[] angles)
checkBetaSheetAlphaHelixOverlap
private void checkBetaSheetAlphaHelixOverlap(AlphaPolymer.Code[] codes,
float[] angles)
calculateRunsFourOrMore
private EnumStructure[] calculateRunsFourOrMore(AlphaPolymer.Code[] codes)
extendRuns
private void extendRuns(EnumStructure[] tags)
searchForTurns
private void searchForTurns(AlphaPolymer.Code[] codes,
float[] angles,
EnumStructure[] tags)
addStructuresFromTags
private void addStructuresFromTags(EnumStructure[] tags)