spacer
News
July 2011: New features and databases

We have implemented searching by protein fragments using a homology search (BLAST). In addition queries can be mapped against subsections of Ensembl Genomes corresponding to various taxa. Support for mapping against geneIDs present in Ensembl and Uniprot has also been added.

January 2009: Addition of SEGUIDs

We have implemented the SEGUID algorithm to generate sequence-based unique identifiers, as described in Babnigg, 2006.

January 2009: New databases and bugfixes

We have added the KIPO database as well as several ENSEMBL genome databases to the mapping algorithm. We have also improved the PICR codebase to make it more robust. PICR has been the victim of its own success in recent months and has had problems coping with the demands put on the web application. These problems should now be resolved.

July 2007: Updated CSV and XLS formats

The CSV and XLS output formats have been improved to be more usable and to fit into size restrictions imposed by the Microsoft Excel format. If you are submitting large data sets to be mapped, we recommend choosing the XLS format for batch downloads.

June 2007: Added functionality

We have added a new output format for mapping results. You may now save your results as a Microsoft Excel workbook (XLS file). This fine can be opened in MS Excel or Open Office. This is still experimental, so please contact us if you are experiencing problems.

June 2007: Added functionality

You may now submit an unilmited number of protein identifiers or sequences. Please be aware that if you submit more than 500 items at one time, you will be prompted to enter your email address and a notification will be emailed to you when your job is done. You will then be able to download a CSV file containing your results.

spacer

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

WSDL file: http://www.ebi.ac.uk/Tools/picr/service?wsdl

Overview:

Services
AccessionMapperService
Bindings
AccessionMapperBinding
Port types
AccessionMapperInterface
Messages
getUPIForAccessionRequest, getUPIForAccessionResponse, getUPIForSequenceRequest, getUPIForSequenceResponse, getUPIForBlastSequence, getUPIForBlastSequenceResponse, getMappedDatabaseNamesRequest, getMappedDatabaseNamesResponse,

Services
Name Documentation
AccessionMapperService
N/A


Service : AccessionMapperService
Port Name Binding Address Extensibility Documentation
AccessionMapperPort AccessionMapperBinding <wsdlsoap:address location="http://www.ebi.ac.uk:80/Tools/picr/service"/>
N/A


Binding : AccessionMapperBinding
Port Type AccessionMapperInterface
Extensibility <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
Operations getUPIForSequence, getUPIForAccession, getMappedDatabaseNames,


spacer
spacer