Package org.biojava.nbio.structure.ecod
Class EcodInstallation
- java.lang.Object
-
- org.biojava.nbio.structure.ecod.EcodInstallation
-
- All Implemented Interfaces:
EcodDatabase
public class EcodInstallation extends Object implements EcodDatabase
Provides access to the Evolutionary Classification of Protein Domains (ECOD). The preferred mechanism for obtaining instances of this class is through theEcodFactory
class. Reference: H. Cheng, R. D. Schaeffer, Y. Liao, L. N. Kinch, J. Pei, S. Shi, B. H.\ Kim, N. V. Grishin. (2014) ECOD: An evolutionary classification of protein domains. PLoS Comput Biol 10(12): e1003926. http://prodata.swmed.edu/ecod/- Author:
- Spencer Bliven
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EcodInstallation.EcodParser
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_VERSION
static String
DOMAINS_PATH
static Pattern
ECOD_RE
static String
ECOD_URL
-
Constructor Summary
Constructors Constructor Description EcodInstallation()
EcodInstallation(String cacheLocation, String version)
Use EcodFactory to create instances.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clears all domains, requiring the file to be reparsed for subsequent accessesvoid
ensureDomainsFileInstalled()
Blocks until ECOD domains file has been downloaded and parsed.List<EcodDomain>
filterByHierarchy(String hierarchy)
Get a list of domains within a particular level of the hierarchyList<EcodDomain>
getAllDomains()
Get all ECOD domainsString
getCacheLocation()
Get the location of the cache directory (usually set to the PDB_CACHE_DIR property).EcodDomain
getDomainsById(String ecodId)
Get a particular ECOD domain by the domain ID (e.g.List<EcodDomain>
getDomainsForPdb(String id)
public EcodInstallation(String cacheLocation) { this( cacheLocation, DEFAULT_VERSION ); } /** Get a list of all ECOD domains for a particular PDB IDInteger
getUpdateFrequency()
The expected ECOD update frequency determines whether the version "latest" should be re-downloadedString
getUrl()
Get the top-level ECOD server URL.String
getVersion()
Return the ECOD version, as parsed from the file.static void
main(String[] args)
void
setCacheLocation(String cacheLocation)
Set an alternate download location for filesvoid
setUpdateFrequency(Integer updateFrequency)
The "latest" version will be re-downloaded if it is older thangetUpdateFrequency()
days.void
setUrl(String url)
Specify a different mirror for the ECOD server.String
toString()
-
-
-
Field Detail
-
DEFAULT_VERSION
public static final String DEFAULT_VERSION
- See Also:
- Constant Field Values
-
ECOD_URL
public static final String ECOD_URL
- See Also:
- Constant Field Values
-
DOMAINS_PATH
public static final String DOMAINS_PATH
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
EcodInstallation
public EcodInstallation(String cacheLocation, String version)
Use EcodFactory to create instances. The instantiation of multiple installations at the same path can lead to race conditions when downloading files.- Parameters:
cacheLocation
- Location to save files, typically from the PDB_CACHE_DIR parameterrequestedVersion
- ECOD requestedVersion to fetch
-
EcodInstallation
public EcodInstallation()
- See Also:
EcodFactory.getEcodDatabase()
-
-
Method Detail
-
getDomainsForPdb
public List<EcodDomain> getDomainsForPdb(String id) throws IOException
public EcodInstallation(String cacheLocation) { this( cacheLocation, DEFAULT_VERSION ); } /** Get a list of all ECOD domains for a particular PDB ID- Specified by:
getDomainsForPdb
in interfaceEcodDatabase
- Parameters:
id
-- Returns:
- the list of domains, or null if no matching domains were found
- Throws:
IOException
-
filterByHierarchy
public List<EcodDomain> filterByHierarchy(String hierarchy) throws IOException
Get a list of domains within a particular level of the hierarchy- Specified by:
filterByHierarchy
in interfaceEcodDatabase
- Parameters:
hierarchy
- A dot-separated list giving the X-group, H-group, and/or T-group (e.g. "1.1" for all members of the RIFT-related H-group)- Returns:
- Throws:
IOException
-
getDomainsById
public EcodDomain getDomainsById(String ecodId) throws IOException
Get a particular ECOD domain by the domain ID (e.g. "e4hhbA1")- Specified by:
getDomainsById
in interfaceEcodDatabase
- Parameters:
ecodId
-- Returns:
- Throws:
IOException
-
getAllDomains
public List<EcodDomain> getAllDomains() throws IOException
Get all ECOD domains- Specified by:
getAllDomains
in interfaceEcodDatabase
- Returns:
- Throws:
IOException
-
clear
public void clear()
Clears all domains, requiring the file to be reparsed for subsequent accesses
-
getVersion
public String getVersion() throws IOException
Return the ECOD version, as parsed from the file. Note that this may differ from the version requested in the constructor for the special case of "latest"- Specified by:
getVersion
in interfaceEcodDatabase
- Returns:
- the ECOD version
- Throws:
IOException
- If an error occurs while downloading or parsing the file
-
getUrl
public String getUrl()
Get the top-level ECOD server URL. Defaults to "http://prodata.swmed.edu"- Returns:
- the url to the ecod server
-
setUrl
public void setUrl(String url)
Specify a different mirror for the ECOD server.- Parameters:
urlFormat
- the urlFormat to set
-
getCacheLocation
public String getCacheLocation()
Get the location of the cache directory (usually set to the PDB_CACHE_DIR property). ECOD files will be downloaded to this directory- Returns:
-
setCacheLocation
public void setCacheLocation(String cacheLocation)
Set an alternate download location for files- Parameters:
cacheLocation
-
-
ensureDomainsFileInstalled
public void ensureDomainsFileInstalled() throws IOException
Blocks until ECOD domains file has been downloaded and parsed. This may be useful in multithreaded environments.- Throws:
IOException
-
getUpdateFrequency
public Integer getUpdateFrequency()
The expected ECOD update frequency determines whether the version "latest" should be re-downloaded- Returns:
- the expected ECOD update frequency, in days
-
setUpdateFrequency
public void setUpdateFrequency(Integer updateFrequency)
The "latest" version will be re-downloaded if it is older thangetUpdateFrequency()
days. Setting this to null disables re-downloading (delete $PDB_CACHE_DIR/ecod.latest.domains.txt manually to force updating). Setting to 0 will force downloading for every program execution.- Parameters:
updateFrequency
- the updateFrequency to set
-
-