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

    java.lang.Object
      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` -