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 java.util.Map<EnumStructure,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<Bond> vHBonds,
Monomer donor,
Monomer acceptor,
int iEnergy,
int type,
java.util.Map<java.lang.String,java.lang.Boolean> htTemp) |
private void |
addResidueHydrogenBond(Atom nitrogen,
Atom oxygen,
int indexAminoGroup,
int indexCarbonylGroup,
float energy,
java.util.List<Bond> 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<Bond> 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<Bond> vHBonds,
boolean doReport,
boolean dsspIgnoreHydrogens,
boolean setStructure) |
private static boolean |
checkBridge(AminoPolymer.Bridge bridge,
java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges,
java.util.Map<int[][],java.lang.Boolean> 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<java.lang.String,AminoPolymer.Bridge> htBridges,
java.util.Map<int[][],java.lang.Boolean> 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<Bond> vHBonds,
int[][] min,
boolean checkDistances) |
private static void |
createLadders(java.util.List<AminoPolymer.Bridge> bridges,
java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges,
java.util.Map<int[][],java.lang.Boolean> 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<Bond> vHBonds,
java.util.BitSet bsBad)
(p.
|
private java.lang.String |
findHelixes(int pitch,
int[][][] min,
int thisIndex,
EnumStructure subtype,
int type,
java.util.BitSet bsDone,
java.util.BitSet bsTurn,
char[] labels,
boolean doReport,
boolean setStructure,
java.util.List<Bond> vHBonds,
java.util.BitSet bsBad) |
private static AminoPolymer.Bridge |
getBridge(int[][][][] min,
int p1,
int a,
int p2,
int b,
java.util.List<AminoPolymer.Bridge> bridges,
Atom atom1,
Atom atom2,
AminoPolymer ap1,
AminoPolymer ap2,
java.util.List<Bond> vHBonds,
java.util.Map<java.lang.String,java.lang.Boolean> htTemp,
boolean isAntiparallel,
java.util.Map<int[][],java.lang.Boolean> htLadders) |
private static void |
getBridges(Polymer[] bioPolymers,
int[][][][] min,
java.util.List<AminoPolymer.Bridge> bridgesA,
java.util.List<AminoPolymer.Bridge> bridgesP,
java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges,
java.util.Map<int[][],java.lang.Boolean> htLadders,
java.util.BitSet bsBad,
java.util.List<Bond> 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<AminoPolymer.Bridge> bridgesA,
java.util.List<AminoPolymer.Bridge> bridgesP,
java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges,
java.util.Map<int[][],java.lang.Boolean> 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,
EnumStructure type) |
void |
setStructureList(java.util.Map<EnumStructure,float[]> structureList) |
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
private static final float maxHbondAlphaDistance
private static final float maxHbondAlphaDistance2
private static final float minimumHbondDistance2
private static int[][] sheetOffsets
private java.util.Map<EnumStructure,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<Bond> 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<Bond> 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<Bond> vHBonds)
protected static java.lang.String calculateStructuresDssp(Polymer[] bioPolymers, int bioPolymerCount, java.util.List<Bond> 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<Bond> vHBonds, java.util.BitSet bsBad)
min
- iPolymer
- bsDone
- labels
- doReport
- setStructure
- vHBonds
- bsBad
- private java.lang.String findHelixes(int pitch, int[][][] min, int thisIndex, EnumStructure subtype, int type, java.util.BitSet bsDone, java.util.BitSet bsTurn, char[] labels, boolean doReport, boolean setStructure, java.util.List<Bond> vHBonds, java.util.BitSet bsBad)
private static void getBridges(Polymer[] bioPolymers, int[][][][] min, java.util.List<AminoPolymer.Bridge> bridgesA, java.util.List<AminoPolymer.Bridge> bridgesP, java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges, java.util.Map<int[][],java.lang.Boolean> htLadders, java.util.BitSet bsBad, java.util.List<Bond> 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<AminoPolymer.Bridge> bridges, Atom atom1, Atom atom2, AminoPolymer ap1, AminoPolymer ap2, java.util.List<Bond> vHBonds, java.util.Map<java.lang.String,java.lang.Boolean> htTemp, boolean isAntiparallel, java.util.Map<int[][],java.lang.Boolean> htLadders)
private static void addHbond(java.util.List<Bond> vHBonds, Monomer donor, Monomer acceptor, int iEnergy, int type, java.util.Map<java.lang.String,java.lang.Boolean> htTemp)
private static void getSheetStructures(Polymer[] bioPolymers, java.util.List<AminoPolymer.Bridge> bridgesA, java.util.List<AminoPolymer.Bridge> bridgesP, java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges, java.util.Map<int[][],java.lang.Boolean> 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<AminoPolymer.Bridge> bridges, java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges, java.util.Map<int[][],java.lang.Boolean> htLadders, boolean isAntiparallel)
bridges
- htBridges
- htLadders
- isAntiparallel
- private static boolean checkBridge(AminoPolymer.Bridge bridge, java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges, java.util.Map<int[][],java.lang.Boolean> htLadders, boolean isAntiparallel, int n1, int n2)
bridge
- htBridges
- htLadders
- isAntiparallel
- n1
- n2
- private static void checkBulge(AminoPolymer.Bridge bridge, java.util.Map<java.lang.String,AminoPolymer.Bridge> htBridges, java.util.Map<int[][],java.lang.Boolean> htLadders, boolean isAntiparallel, int dir)
private void setStructure(java.util.BitSet bs, EnumStructure 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)
public void setStructureList(java.util.Map<EnumStructure,float[]> structureList)
setStructureList
in class Polymer
structureList
- protein only -- helix, sheet, turn definitions