your web services to corresponding RESTful services. Contact us with any questions
RCSB PDB - SOAP Web Services:
Documentation
Software developers can now write tools to communicate with the RCSB PDB resources using the SOAP framework .
RCSB PDB Web Services JAVA API
The RCSB PDB Web Services description language file (WSDL) is available at: http://www.rcsb.org/pdb/services/pdbws?wsdl. The methods provided by the SOAP API are documented here (JavaDoc ).
org.pdb.ws.general
Interface PdbWebService
- All Superinterfaces:
- Remote
-
public interface PdbWebService
-
extends Remote
The Interface for the RCSB PDB WebService.
A number of different functions are provided. The most important one is the runXmlQuery(java.lang.String), which allows to run any of the RCSB advanced queries via SOAP.
Method Summary |
|
|---|---|
String
|
blastPDB
(String sequence,
double eCutOff,
String matrix,
String outputFormat)
BLASTs the given sequence against the sequences in the RCSB PDB and returns the output. |
String
|
blastPDB
(String structureId,
String chainId,
double eCutOff,
String matrix,
String outputFormat)
BLASTs the sequence of the given chain against the sequences in the RCSB PDB and returns the output |
String
|
blastQueryXml
(String sequence,
double eCutOff)
BLASTs the given sequence against the sequences in the RCSB PDB and returns the output as XML |
String
|
blastStructureIdQueryXml
(String structureId,
String chainId,
double eCutOff)
BLASTs the sequence of the given chain against the sequences in the RCSB PDB and returns the output as XML |
String[]
|
fastaQuery(String sequence,
double eCutOff)
Runs FASTa against the given sequence and returns an array of matching PDB IDs |
String[]
|
fastaStructureIdQuery
(String structureId,
String chainId,
double eCutOff)
Runs FASTa against the sequence of the given chain and returns an array of matching PDB IDs |
Atom_siteWS
|
getAtomSite
(String structureId)
Returns the first atom site object for a structure. |
Atom_siteWS[]
|
getAtomSites(String structureId)
Returns the atom site objects for a structure. |
int
|
getChainLength(String structureId,
String chainId)
Finds the length of the given chain. |
String[]
|
getChains(String structureId)
Finds all the chain identifiers for a given structure. |
String
|
getCifChain(String structureId,
String chainId)
Converts author-assigned chain identifiers into their corrected (mmCIF) equivalents. |
int
|
getCifChainLength(String structureId,
String chainId)
|
String[]
|
getCifChains(String structureId)
Finds all the mmCIF chain identifiers for a given structure. |
int
|
getCifResidue(String structureId,
String chainId,
String residueId)
Converts an author-assigned residue identifier into its corrected (mmCIF) equivalent. |
String[]
|
getCurrentPdbIds()
Finds all the PDB Identifiers (aka PDB IDs) that are "current" structures - not obsolete, models, etc. |
String[]
|
getDbRefIds(String in0,
String in1,
String in2)
|
String
|
getDisorder(String in0,
String in1)
|
DomainFragmentWS[]
|
getDomainFragments(String structureId,
String chainId,
String method)
Find all structural protein domain fragments for a given structureId |
String[]
|
getEcNums()
Finds all the Enzyme Classification numbers associated with all PDB strucutures |
String[]
|
getEcNumsForStructures(String[] structureIds)
Finds all the Enzyme Classification numbers associated with the given PDB strucutures. |
int[]
|
getEntities(String structureId)
Finds the mmCIF entity IDs for a given structure |
String[]
|
getGenomeDetails()
Finds genome details for all PDB structures |
String
|
getIdStatus(String structureId)
Finds the status of the given structure - one of CURRENT, OBSOLETE, UNRELEASED, MODEL, or UNKNOWN |
String
|
getKabschSander(String structureId,
String chainId)
Finds secondary structure for the given chain |
String[]
|
getObsoletePdbIds()
Gets the list of obsolete PDB ids |
String
|
getPdbChain(String in0,
String in1)
Finds the length of the given chain, where the chain identifier is the mmCIF version. |
String
|
getPrimaryCitationTitle(String structureId)
For structures with a primary citation, will find the title of the citation |
String[]
|
getPubmedIdForAllStructures()
Finds all the Pubmed IDs associated with PDB structures |
String
|
getPubmedIdForStructure(String structureId)
Finds a Pubmed ID for the given structure. |
String[]
|
getReleaseDates(String[] structureIds)
Finds the release dates for the given structures |
String
|
getSequenceForStructureAndChain(String structureId,
String chainId)
Finds the sequence for the given chain |
SnpInfo[]
|
getSnpInfo(String structureId)
Get SnpInfo for a PDB id |
String[]
|
getSnps()
Return all PDBs that have SNPs in the database. |
String
|
getSpaceGroupForStructure(String structureId)
Finds the symmetry.space_group_name_H_M field for a structure (see mmCIF dictionary for more info) |
String[]
|
getStructureGenomicsPdbIds()
Finds info for structural genomics structures |
String[]
|
getSwissProtIds()
Returns the mapping from PDB and chain ID to UniProtKB entries. |
int
|
isStructureIdObsolete(String structureId)
Determines if the given structure is obsolete |
String[]
|
keywordQuery(String keywordExpression,
boolean exactMatch,
boolean restrictToAuthors)
Runs a keyword query, like what would happen if you entered a search phrase in the search box at the top of the RCSB PDB web site. |
String[]
|
pubmedAbstractQuery(String keywordExpression)
Runs a keyword query, like what would happen if you entered a search phrase in the search box on the Pubmed Abstract page (e.g., http://www.pdb.org/pdb/explore/pubmed.do?structureId=4HHB) |
String[]
|
runXmlQuery(String xmlQuery)
This is the most important web service call provided by RCSB-PDB, since it allows to access all of the advanced search functionality via a web service. |
Method Detail |
|---|
runXmlQuery
String[] runXmlQuery(String xmlQuery) throws RemoteException
-
This is the most important web service call provided by RCSB-PDB, since it allows to access all of the advanced search functionality via a web service.
Runs any RCSB advanced query. This works by posting the XML representation of an advanced query. The XML representation of a query can be found by pressing the show query details link on the left hand menu.
To generate a query XML, use the RCSB PDB web site to
build a query, then choose the "Show Query Details" link in the left-hand navigation menu.
See also the RESTful web service documentation: /pdb/rest.
-
- Parameters:
xmlQuery- The XML representing a RCSB advanced query.- Returns:
- An array of PDB IDs
- Throws:
RemoteException
blastPDB
String blastPDB(String sequence, double eCutOff, String matrix, String outputFormat) throws RemoteException
- BLASTs the given sequence against the sequences in the RCSB PDB and returns the output
-
- Parameters:
sequence- A protein sequenceeCutOff- See BLAST documentation for detailsmatrix- See BLAST documentation for detailsoutputFormat- See BLAST documentation for details- Returns:
- The output of the BLAST program
- Throws:
-
RemoteException
blastPDB
String blastPDB(String structureId, String chainId, double eCutOff, String matrix, String outputFormat) throws RemoteException
- BLASTs the sequence of the given chain against the sequences in the RCSB PDB and returns the output
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain IdentifiereCutOff- See BLAST documentation for detailsmatrix- See BLAST documentation for detailsoutputFormat- See BLAST documentation for details- Returns:
- The output of the BLAST program
- Throws:
-
RemoteException
blastQueryXml
String blastQueryXml(String sequence, double eCutOff) throws RemoteException
- BLASTs the given sequence against the sequences in the RCSB PDB and returns the output as XML
-
- Parameters:
sequence- A protein sequenceeCutOff- See BLAST documentation for details- Returns:
- The output of the BLAST program as XML
- Throws:
-
RemoteException
blastStructureIdQueryXml
String blastStructureIdQueryXml(String structureId, String chainId, double eCutOff) throws RemoteException
- BLASTs the sequence of the given chain against the sequences in the RCSB PDB and returns the output as XML
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain IdentifiereCutOff- See BLAST documentation for details- Returns:
- The output of the BLAST program as XML
- Throws:
-
RemoteException
fastaQuery
String[] fastaQuery(String sequence, double eCutOff) throws RemoteException
- Runs FASTa against the given sequence and returns an array of matching PDB IDs
-
- Parameters:
sequence- A protein sequenceeCutOff- See FASTa documentation for details- Returns:
- An array of matching PDB Structure Identifiers (aka PDB IDs)
- Throws:
-
RemoteException
fastaStructureIdQuery
String[] fastaStructureIdQuery(String structureId, String chainId, double eCutOff) throws RemoteException
- Runs FASTa against the sequence of the given chain and returns an array of matching PDB IDs
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain IdentifiereCutOff- See FASTa documentation for details- Returns:
- An array of matching PDB Structure Identifiers (aka PDB IDs)
- Throws:
-
RemoteException
getAtomSite
Atom_siteWS getAtomSite(String structureId) throws RemoteException
- Returns the first atom site object for a structure. Not really useful except for testing.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- An atom site object. Probably not the optimal representation of an atom site - it has 86 fields!
- Throws:
-
RemoteException
getAtomSites
Atom_siteWS[] getAtomSites(String structureId) throws RemoteException
- Returns the atom site objects for a structure.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- An array of atom site objects. Probably not the optimal representation of an atom site - it has 86 fields!
- Throws:
-
RemoteException
getChainLength
int getChainLength(String structureId, String chainId) throws RemoteException
- Finds the length of the given chain.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain Identifier- Returns:
- The length of the given chain
- Throws:
-
RemoteException
getChains
String[] getChains(String structureId) throws RemoteException
- Finds all the chain identifiers for a given structure.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- The author-assigned chain identifiers for the given structure
- Throws:
-
RemoteException
getCifChain
String getCifChain(String structureId, String chainId) throws RemoteException
- Converts author-assigned chain identifiers into their corrected (mmCIF) equivalents.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An Author-Assigned Chain Identifier- Returns:
- The chain identifier (mmCIF) of the given chain
- Throws:
-
RemoteException
getPdbChain
String getPdbChain(String in0, String in1) throws RemoteException
- Finds the length of the given chain, where the chain identifier is the mmCIF version.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An mmCIF Chain Identifier- Returns:
- The length of the given chain
- Throws:
-
RemoteException
getCifChainLength
int getCifChainLength(String structureId, String chainId) throws RemoteException
-
- Throws:
-
RemoteException
getCifChains
String[] getCifChains(String structureId) throws RemoteException
- Finds all the mmCIF chain identifiers for a given structure.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- The mmCIF chain identifiers for the given structure. Note that these are NOT the author-assigned identifiers, although often they can match. For an example, check out the mmCIF file for 1AEW.
- Throws:
-
RemoteException
getCifResidue
int getCifResidue(String structureId, String chainId, String residueId) throws RemoteException
- Converts an author-assigned residue identifier into its corrected (mmCIF) equivalent.
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain IdentifierresidueId- An author-assigned Residue Identifier including insertion code (if present)- Returns:
- Throws:
-
RemoteException
getCurrentPdbIds
String[] getCurrentPdbIds() throws RemoteException
- Finds all the PDB Identifiers (aka PDB IDs) that are "current" structures - not obsolete, models, etc.
-
- Returns:
- An array of current PDB IDs
- Throws:
-
RemoteException
getDomainFragments
DomainFragmentWS[] getDomainFragments(String structureId, String chainId, String method) throws RemoteException
- Find all structural protein domain fragments for a given structureId
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain Identifier (may be null if domain fragments of all chains are required)method- A domain prediction method (one of 'SCOP', 'CATH', 'dp' and 'pdp' -- may be null if all are required)- Returns:
- an array of DomainFramgentWS objects.
- Throws:
RemoteException- if the supplied PDB id is null, or if there was an internal server error
getEcNums
String[] getEcNums() throws RemoteException
- Finds all the Enzyme Classification numbers associated with all PDB strucutures
-
- Returns:
- An array of strings, where each string contains the PDB ID, the author-assigned chain ID, and the EC number, separated by tabs.
- Throws:
-
RemoteException
getEcNumsForStructures
String[] getEcNumsForStructures(String[] structureIds) throws RemoteException
- Finds all the Enzyme Classification numbers associated with the given PDB strucutures.
-
- Parameters:
structureIds- An array of PDB IDs- Returns:
- An array of strings, where each string contains the PDB ID, the author-assigned chain ID, and the EC number, separated by tabs.
- Throws:
-
RemoteException
getEntities
int[] getEntities(String structureId) throws RemoteException
- Finds the mmCIF entity IDs for a given structure
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- an array of entity IDs
- Throws:
-
RemoteException
getGenomeDetails
String[] getGenomeDetails() throws RemoteException
- Finds genome details for all PDB structures
-
- Returns:
- An array of strings, where each string contains the PDB ID, the author-assigned chain ID, the locus ID, and the OMIM number, separated by tabs.
- Throws:
-
RemoteException
getIdStatus
String getIdStatus(String structureId) throws RemoteException
- Finds the status of the given structure - one of CURRENT, OBSOLETE, UNRELEASED, MODEL, or UNKNOWN
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- one of CURRENT, OBSOLETE, UNRELEASED, MODEL, or UNKNOWN
- Throws:
-
RemoteException
getKabschSander
String getKabschSander(String structureId, String chainId) throws RemoteException
- Finds secondary structure for the given chain
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain Identifier- Returns:
- the Kabsch-Sander secondary structure string
- Throws:
-
RemoteException
getDisorder
String getDisorder(String in0, String in1) throws RemoteException
-
- Throws:
-
RemoteException
getDbRefIds
String[] getDbRefIds(String in0, String in1, String in2) throws RemoteException
-
- Throws:
-
RemoteException
getObsoletePdbIds
String[] getObsoletePdbIds() throws RemoteException
- Gets the list of obsolete PDB ids
-
- Returns:
- An array of PDB IDs for all obsolete structures.
- Throws:
-
RemoteException
getPrimaryCitationTitle
String getPrimaryCitationTitle(String structureId) throws RemoteException
- For structures with a primary citation, will find the title of the citation
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- The title of the primary citation
- Throws:
-
RemoteException
getPubmedIdForAllStructures
String[] getPubmedIdForAllStructures() throws RemoteException
- Finds all the Pubmed IDs associated with PDB structures
-
- Returns:
- An array of strings, where each string contains the PDB ID and the Pubmed ID, separated by a comma
- Throws:
-
RemoteException
getPubmedIdForStructure
String getPubmedIdForStructure(String structureId) throws RemoteException
- Finds a Pubmed ID for the given structure. Not very useful for structures with multiple associated Pubmed IDs.
-
- Parameters:
structureId-- Returns:
- A Pubmed ID
- Throws:
-
RemoteException
getReleaseDates
String[] getReleaseDates(String[] structureIds) throws RemoteException
- Finds the release dates for the given structures
-
- Parameters:
structureIds- An array of PDB IDs- Returns:
- An array of strings, where each string contains the PDB ID and the release date, separated by a tab
- Throws:
-
RemoteException
getSequenceForStructureAndChain
String getSequenceForStructureAndChain(String structureId, String chainId) throws RemoteException
- Finds the sequence for the given chain
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)chainId- An author-assigned Chain Identifier- Returns:
- A sequence
- Throws:
-
RemoteException
getSnpInfo
SnpInfo[] getSnpInfo(String structureId) throws RemoteException
- Get SnpInfo for a PDB id
-
- Parameters:
structureId-- Returns:
- Throws:
-
RemoteException
getSnps
String[] getSnps() throws RemoteException
- Return all PDBs that have SNPs in the database. (coming from LS-SNP)
-
- Returns:
- Throws:
-
RemoteException
getSpaceGroupForStructure
String getSpaceGroupForStructure(String structureId) throws RemoteException
- Finds the symmetry.space_group_name_H_M field for a structure (see mmCIF dictionary for more info)
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- A space group (see mmCIF dictionary for more info)
- Throws:
-
RemoteException
getStructureGenomicsPdbIds
String[] getStructureGenomicsPdbIds() throws RemoteException
- Finds info for structural genomics structures
-
- Returns:
- An array of strings where each string contains the target_id, database_name, and database_id separated by tabs.
- Throws:
-
RemoteException
getSwissProtIds
String[] getSwissProtIds() throws RemoteException
- Returns the mapping from PDB and chain ID to UniProtKB entries.
-
- Returns:
- the mapping from PDB and chain ID to UniProtKB codes.
- Throws:
-
RemoteException
isStructureIdObsolete
int isStructureIdObsolete(String structureId) throws RemoteException
- Determines if the given structure is obsolete
-
- Parameters:
structureId- A PDB Structure Identifier (aka PDB ID)- Returns:
- 1 if obsolete, 0 if not
- Throws:
-
RemoteException
keywordQuery
String[] keywordQuery(String keywordExpression, boolean exactMatch, boolean restrictToAuthors) throws RemoteException
- Runs a keyword query, like what would happen if you entered a search phrase in the search box at the top of the RCSB PDB web site.
-
- Parameters:
keywordExpression- A search phrase - uses lucene syntaxexactMatch- determines if lucene should do an exact word match or notrestrictToAuthors- if true then only the author fields will be searched- Returns:
- An array of PDB IDs
- Throws:
-
RemoteException
pubmedAbstractQuery
String[] pubmedAbstractQuery(String keywordExpression) throws RemoteException
- Runs a keyword query, like what would happen if you entered a search phrase in the search box on the Pubmed Abstract page (e.g., http://www.pdb.org/pdb/explore/pubmed.do?structureId=4HHB)
-
- Parameters:
keywordExpression- A search phrase - uses lucene syntax- Returns:
- An array of PDB IDs
- Throws:
-
RemoteException
Web service client examples
An introduction how to write Web Service clients using the RCSB PDB SOAP services is available here (Java).
Use the Axis framework to generate the web service client code using the following command line:
For a more detailed introduction into how to develop web services using the RCSB soap interface see the developing web services page.
Then you can run e.g. the code below to execute a BLAST search against PDB:
The following is an client that performs a Blast search on the PDB database.
Example: Blast the PDB using a protein sequence
- Install the SOAPpy library
- Install the fconst library
For Python web services development and library download see: http://pywebsvcs.sourceforge.net/
The following is a python script that allows you to run blast on the PDB server and return HTML results.
Example of C code using the gSOAP toolkit: http://sourceforge.net/projects/gsoap2
RESTful
Documentation is available for RCSB PDB RESTful Web Services.

