Package org.biojava.nbio.structure.align
Class StructurePairAligner
- java.lang.Object
-
- org.biojava.nbio.structure.align.StructurePairAligner
-
public class StructurePairAligner extends Object
Perform a pairwise protein structure superimposition.The algorithm is a distance matrix based, rigid body protein structure superimposition. It is based on a variation of the PSC++ algorithm provided by Peter Lackner (Peter.Lackner@sbg.ac.at, personal communication) .
Example
public void run(){ // first load two example structures
InputStream
inStream1 = this.getClass().getResourceAsStream("/files/5pti.pdb");InputStream
inStream2 = this.getClass().getResourceAsStream("/files/1tap.pdb");Structure
structure1 = null;Structure
structure2 = null;PDBFileParser
pdbpars = newPDBFileParser
(); structure1 = pdbpars.parsePDBFile(inStream1) ; structure2 = pdbpars.parsePDBFile(inStream2); // calculate structure superimposition for two complete structuresStructurePairAligner
aligner = newStructurePairAligner
(); // align the full 2 structures with default parameters. // see StructurePairAligner for more options and how to align // any set of Atoms aligner.align(structure1,structure2);AlternativeAlignment
[] aligs = aligner.getAlignments();AlternativeAlignment
a = aligs[0]; System.out.println(a); //display the alignment in Jmol // first get an artificial structure for the alignmentStructure
artificial = a.getAlignedStructure(structure1, structure2); // and then send it to Jmol (only will work if Jmol is in the Classpath) BiojavaJmol jmol = new BiojavaJmol(); jmol.setTitle(artificial.getName()); jmol.setStructure(artificial); // color the two structures jmol.evalString("select *; backbone 0.4; wireframe off; spacefill off; " + "select not protein and not solvent; spacefill on;"); jmol.evalString("select *"+"/1 ; color red; model 1; "); // now color the equivalent residues ... String[] pdb1 = a.getPDBresnum1(); for (String res : pdb1 ){ jmol.evalString("select " + res + "/1 ; backbone 0.6; color white;"); } jmol.evalString("select *"+"/2; color blue; model 2;"); String[] pdb2 = a.getPDBresnum2(); for (String res :pdb2 ){ jmol.evalString("select " + res + "/2 ; backbone 0.6; color yellow;"); } // now show both models again. jmol.evalString("model 0;"); }- Since:
- 1.4
- Version:
- %I% %G%
- Author:
- Andreas Prlic, Peter Lackner
-
-
Constructor Summary
Constructors Constructor Description StructurePairAligner()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addProgressListener(AlignmentProgressListener li)
void
align(Atom[] ca1, Atom[] ca2, StrucAligParameters params)
calculate the protein structure superimposition, between two sets of atoms.void
align(Structure s1, String chainId1, Structure s2, String chainId2)
Align two chains from the structures.void
align(Structure s1, String chainId1, Structure s2, String chainId2, StrucAligParameters params)
Aligns two chains from the structures using user provided parameters.void
align(Structure s1, Structure s2)
Calculate the alignment between the two full structures with default parametersvoid
align(Structure s1, Structure s2, StrucAligParameters params)
Calculate the alignment between the two full structures with user provided parametersvoid
clearListeners()
Atom[]
getAlignmentAtoms(Structure s)
Returns the atoms that are being used for the alignment.AlternativeAlignment[]
getAlignments()
return the alternative alignments that can be found for the two structuresMatrix
getDistMat()
return the difference of distance matrix between the two structuresFragmentPair[]
getFragmentPairs()
get the results of step 1 - the FragmentPairs used for seeding the alignmentStrucAligParameters
getParams()
get the parameters.static void
main(String[] args)
example usage of this classvoid
setFragmentPairs(FragmentPair[] fragPairs)
void
setParams(StrucAligParameters params)
set the parameters to be used for the algorithm
-
-
-
Constructor Detail
-
StructurePairAligner
public StructurePairAligner()
-
-
Method Detail
-
addProgressListener
public void addProgressListener(AlignmentProgressListener li)
-
clearListeners
public void clearListeners()
-
main
public static void main(String[] args) throws Exception
example usage of this class- Parameters:
args
-- Throws:
Exception
-
getFragmentPairs
public FragmentPair[] getFragmentPairs()
get the results of step 1 - the FragmentPairs used for seeding the alignment- Returns:
- a FragmentPair[] array
-
setFragmentPairs
public void setFragmentPairs(FragmentPair[] fragPairs)
-
getAlignments
public AlternativeAlignment[] getAlignments()
return the alternative alignments that can be found for the two structures- Returns:
- AlternativeAlignment[] array
-
getDistMat
public Matrix getDistMat()
return the difference of distance matrix between the two structures- Returns:
- a Matrix
-
getParams
public StrucAligParameters getParams()
get the parameters.- Returns:
- the Parameters.
-
setParams
public void setParams(StrucAligParameters params)
set the parameters to be used for the algorithm- Parameters:
params
- the Parameter object
-
align
public void align(Structure s1, Structure s2) throws StructureException
Calculate the alignment between the two full structures with default parameters- Parameters:
s1
-s2
-- Throws:
StructureException
-
align
public void align(Structure s1, Structure s2, StrucAligParameters params) throws StructureException
Calculate the alignment between the two full structures with user provided parameters- Parameters:
s1
-s2
-params
-- Throws:
StructureException
-
align
public void align(Structure s1, String chainId1, Structure s2, String chainId2) throws StructureException
Align two chains from the structures. Uses default parameters.- Parameters:
s1
-chainId1
-s2
-chainId2
-- Throws:
StructureException
-
align
public void align(Structure s1, String chainId1, Structure s2, String chainId2, StrucAligParameters params) throws StructureException
Aligns two chains from the structures using user provided parameters.- Parameters:
s1
-chainId1
-s2
-chainId2
-params
-- Throws:
StructureException
-
getAlignmentAtoms
public Atom[] getAlignmentAtoms(Structure s)
Returns the atoms that are being used for the alignment. (E.g. Calpha only, etc.)- Parameters:
s
-- Returns:
- an array of Atoms objects
-
align
public void align(Atom[] ca1, Atom[] ca2, StrucAligParameters params) throws StructureException
calculate the protein structure superimposition, between two sets of atoms.- Parameters:
ca1
- set of Atoms of structure 1ca2
- set of Atoms of structure 2params
- the parameters to use for the alignment- Throws:
StructureException
-
-