Package org.biojava.nbio.structure.xtal
Class SpaceGroup
java.lang.Object
org.biojava.nbio.structure.xtal.SpaceGroup
- All Implemented Interfaces:
Serializable
A crystallographic space group. We store the standard numeric identifier,
the international short symbol and the transformations corresponding to
each space group (as Matrix4ds and in algebraic notation).
The information for all (protein crystallography) space groups can be
parsed from the XML file in the resource directory.
See: http://en.wikipedia.org/wiki/Space_group
- Author:
- duarte_j
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSpaceGroup(int id, int multiplicity, int primitiveMultiplicity, String shortSymbol, String altShortSymbol, BravaisLattice bravLattice) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransformation(String transfAlgebraic) booleanareInSameAxis(int tId1, int tId2) Returns true if both given transform ids belong to the same crystallographic axis (a, b or c) For two non-rotation transformations (i.e. identity operators) it returns trueprotected static booleandeltaComp(double d1, double d2, double delta) booleanstatic StringgetAlgebraicFromMatrix(javax.vecmath.Matrix4d m) Gets the alternative international short name (as sometimes used in PDB), e.g.intgetAxisFoldType(int transformId) Given a transformId returns the type of axis of rotation: 1 (no rotation), 2, 3, 4 or 6 -fold and for improper rotations: -1, -2, -3, -4 and -6int[]javax.vecmath.Vector3dgetCellTranslation(int i) javax.vecmath.Vector3d[]static Patternstatic doublegetDelta()intgetId()Gets the standard numeric identifier for the space group.static javax.vecmath.Matrix4dgetMatrixFromAlgebraic(String transfAlgebraic) intstatic PatternintGets the number of symmetry operators corresponding to this SpaceGroup (counting the identity operator)intstatic javax.vecmath.AxisAngle4dgetRotAxisAndAngle(javax.vecmath.Matrix3d m) Given a rotation matrix calculates the rotation axis and angle for it.javax.vecmath.AxisAngle4dgetRotAxisAngle(int transformId) static intgetRotAxisType(javax.vecmath.Matrix4d m) Given a transformation matrix containing a rotation returns the type of rotation: 1 for identity, 2 for 2-fold rotation, 3 for 3-fold rotation, 4 for 4-fold rotation, 6 for 6-fold rotation, -1 for inversions, -2 for mirror planes, -3 for 3-fold improper rotation, -4 for 4-fold improper rotation and -6 for 6-fold improper rotationstatic longGets the international short name (as used in PDB), e.g.static Patternstatic Patternstatic PatterngetTransfAlgebraic(int i) Gets a transformation algebraic string given its index.javax.vecmath.Matrix4dgetTransformation(int i) Gets a transformation by index expressed in crystal axes basis.List<javax.vecmath.Matrix4d> Gets all transformations except for the identity in crystal axes basis.inthashCode()protected voidbooleanstatic SpaceGroupparseSpaceGroup(String shortName) Get the space group for the given international short name, using the PDB format, e.g.voidsetAltShortSymbol(String altShortSymbol) voidsetAxisTypes(int[] axisTypes) voidsetBravLattice(BravaisLattice bravLattice) voidsetId(int id) voidsetMultiplicity(int multiplicity) voidsetPrimitiveMultiplicity(int primitiveMultiplicity) voidsetShortSymbol(String shortSymbol) voidsetTransfAlgebraic(List<String> transfAlgebraic) toString()toXML()
-
Field Details
-
DELTA
- See Also:
-
-
Constructor Details
-
SpaceGroup
public SpaceGroup(int id, int multiplicity, int primitiveMultiplicity, String shortSymbol, String altShortSymbol, BravaisLattice bravLattice)
-
-
Method Details
-
parseSpaceGroup
Get the space group for the given international short name, using the PDB format, e.g. 'P 21 21 21' or 'C 1 c 1'- Parameters:
shortName-- Returns:
- the SpaceGroup or null if the shortName is not valid
- See Also:
-
addTransformation
-
initializeCellTranslations
-
getMultiplicity
-
getPrimitiveMultiplicity
-
getCellTranslations
-
getCellTranslation
-
getMatrixFromAlgebraic
-
getId
Gets the standard numeric identifier for the space group. See for example http://en.wikipedia.org/wiki/Space_group or the IUCr crystallographic tables- Returns:
-
getShortSymbol
Gets the international short name (as used in PDB), e.g. "P 21 21 21" or "C 1 c 1"- Returns:
-
getAltShortSymbol
Gets the alternative international short name (as sometimes used in PDB), e.g. "I 1 2 1" instead of "I 2"- Returns:
-
getTransformations
Gets all transformations except for the identity in crystal axes basis.- Returns:
-
getRotAxisAngle
-
areInSameAxis
Returns true if both given transform ids belong to the same crystallographic axis (a, b or c) For two non-rotation transformations (i.e. identity operators) it returns true- Parameters:
tId1-tId2-- Returns:
-
getAxisFoldType
Given a transformId returns the type of axis of rotation: 1 (no rotation), 2, 3, 4 or 6 -fold and for improper rotations: -1, -2, -3, -4 and -6- Parameters:
transformId-- Returns:
-
getTransformation
Gets a transformation by index expressed in crystal axes basis. Index 0 corresponds always to the identity transformation. Beware the returned Matrix4d is not a copy but it stays linked to the one stored in this SpaceGroup object- Parameters:
i-- Returns:
-
getTransfAlgebraic
Gets a transformation algebraic string given its index. Index 0 corresponds always to the identity transformation.- Parameters:
i-- Returns:
-
hashCode
-
equals
-
getNumOperators
Gets the number of symmetry operators corresponding to this SpaceGroup (counting the identity operator)- Returns:
-
getAlgebraicFromMatrix
-
deltaComp
-
getBravLattice
-
isEnantiomorphic
-
getRotAxisAndAngle
Given a rotation matrix calculates the rotation axis and angle for it. The angle is calculated from the trace, the axis from the eigenvalue decomposition. If given matrix is improper rotation or identity matrix then axis (0,0,0) and angle 0 are returned.- Parameters:
m-- Returns:
- Throws:
IllegalArgumentException- if given matrix is not a rotation matrix (determinant not 1 or -1)
-
getRotAxisType
Given a transformation matrix containing a rotation returns the type of rotation: 1 for identity, 2 for 2-fold rotation, 3 for 3-fold rotation, 4 for 4-fold rotation, 6 for 6-fold rotation, -1 for inversions, -2 for mirror planes, -3 for 3-fold improper rotation, -4 for 4-fold improper rotation and -6 for 6-fold improper rotation- Parameters:
m-- Returns:
-
toString
-
toXML
-
getTransfAlgebraic
-
setTransfAlgebraic
-
getAxisTypes
-
setAxisTypes
-
getSerialversionuid
-
getSplitpat1
-
getSplitpat2
-
getCoordpat
-
getTranscoefpat
-
getNonenantpat
-
getDelta
-
setId
-
setMultiplicity
-
setPrimitiveMultiplicity
-
setShortSymbol
-
setAltShortSymbol
-
setBravLattice
-