Line 7: | Line 7: | ||
The following statements refer to all methods and description given below: | The following statements refer to all methods and description given below: | ||
- | #all GETs are made to the base URL "http:// | + | #all GETs are made to the base URL "http://rest.thegpm.org/1"; |
#all protein and peptide sequences are expressed in [[Amino acid symbols|single letter code]]; | #all protein and peptide sequences are expressed in [[Amino acid symbols|single letter code]]; | ||
#protein accession numbers use the same format as normally used in GPMDB; and | #protein accession numbers use the same format as normally used in GPMDB; and | ||
Line 23: | Line 23: | ||
Example: find help information through the interface | Example: find help information through the interface | ||
- | [http:// | + | [http://rest.thegpm.org/1/interface/help http://rest.thegpm.org/1/interface/help] |
===GET /interface/version => [ARRAY]=== | ===GET /interface/version => [ARRAY]=== | ||
Line 32: | Line 32: | ||
Example: find the current REST interface version number | Example: find the current REST interface version number | ||
- | [http:// | + | [http://rest.thegpm.org/1/interface/version http://rest.thegpm.org/1/interface/version] |
==/model/ services== | ==/model/ services== | ||
Line 45: | Line 45: | ||
Example: list sample, analytical parameters and result values for the data set GPM10100159682 | Example: list sample, analytical parameters and result values for the data set GPM10100159682 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/metadata/gpm=GPM10100159682 http://rest.thegpm.org/1/model/metadata/gpm=GPM10100159682] |
===GET /model/proteins/gpm=GPM => [ARRAY]=== | ===GET /model/proteins/gpm=GPM => [ARRAY]=== | ||
Line 54: | Line 54: | ||
Example: list proteins found in GPM10100159682 | Example: list proteins found in GPM10100159682 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/proteins/gpm=GPM10100159682 http://rest.thegpm.org/1/model/proteins/gpm=GPM10100159682] |
===GET /model/protein_modifications/gpm=GPM&acc=ACC => [ARRAY]=== | ===GET /model/protein_modifications/gpm=GPM&acc=ACC => [ARRAY]=== | ||
Line 64: | Line 64: | ||
Example: list residue modifications found in GPM10100159682 for the protein ENSP00000324804 | Example: list residue modifications found in GPM10100159682 for the protein ENSP00000324804 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/protein_modifications/gpm=GPM10100159682&acc=ENSP00000324804 http://rest.thegpm.org/1/model/protein_modifications/gpm=GPM10100159682&acc=ENSP00000324804] |
===GET /model/protein_peptides/gpm=GPM&acc=ACC => {OBJECT}=== | ===GET /model/protein_peptides/gpm=GPM&acc=ACC => {OBJECT}=== | ||
Line 74: | Line 74: | ||
Example: list peptides found in GPM10100159682 for the protein ENSP00000324804 | Example: list peptides found in GPM10100159682 for the protein ENSP00000324804 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/protein_peptides/gpm=GPM10100159682&acc=ENSP00000324804 http://rest.thegpm.org/1/model/protein_peptides/gpm=GPM10100159682&acc=ENSP00000324804] |
===GET /model/protein_polymorphisms/gpm=GPM&acc=ACC => [ARRAY]=== | ===GET /model/protein_polymorphisms/gpm=GPM&acc=ACC => [ARRAY]=== | ||
Line 84: | Line 84: | ||
Example: list residue polymorphisms found in GPM10100159682 for the protein ENSP00000331514 | Example: list residue polymorphisms found in GPM10100159682 for the protein ENSP00000331514 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/protein_polymorphisms/gpm=GPM10100159682&acc=ENSP00000331514 http://rest.thegpm.org/1/model/protein_polymorphisms/gpm=GPM10100159682&acc=ENSP00000331514] |
===GET /model/protein_sequence/gpm=GPM&acc=ACC => [ARRAY]=== | ===GET /model/protein_sequence/gpm=GPM&acc=ACC => [ARRAY]=== | ||
Line 94: | Line 94: | ||
Example: get the protein sequence of ENSP00000331514 found in GPM10100159682 | Example: get the protein sequence of ENSP00000331514 found in GPM10100159682 | ||
- | [http:// | + | [http://rest.thegpm.org/1/model/protein_sequence/gpm=GPM10100159682&acc=ENSP00000331514 http://rest.thegpm.org/1/model/protein_sequence/gpm=GPM10100159682&acc=ENSP00000331514] |
Line 109: | Line 109: | ||
Example: retrieve the accession numbers and observations of SPSSVEPVADMLMGLFFR | Example: retrieve the accession numbers and observations of SPSSVEPVADMLMGLFFR | ||
- | [http:// | + | [http://rest.thegpm.org/1/peptide/accessions/seq=SPSSVEPVADMLMGLFFR http://rest.thegpm.org/1/peptide/accessions/seq=SPSSVEPVADMLMGLFFR]. |
===GET /peptide/count/seq=SEQUENCE => [ARRAY]=== | ===GET /peptide/count/seq=SEQUENCE => [ARRAY]=== | ||
Line 118: | Line 118: | ||
Example: retrieve the total observations of SPSSVEPVADMLMGLFFR | Example: retrieve the total observations of SPSSVEPVADMLMGLFFR | ||
- | [http:// | + | [http://rest.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR http://rest.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR]. |
===GET /peptide/count_z/seq=SEQUENCE => {OBJECT}=== | ===GET /peptide/count_z/seq=SEQUENCE => {OBJECT}=== | ||
Line 127: | Line 127: | ||
Example: retrieve the total observations of SPSSVEPVADMLMGLFFR by parent ion charge | Example: retrieve the total observations of SPSSVEPVADMLMGLFFR by parent ion charge | ||
- | [http:// | + | [http://rest.thegpm.org/1/peptide/count_z/seq=SPSSVEPVADMLMGLFFR http://rest.thegpm.org/1/peptide/count_z/seq=SPSSVEPVADMLMGLFFR]. |
==/protein/ services== | ==/protein/ services== | ||
Line 142: | Line 142: | ||
Example: retrieve the lowest E value for ENSMUSP00000026459 | Example: retrieve the lowest E value for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/best_e/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/best_e/acc=ENSMUSP00000026459]. |
===GET /protein/count/acc=ACCESSION => [ARRAY]=== | ===GET /protein/count/acc=ACCESSION => [ARRAY]=== | ||
Line 151: | Line 151: | ||
Example: retrieve the number of time ENSMUSP00000026459 has been observed | Example: retrieve the number of time ENSMUSP00000026459 has been observed | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/count/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/count/acc=ENSMUSP00000026459] |
===GET /protein/description/acc=ACCESSION => [ARRAY]=== | ===GET /protein/description/acc=ACCESSION => [ARRAY]=== | ||
Line 160: | Line 160: | ||
Example: retrieve a text description of ENSMUSP00000026459 | Example: retrieve a text description of ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/description/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/description/acc=ENSMUSP00000026459] |
===GET /protein/evidence/acc=ACCESSION => {OBJECT}=== | ===GET /protein/evidence/acc=ACCESSION => {OBJECT}=== | ||
Line 169: | Line 169: | ||
Example: retrieve the evidence codes for ENSMUSP00000026459 | Example: retrieve the evidence codes for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/evidence/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/evidence/acc=ENSMUSP00000026459] |
===GET /protein/keyword/key=KEYWORD(&filter=FILTER) => {OBJECT}=== | ===GET /protein/keyword/key=KEYWORD(&filter=FILTER) => {OBJECT}=== | ||
Line 179: | Line 179: | ||
Example: list human proteins with the keyword "actinin" | Example: list human proteins with the keyword "actinin" | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/keyword/key=actinin http://rest.thegpm.org/1/protein/keyword/key=actinin] |
===GET /protein/modifications/acc=ACCESSION&mod=MODMASS&res=LIST&maxe=MAXEXPECT => {OBJECT}=== | ===GET /protein/modifications/acc=ACCESSION&mod=MODMASS&res=LIST&maxe=MAXEXPECT => {OBJECT}=== | ||
Line 191: | Line 191: | ||
Example: retrieve the phosphorylated S, T or Y residues for YKL112W | Example: retrieve the phosphorylated S, T or Y residues for YKL112W | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/modifications/acc=YKL112W&mod=80&res=STY&maxe=-2.0 http://rest.thegpm.org/1/protein/modifications/acc=YKL112W&mod=80&res=STY&maxe=-2.0] |
Example: retrieve all acetylated residues for ENSP00000281111 | Example: retrieve all acetylated residues for ENSP00000281111 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0 http://rest.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0] |
===GET /protein/omega/acc=ACCESSION&seq=SEQUENCE(,SEQUENCE2,...) => {OBJECT}=== | ===GET /protein/omega/acc=ACCESSION&seq=SEQUENCE(,SEQUENCE2,...) => {OBJECT}=== | ||
Line 207: | Line 207: | ||
Example: retrieve the [[Technical Overview, omega display|omega peptide frequencies]] for LDATTVLSR and AAQASAAPK observed for ENSMUSP00000026459 | Example: retrieve the [[Technical Overview, omega display|omega peptide frequencies]] for LDATTVLSR and AAQASAAPK observed for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/omega/acc=ENSMUSP00000026459&seq=LDATTVLSR,AAQASAAPK http://rest.thegpm.org/1/protein/omega/acc=ENSMUSP00000026459&seq=LDATTVLSR,AAQASAAPK] |
===GET /protein/peptide_count/acc=ACCESSION&seq=SEQUENCE => {OBJECT}=== | ===GET /protein/peptide_count/acc=ACCESSION&seq=SEQUENCE => {OBJECT}=== | ||
Line 217: | Line 217: | ||
Example: retrieve the number of times LDATTVLSR was observed for ENSMUSP00000026459 | Example: retrieve the number of times LDATTVLSR was observed for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/peptide_count/acc=ENSMUSP00000026459&seq=LDATTVLSR http://rest.thegpm.org/1/protein/peptide_count/acc=ENSMUSP00000026459&seq=LDATTVLSR] |
===GET /protein/peptide_sequences/acc=ACCESSION => [ARRAY]=== | ===GET /protein/peptide_sequences/acc=ACCESSION => [ARRAY]=== | ||
Line 226: | Line 226: | ||
Example: retrieve the peptide sequences observed for ENSMUSP00000026459 | Example: retrieve the peptide sequences observed for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459] |
===GET /protein/peptides_z/acc=ACCESSION => {OBJECT}=== | ===GET /protein/peptides_z/acc=ACCESSION => {OBJECT}=== | ||
Line 235: | Line 235: | ||
Example: retrieve the number of peptide observations by parent ion charge state for ENSMUSP00000026459 | Example: retrieve the number of peptide observations by parent ion charge state for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/peptides_z/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/peptides_z/acc=ENSMUSP00000026459] |
===GET /protein/peptides_total/acc=ACCESSION => [ARRAY]=== | ===GET /protein/peptides_total/acc=ACCESSION => [ARRAY]=== | ||
Line 244: | Line 244: | ||
Example: retrieve the total number of peptide observations for ENSMUSP00000026459 | Example: retrieve the total number of peptide observations for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/peptides_total/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/peptides_total/acc=ENSMUSP00000026459] |
===GET /protein/polymorphisms/acc=ACCESSION => [ARRAY of OBJECT "string":int]=== | ===GET /protein/polymorphisms/acc=ACCESSION => [ARRAY of OBJECT "string":int]=== | ||
Line 253: | Line 253: | ||
Example: retrieve a summary of amino acid polymorphisms found for ENSMUSP00000026459 | Example: retrieve a summary of amino acid polymorphisms found for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/polymorphisms/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/polymorphisms/acc=ENSMUSP00000026459] |
===GET /protein/sequence/acc=ACCESSION => [ARRAY]=== | ===GET /protein/sequence/acc=ACCESSION => [ARRAY]=== | ||
Line 262: | Line 262: | ||
Example: retrieve the protein sequence for ENSMUSP00000026459 | Example: retrieve the protein sequence for ENSMUSP00000026459 | ||
- | [http:// | + | [http://rest.thegpm.org/1/protein/sequence/acc=ENSMUSP00000026459 http://rest.thegpm.org/1/protein/sequence/acc=ENSMUSP00000026459] |
==Source code== | ==Source code== |
This document is a request for comment on a set of proposed new REST services for GPMDB. The RFC process began on June 11, 2012 and ended on September 10, 2012. This version (1.0) of the interface is complete and adopted.
The purpose of the RFC is to define a set of straightforward REST (REpresentational State Transfer) services to commonly required information based on the data in GPMDB. These services will provide simple, non-SQL methods to extract this information and make it available over the Internet to anyone wishing to use it as part of a network-aware application.
The following statements refer to all methods and description given below:
Interface services give the programmer access to information about the current state of the REST interface.
input: none return: [ARRAY - "string"] a text description of the current REST interface
Example: find help information through the interface
http://rest.thegpm.org/1/interface/help
input: none return: [ARRAY - "string"] the version number of the REST interface
Example: find the current REST interface version number
http://rest.thegpm.org/1/interface/version
Model services give access to information about a calculated model for a particular data set.
input: a GPM model accession number (GPMddddddddddd) return: {OBJECT - "string":{"string":"string"}}} objects containing text descriptions of how, when and what was modeled
Example: list sample, analytical parameters and result values for the data set GPM10100159682
http://rest.thegpm.org/1/model/metadata/gpm=GPM10100159682
input: a GPM model accession number (GPMddddddddddd) return: [ARRAY - "string"} accession numbers for primary proteins in the model
Example: list proteins found in GPM10100159682
http://rest.thegpm.org/1/model/proteins/gpm=GPM10100159682
input: a GPM model accession number (GPMddddddddddd) accession number for the protein of interest (ACC) return: [ARRAY - "string"] all residue modifications assigned to ACC, as specified in RFC GPM-2011.12.14 §2.3.
Example: list residue modifications found in GPM10100159682 for the protein ENSP00000324804
http://rest.thegpm.org/1/model/protein_modifications/gpm=GPM10100159682&acc=ENSP00000324804
input: a GPM model accession number (GPMddddddddddd) accession number for the protein of interest (ACC) return: {OBJECT - "string":int} peptide sequence : ×observed for peptide sequences assigned to ACC
Example: list peptides found in GPM10100159682 for the protein ENSP00000324804
http://rest.thegpm.org/1/model/protein_peptides/gpm=GPM10100159682&acc=ENSP00000324804
input: a GPM model accession number (GPMddddddddddd) accession number for the protein of interest (ACC) return: [ARRAY - "string"] all residue polymorphisms assigned to ACC, as specified in RFC GPM-2011.12.14 §2.5.
Example: list residue polymorphisms found in GPM10100159682 for the protein ENSP00000331514
http://rest.thegpm.org/1/model/protein_polymorphisms/gpm=GPM10100159682&acc=ENSP00000331514
input: a GPM model accession number (GPMddddddddddd) accession number for the protein of interest (ACC) return: [ARRAY - "string"] the sequence of protein ACC identified in the model.
Example: get the protein sequence of ENSP00000331514 found in GPM10100159682
http://rest.thegpm.org/1/model/protein_sequence/gpm=GPM10100159682&acc=ENSP00000331514
Peptide services give the programmer access of information about the peptides currently stored in GPMDB. All peptide services require an appropriate peptide amino acid sequence to identify the target peptide.
input: peptide sequence of interest return: {OBJECT - "string":int} of {accession number:number of observations} pairs
Example: retrieve the accession numbers and observations of SPSSVEPVADMLMGLFFR
http://rest.thegpm.org/1/peptide/accessions/seq=SPSSVEPVADMLMGLFFR.
input: peptide sequence of interest return: [ARRAY - int] the total number of observations
Example: retrieve the total observations of SPSSVEPVADMLMGLFFR
http://rest.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR.
input: peptide sequence of interest return: {OBJECT - "string":int} of {parent ion charge:number of observations} pairs
Example: retrieve the total observations of SPSSVEPVADMLMGLFFR by parent ion charge
http://rest.thegpm.org/1/peptide/count_z/seq=SPSSVEPVADMLMGLFFR.
Protein services give the programmer access of information about the proteins currently stored in GPMDB. All protein services require an appropriate protein accession number to identify the protein sequence being queried.
input: accession number for the protein of interest return: [ARRAY - float] the log10(E) for the best observation of ACCESSION
Example: retrieve the lowest E value for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/best_e/acc=ENSMUSP00000026459.
input: accession number for the protein of interest return: [ARRAY - int] the total number of observations of ACCESSION
Example: retrieve the number of time ENSMUSP00000026459 has been observed
http://rest.thegpm.org/1/protein/count/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: [ARRAY - "string"] text description of the protein ACCESSION
Example: retrieve a text description of ENSMUSP00000026459
http://rest.thegpm.org/1/protein/description/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: {OBJECT - "string":"string"} evidence code information about status of the protein
Example: retrieve the evidence codes for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/evidence/acc=ENSMUSP00000026459
input: a keyword in a protein description a string to filter the accession numbers (default = "human") return: {OBJECT - "string":"string"} information about the proteins matching the keyword
Example: list human proteins with the keyword "actinin"
http://rest.thegpm.org/1/protein/keyword/key=actinin
input: accession number for the protein of interest mass (Da) of the modification, e.g., phosphorylation = 80 list of residue types that may be modified, e.g., phosphorylation = STY log10(E) of the maximum allowed expectation value for a valid observation return: {OBJECT - "string":int} of {modified site:number of observations} for ACCESSION
Example: retrieve the phosphorylated S, T or Y residues for YKL112W
http://rest.thegpm.org/1/protein/modifications/acc=YKL112W&mod=80&res=STY&maxe=-2.0
Example: retrieve all acetylated residues for ENSP00000281111
http://rest.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0
input: accession number for the protein of interest comma separated list of peptide sequences in single letter code return: {OBJECT - "string":[{"string":[float,float,float,float]}]} {"ACCESSION":[{"SEQUENCE":[ω(z=1),ω(z=2),ω(z=3),ω(z=4)]}]} added: 2013-05-05
Example: retrieve the omega peptide frequencies for LDATTVLSR and AAQASAAPK observed for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/omega/acc=ENSMUSP00000026459&seq=LDATTVLSR,AAQASAAPK
input: accession number for the protein of interest peptide sequence in single letter code return: {OBJECT - "string":int} of {parent ion charge:number of observations} of SEQUENCE in ACCESSION
Example: retrieve the number of times LDATTVLSR was observed for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/peptide_count/acc=ENSMUSP00000026459&seq=LDATTVLSR
input: accession number for the protein of interest return: [ARRAY - "string"] of all peptides observed for ACCESSION
Example: retrieve the peptide sequences observed for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: {OBJECT - "string":int} of the {parent ion charge:number of peptide observations} for ACCESSION
Example: retrieve the number of peptide observations by parent ion charge state for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/peptides_z/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: [ARRAY - int] number of observations of peptides associated with ACCESSION
Example: retrieve the total number of peptide observations for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/peptides_total/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: [ARRAY - OBJECT "string":int] an array of observed polymorphisms and the number of observations for the protein ACCESSION
Example: retrieve a summary of amino acid polymorphisms found for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/polymorphisms/acc=ENSMUSP00000026459
input: accession number for the protein of interest return: [ARRAY - "string"] the amino acid sequence of ACCESSION
Example: retrieve the protein sequence for ENSMUSP00000026459
http://rest.thegpm.org/1/protein/sequence/acc=ENSMUSP00000026459
These services are being implemented in PERL, the language that is used to provide most of the web page creation logic for the GPMDB system. The code is available at ftp://ftp.thegpm.org/repos/gpmdb_rest. The files currently available are as follows:
Any one interested in making suggestions or commenting on the ideas in this document should send them by email to Ron Beavis, rbeavis@thegpm.org.
Reference name | Revision date | Document status | Stable URL |
---|---|---|---|
GPM-2012.6.11 | 2013.05.05 | final specification | http://icex.ca/ice.0.m |