org.biojava.bio.structure.align.pairwise
Class AlternativeAlignment

java.lang.Object
  extended by org.biojava.bio.structure.align.pairwise.AlternativeAlignment

public class AlternativeAlignment
extends Object

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)

Field Summary
static Logger logger
           
 
Constructor Summary
AlternativeAlignment()
           
 
Method Summary
 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 alignment
 int getCluster()
          get the number of the cluster this alignment belongs to
 Matrix getDistanceMatrix()
          The distance matrix this alignment is based on
static Matrix getDistanceMatrix(Atom[] ca1, Atom[] ca2)
           
 int getEqr()
          returns the number of euqivalent residues in this alignment
 int getGaps()
          return the number of gaps in this alignment
 int[] getIdx1()
          the positions of the structure equivalent positions in atom set 1
 int[] getIdx2()
          the positions of the structure equivalent atoms in atom set 2
 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 1
 float getScore()
          the alignment score
 Atom getShift()
          returns the shift vector that has to be applied on structure to to shift on structure one
 void 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 on
 void setPDBresnum1(String[] pdbresnum1)
           
 void setPDBresnum2(String[] pdbresnum2)
           
 void setPercId(int percId)
           
 void setRms(double rms)
          the rms in the structurally equivalent regions
 void 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

public static Logger logger
Constructor Detail

AlternativeAlignment

public AlternativeAlignment()
Method Detail

toString

public String toString()
print the idx positions of this alignment

Overrides:
toString in class Object
Returns:
a String representation

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 parameters
ca1 - atoms of structure 1
ca2 - 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 1
ca2 - 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 changed
s2 - 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 -