Skip to content

Commit aa08476

Browse files
committed
Completing SCOP section
1 parent a37f301 commit aa08476

1 file changed

Lines changed: 53 additions & 6 deletions

File tree

structure/externaldb.md

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,57 @@ The Structural Classification of Proteins (SCOP) is a manually curated classific
1616
* The breakdown of a protein into structural domains
1717
* A classification of domains according to their structure.
1818

19-
Domains are referred to by a 7-letter identifier consisting of the letter 'd', the pdb id of the structure, the chain identifier (or '.' for multichain domains), and a alphanumeric domain identifier (or '_' for single-domain chains). Domains are classified into a heirarchy according to their structural similarity. From least similar to most similar, the levels are:
19+
The structure for a known SCOP domain can be fetched via its 7-letter domain ID (eg 'd2bq6a1') via ```StructureIO.getStructure()```, as described in [Local PDB Installations](caching.md#Caching of other SCOP, CATH).
20+
21+
The SCOP classification can be accessed through the [```ScopDatabase```](http://www.biojava.org/docs/api/org/biojava/bio/structure/scop/ScopDatabase.html) class.
22+
23+
ScopDatabase scop = ScopFactory.getSCOP();
24+
25+
### Inspecting SCOP domains
26+
27+
A list of domains can be retrieved for a given protein.
28+
29+
List<ScopDomain> domains = scop.getDomainsForPDB("4HHB");
30+
31+
You can get lots of useful information from the [```ScopDomain```](http://www.biojava.org/docs/api/org/biojava/bio/structure/scop/ScopDomain.html) object.
32+
33+
ScopDomain domain = domains.get(0);
34+
String scopID = domain.getScopId(); // d4hhba_
35+
String classification = domain.getClassificationId(); // a.1.1.2
36+
int sunId = domain.getSunId(); // 15251
37+
38+
### Viewing the SCOP hierarchy
39+
40+
The full hierarchy is available as a tree of [```ScopNode```](http://www.biojava.org/docs/api/org/biojava/bio/structure/scop/ScopNode.html)s, which can be easily traversed using their ```getParentSunid()``` and ```getChildren()``` methods.
41+
42+
ScopNode node = scop.getScopNode(sunId);
43+
while (node != null){
44+
System.out.println(scop.getScopDescriptionBySunid(node.getSunid()));
45+
node = scop.getScopNode(node.getParentSunid());
46+
}
47+
48+
ScopDatabase also provides access to all nodes at a particular level.
49+
50+
List<ScopDescription> superfams = scop.getByCategory(ScopCategory.Superfamily);
51+
System.out.println("Total nr. of superfamilies:" + superfams.size());
52+
53+
### Types of ScopDatabase
54+
55+
Several types of ```ScopDatabase``` are available. These can be instantiated manually when more control is needed.
56+
57+
* __RemoteScopInstallation__ (default) Fetches data one node at a time from the internet. Useful when perfoming a small number of operations.
58+
* __ScopeInstallation__ Downloads all SCOP data as a batch and caches it for later use. Much faster when performing many operations.
59+
60+
Several internal BioJava classes use ```ScopFactory.getSCOP()``` when they encounter references to SCOP domains, so it is always a good idea to notify the ```ScopFactory``` when using a custom ```ScopDatabase``` instance.
61+
62+
ScopDatabase scop = new ScopInstallation();
63+
ScopFactory.setScopDatabase(scop);
64+
65+
Several versions of SCOP are available.
66+
67+
// Use Steven Brenner's updated version of SCOP
68+
scop = ScopFactory.getSCOP(ScopFactory.VERSION_1_75B);
69+
// Use an old version globally, perhaps for an older benchmark
70+
ScopFactory.setScopDatabase(ScopFactory.VERSION_1_69);
71+
2072

21-
1. __Class__ Similar secondary structure composition
22-
2. __Fold__ Major structural similarity
23-
3. __Superfamily__ Probably evolutionarily related
24-
4. __Family__ Clearly evolutionarily related
25-
5. __Domain__ Unique domain

0 commit comments

Comments
 (0)