Class AlternativeAlignment
- java.lang.Object
-
- org.biojava.nbio.structure.align.pairwise.AlternativeAlignment
-
- All Implemented Interfaces:
Serializable
public class AlternativeAlignment extends Object implements Serializable
Implements a class which handles one possible (alternative) solution. Alternative alignments arise from different seed alignments or seed FPairs. The AltAlg class contains methods for refinement (Dynamic Programming based) and filtering (i.e. removing probably wrongly matched APairs). In the refinement phase, different seed alignments can converge to the same solution.- Since:
- 3:04:26 PM
- Version:
- %I% %G%
- Author:
- Andreas Prlic,, Peter Lackner (original Python and C code)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description AlternativeAlignment()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
apairs_from_idxlst(JointFragments jf)
Set apairs according to a list of (i,j) tuples.void
apairs_from_seed(int l, int i, int j)
Set apairs according to a seed position.void
calcScores(Atom[] ca1, Atom[] ca2)
calculates scores for this alignment ( %id )void
calculateSuperpositionByIdx(Atom[] ca1, Atom[] ca2)
void
finish(StrucAligParameters params, Atom[] ca1, Atom[] ca2)
Structure
getAlignedStructure(Structure s1, Structure s2)
create an artifical Structure object that contains the two structures superimposed onto each other.int
getAltAligNumber()
returns the sequential number of this alternative alignmentint
getCluster()
get the number of the cluster this alignment belongs toMatrix
getDistanceMatrix()
The distance matrix this alignment is based onstatic Matrix
getDistanceMatrix(Atom[] ca1, Atom[] ca2)
int
getEqr()
returns the number of euqivalent residues in this alignmentint
getGaps()
return the number of gaps in this alignmentint[]
getIdx1()
the positions of the structure equivalent positions in atom set 1int[]
getIdx2()
the positions of the structure equivalent atoms in atom set 2IndexPair[]
getPath()
String[]
getPDBresnum1()
String[]
getPDBresnum2()
int
getPercId()
double
getRmsd()
Matrix
getRotationMatrix()
returns the rotation matrix that needs to be applied to structure 2 to rotate on structure 1float
getScore()
the alignment scoreAtom
getShift()
returns the shift vector that has to be applied on structure to to shift on structure onevoid
refine(StrucAligParameters params, Atom[] ca1, Atom[] ca2)
Refinement procedure based on superposition and dynamic programming.void
setAltAligNumber(int fromia)
void
setCluster(int cluster)
set the number of the cluster this alignment belongs to.void
setDistanceMatrix(Matrix distanceMatrix)
The distance matrix this alignment is based onvoid
setPDBresnum1(String[] pdbresnum1)
void
setPDBresnum2(String[] pdbresnum2)
void
setPercId(int percId)
void
setRms(double rms)
the rms in the structurally equivalent regionsvoid
setScore(float score)
String
toPDB(Structure s1, Structure s2)
converts the alignment to a PDB file each of the structures will be represented as a model.String
toString()
print the idx positions of this alignment
-
-
-
Field Detail
-
logger
public static final org.slf4j.Logger logger
-
-
Constructor Detail
-
AlternativeAlignment
public AlternativeAlignment()
-
-
Method Detail
-
getCluster
public int getCluster()
get the number of the cluster this alignment belongs to- Returns:
- an int giving the number of the cluster
-
setCluster
public void setCluster(int cluster)
set the number of the cluster this alignment belongs to. All alignments in a cluster are quite similar.- Parameters:
cluster
- the number of the cluster
-
getRmsd
public double getRmsd()
-
setRms
public void setRms(double rms)
the rms in the structurally equivalent regions- Parameters:
rms
-
-
getScore
public float getScore()
the alignment score- Returns:
- the score of this alignment
-
setScore
public void setScore(float score)
-
getGaps
public int getGaps()
return the number of gaps in this alignment- Returns:
- the number of Gaps
-
getEqr
public int getEqr()
returns the number of euqivalent residues in this alignment- Returns:
- the number of equivalent residues
-
getIdx1
public int[] getIdx1()
the positions of the structure equivalent positions in atom set 1- Returns:
- the array of the positions
-
getIdx2
public int[] getIdx2()
the positions of the structure equivalent atoms in atom set 2- Returns:
- the array of the positions
-
getPercId
public int getPercId()
-
setPercId
public void setPercId(int percId)
-
apairs_from_seed
public void apairs_from_seed(int l, int i, int j)
Set apairs according to a seed position.- Parameters:
l
-i
-j
-
-
apairs_from_idxlst
public void apairs_from_idxlst(JointFragments jf)
Set apairs according to a list of (i,j) tuples.- Parameters:
jf
- a JoingFragment
-
getAltAligNumber
public int getAltAligNumber()
returns the sequential number of this alternative alignment- Returns:
- the sequential number of this alternative alignment
-
setAltAligNumber
public void setAltAligNumber(int fromia)
-
finish
public void finish(StrucAligParameters params, Atom[] ca1, Atom[] ca2) throws StructureException
- Throws:
StructureException
-
getDistanceMatrix
public static Matrix getDistanceMatrix(Atom[] ca1, Atom[] ca2)
-
refine
public void refine(StrucAligParameters params, Atom[] ca1, Atom[] ca2) throws StructureException
Refinement procedure based on superposition and dynamic programming. Performs an iterative refinement. Several methods apply such a procedure, e.g. CE or ProSup. Here we additionally test for circular permutation, which are in the same frame of superposition as the optimal alignment. This feature may be switched off by setting permsize to -1.- Parameters:
params
- the parametersca1
- atoms of structure 1ca2
- atoms of structure 2- Throws:
StructureException
-
getPDBresnum1
public String[] getPDBresnum1()
-
setPDBresnum1
public void setPDBresnum1(String[] pdbresnum1)
-
getPDBresnum2
public String[] getPDBresnum2()
-
setPDBresnum2
public void setPDBresnum2(String[] pdbresnum2)
-
calculateSuperpositionByIdx
public void calculateSuperpositionByIdx(Atom[] ca1, Atom[] ca2) throws StructureException
- Throws:
StructureException
-
getRotationMatrix
public Matrix getRotationMatrix()
returns the rotation matrix that needs to be applied to structure 2 to rotate on structure 1- Returns:
- the rotation Matrix
-
getShift
public Atom getShift()
returns the shift vector that has to be applied on structure to to shift on structure one- Returns:
- the shift vector
-
calcScores
public void calcScores(Atom[] ca1, Atom[] ca2)
calculates scores for this alignment ( %id )- Parameters:
ca1
- set of Atoms for molecule 1ca2
- set of Atoms for molecule 2
-
getAlignedStructure
public Structure getAlignedStructure(Structure s1, Structure s2)
create an artifical Structure object that contains the two structures superimposed onto each other. Each structure is in a separate model. Model 1 is structure 1 and Model 2 is structure 2.- Parameters:
s1
- the first structure. its coordinates will not be changeds2
- the second structure, it will be cloned and the cloned coordinates will be rotated according to the alignment results.- Returns:
- composite structure containing the 2 aligned structures as a models 1 and 2
-
toPDB
public String toPDB(Structure s1, Structure s2)
converts the alignment to a PDB file each of the structures will be represented as a model.- Parameters:
s1
-s2
-- Returns:
- a PDB file as a String
-
getDistanceMatrix
public Matrix getDistanceMatrix()
The distance matrix this alignment is based on- Returns:
- a Matrix object.
-
setDistanceMatrix
public void setDistanceMatrix(Matrix distanceMatrix)
The distance matrix this alignment is based on- Parameters:
distanceMatrix
-
-
-