Endy:Notebook/Synthetic Biology Data Transfer Protocol
|Customize your entry pages|
Synthetic Biology Data Transfer Protocol (SB/DTP) is a simple, platform- and data model- independent specification for transferring data via the world wide web between members of the Synthetic Biology community. Platform-independence is achieved by implementing SB/DTP as a client/server architecture where the clients connect to servers that expose an application interface (API) as a RESTful web service. RESTful web services use the standard GET, POST, and UPDATE requests defined in the Hypertext Transfer Protocol (HTTP) to receive and transmit data. Data model-independence is a desirable trait in a data transfer protocol. It gives data providers the freedom to change their data model as needed with an unlikely need to change the protocol. Data model-independence is achieved by implementing SB/DTP as an entity-attribute-value (EAV) system. In an EAV system, a client can request data from a server by indicating the entities and atttibutes you want. For example, a SB/DTP compliant client can request from an SB/DTP compliant server the "sequence" (attribute) for the "basic part" (entity) with the "identifier" (attribute) "equal to" (request method) BBa_K105001 (value). Information about the structure of the data model being used by the SB/DTP compliant server resides outside of the protocol specification. The data model specification can reside in web pages that document the services provided by a particular site.
Google Data Protocol. http://code.google.com/apis/gdata/.
Use Cases, Requirements, Comments
import registries registry = registries.fetch('MIT') recents = registry.recents() # grab recent entries, etc. strain = registry.fetch('MIT_001') # the lowest level organization is in terms of strains - organisms in a freezer somewher base_genotype = strain.base_genotype # they have genotypes, resistance markers, etc. comments = strain.usage_notes resistance_markers = strain.markers ... plasmids = strain.plasmids # strains can have plasmids which also have resistance markers, origins, etc. for plasmid in plasmids: plasmid.markers plasmid.origin part_BBa = plasmid.part('BBa') # get a part embedded in the plasmid using shortcut notation part_BBb = plasmid.part('BBb') part_Eco_Bam = plasmid.part(('EcoRI','BamHI')) # get a specific cut of the part by specifying pairs of sites part = part_BBa part.description # parts have metadata associated with them ... ... part1 = plasmid1.part('BBa','left') # left and right cuts of parts part2 = plasmid2.part('BBa','right') composite_part = part1.compose(part2) # create part composition ...
Query String Parameters:
v = SB/DTP Version
e = Entity
a = Attribute
f = Query Function
p = Query Funciton Parameter
m = Maximum Size of the Result Set
i = Index of the First Entity
It is optional. If not present, defaults to the most current version.
Functions supported are:
Query Funtion Parameter
Parameter for a query function.
Maximum Size of the Result Set
Indicates the maximum number of entities the web service should return. The default is 30.
Index of the First Entity
Indicates the numerical position of the first entity to be returned from the total set of retrieved entities. The default is 0.
Eg. If you want entities 31 through 60 of the 100 entities that meet your search criteria the URL would be the following:
Response Class Model