Difference between revisions of "Alternative Content Formats"

From BioDAS
Jump to: navigation, search
m (das-json features command)
(das-json)
Line 17: Line 17:
  
 
The XML formats described in the [http://www.biodas.org/documents/spec-1.6.html DAS Specification].
 
The XML formats described in the [http://www.biodas.org/documents/spec-1.6.html DAS Specification].
 +
  
 
==das-json==
 
==das-json==
Line 82: Line 83:
  
 
===das-json features command===
 
===das-json features command===
 +
 +
The below example is a contrived response for a request for three segments: one valid, one an unknown segment (i.e. the annotation server doesn't recognise the segment ID), and another an error segment (the requested range of bases is invalid for that segment).
  
 
<pre>
 
<pre>
Line 89: Line 92:
 
         {
 
         {
 
             "id"      : "8",
 
             "id"      : "8",
             "start"   : 1,
+
             "start"   : 1,
 
             "stop"    : 1000,
 
             "stop"    : 1000,
 
             "version"  : "xyz",
 
             "version"  : "xyz",
Line 111: Line 114:
 
                         "subparts"  : false
 
                         "subparts"  : false
 
                     },
 
                     },
                     "method"   : {
+
                     "method" : {
 
                         "id"    : "genewise",
 
                         "id"    : "genewise",
 
                         "cvId"  : "ECO:0000203",
 
                         "cvId"  : "ECO:0000203",
 
                         "label" : "GeneWise"
 
                         "label" : "GeneWise"
 
                     },
 
                     },
                     "notes"   : [
+
                     "notes" : [
 
                         "Something of note",
 
                         "Something of note",
 
                         "Something else of note"
 
                         "Something else of note"
 
                     ],
 
                     ],
                     "links"   : [
+
                     "links" : [
 
                         {
 
                         {
                             "href" : "http://myplace.com/info/features/f1",
+
                             "href" : "http://myplace.com/info/features/f1",
 
                             "label" : "More info about F1"
 
                             "label" : "More info about F1"
 
                         }
 
                         }
 
                     ],
 
                     ],
                     "targets"   : [
+
                     "targets" : [
 
                         {
 
                         {
 
                             "id"    : "cloneA",
 
                             "id"    : "cloneA",
Line 133: Line 136:
 
                         }
 
                         }
 
                     ],
 
                     ],
                     "parents"   : [
+
                     "parents" : [
 
                         "f24",
 
                         "f24",
 
                         "f36"
 
                         "f36"
 
                     ],
 
                     ],
                     "parts"   : [
+
                     "parts" : [
 
                         "f7",
 
                         "f7",
 
                         "f12"
 
                         "f12"
Line 143: Line 146:
 
                 }
 
                 }
 
             ]
 
             ]
 +
        },
 +
        {
 +
            "is_unknown" : true,
 +
            "id"        : "foo",
 +
            "start"      : 10,
 +
            "stop"      : 20,
 +
        },
 +
        {
 +
            "is_error" : true,
 +
            "id"      : "21",
 +
            "start"    : 60000000,
 +
            "stop"    : 61000000,
 
         }
 
         }
 
     ]
 
     ]
 
}
 
}
 
</pre>
 
</pre>

Revision as of 12:40, 30 March 2012

List of alternative content formats:

Name MIME type Commands
das-xml application/xml all
das-json application/json sources,features,types
binary-bigwig application/octet-stream features
binary-bigbed application/octet-stream features

das-xml

The XML formats described in the DAS Specification.


das-json

This format is a native JSON encoding of the DAS data model. The design principle for this format is that the properties accurately match those in the specification wherever sensible, but are not bound by the restrictions or conventions of XML. Thus there are no distinctions made between elements/attributes/text content, and properties can be of any JSON data type. Whilst this means that implementing a reciprocal XML-JSON conversion function must be done explicitly for each DAS command, using DAS in Javascript web applications is more natural.

The properties present in the JSON model for each command mirror those in the DAS specification, with the same semantics applied to each property (e.g. whether properties are required or optional). Since this is a new format at for the avoidance of confusion, deprecated properties are not included.

Currently, the das-json format is defined for the sources, features and types commands.

das-json sources command

{
    "sources" : [
        {
            "uri"         : "mygenes",
            "title"       : "My Genes",
            "description" : "A source that provides gene features",
            "doc_href"    : "http://myplace.com/info/mysource",
            "maintainer"  : {
                "email": "me@myplace.com"
            },
            "versions" : [
                {
                    "uri"          : "mysource",
                    "created"      : "2012-03-27T14:23:44Z",
                    "capabilities" : [
                        {
                           "type"      : "das1:sources",
                           "query_uri" : "http://myplace.com/das/mygenes"
                        },
                        {
                           "type"      : "das1:formats",
                           "query_uri" : "http://myplace.com/das/mygenes/formats"
                        },
                        {
                           "type"      : "das1:features",
                           "query_uri" : "http://myplace.com/das/mygenes/features"
                        }
                    ],
                    "coordinates" : [
                        {
                            "uri"        : "http://www.dasregistry.org/dasregistry/coordsys/CS_DS108",
                            "label"      : "NCBIM_37,Chromosome,Mus musculus",
                            "authority"  : "NCBIM",
                            "version"    : "37",
                            "source"     : "Chromosome",
                            "taxid"      : 10090,
                            "test_range" : "8:1,1000"
                        }
                    ],
                    "properties" : [
                        {
                            "name"  : "Some Key",
                            "value" : "Some Value"
                        }
                    ]
                }
            ]
        }
    ]
}

das-json features command

The below example is a contrived response for a request for three segments: one valid, one an unknown segment (i.e. the annotation server doesn't recognise the segment ID), and another an error segment (the requested range of bases is invalid for that segment).

{
    "href" : "http://myplace.com/das/mygenes/features?segment=8:1,1000",
    "segments" : [
        {
            "id"       : "8",
            "start"    : 1,
            "stop"     : 1000,
            "version"  : "xyz",
            "label"    : "Chromosome 8",
            "features" : [
                {
                    "id"          : "f1",
                    "label"       : "F1",
                    "start"       : 503,
                    "end"         : 512,
                    "orientation" : "+",
                    "phase"       : 0,
                    "score"       : 12.6,
                    "type"        : {
                        "id"         : "gene",
                        "cvId"       : "SO:0000704",
                        "label"      : "Gene",
                        "category"   : "transcription",
                        "reference"  : false,
                        "superparts" : false,
                        "subparts"   : false
                    },
                    "method" : {
                        "id"    : "genewise",
                        "cvId"  : "ECO:0000203",
                        "label" : "GeneWise"
                    },
                    "notes" : [
                        "Something of note",
                        "Something else of note"
                    ],
                    "links" : [
                        {
                            "href"  : "http://myplace.com/info/features/f1",
                            "label" : "More info about F1"
                        }
                    ],
                    "targets" : [
                        {
                            "id"    : "cloneA",
                            "start" : 3,
                            "stop"  : 12
                        }
                    ],
                    "parents" : [
                        "f24",
                        "f36"
                    ],
                    "parts" : [
                        "f7",
                        "f12"
                    ]
                }
            ]
        },
        {
            "is_unknown" : true,
            "id"         : "foo",
            "start"      : 10,
            "stop"       : 20,
        },
        {
            "is_error" : true,
            "id"       : "21",
            "start"    : 60000000,
            "stop"     : 61000000,
        }
    ]
}