Package org.biojava.nbio.structure.align
Class StructurePairAligner
java.lang.Object
org.biojava.nbio.structure.align.StructurePairAligner
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 structuresInputStream
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
align
(Atom[] ca1, Atom[] ca2, StrucAligParameters params) calculate the protein structure superimposition, between two sets of atoms.void
Align two chains from the structures.void
Aligns two chains from the structures using user provided parameters.void
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
Atom[]
Returns the atoms that are being used for the alignment.return the alternative alignments that can be found for the two structuresreturn the difference of distance matrix between the two structuresget the results of step 1 - the FragmentPairs used for seeding the alignmentget the parameters.boolean
isDebug()
Deprecated.static void
example usage of this classvoid
setDebug
(boolean debug) Deprecated.void
setFragmentPairs
(FragmentPair[] fragPairs) void
setParams
(StrucAligParameters params) set the parameters to be used for the algorithm
-
Constructor Details
-
StructurePairAligner
public StructurePairAligner()
-
-
Method Details
-
addProgressListener
-
clearListeners
public void clearListeners() -
main
example usage of this class- Parameters:
args
-- Throws:
Exception
-
getFragmentPairs
get the results of step 1 - the FragmentPairs used for seeding the alignment- Returns:
- a FragmentPair[] array
-
setFragmentPairs
-
getAlignments
return the alternative alignments that can be found for the two structures- Returns:
- AlternativeAlignment[] array
-
getDistMat
return the difference of distance matrix between the two structures- Returns:
- a Matrix
-
getParams
get the parameters.- Returns:
- the Parameters.
-
setParams
set the parameters to be used for the algorithm- Parameters:
params
- the Parameter object
-
isDebug
Deprecated.check if debug mode is set on- Returns:
- debug flag
-
setDebug
Deprecated.set the debug flag- Parameters:
debug
- flag
-
align
Calculate the alignment between the two full structures with default parameters- Parameters:
s1
-s2
-- Throws:
StructureException
-
align
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
Returns the atoms that are being used for the alignment. (E.g. Calpha only, etc.)- Parameters:
s
-- Returns:
- an array of Atoms objects
-
align
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
-