public class AminoPolymer extends AlphaPolymer
Modifier and Type | Class and Description |
---|---|
private class |
AminoPolymer.Bridge |
Modifier and Type | Field and Description |
---|---|
private static float |
maxHbondAlphaDistance |
private static float |
maxHbondAlphaDistance2 |
private static float |
minimumHbondDistance2 |
private static int[][] |
sheetOffsets |
private static float[][] |
structureList |
bsSelectedMonomers, hasWingPoints, haveParameters, invalidControl, monomers, sheetSmoothing
bioPolymerIndexInModel, controlPoints, leadAtomIndices, leadMidpoints, leadPoints, model, monomerCount, type, TYPE_AMINO, TYPE_CARBOHYDRATE, TYPE_NOBONDING, TYPE_NUCLEIC, wingVectors
Constructor and Description |
---|
AminoPolymer(Monomer[] monomers) |
Modifier and Type | Method and Description |
---|---|
private static void |
addHbond(java.util.List vHBonds,
Monomer donor,
Monomer acceptor,
int iEnergy,
int type,
java.util.Map htTemp) |
private void |
addResidueHydrogenBond(Atom nitrogen,
Atom oxygen,
int indexAminoGroup,
int indexCarbonylGroup,
float energy,
java.util.List vHBonds) |
private int |
calcHbondEnergy(javax.vecmath.Point3f nitrogenPoint,
javax.vecmath.Point3f hydrogenPoint,
AminoMonomer target,
boolean checkDistances)
based on RasMol 2.7.2.1.1 model
checkDistances:
When we are seriously looking for H bonds, we want to
also check that distCN > distCH and that the OH distance
is less than 3 Angstroms.
|
protected boolean |
calcPhiPsiAngles() |
private void |
calcPhiPsiAngles(AminoMonomer residue1,
AminoMonomer residue2) |
void |
calcRasmolHydrogenBonds(Polymer polymer,
java.util.BitSet bsA,
java.util.BitSet bsB,
java.util.List vHBonds,
int nMaxPerResidue,
int[][][] min,
boolean checkDistances,
boolean dsspIgnoreHydrogens) |
protected float |
calculateRamachandranHelixAngle(int m,
char qtype) |
void |
calculateStructures(boolean alphaOnly)
Uses Levitt & Greer algorithm to calculate protein secondary
structures using only alpha-carbon atoms.
|
protected static java.lang.String |
calculateStructuresDssp(Polymer[] bioPolymers,
int bioPolymerCount,
java.util.List vHBonds,
boolean doReport,
boolean dsspIgnoreHydrogens,
boolean setStructure) |
private static boolean |
checkBridge(AminoPolymer.Bridge bridge,
java.util.Map htBridges,
java.util.Map htLadders,
boolean isAntiparallel,
int n1,
int n2)
check to see if another bridge exists offset by n1 and n2 from the two ends of a bridge
|
private static void |
checkBulge(AminoPolymer.Bridge bridge,
java.util.Map htBridges,
java.util.Map htLadders,
boolean isAntiparallel,
int dir) |
private static boolean |
checkPhiPsi(float[] list,
float psi,
float phi) |
private void |
checkRasmolHydrogenBond(AminoMonomer source,
Polymer polymer,
int indexDonor,
javax.vecmath.Point3f hydrogenPoint,
java.util.BitSet bsB,
java.util.List vHBonds,
int[][] min,
boolean checkDistances) |
private static void |
createLadders(java.util.List bridges,
java.util.Map htBridges,
java.util.Map htLadders,
boolean isAntiparallel)
"ladder =: one or more consecutive bridges of identical type" (p.
|
private java.lang.String |
dumpSummary(char[] labels) |
private java.lang.String |
dumpTags(java.lang.String lines,
java.util.BitSet bsBad,
int mode) |
private java.lang.String |
findHelixes(int[][][] min,
int iPolymer,
java.util.BitSet bsDone,
char[] labels,
boolean doReport,
boolean setStructure,
java.util.List vHBonds,
java.util.BitSet bsBad)
(p.
|
private java.lang.String |
findHelixes(int pitch,
int[][][] min,
int thisIndex,
byte subtype,
int type,
java.util.BitSet bsDone,
java.util.BitSet bsTurn,
char[] labels,
boolean doReport,
boolean setStructure,
java.util.List vHBonds,
java.util.BitSet bsBad) |
private static AminoPolymer.Bridge |
getBridge(int[][][][] min,
int p1,
int a,
int p2,
int b,
java.util.List bridges,
Atom atom1,
Atom atom2,
AminoPolymer ap1,
AminoPolymer ap2,
java.util.List vHBonds,
java.util.Map htTemp,
boolean isAntiparallel,
java.util.Map htLadders) |
private static void |
getBridges(Polymer[] bioPolymers,
int[][][][] min,
java.util.List bridgesA,
java.util.List bridgesP,
java.util.Map htBridges,
java.util.Map htLadders,
java.util.BitSet bsBad,
java.util.List vHBonds,
java.util.BitSet[] bsDone)
(p.
|
private static int[][][][] |
getDualHydrogenBondArray(Polymer[] bioPolymers,
int bioPolymerCount,
boolean dsspIgnoreHydrogens)
(p.
|
private static void |
getSheetStructures(Polymer[] bioPolymers,
java.util.List bridgesA,
java.util.List bridgesP,
java.util.Map htBridges,
java.util.Map htLadders,
char[][] labels,
java.util.BitSet[] bsDone,
boolean doReport,
boolean setStructure)
"sheet =: a set of one or more ladders connected by shared residues" (p.
|
private static int[] |
isHbonded(int indexDonor,
int indexAcceptor,
int pDonor,
int pAcceptor,
int[][][][] min) |
private boolean |
isHelix(float psi,
float phi) |
private boolean |
isSheet(float psi,
float phi) |
private boolean |
isTurn(float psi,
float phi) |
protected void |
resetHydrogenPoints() |
private void |
setStructure(java.util.BitSet bs,
byte type) |
private void |
setTag(char[] tags,
java.util.BitSet bs,
char ch) |
addSecondaryStructure, addSecondaryStructure, calculateStruts, getControlPoint, getPdbData
allocateBioPolymer, calcEtaThetaAngles, calcParameters, calcSelectedMonomersCount, 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, setConformation
getType, setStructureList
private static final float maxHbondAlphaDistance
private static final float maxHbondAlphaDistance2
private static final float minimumHbondDistance2
private static int[][] sheetOffsets
private static final float[][] structureList
AminoPolymer(Monomer[] monomers)
protected void resetHydrogenPoints()
resetHydrogenPoints
in class BioPolymer
protected boolean calcPhiPsiAngles()
calcPhiPsiAngles
in class BioPolymer
private void calcPhiPsiAngles(AminoMonomer residue1, AminoMonomer residue2)
protected float calculateRamachandranHelixAngle(int m, char qtype)
calculateRamachandranHelixAngle
in class BioPolymer
public void calcRasmolHydrogenBonds(Polymer polymer, java.util.BitSet bsA, java.util.BitSet bsB, java.util.List vHBonds, int nMaxPerResidue, int[][][] min, boolean checkDistances, boolean dsspIgnoreHydrogens)
calcRasmolHydrogenBonds
in class Polymer
private void checkRasmolHydrogenBond(AminoMonomer source, Polymer polymer, int indexDonor, javax.vecmath.Point3f hydrogenPoint, java.util.BitSet bsB, java.util.List vHBonds, int[][] min, boolean checkDistances)
private int calcHbondEnergy(javax.vecmath.Point3f nitrogenPoint, javax.vecmath.Point3f hydrogenPoint, AminoMonomer target, boolean checkDistances)
nitrogenPoint
- hydrogenPoint
- target
- checkDistances
- private void addResidueHydrogenBond(Atom nitrogen, Atom oxygen, int indexAminoGroup, int indexCarbonylGroup, float energy, java.util.List vHBonds)
protected static java.lang.String calculateStructuresDssp(Polymer[] bioPolymers, int bioPolymerCount, java.util.List vHBonds, boolean doReport, boolean dsspIgnoreHydrogens, boolean setStructure)
bioPolymers
- bioPolymerCount
- vHBonds
- doReport
- dsspIgnoreHydrogens
- setStructure
- private static int[][][][] getDualHydrogenBondArray(Polymer[] bioPolymers, int bioPolymerCount, boolean dsspIgnoreHydrogens)
bioPolymers
- bioPolymerCount
- dsspIgnoreHydrogens
- private java.lang.String findHelixes(int[][][] min, int iPolymer, java.util.BitSet bsDone, char[] labels, boolean doReport, boolean setStructure, java.util.List vHBonds, java.util.BitSet bsBad)
min
- iPolymer
- bsDone
- labels
- doReport
- setStructure
- vHBonds
- bsBad
- private java.lang.String findHelixes(int pitch, int[][][] min, int thisIndex, byte subtype, int type, java.util.BitSet bsDone, java.util.BitSet bsTurn, char[] labels, boolean doReport, boolean setStructure, java.util.List vHBonds, java.util.BitSet bsBad)
private static void getBridges(Polymer[] bioPolymers, int[][][][] min, java.util.List bridgesA, java.util.List bridgesP, java.util.Map htBridges, java.util.Map htLadders, java.util.BitSet bsBad, java.util.List vHBonds, java.util.BitSet[] bsDone)
bioPolymers
- min
- bridgesA
- bridgesP
- htBridges
- htLadders
- bsBad
- vHBonds
- bsDone
- private static AminoPolymer.Bridge getBridge(int[][][][] min, int p1, int a, int p2, int b, java.util.List bridges, Atom atom1, Atom atom2, AminoPolymer ap1, AminoPolymer ap2, java.util.List vHBonds, java.util.Map htTemp, boolean isAntiparallel, java.util.Map htLadders)
private static void addHbond(java.util.List vHBonds, Monomer donor, Monomer acceptor, int iEnergy, int type, java.util.Map htTemp)
private static void getSheetStructures(Polymer[] bioPolymers, java.util.List bridgesA, java.util.List bridgesP, java.util.Map htBridges, java.util.Map htLadders, char[][] labels, java.util.BitSet[] bsDone, boolean doReport, boolean setStructure)
bioPolymers
- bridgesA
- bridgesP
- htBridges
- htLadders
- labels
- bsDone
- doReport
- setStructure
- private static void createLadders(java.util.List bridges, java.util.Map htBridges, java.util.Map htLadders, boolean isAntiparallel)
bridges
- htBridges
- htLadders
- isAntiparallel
- private static boolean checkBridge(AminoPolymer.Bridge bridge, java.util.Map htBridges, java.util.Map htLadders, boolean isAntiparallel, int n1, int n2)
bridge
- htBridges
- htLadders
- isAntiparallel
- n1
- n2
- private static void checkBulge(AminoPolymer.Bridge bridge, java.util.Map htBridges, java.util.Map htLadders, boolean isAntiparallel, int dir)
private void setStructure(java.util.BitSet bs, byte type)
private static int[] isHbonded(int indexDonor, int indexAcceptor, int pDonor, int pAcceptor, int[][][][] min)
private void setTag(char[] tags, java.util.BitSet bs, char ch)
private java.lang.String dumpSummary(char[] labels)
private java.lang.String dumpTags(java.lang.String lines, java.util.BitSet bsBad, int mode)
public void calculateStructures(boolean alphaOnly)
AlphaPolymer
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
calculateStructures
in class AlphaPolymer
private boolean isTurn(float psi, float phi)
psi
- N-C-CA-N torsion for NEXT groupphi
- C-CA-N-C torsion for THIS groupprivate boolean isSheet(float psi, float phi)
private boolean isHelix(float psi, float phi)
private static boolean checkPhiPsi(float[] list, float psi, float phi)