Line 10: | Line 10: | ||
#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 | ||
- | #all return values are in [http://en.wikipedia.org/wiki/JSON JSON] notation as either an ARRAY or | + | #all return values are in [http://en.wikipedia.org/wiki/JSON JSON] notation ([http://www.ietf.org/rfc/rfc4627.txt RFC 4627]) as either an ARRAY or OBJECT. |
==/interface/ services== | ==/interface/ services== | ||
Line 19: | Line 19: | ||
input: none | input: none | ||
- | return: [ARRAY - string] a text description of the current REST interface | + | return: [ARRAY - "string"] a text description of the current REST interface |
Example: find help information through the interface | Example: find help information through the interface | ||
Line 39: | Line 39: | ||
peptide services require an appropriate peptide amino acid sequence to identify the target peptide. | peptide services require an appropriate peptide amino acid sequence to identify the target peptide. | ||
- | ===GET /peptide/accessions/seq=SEQUENCE => { | + | ===GET /peptide/accessions/seq=SEQUENCE => {OBJECT}=== |
input: peptide sequence of interest | input: peptide sequence of interest | ||
- | return: { | + | return: {OBJECT - "string":int} of {accession number:number of observations} pairs |
Example: retrieve the accession numbers and observations of SPSSVEPVADMLMGLFFR | Example: retrieve the accession numbers and observations of SPSSVEPVADMLMGLFFR | ||
Line 57: | Line 57: | ||
[http://gpmdb.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR http://gpmdb.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR]. | [http://gpmdb.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR http://gpmdb.thegpm.org/1/peptide/count/seq=SPSSVEPVADMLMGLFFR]. | ||
- | ===GET /peptide/count_z/seq=SEQUENCE => { | + | ===GET /peptide/count_z/seq=SEQUENCE => {OBJECT}=== |
input: peptide sequence of interest | input: peptide sequence of interest | ||
- | return: { | + | return: {OBJECT - "string":int} of {parent ion charge:number of observations} pairs |
Example: retrieve the total observations of SPSSVEPVADMLMGLFFR by parent ion charge | Example: retrieve the total observations of SPSSVEPVADMLMGLFFR by parent ion charge | ||
Line 93: | Line 93: | ||
input: accession number for the protein of interest | input: accession number for the protein of interest | ||
- | return: [ARRAY - string] text description of the protein ACCESSION | + | return: [ARRAY - "string"] text description of the protein ACCESSION |
Example: retrieve a text description of ENSMUSP00000026459 | Example: retrieve a text description of ENSMUSP00000026459 | ||
Line 99: | Line 99: | ||
[http://gpmdb.thegpm.org/1/protein/description/acc=ENSMUSP00000026459 http://gpmdb.thegpm.org/1/protein/description/acc=ENSMUSP00000026459] | [http://gpmdb.thegpm.org/1/protein/description/acc=ENSMUSP00000026459 http://gpmdb.thegpm.org/1/protein/description/acc=ENSMUSP00000026459] | ||
- | ===GET /protein/modifications/acc=ACCESSION&mod=MODMASS&res=LIST&maxe=MAXEXPECT => { | + | ===GET /protein/modifications/acc=ACCESSION&mod=MODMASS&res=LIST&maxe=MAXEXPECT => {OBJECT}=== |
input: accession number for the protein of interest | input: accession number for the protein of interest | ||
Line 105: | Line 105: | ||
list of residue types that may be modified, e.g., phosphorylation = STY | list of residue types that may be modified, e.g., phosphorylation = STY | ||
log10(E) of the maximum allowed expectation value for a valid observation | log10(E) of the maximum allowed expectation value for a valid observation | ||
- | return: { | + | return: {OBJECT - "string":int} of {modified site:number of observations} for ACCESSION |
Example: retrieve the phosphorylated S, T or Y residues for YKL112W | Example: retrieve the phosphorylated S, T or Y residues for YKL112W | ||
Line 115: | Line 115: | ||
[http://gpmdb.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0 http://gpmdb.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0] | [http://gpmdb.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0 http://gpmdb.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0] | ||
- | ===GET /protein/peptide_count/acc=ACCESSION&seq=SEQUENCE => { | + | ===GET /protein/peptide_count/acc=ACCESSION&seq=SEQUENCE => {OBJECT}=== |
input: accession number for the protein of interest | input: accession number for the protein of interest | ||
peptide sequence in single letter code | peptide sequence in single letter code | ||
- | return: { | + | 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 | Example: retrieve the number of times LDATTVLSR was observed for ENSMUSP00000026459 | ||
Line 134: | Line 134: | ||
[http://gpmdb.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459 http://gpmdb.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459] | [http://gpmdb.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459 http://gpmdb.thegpm.org/1/protein/peptide_sequences/acc=ENSMUSP00000026459] | ||
- | ===GET /protein/peptides_z/acc=ACCESSION => { | + | ===GET /protein/peptides_z/acc=ACCESSION => {OBJECT}=== |
input: accession number for the protein of interest | input: accession number for the protein of interest | ||
- | return: { | + | 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 | Example: retrieve the number of peptide observations by parent ion charge state for ENSMUSP00000026459 | ||
Line 155: | Line 155: | ||
input: accession number for the protein of interest | input: accession number for the protein of interest | ||
- | return: [ARRAY - string] the amino acid sequence of ACCESSION | + | return: [ARRAY - "string"] the amino acid sequence of ACCESSION |
Example: retrieve the protein sequence for ENSMUSP00000026459 | Example: retrieve the protein sequence for ENSMUSP00000026459 |
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 will end on September 10, 2012.
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://gpmdb.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://gpmdb.thegpm.org/1/interface/version
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://gpmdb.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://gpmdb.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://gpmdb.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://gpmdb.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://gpmdb.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://gpmdb.thegpm.org/1/protein/description/acc=ENSMUSP00000026459
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://gpmdb.thegpm.org/1/protein/modifications/acc=YKL112W&mod=80&res=STY&maxe=-2.0
Example: retrieve all acetylated residues for ENSP00000281111
http://gpmdb.thegpm.org/1/protein/modifications/acc=ENSP00000281111&mod=42&res=&maxe=-2.0
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://gpmdb.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://gpmdb.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://gpmdb.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://gpmdb.thegpm.org/1/protein/peptides_total/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://gpmdb.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.06.11 | 2012.06.13 | draft specification | http://icex.ca/ice.0.m |