You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'''Structural alignment''' attempts to establish equivalences between two or more polymer structures based on their shape and three-dimensional conformation. In contrast to simple structural superposition, where at least some equivalent residues of the two structures are known, structural alignment requires no ''a priori'' knowledge of equivalent positions. Structural alignment is a valuable tool for the comparison of proteins with low sequence similarity, where evolutionary relationships between proteins cannot be easily detected by standard sequence alignment techniques. Structural alignment can therefore be used to imply evolutionary relationships between proteins that share very little common sequence. However, caution should be used in using the results as evidence for shared evolutionary ancestry because of the possible confounding effects of convergent evolution by which multiple unrelated amino acid sequences converge on a common tertiary structure.
4
5
5
-
The structure alignment possibilities of BioJava are going to be greatly enhanced in the upcoming BioJava 3 release. It provides a BioJava port of the '''Combinatorial Extension''' algorithm (CE) as well as of the '''FATCAT''' algorithm. The documentation how to use this algorithm is available from
6
-
7
-
[[BioJava:CookBook:PDB:CE_Algorithm]]
8
-
9
-
[[BioJava:CookBook:PDB:FATCAT_Algorithm]]
10
-
11
-
12
-
This is the example of how to use the structure alignment algorithm with the BioJava 1.7 release:
13
-
14
-
[[BioJava:CookBook:PDB:BioJava_Algorithm]]
15
-
16
-
===Biojava 1.7===
17
-
18
-
The [[BioJava:CookBook:PDB:aboutalign|structure alignment algorithm]] contained in BioJava is
19
-
based on a variation of the PSC++ algorithm provided by Peter Lackner, Univ. Salzburg
20
-
(personal communication). The [[BioJava:CookBook:PDB:aboutalign|algorithm]] is calculating a distance matrix based, rigid body protein structure superimposition.
21
-
22
-
== Example ==
23
-
24
-
[http://www.biojava.org/download/performance/biojava-structure-example1.jnlp Run WebStart Example] (5MB download includes Jmol for visualization)
25
-
26
-
Learn more about this JavaWebStart example at [[BioJava:Performance]]
27
-
28
-
== Code ==
6
+
For more info see the [http://en.wikipedia.org/wiki/Structural_alignment Wikipedia article on protein structure alignment].
29
7
30
-
<java>
31
8
32
-
public static void main(String[] args){
33
9
34
-
PDBFileReader pdbr = new PDBFileReader();
35
-
pdbr.setPath("/Path/To/My/PDBFiles/");
10
+
=== Alignment with Cobinatorial Extension (CE) and FATCAT ===
// the AlternativeAlignment object gives access to rotation matrices
71
-
// / shift vectors.
72
-
for (int i = 0; i < aligs.length; i++) {
73
-
AlternativeAlignment aa = aligs[i];
74
-
System.out.println(aa);
75
-
}
12
+
The structure alignment possibilities of BioJava are going to be greatly enhanced in the upcoming BioJava 3 release. It provides a BioJava port of the '''Combinatorial Extension''' algorithm (CE) as well as of the '''FATCAT''' algorithm. The documentation how to use this algorithm is available from
76
13
77
-
// convert AlternativeAlignment 1 to PDB file, so it can be opened
78
-
// with a viewer of your choice
79
-
// (e.g. Jmol, Rasmol)
14
+
[[BioJava:CookBook:PDB:CE_Algorithm]]
80
15
81
-
if (aligs.length > 0) {
82
-
AlternativeAlignment aa1 = aligs[0];
83
-
String pdbstr = aa1.toPDB(s1, s2);
16
+
[[BioJava:CookBook:PDB:FATCAT_Algorithm]]
84
17
85
-
System.out.println("writing alignment to " + outputfile);
86
-
FileOutputStream out = new FileOutputStream(outputfile);
87
-
PrintStream p = new PrintStream(out);
18
+
=== Alignment with BioJava 1.7 ===
88
19
89
-
p.println(pdbstr);
20
+
BioJava 1.7 contains an unpublished structure alignment algorithm. For more information on it, please see here:
90
21
91
-
p.close();
92
-
out.close();
93
-
}
94
-
} catch (FileNotFoundException e) {
95
-
// TODO Auto-generated catch block
96
-
e.printStackTrace();
97
-
} catch (IOException e) {
98
-
// TODO Auto-generated catch block
99
-
e.printStackTrace();
100
-
} catch (StructureException e) {
101
-
e.printStackTrace();
102
-
}
103
-
}
104
-
</java>
22
+
[[BioJava:CookBook:PDB:BioJava_Algorithm]]
105
23
24
+
=== Structure superposition ===
106
25
107
-
You can send the structure alignment for display to Jmol. see [[BioJava:CookBook:PDB:Jmol]]
108
-
for more on this.
26
+
Also know as "overlaying" is a process of fitting two (equivalent) sets of Atoms onto each other. This can be useful e.g. to overlay two different structural models of the same protein. BioJava also provides a tool for this. (See the [http://www.biojava.org/docs/api/org/biojava/bio/structure/SVDSuperimposer.html SVDSuperimposer.html] javadoc.
0 commit comments