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 theEcodFactoryclass. 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 classEcodInstallation.EcodParser
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_VERSIONstatic StringDOMAINS_PATHstatic PatternECOD_REstatic StringECOD_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 voidclear()Clears all domains, requiring the file to be reparsed for subsequent accessesvoidensureDomainsFileInstalled()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 domainsStringgetCacheLocation()Get the location of the cache directory (usually set to the PDB_CACHE_DIR property).EcodDomaingetDomainsById(String ecodId)Get a particular ECOD domain by the domain ID (e.g.List<EcodDomain>getDomainsForPdb(String pdbId)public EcodInstallation(String cacheLocation) { this( cacheLocation, DEFAULT_VERSION ); } /** Get a list of all ECOD domains for a particular PDB IDIntegergetUpdateFrequency()The expected ECOD update frequency determines whether the version "latest" should be re-downloadedStringgetUrl()Get the top-level ECOD server URL.StringgetVersion()Return the ECOD version, as parsed from the file.static voidmain(String[] args)voidsetCacheLocation(String cacheLocation)Set an alternate download location for filesvoidsetUpdateFrequency(Integer updateFrequency)The "latest" version will be re-downloaded if it is older thangetUpdateFrequency()days.voidsetUrl(String url)Specify a different mirror for the ECOD server.StringtoString()
-
-
-
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 pdbId) throws IOException
public EcodInstallation(String cacheLocation) { this( cacheLocation, DEFAULT_VERSION ); } /** Get a list of all ECOD domains for a particular PDB ID- Specified by:
getDomainsForPdbin interfaceEcodDatabase- Parameters:
pdbId-- 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:
filterByHierarchyin 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:
getDomainsByIdin interfaceEcodDatabase- Parameters:
ecodId-- Returns:
- Throws:
IOException
-
getAllDomains
public List<EcodDomain> getAllDomains() throws IOException
Get all ECOD domains- Specified by:
getAllDomainsin 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:
getVersionin 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
-
-