PICR - Protein Identifier Cross-Reference Service
The WSDL file for the webservice is available at
http://www.ebi.ac.uk/Tools/picr/service?wsdl
.
PICR is available to query via web service. It is built using JAX-WS 2.1 and all examples
below assume that you have JAX-WS 2.1 installed. It can be downloaded from
https://jax-ws.dev.java.net/2.1.7/.
The WSDL complies to the latest specifications so there should be no problem using any
implementation to connect to the service. To generate client classes for Java using JAX-WS,
use the following ant script:
<project name="PICR client" default="client" basedir=".">
<path id="jaxws.classpath">
<pathelement location="${java.home}/../lib/tools.jar"/>
<fileset dir="${javaws.home.lib}">
<include name="*.jar"/>
<exclude name="j2ee.jar"/>
</fileset>
</path>
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
<classpath refid="jaxws.classpath"/>
</taskdef>
<target name="client">
<wsimport
debug="true"
verbose="true"
keep="true"
extension="false"
destdir="${build}"
sourcedestdir="${src}"
package="uk.ac.ebi.picr"
wsdl="http://www.ebi.ac.uk/Tools/picr/service?wsdl">
</wsimport>
</target>
</project>
This assumes that the variables ${java.home}, ${javaws.home.lib},
${build} and ${src} are properly set or replaced with something
appropriate for your build environment. The build process should produce the folowing output:
[wsimport] generating code...
[wsimport]
[wsimport] uk/ac/ebi/picr/AccessionMapperInterface.java
[wsimport] uk/ac/ebi/picr/AccessionMapperService.java
[wsimport] uk/ac/ebi/picr/BlastParameter.java
[wsimport] uk/ac/ebi/picr/CrossReference.java
[wsimport] uk/ac/ebi/picr/GetMappedDatabaseNames.java
[wsimport] uk/ac/ebi/picr/GetMappedDatabaseNamesResponse.java
[wsimport] uk/ac/ebi/picr/GetUPIForAccession.java
[wsimport] uk/ac/ebi/picr/GetUPIForAccessionResponse.java
[wsimport] uk/ac/ebi/picr/GetUPIForBlastSequence.java
[wsimport] uk/ac/ebi/picr/GetUPIForBlastSequenceResponse.java
[wsimport] uk/ac/ebi/picr/GetUPIForSequence.java
[wsimport] uk/ac/ebi/picr/GetUPIForSequenceResponse.java
[wsimport] uk/ac/ebi/picr/ObjectFactory.java
[wsimport] uk/ac/ebi/picr/UPEntry.java
[wsimport] uk/ac/ebi/picr/package-info.java
[wsimport]
[wsimport] compiling code...
The source files will have been created in the location specified by the ${src} variable.
Compiled class files will have been created in the location specified by ${build}. The source
files are now ready to be used in your projects. A short code example follows:
import uk.ac.ebi.picr.*;
[...]
AccessionMapperService service = new AccessionMapperService();
AccessionMapperInterface port;
port = service.getAccessionMapperPort();
//the accession you wish to map
String queryID = "P29375";
//the version of the accession
//can be null or a number
String queryIdVersion = null;
//a list of all databases to map to
List<String> searchDB = new ArrayList<String>();
searchDB.add("SWISSPROT");
searchDB.add("TREMBL");
//the NEWT taxonomy ID to limit the mappings to
//can be null or a number. Do not specify 0 for null.
String taxonID = "9606"; //H. Sapiens
//true to return only active mappings
//false to return all mappings, including inactive ones
boolean activeOnly = true;
List<UPEntry> uPEntries = port.getUPIForAccession(queryID, queryIdVersion, searchDB, taxonID, activeOnly);
//there might be multiple UPEntries as the submitted accession
//might be associated with more than one sequence
for (UPEntry uPEntry : uPEntries) {
//the identical cross-references contain all mappings
//that fit the search parameters and match with 100%
//sequence identity to the submitted accession
if (uPEntry.getIdenticalCrossReferences() != null) {
for (CrossReference iRef : uPEntry.getIdenticalCrossReferences()) {
String matchAcc = iRef.getAccession();
String matchDB = iRef.getDatabaseName();
Integer taxID = Integer.parseInt(iRef.getTaxonId());
// do something with them ...
}
}
//the logical cross-references contain all mappings
//that fit the search parameters and come from the UniprotKB
//They are not guaranteed to have 100% sequence identity
if (uPEntry.getLogicalCrossReferences() != null) {
for (CrossReference iRef : uPEntry.getLogicalCrossReferences()) {
String matchAcc = iRef.getAccession();
String matchDB = iRef.getDatabaseName();
Integer taxID = Integer.parseInt(iRef.getTaxonId());
// do something with them ...
}
}
}
It is possible to obtain a list of all databases covered by PICR using the
getMappedDatabaseNames method of the web service. The list currently
includes:
EG_BACTERIA
EG_FUNGI
EG_METAZOA
EG_PLANTS
EG_PROTISTS
EMBL
EMBLWGS
EMBL_CON
EMBL_TPA
EMBL_TPX
ENSEMBL_ARMADILLO
ENSEMBL_BUSHBABY
ENSEMBL_CAT
ENSEMBL_CBRIGGSAE
ENSEMBL_CELEGANS
ENSEMBL_CHICKEN
ENSEMBL_CHIMP
ENSEMBL_CIONA
ENSEMBL_CIONA_SAVIGNYI
ENSEMBL_COMMON_SHREW
ENSEMBL_COW
ENSEMBL_DOG
ENSEMBL_D_ORDII
ENSEMBL_ELEPHANT
|
ENSEMBL_ERINACEUS
ENSEMBL_FLY
ENSEMBL_FUGU
ENSEMBL_GUINEA_PIG
ENSEMBL_G_PANDA
ENSEMBL_HEDGEHOG
ENSEMBL_HONEYBEE
ENSEMBL_HUMAN
ENSEMBL_MACROPUS
ENSEMBL_MARMOSET
ENSEMBL_MEDAKA
ENSEMBL_MICROBAT
ENSEMBL_MOSQUITO
ENSEMBL_MOUSE
ENSEMBL_MOUSE_LEMUR
ENSEMBL_OPOSSUM
ENSEMBL_PIG
ENSEMBL_PIKA
ENSEMBL_PLATYPUS
ENSEMBL_P_CAPENSIS
ENSEMBL_P_VAMPYRUS
ENSEMBL_RABBIT
ENSEMBL_RAT
|
ENSEMBL_RHESUS_MACAQUE
ENSEMBL_SQUIRREL
ENSEMBL_STICKLEBACK
ENSEMBL_S_CEREVISIAE
ENSEMBL_TETRAODON
ENSEMBL_TREE_SHREW
ENSEMBL_TURKEY
ENSEMBL_T_SYRICHTA
ENSEMBL_T_TRUNCATUS
ENSEMBL_V_PACOS
ENSEMBL_XENOPUS
ENSEMBL_YF_MOSQUITO
ENSEMBL_ZEBRAFISH
EPO
FLYBASE
H_INV
IPI
JPO
KIPO
PDB
PIR
PIRARC
PRF
|
REFSEQ
REFSEQ_HUMAN
REFSEQ_MOUSE
REFSEQ_RAT
REFSEQ_ZEBRAFISH
SEGUID
SGD
SWISSPROT
SWISSPROT_ID
SWISSPROT_VARSPLIC
TAIR_ARABIDOPSIS
TREMBL
TREMBL_VARSPLIC
TROME_CE
TROME_DM
TROME_HS
TROME_MM
UNIMES
USPTO
VEGA_DOG
VEGA_HUMAN
VEGA_MOUSE
VEGA_ZEBRAFISH
WORMBASE
|
Java code examples are available to download here:
http://www.ebi.ac.uk/Tools/picr/client/picr_demo.zip
Overview:
| Services |
| AccessionMapperService |
|
| Bindings |
| AccessionMapperBinding |
|
| Port types |
| AccessionMapperInterface |
|
| Messages |
| getUPIForAccessionRequest,
getUPIForAccessionResponse,
getUPIForSequenceRequest,
getUPIForSequenceResponse,
getUPIForBlastSequence,
getUPIForBlastSequenceResponse,
getMappedDatabaseNamesRequest,
getMappedDatabaseNamesResponse,
|
|
| Services |
| Name |
Documentation |
| AccessionMapperService |
|
| Service : AccessionMapperService |
| Port Name |
Binding |
Address Extensibility |
Documentation |
| AccessionMapperPort |
AccessionMapperBinding |
<wsdlsoap:address location="http://www.ebi.ac.uk:80/Tools/picr/service"/> |
|
| Binding : AccessionMapperBinding |
| Port Type |
AccessionMapperInterface |
| Extensibility |
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
| Operations |
getUPIForSequence, getUPIForAccession, getMappedDatabaseNames, |
|