Skip to content

Commit ffc8f4b

Browse files
authored
Explain parameter options for combined symmetry
In order to visualize point groups formed by quaternary and internal symmetry.
1 parent a37dbc9 commit ffc8f4b

File tree

1 file changed

+61
-45
lines changed

1 file changed

+61
-45
lines changed

structure/symmetry.md

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,65 +3,61 @@ Protein Symmetry using BioJava
33

44
BioJava can be used to detect, analyze, and visualize **symmetry** and
55
**pseudo-symmetry** in the **quaternary** (biological assembly) and tertiary
6-
(**internal**) structural levels.
6+
(**internal**) structural levels of proteins.
77

88
## Quaternary Symmetry
99

10-
The **quaternary symmetry** of a structure defines the relations between
11-
its individual chains or groups of chains. For a more extensive explanation
12-
about symmetery visit the [PDB help page](http://www.rcsb.org/pdb/staticHelp.do?p=help/viewers/jmol_symmetry_view.html).
10+
The **quaternary symmetry** of a structure defines the relation and arrangement of the individual chains or groups of chains that are part of a biological assembly.
11+
For a more exhaustive explanation about protein quaternary symmetery and the different types visit the [PDB help page](http://www.rcsb.org/pdb/staticHelp.do?p=help/viewers/jmol_symmetry_view.html).
1312

14-
In the **quaternary symmetry** detection problem, we are given a set of chains
15-
with its `Atom` coordinates and we are asked to find the higest overall symmetry that
16-
relates them. The solution is divided into the following steps:
13+
In the **quaternary symmetry** detection problem, we are given a set of chains (subunits) that are part of a biological assembly as input, defined by their atomic coordinates, and we are required to find the higest overall symmetry group that
14+
relates them as ouptut.
15+
The solution is divided into the following steps:
1716

1817
1. First, we need to identify the chains that are identical (or similar
19-
in the pseudo-symmetry case). For that, we perform a pairwise alignment of all
20-
chains and determine **clusters of identical chains**.
21-
2. Next, we reduce the each chains to a single point, its **centroid** (center of mass).
22-
3. After that, we try different **symmetry relations** to superimpose the chain centroids
23-
and obtain their RMSD.
24-
4. At last, based on the parameters (cutoffs), we determine the **overall symmetry** of the
18+
in the pseudo-symmetry case). For that purpose, we perform a pairwise alignment of all
19+
chains and identify **clusters of identical or similar subunits**.
20+
2. Next, we reduce each of the polypeptide chains to a single point, their **centroid** (center of mass).
21+
3. Afterwards, we try different **symmetry operations** using a grid search to superimpose the chain centroids
22+
and score them using the RMSD.
23+
4. Finally, based on the parameters (cutoffs), we determine the **overall symmetry** of the
2524
structure, with the symmetry relations obtained in the previous step.
2625
5. In case of asymmetric structure, we discard combinatorially a number of chains and try
27-
to detect any **local symmetries** present.
26+
to detect any **local symmetries** present (symmetry that does not involve all subunits of the biological assembly).
2827

2928
The **quaternary symmetry** detection algorithm is implemented in the biojava class
3029
[QuatSymmetryDetector](http://www.biojava.org/docs/api/org/biojava/nbio/structure/symmetry/core/QuatSymmetryDetector).
3130
An example of how to use it programatically is shown below:
3231

3332
```java
34-
//First download the structure in the biological assembly form
33+
// First download the structure in the biological assembly form
3534
Structure s;
3635

37-
//Set some parameters if needed different than DEFAULT - see descriptions
36+
// Set some parameters if needed different than DEFAULT - see descriptions
3837
QuatSymmetryParameters parameters = new QuatSymmetryParameters();
3938
SubunitClustererParameters clusterParams = new SubunitClustererParameters();
4039

41-
//Instantiate the detector
40+
// Instantiate the detector
4241
QuatSymmetryDetector detector = QuatSymmetryDetector(s, parameters, clusterParams);
4342

44-
//Static methods in QuatSymmetryDetector perform the calculation
43+
// Static methods in QuatSymmetryDetector perform the calculation
4544
QuatSymmetryResults globalResults = QuatSymmetryDetector.getGlobalSymmetry(s, parameters, clusterParams);
4645
List<QuatSymmetryResults> localResults = QuatSymmetryDetector.getLocalSymmetries(s, parameters, clusterParams);
4746

4847
```
49-
See also the demo in the BioJava repo:
48+
See also the [demo](https://github.com/biojava/biojava/blob/885600670be75b7f6bc5216bff52a93f43fff09e/biojava-structure/src/main/java/demo/DemoSymmetry.java#L37-L59) provided in **BioJava** for a real case working example.
5049

51-
https://github.com/biojava/biojava/blob/885600670be75b7f6bc5216bff52a93f43fff09e/biojava-structure/src/main/java/demo/DemoSymmetry.java#L37-L59
50+
The returned `QuatSymmetryResults` object contains all the information of the subunit clustering and structural symmetry.
51+
This object will be used later to obtain axes of symmetry, point group name, stoichiometry or even display the results in Jmol.
52+
The return object of quaternary symmetry (`QuatSymmetryResults`) contains the
53+
In case of asymmetrical structure, the result is a C1 point group.
54+
The return type of the local symmetry is a `List` because there can be multiple valid options of local symmetry.
55+
The list will be empty if there exist no local symmetries in the structure.
5256

53-
The return type are `List` because there can be multiple valid options for the
54-
quaternary symmetry. The local results `List` is empty if there exist no local
55-
symmetry in the structure, and the global results `List` has always size bigger
56-
than 1, returning a C1 point group in the case of asymmetric structure.
57-
58-
The `QuatSymmetryResults` object contains all the information of the symmetry.
59-
This object will be used later to obtain axes of symmetry, point group name,
60-
stoichiometry or even display the results in Jmol.
6157

6258
### Global Symmetry
6359

64-
In **global symmetry** all chains have to be part of the symmetry description.
60+
In the **global symmetry** mode all chains have to be part of the symmetry result.
6561

6662
#### Point Group
6763

@@ -79,15 +75,14 @@ components.
7975

8076
### Local Symmetry
8177

82-
In **local symmetry** a number of chains is left out, so that the symmetry
83-
only applies to a subset of chains.
78+
In **local symmetry** a number of chains is left out, so that the symmetry only applies to a subset of chains.
8479

8580
![PDB ID 4F88](img/symm_local.png)
8681

8782
### Pseudo-Symmetry
8883

8984
In **pseudo-symmetry** the chains related by the symmetry are not completely
90-
identical, but they share a sequence similarity above the pseudo-symmetry
85+
identical, but they share a sequence or structural similarity above the pseudo-symmetry
9186
similarity threshold.
9287

9388
If we consider hemoglobin, at a 95% sequence identity threshold the alpha and
@@ -122,8 +117,8 @@ create a multiple alignment of the subunits, respecting the symmetry axes.
122117

123118
The **internal symmetry** detection algorithm is implemented in the biojava class
124119
[CeSymm](http://www.biojava.org/docs/api/org/biojava/nbio/structure/symmetry/internal/CeSymm).
125-
It returns a MultipleAlignment, see the explanation of the model in [Data Models](alignment-data-model.md),
126-
that describes the internal subunits multiple alignment. In case of no symmetry detected, the
120+
It returns a `MultipleAlignment` object, see the explanation of the model in [Data Models](alignment-data-model.md),
121+
that describes the similarity of the internal repeats. In case of no symmetry detected, the
127122
returned alignment represents the optimal self-alignment produced by the first step of the **CE-Symm**
128123
algorithm.
129124

@@ -202,22 +197,43 @@ The subunit display highlights the differences and similarities between the symm
202197
related subunits of the chain, and helps the user to identify conseved and divergent
203198
regions, with the help of the *Sequence Alignment Panel*.
204199

205-
## Combined Global Symmetry
200+
## Quaternary + Internal Overall Symmetry
206201

207-
Finally, the internal and quaternary symmetries can be combined to obtain the global
202+
Finally, the internal and quaternary symmetries can be merged to obtain the
208203
overall combined symmetry. As we have seen before, the protein 1VYM is a DNA-clamp that
209-
has three chains relates by C3 symmetry. Each chain is internally C2 symmetric, and each
210-
part of the C2 internal symmetry is C2 symmetric, so a case of **hierarchical symmetry**
211-
(C2 + C2). Once we have divided the whole structure into its asymmetric parts, we can
212-
analyze the global symmetry that related each one of them. The interesting result is that
213-
in some cases, the internal symmetry **multiplies** the point group of the quaternary symmetry.
214-
What seemed a C3 + C2 + C2 is combined into a D6 overall symmetry, as we can see in the figure
215-
below:
204+
has three chains arranged in a C3 symmetry.
205+
Each chain is internally fourfold symmetric with two levels of symmetry. We can analyze the overall symmetry of the structure by considering together the C3 quaternary symmetry and the fourfold internal symmetry.
206+
In this case, the internal symmetry **augments** the point group of the quaternary symmetry to a D6 overall symmetry, as we can see in the figure below:
216207

217208
![PDB ID 1VYM](img/symm_combined.png)
218209

219-
These results can give hints about the function and evolution of proteins and biological
220-
structures.
210+
An example of how to toggle the **combined symmetry** (quaternary + internal symmetries) programatically is shown below:
211+
212+
```java
213+
// First download the structure in the biological assembly form
214+
Structure s;
215+
216+
// Initialize default parameters
217+
QuatSymmetryParameters parameters = new QuatSymmetryParameters();
218+
SubunitClustererParameters clusterParams = new SubunitClustererParameters();
219+
220+
// In SubunitClustererParameters set the clustering method to STRUCTURE and the internal symmetry option to true
221+
clusterParams.setClustererMethod(SubunitClustererMethod.STRUCTURE);
222+
clusterParams.setInternalSymmetry(true);
223+
224+
// You can lower the default structural coverage to improve the recall
225+
clusterParams.setStructureCoverageThreshold(0.75);
226+
227+
// Instantiate the detector
228+
QuatSymmetryDetector detector = QuatSymmetryDetector(s, parameters, clusterParams);
229+
230+
// Static methods in QuatSymmetryDetector perform the calculation
231+
QuatSymmetryResults overallResults = QuatSymmetryDetector.getGlobalSymmetry(s, parameters, clusterParams);
232+
233+
```
234+
235+
See also the [test](https://github.com/biocryst/biojava/blob/df22da37a86a0dba3fb35bee7e17300d402ab469/biojava-integrationtest/src/test/java/org/biojava/nbio/structure/test/symmetry/TestQuatSymmetryDetectorExamples.java#L167-L192) provided in **BioJava** for a real case working example.
236+
221237

222238
<!--automatically generated footer-->
223239

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy