https://wiki.phenoscape.org/wg/phenoscape/api.php?action=feedcontributions&user=Jpb15&feedformat=atomphenoscape - User contributions [en]2024-03-29T10:36:44ZUser contributionsMediaWiki 1.31.10https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8825Data Services2011-08-17T20:22:14Z<p>Jpb15: /* Autocomplete */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Attribute qualities==<br />
'''URI'''<br />
<br />
<BASE URI>/term/attributes<br />
<br />
This service returns the quality terms which have been marked as "attributes", commonly used to categorize phenotype data for display.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"attributes": [<br />
{<br />
"id": "PATO:0000150",<br />
"name": "texture"<br />
},<br />
{<br />
"id": "PATO:0000141",<br />
"name": "structure"<br />
},<br />
{<br />
"id": "PATO:0000117",<br />
"name": "size"<br />
},<br />
{<br />
"id": "PATO:0002281",<br />
"name": "Shape+Size"<br />
},<br />
{<br />
"id": "PATO:0000052",<br />
"name": "shape"<br />
},<br />
{<br />
"id": "PATO:0001546",<br />
"name": "quality of a solid"<br />
},<br />
{<br />
"id": "PATO:0000140",<br />
"name": "position"<br />
},<br />
{<br />
"id": "PATO:0002062",<br />
"name": "physical quality of a process"<br />
},<br />
{<br />
"id": "PATO:0000004",<br />
"name": "mobility"<br />
},<br />
{<br />
"id": "PATO:0000125",<br />
"name": "mass"<br />
},<br />
{<br />
"id": "PATO:0000070",<br />
"name": "count"<br />
},<br />
{<br />
"id": "PATO:0000025",<br />
"name": "composition"<br />
},<br />
{<br />
"id": "PATO:0002282",<br />
"name": "Closure+Structure"<br />
},<br />
{<br />
"id": "PATO:0000136",<br />
"name": "closure"<br />
},<br />
{<br />
"id": "PATO:0001396",<br />
"name": "cellular quality"<br />
},<br />
{<br />
"id": "PATO:0000186",<br />
"name": "behavioral quality"<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic variation sets service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/variationsets?taxon=[taxonID]&exclude_unannotated=[true|false]&exclude_attribute=[true|false]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a single phenotype. The <code>taxon</code> parameter is optional. If included, the results will contain variation sets for the taxon's children. If not provided, the service will return data the highest taxon which has children in more than one variation set (useful for starting the tree display). If <code>exclude_unannotated</code> is true, no child taxa without annotations to the given phenotype will be returned. If <code>exclude_attribute</code> is true, annotations to the queried attribute (and no more specific quality) will not be returned.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"phenotype_sets": [{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001784",<br />
"name": "bifurcated"<br />
}<br />
}],<br />
"taxa": ["TTO:11020", "TTO:103997", "TTO:109064", "TTO:10980", "TTO:10940", "TTO:107212", "TTO:11085", "TTO:11160", "TTO:10960", "TTO:102898", "TTO:10920", "TTO:101648", "TTO:102441", "TTO:101629", "TTO:10990", "TTO:11010", "TTO:11080", "TTO:11130", "TTO:107449", "TTO:10000017", "TTO:11110", "TTO:109385", "TTO:11180", "TTO:10000012", "TTO:10950", "TTO:10970", "TTO:10000015", "TTO:101263", "TTO:10000014"]<br />
},<br />
{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001877",<br />
"name": "lanceolate"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000936",<br />
"name": "truncated"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000411",<br />
"name": "round"<br />
}<br />
}],<br />
"taxa": ["TTO:11050", "TTO:11090", "TTO:11040", "TTO:11190", "TTO:11181", "TTO:11030"]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8824Data Services2011-08-17T20:20:06Z<p>Jpb15: /* Autocomplete */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic variation sets service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/variationsets?taxon=[taxonID]&exclude_unannotated=[true|false]&exclude_attribute=[true|false]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a single phenotype. The <code>taxon</code> parameter is optional. If included, the results will contain variation sets for the taxon's children. If not provided, the service will return data the highest taxon which has children in more than one variation set (useful for starting the tree display). If <code>exclude_unannotated</code> is true, no child taxa without annotations to the given phenotype will be returned. If <code>exclude_attribute</code> is true, annotations to the queried attribute (and no more specific quality) will not be returned.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"phenotype_sets": [{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001784",<br />
"name": "bifurcated"<br />
}<br />
}],<br />
"taxa": ["TTO:11020", "TTO:103997", "TTO:109064", "TTO:10980", "TTO:10940", "TTO:107212", "TTO:11085", "TTO:11160", "TTO:10960", "TTO:102898", "TTO:10920", "TTO:101648", "TTO:102441", "TTO:101629", "TTO:10990", "TTO:11010", "TTO:11080", "TTO:11130", "TTO:107449", "TTO:10000017", "TTO:11110", "TTO:109385", "TTO:11180", "TTO:10000012", "TTO:10950", "TTO:10970", "TTO:10000015", "TTO:101263", "TTO:10000014"]<br />
},<br />
{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001877",<br />
"name": "lanceolate"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000936",<br />
"name": "truncated"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000411",<br />
"name": "round"<br />
}<br />
}],<br />
"taxa": ["TTO:11050", "TTO:11090", "TTO:11040", "TTO:11190", "TTO:11181", "TTO:11030"]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8821Data Services2011-08-15T19:28:02Z<p>Jpb15: /* Phenotypic variation sets service */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic variation sets service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/variationsets?taxon=[taxonID]&exclude_unannotated=[true|false]&exclude_attribute=[true|false]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a single phenotype. The <code>taxon</code> parameter is optional. If included, the results will contain variation sets for the taxon's children. If not provided, the service will return data the highest taxon which has children in more than one variation set (useful for starting the tree display). If <code>exclude_unannotated</code> is true, no child taxa without annotations to the given phenotype will be returned. If <code>exclude_attribute</code> is true, annotations to the queried attribute (and no more specific quality) will not be returned.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"phenotype_sets": [{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001784",<br />
"name": "bifurcated"<br />
}<br />
}],<br />
"taxa": ["TTO:11020", "TTO:103997", "TTO:109064", "TTO:10980", "TTO:10940", "TTO:107212", "TTO:11085", "TTO:11160", "TTO:10960", "TTO:102898", "TTO:10920", "TTO:101648", "TTO:102441", "TTO:101629", "TTO:10990", "TTO:11010", "TTO:11080", "TTO:11130", "TTO:107449", "TTO:10000017", "TTO:11110", "TTO:109385", "TTO:11180", "TTO:10000012", "TTO:10950", "TTO:10970", "TTO:10000015", "TTO:101263", "TTO:10000014"]<br />
},<br />
{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001877",<br />
"name": "lanceolate"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000936",<br />
"name": "truncated"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000411",<br />
"name": "round"<br />
}<br />
}],<br />
"taxa": ["TTO:11050", "TTO:11090", "TTO:11040", "TTO:11190", "TTO:11181", "TTO:11030"]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8817Data Services2011-08-15T19:15:35Z<p>Jpb15: /* Phenotypic variation sets service */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic variation sets service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/variationsets?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a single phenotype. The <code>taxon</code> parameter is optional. If included, the results will contain variation sets for the taxon's children. If not provided, the service will return data the highest taxon which has children in more than one variation set (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"phenotype_sets": [{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001784",<br />
"name": "bifurcated"<br />
}<br />
}],<br />
"taxa": ["TTO:11020", "TTO:103997", "TTO:109064", "TTO:10980", "TTO:10940", "TTO:107212", "TTO:11085", "TTO:11160", "TTO:10960", "TTO:102898", "TTO:10920", "TTO:101648", "TTO:102441", "TTO:101629", "TTO:10990", "TTO:11010", "TTO:11080", "TTO:11130", "TTO:107449", "TTO:10000017", "TTO:11110", "TTO:109385", "TTO:11180", "TTO:10000012", "TTO:10950", "TTO:10970", "TTO:10000015", "TTO:101263", "TTO:10000014"]<br />
},<br />
{<br />
"phenotypes": [{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0001877",<br />
"name": "lanceolate"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000936",<br />
"name": "truncated"<br />
}<br />
},<br />
{<br />
"entity": {<br />
"id": "TAO:0001058",<br />
"name": "caudal fin"<br />
},<br />
"quality": {<br />
"id": "PATO:0000411",<br />
"name": "round"<br />
}<br />
}],<br />
"taxa": ["TTO:11050", "TTO:11090", "TTO:11040", "TTO:11190", "TTO:11181", "TTO:11030"]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8816Data Services2011-08-15T18:41:27Z<p>Jpb15: /* Phenotypic profile match service */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic variation sets service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/variationsets?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a single phenotype. The <code>taxon</code> parameter is optional. If included, the results will contain variation sets for the taxon's children. If not provided, the service will return data the highest taxon which has children in more than one variation set (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Anatomy_Ontology_Conf_calls&diff=8775Anatomy Ontology Conf calls2011-08-09T19:24:17Z<p>Jpb15: /* Aug 8, 2011 */</p>
<hr />
<div>'''Weekly anatomy ontology calls are held on Mondays, 11:00 am-12:00 pm EDT.'''<br />
<br />
== Next call: Aug 15, 2011 ==<br />
<br />
=== Agenda ===<br />
* Chris will present on ontology modularization<br />
* Discuss need for complete vs. partial synchronization<br />
<br />
== Aug 8, 2011 ==<br />
'''Attending:''' Terry, Chris, Wasila, Jim, Paula, Yvonne<br />
<br />
=== Agenda ===<br />
Review Obo-Edit Synchronization Tool<br />
<br />
[https://www.phenoscape.org/wiki/Synchronization_Tool Download Sync Tool plugin]<br />
<br />
=== Minutes ===<br />
<br />
For obsoleted terms, give reason for obsoletion in comments field<br />
<br />
'''Synch tool review'''<br />
#Features and bug reports (already on request tracker)<br />
#* indicate (by color) and filter obsolete terms<br />
#* Conflicting data tab: synonyms not copied over<br />
#* Missing terms: filter TAO terms with never_in_taxon links to D. rerio<br />
#Some conflicting data will be ok. For example, a ZFA definition may begin with the broad genus-differentia definition shared with the corresponding TAO term, followed by zfish specific information not in TAO definition.<br />
#To maintain needed differences between ontologies (e.g., differences between defs, relationships, synonyms), synch tool could interact with a local file that keeps track of differences so that curator doesn't need to review these in each synch session<br />
<br />
'''Long-term synch goals'''<br />
#Chris - use annotations to guide ontology synch. For example, vertebra 1 part_of Weberian apparatus in Danio rerio allows this relationship in ZFA and explains its absence in TAO.<br />
#Could also make use of textual annotations for synchronization<br />
<br />
'''Working plan:''' update synch tool with easy fixes and requests, and reassess its use after one year<br />
<br />
'''Complete or partial synchronization?'''<br />
Chris: instantiating everything in TAO is probably not necessary (e.g., every term added to ZFA currently gets duplicated in TAO). In some cases, ZFA would have very specific terms defined based on zfish research but unknown in other teleosts. Should still be able to search genes on these terms because their parents are cross-referenced.<br />
<br />
== July 18, 2011 ==<br />
'''Attending:''' Terry, Christina, VG, Paula, Chris, Dave, Erik, Wasila<br />
<br />
=== Agenda ===<br />
Discuss strategies for [http://obofoundry.org/wiki/index.php/Strategies_for_cross-species_ontology_synchronization cross-species ontology synchronization]<br />
*multispecies ontologies and import vs. MIREOT<br />
**tool support for import/mireot in Obo-Edit<br />
*species specific ontologies and macro x-refs<br />
** XAO/AAO plan<br />
**tool support for synchronization (Obo-edit; GO diff tool)<br />
<br />
=== Minutes ===<br />
'''Multispecies ontologies and import vs. MIREOT'''<br />
*[http://obi-ontology.org/page/MIREOT MIREOT] lets you import a part of an ontology (e.g. so that we don’t get ‘tibia’ in the teleost ontology)<br />
**Mireot only developed in owl; applied mainly in cell ontology to date; easier than working with imports because can extract a submodule as basis for the import; variation of it in obo-edit where you save only the relevant terms (save is_a closure)<br />
**develop a subset file - need external script to keep subset synchronized<br />
**WD: Plans to develop a mireot module for obo? Roundtripping tool being developed for OWL<br />
*another option: use ‘never in taxon’ designation instead of mireot; Put taxon info in VAO with never_in_taxon links; TAO/VAO e.g. –want to import only teleost specific;<br />
** never_in_taxon will be difficult for e.g., structures lost repeatedly in a clade<br />
*Homology discussion<br />
**Don't add terms to VAO that are not required [incomplete notes here...]<br />
*For now: just import/mireot the whole thing<br />
*Better tool support needed<br />
<br />
'''Species specific ontologies and [http://obofoundry.org/wiki/index.php/Strategies_for_cross-species_ontology_synchronization#Provide_explicit_cross-species_axioms macro x-refs]'''<br />
* XAO/AAO plan originally involved merging AAO into XAO, with AAO terms being alt-ids ot XAO terms. But messy to deal with alt-ids and obsoleting terms in XAO<br />
*New plan for [https://www.phenoscape.org/index.php?title=Anatomy_Ontology_Development_Plan#Amphibian_Anatomy_Ontology_.28AAO.29 AAO/XAO alignment using xrefs]<br />
**At end of year 1 would clone out AAO (keeping original AAO ids) terms not in Xenopus added back to AAO<br />
**OK to add VAO xrefs (with David) to AAO now and then<br />
**XAO would preferentially xref VAO terms where they are available<br />
**Primary location of xrefs would be in XAO now; the ssAOs hold xrefs to multispecies<br />
*Another issue: where XAO to get non-skel terms; not ideal to xref ZFA<br />
** Uberon xrefs AAO; easier to do from purpose of synchronization<br />
** currently XAO xrefs ZFA - should they be maintained? Keep as historical record and leave as xrefs without defined semantics; don't rush to get rid of<br />
WD: should AAO hold xrefs to Uberon or Uberon to AAO? CM: doesn't matter which file it lives in - need a bridging file which contains axioms for xrefs<br />
* '''XAO workflow''': if XAO need a new term, where to get them? Better to get term from higher level<br />
** in order of preference for a new term: AAO, VAO, Uberon, ZFA, create new term (no xref needed)<br />
** if AAO xrefs VAO, then VAO ID should be used preferentially over AAO id<br />
** non-skel terms not added to AAO until cloning<br />
<br />
*Should terms be directlly requested from Uberon? Could do that or on the other hand, UBeron will pick up new terms when it gets updated<br />
*When pulling terms from above and definition is terrible, then start an external dialogue to fix it.<br />
<br />
== July 11, 2011 ==<br />
'''Attending:''' Judy, Terry, Monte, Aaron, Christina, VG, Wasila<br />
<br />
=== Agenda ===<br />
1. Review anatomy ontology [https://www.phenoscape.org/index.php?title=Anatomy_Ontology_Development_Plan development plans]<br />
<br />
2. Alternative formalisms for inter-ontology links. From Chris email, 7/8/2011:<br />
* equivalence (e.g. VAO:ligament equivalentTo Uberon:skeletal_ligament)<br />
* subclass_of (e.g. EMAPA:islets_of_langerhans SubClassOf Uberon:islets_of_langerhans) note that EMAPA includes several classes called "islet of langerhans" and no single generic class, so we're forced to use subclass here<br />
* equivalence given a taxon (e.g. MA:ligament EquivalentTo Uberon:ligament and partOf some NCBITaxon:10090)<br />
<br />
3. Discuss use of vertebrate anatomy [https://www.phenoscape.org/wiki/Ontologies#Anatomy_Ontologies term tracker and mailing lists]<br />
<br />
4. Issues raised by Chris:<br />
##alternate project meetings with calls where we invite other members of the obo-anatomy list?<br />
##make the agenda pages on the wiki publicly readable?<br />
<br />
=== Minutes ===<br />
<br />
1. Reviewed ontology development plan for year 1:<br />
* multispecies ontologies (TAO, AAO, AMAO) will import VAO; cross references in VAO, TAO, AAO, AMAO to upperlevel ontologies unnecessary<br />
**'''Action item''': Chris and Jim to discuss handling of imports in OWL version of ontologies<br />
* single species ontologies (MA, XAO, ZFA) will maintain species-specific versions of terms, and cross reference VAO and appropriate multispecies ontology<br />
**Cross references in single species ontologies are specified as "equivalent in taxon" links by having a line describing the meaning of the xref in the header of ontology file; for example, ZFA has the following lines in the header:<br />
treat-xrefs-as-genus-differentia: CL part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: TAO part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: CARO part_of NCBITaxon:7955<br />
*macro-xrefs tralsated into owl: ZFA term is the equivalent of the TAO term<br />
*Beware if two terms xref a single term: indicates that there is a duplicate term (error)<br />
<br />
Aaron: XAO will be adding upwards of several thousand terms, many embryological; will ref ZFA, VAO, CARO<br />
* will be done manually, case by case basis, - are there tools for automating this?<br />
* '''Action item''': Chris and Jim to discuss tools for adding large chunks of ontologies to other ontologies - Paula suggests involving Jeff Bowes<br />
*Chris: mapping issue here: don't xref at sibling level (e.g., XAO shouldn't xref ZFA), should inherit the term<br />
*Long term goal for XAO is to follow import model;<br />
<br />
Chris: need generic guidelines for when to subtype and when to merge<br />
*when need to designate develops_from relationship that is not general, would create a subclass rather than add relationship at amphibian level<br />
**this is a shortterm solution; get latticy ontology, difficult to navigate<br />
Wasila: way to handle taxonomically variable relationships as annotations?<br />
Chris: difficult to edit a separate data table, which would need extensions and way to view as ontology relationships<br />
<br />
Terry: possible redundancy issue: Uberon has skeletal terms that VAO doesn't yet; what should be xrefed?<br />
<br />
Wasila: VAO is musculo-skeletal so xrefs should be made to VAO; non-skeletal terms can be xrefed to Uberon<br />
* Term addition to VAO is ongoing, but focus xref addition on limb/fin anatomy in first year<br />
<br />
Decided to keep this time slot for project specific issues but there is interest in participating in a general call; also could revisit using this time slot after project work settles down<br />
<br />
== June 13, 2011 ==<br />
'''Attending:''' Monte Westerfield, Paula Mabee, Judy Blake, Aaron Zorn, Jeff Bowes, Wasila Dahdul, Jim Balhoff, Terry Hayamizu<br />
<br />
===Agenda===<br />
* Judy:<br />
** Discussion on how to initiate the Amniote Anatomy Ontology for terms outside skeletal system<br />
** Report on status of unified anatomy [emap + MA]<br />
** What exactly is abstract mouse?<br />
** Clone MA, UBERON, unified mouse [emap + MA], or abstract mouse?<br />
* Monte:<br />
** Discussion on moving ZFA to GO like model; possibility of implementing VAO import (so that XAO can just clone this VAO chunk when they also clone the rest of ZFA)<br />
* Aaron and Jeff:<br />
** Discussion on setting up modular ontology model and specifics of importing model species-specific information (like devo stage)<br />
<br />
=== Action items resulting from call:===<br />
* Monte: Charge to the zfin group (from Monte) is to write up plan and potential problems<br />
* Judy: Will send Jim contact for Amelia Ireland for diff<br />
* All: short term goal to add xrefs to VAO to ZFA, XAO, MA<br />
* Wasila: give VAO write access to other groups<br />
* Wasila: find out how often UBERON gets updated '''-- done WD 6/25/2011'''<br />
* Wasila: Schedule weekly meeting to sort out what is happening in these AOs, beginning in July '''-- done WD 6/25/2011'''<br />
<br />
===Minutes===<br />
<br />
* Wasila will demonstrate diffs between Uberon and MA using non-skeletal terms<br />
** e.g. 'naris' in mouse is 'part of nose'<br />
** e.g. 'naris' in uberon with lots of xrefs but missing relationship 'part of' olfactory apparatus<br />
** not sure how often Chris updates Uberon<br />
*Terry - developed adult Mouse Anatomy; working with Edinburgh group to update their ontology<br />
** 'unified mouse anatomy' not an official term, just a descriptor<br />
** Ed. developmental mouse anatomy developed 15 years ago in an effort to code mouse expressiondata. Built along lines of an atlas by kauffman and baird; partonomy; Used for expression annotation by ... for years now. Two parts: abstract mouse which is a time -inedpent collection of terms in a hierarhy not a dag; and from that extracted stage-dependent hierarchies. stage 28 is postnatal -- this is not developed at all. 8-10 years ago, a postnatal developed by jax. jax added is-a and expanded on stages. Examined all relevant ontologies in updating. Two entities (MA vs. developmental) not connected currently -- working to make it an anatomy ontology encompassing the whole of mouse development.<br />
** Q: re: timeline? Terry: within next two weeks could give clearer answer.<br />
** would like to work with rest of ao community to make it a resource that will best serve needs of community. It works for expression and for phenotype, but needs to work better for other communities. Have updated based on other working groups. Would like to work to update weak points.<br />
** Judy - Terry funded for small portion of time on issues relevant to project<br />
** Wasila - use mouse<br />
** Judy -- start with MA, great place to start. Talk with Chris to see where he last updated and worked with it.<br />
** Terry -- Uberon - made an effort to take into consideration only things that are shared - not less valuable for it; structurally less consistent than mouse; mouse is lacking becuase of roots in ed anatomy and purpose for expression -- so the high level structure is a partonomy; first level division into regions, then into organ systems, etc. Need to think about primary goals of new ontology. Where along tree does it no longer serve amniotes or chickens?<br />
** Some avian terms are already in uberon -- use mixed approach. Also uberon follows more of a is_a approach;<br />
** MA, Uberon, VAO, AmAO are all separate right now; good documentation of proposed changes;<br />
* Judy: suggestion -- all work together on one aspect at a time - start with limb/fin<br />
* Terry: Historically for MA, when significant changes made, to a section in response to some input; not a constant stream of changes; structurally and in terms of big picture, not changes often. Need to do in coordination.<br />
* Wasila: Conclude -- need mixed approach<br />
<br />
* Monte:<br />
**Need to improve ways of synchronizing zfish ontology with vao, uberon, etc. Met with db admins etc. to discuss future re: ontologies and new mechanism to stay in synch. Potential problem is that lead curator out on maternity leave, so people he discussed it with not necessarily in charge, but they understood basic issue. Charge to the zfin group (from Monte) is to write up plan and potential problems. Briefly -- problem how to grow two ontologies grow in synch. Big concern that curators have is if they become dependent on outside group such as Phenoscape, there could be changes made without consideration for the implications of zfin. Also, term request brokerage rights need to be grant to zfin. Need to work out sop for how updates are made.<br />
** Concern how we represent developmental staging. Start and stop times in same db table. If bringing in terms from outside resource, will break the devo and it will have to be moved to an outside table. This has implications for xao. If xao is dependent on zfin, this will take some time.<br />
* Aaron: best way to go is to clone zfa. Have to develop ways to import VAO.<br />
* Jeff: Inheritance structure?<br />
* Wasila: Yes, direct links<br />
* Jeff: inheritance from next highest ontology? correct?<br />
* Wasila: Yes, go up to next higher level ontology.<br />
* Jeff: Given current architecture, not hard to do. However concerns about changing higher level terms and effects on lower level terms.<br />
* Monte: talked about how zfin does with go currently - via diffs list - not overly onerous - but have to have sop - can run checks on reasoning, but human will have to fix a couple of things<br />
* Judy - -yes<br />
* Aaron: VAO not complete for all organ systems....how does this work?<br />
* Jeff: This is ok -- for terms that exist in VAO, we can show as inherited.<br />
* Jeff: Development not taken into account in higher-level ontologies. Have to have a way to associate development with terms. Just show which terms are inherited and maintain just as we do now.<br />
* Aaron: Will clone vao and zfa terms and keep xrefs. When we transition to other system, can track what we are importing.<br />
** In short term, clone vao terms into xao - ok?<br />
* Short term goal: Add xrefs to VAO to ZFA, XAO, MA<br />
* Judy: weekly meeting to sort out what is happening in these anatomies?<br />
* Wasila: yes, it would be useful<br />
* Aaron: jamboree approach --<br />
* Judy: Even a 1/2 hour check up<br />
* Wasila: Even a open weekly call<br />
* Judy: open up wiki for agenda building and notes<br />
* Aaron re: data jam: 22 Aug-26 Aug; Erik S for 5 days<br />
* Paula: Most efficient way to add xrefs to VAO to zfa etc.?<br />
* Monte: ZFA and XAO etc. need write access to VAO<br />
* Paula: Jim -- how to get this diff file automatically generated?<br />
* Judy: Will send Jim contact for Amelia Ireland for diff<br />
* Wasila: Will give write access to VAO to other groups. Will be making lots of changes over next two months.<br />
* Paula: How coordinated in GO?<br />
* Judy: Webex every/most mornings by the GO development team, share screen and work together ---additions at leaves easy; others assigned to people; coordination - big branches worked on by whole group<br />
* bowes@ucalgary.ca and terry to be added to email list; Wasila will send out notes<br />
<br />
[[Category:Anatomy]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Anatomy_Ontology_Conf_calls&diff=8774Anatomy Ontology Conf calls2011-08-09T19:24:03Z<p>Jpb15: </p>
<hr />
<div>'''Weekly anatomy ontology calls are held on Mondays, 11:00 am-12:00 pm EDT.'''<br />
<br />
== Next call: Aug 15, 2011 ==<br />
<br />
=== Agenda ===<br />
* Chris will present on ontology modularization<br />
* Discuss need for complete vs. partial synchronization<br />
<br />
== Aug 8, 2011 ==<br />
'''Attending:''' Terry, Chris, Wasila, Jim, Paula, Yvonne<br />
<br />
=== Agenda ===<br />
Review Obo-Edit Synchronization Tool<br />
<br />
[https://www.phenoscape.org/wiki/Synchronization_Tool Download Synch Tool plugin]<br />
<br />
=== Minutes ===<br />
<br />
For obsoleted terms, give reason for obsoletion in comments field<br />
<br />
'''Synch tool review'''<br />
#Features and bug reports (already on request tracker)<br />
#* indicate (by color) and filter obsolete terms<br />
#* Conflicting data tab: synonyms not copied over<br />
#* Missing terms: filter TAO terms with never_in_taxon links to D. rerio<br />
#Some conflicting data will be ok. For example, a ZFA definition may begin with the broad genus-differentia definition shared with the corresponding TAO term, followed by zfish specific information not in TAO definition.<br />
#To maintain needed differences between ontologies (e.g., differences between defs, relationships, synonyms), synch tool could interact with a local file that keeps track of differences so that curator doesn't need to review these in each synch session<br />
<br />
'''Long-term synch goals'''<br />
#Chris - use annotations to guide ontology synch. For example, vertebra 1 part_of Weberian apparatus in Danio rerio allows this relationship in ZFA and explains its absence in TAO.<br />
#Could also make use of textual annotations for synchronization<br />
<br />
'''Working plan:''' update synch tool with easy fixes and requests, and reassess its use after one year<br />
<br />
'''Complete or partial synchronization?'''<br />
Chris: instantiating everything in TAO is probably not necessary (e.g., every term added to ZFA currently gets duplicated in TAO). In some cases, ZFA would have very specific terms defined based on zfish research but unknown in other teleosts. Should still be able to search genes on these terms because their parents are cross-referenced.<br />
<br />
== July 18, 2011 ==<br />
'''Attending:''' Terry, Christina, VG, Paula, Chris, Dave, Erik, Wasila<br />
<br />
=== Agenda ===<br />
Discuss strategies for [http://obofoundry.org/wiki/index.php/Strategies_for_cross-species_ontology_synchronization cross-species ontology synchronization]<br />
*multispecies ontologies and import vs. MIREOT<br />
**tool support for import/mireot in Obo-Edit<br />
*species specific ontologies and macro x-refs<br />
** XAO/AAO plan<br />
**tool support for synchronization (Obo-edit; GO diff tool)<br />
<br />
=== Minutes ===<br />
'''Multispecies ontologies and import vs. MIREOT'''<br />
*[http://obi-ontology.org/page/MIREOT MIREOT] lets you import a part of an ontology (e.g. so that we don’t get ‘tibia’ in the teleost ontology)<br />
**Mireot only developed in owl; applied mainly in cell ontology to date; easier than working with imports because can extract a submodule as basis for the import; variation of it in obo-edit where you save only the relevant terms (save is_a closure)<br />
**develop a subset file - need external script to keep subset synchronized<br />
**WD: Plans to develop a mireot module for obo? Roundtripping tool being developed for OWL<br />
*another option: use ‘never in taxon’ designation instead of mireot; Put taxon info in VAO with never_in_taxon links; TAO/VAO e.g. –want to import only teleost specific;<br />
** never_in_taxon will be difficult for e.g., structures lost repeatedly in a clade<br />
*Homology discussion<br />
**Don't add terms to VAO that are not required [incomplete notes here...]<br />
*For now: just import/mireot the whole thing<br />
*Better tool support needed<br />
<br />
'''Species specific ontologies and [http://obofoundry.org/wiki/index.php/Strategies_for_cross-species_ontology_synchronization#Provide_explicit_cross-species_axioms macro x-refs]'''<br />
* XAO/AAO plan originally involved merging AAO into XAO, with AAO terms being alt-ids ot XAO terms. But messy to deal with alt-ids and obsoleting terms in XAO<br />
*New plan for [https://www.phenoscape.org/index.php?title=Anatomy_Ontology_Development_Plan#Amphibian_Anatomy_Ontology_.28AAO.29 AAO/XAO alignment using xrefs]<br />
**At end of year 1 would clone out AAO (keeping original AAO ids) terms not in Xenopus added back to AAO<br />
**OK to add VAO xrefs (with David) to AAO now and then<br />
**XAO would preferentially xref VAO terms where they are available<br />
**Primary location of xrefs would be in XAO now; the ssAOs hold xrefs to multispecies<br />
*Another issue: where XAO to get non-skel terms; not ideal to xref ZFA<br />
** Uberon xrefs AAO; easier to do from purpose of synchronization<br />
** currently XAO xrefs ZFA - should they be maintained? Keep as historical record and leave as xrefs without defined semantics; don't rush to get rid of<br />
WD: should AAO hold xrefs to Uberon or Uberon to AAO? CM: doesn't matter which file it lives in - need a bridging file which contains axioms for xrefs<br />
* '''XAO workflow''': if XAO need a new term, where to get them? Better to get term from higher level<br />
** in order of preference for a new term: AAO, VAO, Uberon, ZFA, create new term (no xref needed)<br />
** if AAO xrefs VAO, then VAO ID should be used preferentially over AAO id<br />
** non-skel terms not added to AAO until cloning<br />
<br />
*Should terms be directlly requested from Uberon? Could do that or on the other hand, UBeron will pick up new terms when it gets updated<br />
*When pulling terms from above and definition is terrible, then start an external dialogue to fix it.<br />
<br />
== July 11, 2011 ==<br />
'''Attending:''' Judy, Terry, Monte, Aaron, Christina, VG, Wasila<br />
<br />
=== Agenda ===<br />
1. Review anatomy ontology [https://www.phenoscape.org/index.php?title=Anatomy_Ontology_Development_Plan development plans]<br />
<br />
2. Alternative formalisms for inter-ontology links. From Chris email, 7/8/2011:<br />
* equivalence (e.g. VAO:ligament equivalentTo Uberon:skeletal_ligament)<br />
* subclass_of (e.g. EMAPA:islets_of_langerhans SubClassOf Uberon:islets_of_langerhans) note that EMAPA includes several classes called "islet of langerhans" and no single generic class, so we're forced to use subclass here<br />
* equivalence given a taxon (e.g. MA:ligament EquivalentTo Uberon:ligament and partOf some NCBITaxon:10090)<br />
<br />
3. Discuss use of vertebrate anatomy [https://www.phenoscape.org/wiki/Ontologies#Anatomy_Ontologies term tracker and mailing lists]<br />
<br />
4. Issues raised by Chris:<br />
##alternate project meetings with calls where we invite other members of the obo-anatomy list?<br />
##make the agenda pages on the wiki publicly readable?<br />
<br />
=== Minutes ===<br />
<br />
1. Reviewed ontology development plan for year 1:<br />
* multispecies ontologies (TAO, AAO, AMAO) will import VAO; cross references in VAO, TAO, AAO, AMAO to upperlevel ontologies unnecessary<br />
**'''Action item''': Chris and Jim to discuss handling of imports in OWL version of ontologies<br />
* single species ontologies (MA, XAO, ZFA) will maintain species-specific versions of terms, and cross reference VAO and appropriate multispecies ontology<br />
**Cross references in single species ontologies are specified as "equivalent in taxon" links by having a line describing the meaning of the xref in the header of ontology file; for example, ZFA has the following lines in the header:<br />
treat-xrefs-as-genus-differentia: CL part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: TAO part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: CARO part_of NCBITaxon:7955<br />
*macro-xrefs tralsated into owl: ZFA term is the equivalent of the TAO term<br />
*Beware if two terms xref a single term: indicates that there is a duplicate term (error)<br />
<br />
Aaron: XAO will be adding upwards of several thousand terms, many embryological; will ref ZFA, VAO, CARO<br />
* will be done manually, case by case basis, - are there tools for automating this?<br />
* '''Action item''': Chris and Jim to discuss tools for adding large chunks of ontologies to other ontologies - Paula suggests involving Jeff Bowes<br />
*Chris: mapping issue here: don't xref at sibling level (e.g., XAO shouldn't xref ZFA), should inherit the term<br />
*Long term goal for XAO is to follow import model;<br />
<br />
Chris: need generic guidelines for when to subtype and when to merge<br />
*when need to designate develops_from relationship that is not general, would create a subclass rather than add relationship at amphibian level<br />
**this is a shortterm solution; get latticy ontology, difficult to navigate<br />
Wasila: way to handle taxonomically variable relationships as annotations?<br />
Chris: difficult to edit a separate data table, which would need extensions and way to view as ontology relationships<br />
<br />
Terry: possible redundancy issue: Uberon has skeletal terms that VAO doesn't yet; what should be xrefed?<br />
<br />
Wasila: VAO is musculo-skeletal so xrefs should be made to VAO; non-skeletal terms can be xrefed to Uberon<br />
* Term addition to VAO is ongoing, but focus xref addition on limb/fin anatomy in first year<br />
<br />
Decided to keep this time slot for project specific issues but there is interest in participating in a general call; also could revisit using this time slot after project work settles down<br />
<br />
== June 13, 2011 ==<br />
'''Attending:''' Monte Westerfield, Paula Mabee, Judy Blake, Aaron Zorn, Jeff Bowes, Wasila Dahdul, Jim Balhoff, Terry Hayamizu<br />
<br />
===Agenda===<br />
* Judy:<br />
** Discussion on how to initiate the Amniote Anatomy Ontology for terms outside skeletal system<br />
** Report on status of unified anatomy [emap + MA]<br />
** What exactly is abstract mouse?<br />
** Clone MA, UBERON, unified mouse [emap + MA], or abstract mouse?<br />
* Monte:<br />
** Discussion on moving ZFA to GO like model; possibility of implementing VAO import (so that XAO can just clone this VAO chunk when they also clone the rest of ZFA)<br />
* Aaron and Jeff:<br />
** Discussion on setting up modular ontology model and specifics of importing model species-specific information (like devo stage)<br />
<br />
=== Action items resulting from call:===<br />
* Monte: Charge to the zfin group (from Monte) is to write up plan and potential problems<br />
* Judy: Will send Jim contact for Amelia Ireland for diff<br />
* All: short term goal to add xrefs to VAO to ZFA, XAO, MA<br />
* Wasila: give VAO write access to other groups<br />
* Wasila: find out how often UBERON gets updated '''-- done WD 6/25/2011'''<br />
* Wasila: Schedule weekly meeting to sort out what is happening in these AOs, beginning in July '''-- done WD 6/25/2011'''<br />
<br />
===Minutes===<br />
<br />
* Wasila will demonstrate diffs between Uberon and MA using non-skeletal terms<br />
** e.g. 'naris' in mouse is 'part of nose'<br />
** e.g. 'naris' in uberon with lots of xrefs but missing relationship 'part of' olfactory apparatus<br />
** not sure how often Chris updates Uberon<br />
*Terry - developed adult Mouse Anatomy; working with Edinburgh group to update their ontology<br />
** 'unified mouse anatomy' not an official term, just a descriptor<br />
** Ed. developmental mouse anatomy developed 15 years ago in an effort to code mouse expressiondata. Built along lines of an atlas by kauffman and baird; partonomy; Used for expression annotation by ... for years now. Two parts: abstract mouse which is a time -inedpent collection of terms in a hierarhy not a dag; and from that extracted stage-dependent hierarchies. stage 28 is postnatal -- this is not developed at all. 8-10 years ago, a postnatal developed by jax. jax added is-a and expanded on stages. Examined all relevant ontologies in updating. Two entities (MA vs. developmental) not connected currently -- working to make it an anatomy ontology encompassing the whole of mouse development.<br />
** Q: re: timeline? Terry: within next two weeks could give clearer answer.<br />
** would like to work with rest of ao community to make it a resource that will best serve needs of community. It works for expression and for phenotype, but needs to work better for other communities. Have updated based on other working groups. Would like to work to update weak points.<br />
** Judy - Terry funded for small portion of time on issues relevant to project<br />
** Wasila - use mouse<br />
** Judy -- start with MA, great place to start. Talk with Chris to see where he last updated and worked with it.<br />
** Terry -- Uberon - made an effort to take into consideration only things that are shared - not less valuable for it; structurally less consistent than mouse; mouse is lacking becuase of roots in ed anatomy and purpose for expression -- so the high level structure is a partonomy; first level division into regions, then into organ systems, etc. Need to think about primary goals of new ontology. Where along tree does it no longer serve amniotes or chickens?<br />
** Some avian terms are already in uberon -- use mixed approach. Also uberon follows more of a is_a approach;<br />
** MA, Uberon, VAO, AmAO are all separate right now; good documentation of proposed changes;<br />
* Judy: suggestion -- all work together on one aspect at a time - start with limb/fin<br />
* Terry: Historically for MA, when significant changes made, to a section in response to some input; not a constant stream of changes; structurally and in terms of big picture, not changes often. Need to do in coordination.<br />
* Wasila: Conclude -- need mixed approach<br />
<br />
* Monte:<br />
**Need to improve ways of synchronizing zfish ontology with vao, uberon, etc. Met with db admins etc. to discuss future re: ontologies and new mechanism to stay in synch. Potential problem is that lead curator out on maternity leave, so people he discussed it with not necessarily in charge, but they understood basic issue. Charge to the zfin group (from Monte) is to write up plan and potential problems. Briefly -- problem how to grow two ontologies grow in synch. Big concern that curators have is if they become dependent on outside group such as Phenoscape, there could be changes made without consideration for the implications of zfin. Also, term request brokerage rights need to be grant to zfin. Need to work out sop for how updates are made.<br />
** Concern how we represent developmental staging. Start and stop times in same db table. If bringing in terms from outside resource, will break the devo and it will have to be moved to an outside table. This has implications for xao. If xao is dependent on zfin, this will take some time.<br />
* Aaron: best way to go is to clone zfa. Have to develop ways to import VAO.<br />
* Jeff: Inheritance structure?<br />
* Wasila: Yes, direct links<br />
* Jeff: inheritance from next highest ontology? correct?<br />
* Wasila: Yes, go up to next higher level ontology.<br />
* Jeff: Given current architecture, not hard to do. However concerns about changing higher level terms and effects on lower level terms.<br />
* Monte: talked about how zfin does with go currently - via diffs list - not overly onerous - but have to have sop - can run checks on reasoning, but human will have to fix a couple of things<br />
* Judy - -yes<br />
* Aaron: VAO not complete for all organ systems....how does this work?<br />
* Jeff: This is ok -- for terms that exist in VAO, we can show as inherited.<br />
* Jeff: Development not taken into account in higher-level ontologies. Have to have a way to associate development with terms. Just show which terms are inherited and maintain just as we do now.<br />
* Aaron: Will clone vao and zfa terms and keep xrefs. When we transition to other system, can track what we are importing.<br />
** In short term, clone vao terms into xao - ok?<br />
* Short term goal: Add xrefs to VAO to ZFA, XAO, MA<br />
* Judy: weekly meeting to sort out what is happening in these anatomies?<br />
* Wasila: yes, it would be useful<br />
* Aaron: jamboree approach --<br />
* Judy: Even a 1/2 hour check up<br />
* Wasila: Even a open weekly call<br />
* Judy: open up wiki for agenda building and notes<br />
* Aaron re: data jam: 22 Aug-26 Aug; Erik S for 5 days<br />
* Paula: Most efficient way to add xrefs to VAO to zfa etc.?<br />
* Monte: ZFA and XAO etc. need write access to VAO<br />
* Paula: Jim -- how to get this diff file automatically generated?<br />
* Judy: Will send Jim contact for Amelia Ireland for diff<br />
* Wasila: Will give write access to VAO to other groups. Will be making lots of changes over next two months.<br />
* Paula: How coordinated in GO?<br />
* Judy: Webex every/most mornings by the GO development team, share screen and work together ---additions at leaves easy; others assigned to people; coordination - big branches worked on by whole group<br />
* bowes@ucalgary.ca and terry to be added to email list; Wasila will send out notes<br />
<br />
[[Category:Anatomy]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Collaborative_Phenotype_Annotation&diff=8745Collaborative Phenotype Annotation2011-07-19T17:08:06Z<p>Jpb15: </p>
<hr />
<div>The [http://mx.phenomix.org/index.php/Main_Page MX web application] is being enhanced with features for EQ annotation of character matrix data. Phenoscape may be interested in adopting this system for data curation. This page collects a list of pros and cons to help decide whether to adopt the MX web application or continue using the Phenex desktop software.<br />
<br />
==MX pros==<br />
* web based, central database<br />
** easy collaboration<br />
** record of who changed what<br />
** latest application version always running<br />
* many other features besides EQ annotation<br />
* easy to create new pages displaying various reports using data<br />
* initial development of phenotype categories for EQ<br />
* unify more of Jim's effort<br />
<br />
==MX cons==<br />
* many other features besides EQ annotation<br />
* missing ontology visualization tools<br />
* EQ interface in flux - not quite ready for primetime<br />
* requires internet connection<br />
* output format suitable for KB ingestion must be coded<br />
* reliance on BioPortal web services for ontology data<br />
* less independence for anonymous user - requires server management, project accounts<br />
<br />
==Phenex pros==<br />
* outputs files ready for KB; workflow in place<br />
* integrates OBO-Edit code for ontology visualization and query<br />
* "simple", targeted interface<br />
* easy to point to customized versions of ontologies<br />
<br />
==Phenex cons==<br />
* less flexible interface<br />
* requires use of version control system for collaboration<br />
* tightly coupled to OBO format<br />
* updates must be manually downloaded and installed</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Collaborative_Phenotype_Annotation&diff=8744Collaborative Phenotype Annotation2011-07-19T17:07:51Z<p>Jpb15: Created page with "The [http://mx.phenomix.org/index.php/Main_Page MX web application] is being enhanced with features for EQ annotation of character matrix data. Phenoscape may be interested in ad..."</p>
<hr />
<div>The [http://mx.phenomix.org/index.php/Main_Page MX web application] is being enhanced with features for EQ annotation of character matrix data. Phenoscape may be interested in adopting this system for data curation. This page collects a list of pros and cons to help decide whether to adopt the MX web application or continue using the Phenex desktop software.<br />
<br />
==MX pros==<br />
* web based, central database<br />
** easy collaboration<br />
** record of who changed what<br />
** latest application version always running<br />
* many other features besides EQ annotation<br />
* easy to create new pages displaying various reports using data<br />
* initial development of phenotype categories for EQ<br />
* unify more of Jim's effort<br />
<br />
==MX cons==<br />
* many other features besides EQ annotation<br />
* missing ontology visualization tools<br />
* EQ interface in flux - not quite ready for primetime<br />
* requires internet connection<br />
* output format suitable for KB ingestion must be coded<br />
* reliance on BioPortal web services for ontology data<br />
* less independence for anonymous user - requires server management, project accounts<br />
<br />
<br />
==Phenex pros==<br />
* outputs files ready for KB; workflow in place<br />
* integrates OBO-Edit code for ontology visualization and query<br />
* "simple", targeted interface<br />
* easy to point to customized versions of ontologies<br />
<br />
<br />
==Phenex cons==<br />
* less flexible interface<br />
* requires use of version control system for collaboration<br />
* tightly coupled to OBO format<br />
* updates must be manually downloaded and installed</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Anatomy_Ontology_Conf_calls&diff=8717Anatomy Ontology Conf calls2011-07-18T14:03:06Z<p>Jpb15: moved WG:Anatomy Ontology Conf calls to Anatomy Ontology Conf calls</p>
<hr />
<div>* Dial-in Number: 800.505.4464, participant passcode 784002#<br />
<!--1-213-289-0500, Access Code: 279610--><br />
* Adobe Connect: http://dukeuniversity.acrobat.com/phenoscape<br />
<br />
'''Weekly anatomy ontology calls are held on Mondays, 11:00 am-12:00 pm EDT.'''<br />
<br />
== July 18, 2011 ==<br />
'''Attending:''' <br />
<br />
=== Agenda ===<br />
Discuss strategies for [http://obofoundry.org/wiki/index.php/Strategies_for_cross-species_ontology_synchronization cross-species ontology synchronization]<br />
*multispecies ontologies and import vs. MIREOT<br />
**tool support for import/mireot in Obo-Edit<br />
*species specific ontologies and macro x-refs<br />
** XAO/AAO plan<br />
**tool support for synchronization (Obo-edit; GO diff tool)<br />
<br />
== July 11, 2011 ==<br />
'''Attending:''' Judy, Terry, Monte, Aaron, Christina, VG, Wasila<br />
<br />
=== Agenda ===<br />
1. Review anatomy ontology [https://www.phenoscape.org/index.php?title=Anatomy_Ontology_Development_Plan development plans]<br />
<br />
2. Alternative formalisms for inter-ontology links. From Chris email, 7/8/2011:<br />
* equivalence (e.g. VAO:ligament equivalentTo Uberon:skeletal_ligament)<br />
* subclass_of (e.g. EMAPA:islets_of_langerhans SubClassOf Uberon:islets_of_langerhans) note that EMAPA includes several classes called "islet of langerhans" and no single generic class, so we're forced to use subclass here<br />
* equivalence given a taxon (e.g. MA:ligament EquivalentTo Uberon:ligament and partOf some NCBITaxon:10090)<br />
<br />
3. Discuss use of vertebrate anatomy [https://www.phenoscape.org/wiki/Ontologies#Anatomy_Ontologies term tracker and mailing lists]<br />
<br />
4. Issues raised by Chris:<br />
##alternate project meetings with calls where we invite other members of the obo-anatomy list?<br />
##make the agenda pages on the wiki publicly readable?<br />
<br />
=== Minutes ===<br />
<br />
1. Reviewed ontology development plan for year 1:<br />
* multispecies ontologies (TAO, AAO, AMAO) will import VAO; cross references in VAO, TAO, AAO, AMAO to upperlevel ontologies unnecessary<br />
**'''Action item''': Chris and Jim to discuss handling of imports in OWL version of ontologies<br />
* single species ontologies (MA, XAO, ZFA) will maintain species-specific versions of terms, and cross reference VAO and appropriate multispecies ontology<br />
**Cross references in single species ontologies are specified as "equivalent in taxon" links by having a line describing the meaning of the xref in the header of ontology file; for example, ZFA has the following lines in the header:<br />
treat-xrefs-as-genus-differentia: CL part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: TAO part_of NCBITaxon:7955<br />
treat-xrefs-as-genus-differentia: CARO part_of NCBITaxon:7955<br />
*macro-xrefs tralsated into owl: ZFA term is the equivalent of the TAO term<br />
*Beware if two terms xref a single term: indicates that there is a duplicate term (error)<br />
<br />
Aaron: XAO will be adding upwards of several thousand terms, many embryological; will ref ZFA, VAO, CARO <br />
* will be done manually, case by case basis, - are there tools for automating this?<br />
* '''Action item''': Chris and Jim to discuss tools for adding large chunks of ontologies to other ontologies - Paula suggests involving Jeff Bowes<br />
*Chris: mapping issue here: don't xref at sibling level (e.g., XAO shouldn't xref ZFA), should inherit the term<br />
*Long term goal for XAO is to follow import model; <br />
<br />
Chris: need generic guidelines for when to subtype and when to merge<br />
*when need to designate develops_from relationship that is not general, would create a subclass rather than add relationship at amphibian level<br />
**this is a shortterm solution; get latticy ontology, difficult to navigate<br />
Wasila: way to handle taxonomically variable relationships as annotations?<br />
Chris: difficult to edit a separate data table, which would need extensions and way to view as ontology relationships<br />
<br />
Terry: possible redundancy issue: Uberon has skeletal terms that VAO doesn't yet; what should be xrefed?<br />
<br />
Wasila: VAO is musculo-skeletal so xrefs should be made to VAO; non-skeletal terms can be xrefed to Uberon<br />
* Term addition to VAO is ongoing, but focus xref addition on limb/fin anatomy in first year<br />
<br />
Decided to keep this time slot for project specific issues but there is interest in participating in a general call; also could revisit using this time slot after project work settles down<br />
<br />
== June 13, 2011 ==<br />
'''Attending:''' Monte Westerfield, Paula Mabee, Judy Blake, Aaron Zorn, Jeff Bowes, Wasila Dahdul, Jim Balhoff, Terry Hayamizu<br />
<br />
===Agenda===<br />
* Judy: <br />
** Discussion on how to initiate the Amniote Anatomy Ontology for terms outside skeletal system <br />
** Report on status of unified anatomy [emap + MA] <br />
** What exactly is abstract mouse?<br />
** Clone MA, UBERON, unified mouse [emap + MA], or abstract mouse? <br />
* Monte: <br />
** Discussion on moving ZFA to GO like model; possibility of implementing VAO import (so that XAO can just clone this VAO chunk when they also clone the rest of ZFA)<br />
* Aaron and Jeff: <br />
** Discussion on setting up modular ontology model and specifics of importing model species-specific information (like devo stage)<br />
<br />
=== Action items resulting from call:===<br />
* Monte: Charge to the zfin group (from Monte) is to write up plan and potential problems<br />
* Judy: Will send Jim contact for Amelia Ireland for diff<br />
* All: short term goal to add xrefs to VAO to ZFA, XAO, MA<br />
* Wasila: give VAO write access to other groups <br />
* Wasila: find out how often UBERON gets updated '''-- done WD 6/25/2011'''<br />
* Wasila: Schedule weekly meeting to sort out what is happening in these AOs, beginning in July '''-- done WD 6/25/2011'''<br />
<br />
===Minutes===<br />
<br />
* Wasila will demonstrate diffs between Uberon and MA using non-skeletal terms<br />
** e.g. 'naris' in mouse is 'part of nose'<br />
** e.g. 'naris' in uberon with lots of xrefs but missing relationship 'part of' olfactory apparatus <br />
** not sure how often Chris updates Uberon<br />
*Terry - developed adult Mouse Anatomy; working with Edinburgh group to update their ontology<br />
** 'unified mouse anatomy' not an official term, just a descriptor<br />
** Ed. developmental mouse anatomy developed 15 years ago in an effort to code mouse expressiondata. Built along lines of an atlas by kauffman and baird; partonomy; Used for expression annotation by ... for years now. Two parts: abstract mouse which is a time -inedpent collection of terms in a hierarhy not a dag; and from that extracted stage-dependent hierarchies. stage 28 is postnatal -- this is not developed at all. 8-10 years ago, a postnatal developed by jax. jax added is-a and expanded on stages. Examined all relevant ontologies in updating. Two entities (MA vs. developmental) not connected currently -- working to make it an anatomy ontology encompassing the whole of mouse development. <br />
** Q: re: timeline? Terry: within next two weeks could give clearer answer. <br />
** would like to work with rest of ao community to make it a resource that will best serve needs of community. It works for expression and for phenotype, but needs to work better for other communities. Have updated based on other working groups. Would like to work to update weak points.<br />
** Judy - Terry funded for small portion of time on issues relevant to project<br />
** Wasila - use mouse<br />
** Judy -- start with MA, great place to start. Talk with Chris to see where he last updated and worked with it. <br />
** Terry -- Uberon - made an effort to take into consideration only things that are shared - not less valuable for it; structurally less consistent than mouse; mouse is lacking becuase of roots in ed anatomy and purpose for expression -- so the high level structure is a partonomy; first level division into regions, then into organ systems, etc. Need to think about primary goals of new ontology. Where along tree does it no longer serve amniotes or chickens? <br />
** Some avian terms are already in uberon -- use mixed approach. Also uberon follows more of a is_a approach; <br />
** MA, Uberon, VAO, AmAO are all separate right now; good documentation of proposed changes; <br />
* Judy: suggestion -- all work together on one aspect at a time - start with limb/fin<br />
* Terry: Historically for MA, when significant changes made, to a section in response to some input; not a constant stream of changes; structurally and in terms of big picture, not changes often. Need to do in coordination. <br />
* Wasila: Conclude -- need mixed approach<br />
<br />
* Monte: <br />
**Need to improve ways of synchronizing zfish ontology with vao, uberon, etc. Met with db admins etc. to discuss future re: ontologies and new mechanism to stay in synch. Potential problem is that lead curator out on maternity leave, so people he discussed it with not necessarily in charge, but they understood basic issue. Charge to the zfin group (from Monte) is to write up plan and potential problems. Briefly -- problem how to grow two ontologies grow in synch. Big concern that curators have is if they become dependent on outside group such as Phenoscape, there could be changes made without consideration for the implications of zfin. Also, term request brokerage rights need to be grant to zfin. Need to work out sop for how updates are made. <br />
** Concern how we represent developmental staging. Start and stop times in same db table. If bringing in terms from outside resource, will break the devo and it will have to be moved to an outside table. This has implications for xao. If xao is dependent on zfin, this will take some time. <br />
* Aaron: best way to go is to clone zfa. Have to develop ways to import VAO. <br />
* Jeff: Inheritance structure?<br />
* Wasila: Yes, direct links<br />
* Jeff: inheritance from next highest ontology? correct?<br />
* Wasila: Yes, go up to next higher level ontology.<br />
* Jeff: Given current architecture, not hard to do. However concerns about changing higher level terms and effects on lower level terms. <br />
* Monte: talked about how zfin does with go currently - via diffs list - not overly onerous - but have to have sop - can run checks on reasoning, but human will have to fix a couple of things<br />
* Judy - -yes<br />
* Aaron: VAO not complete for all organ systems....how does this work?<br />
* Jeff: This is ok -- for terms that exist in VAO, we can show as inherited.<br />
* Jeff: Development not taken into account in higher-level ontologies. Have to have a way to associate development with terms. Just show which terms are inherited and maintain just as we do now.<br />
* Aaron: Will clone vao and zfa terms and keep xrefs. When we transition to other system, can track what we are importing. <br />
** In short term, clone vao terms into xao - ok? <br />
* Short term goal: Add xrefs to VAO to ZFA, XAO, MA<br />
* Judy: weekly meeting to sort out what is happening in these anatomies?<br />
* Wasila: yes, it would be useful<br />
* Aaron: jamboree approach -- <br />
* Judy: Even a 1/2 hour check up<br />
* Wasila: Even a open weekly call<br />
* Judy: open up wiki for agenda building and notes<br />
* Aaron re: data jam: 22 Aug-26 Aug; Erik S for 5 days<br />
* Paula: Most efficient way to add xrefs to VAO to zfa etc.?<br />
* Monte: ZFA and XAO etc. need write access to VAO<br />
* Paula: Jim -- how to get this diff file automatically generated?<br />
* Judy: Will send Jim contact for Amelia Ireland for diff <br />
* Wasila: Will give write access to VAO to other groups. Will be making lots of changes over next two months. <br />
* Paula: How coordinated in GO?<br />
* Judy: Webex every/most mornings by the GO development team, share screen and work together ---additions at leaves easy; others assigned to people; coordination - big branches worked on by whole group<br />
* bowes@ucalgary.ca and terry to be added to email list; Wasila will send out notes</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8653Data Services2011-07-07T16:52:07Z<p>Jpb15: /* Phenotypic profile match service */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes, and a value for the <code>include_inferred</code> option. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8652Data Services2011-07-07T16:50:58Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
==Phenotypic profile match service==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/profile?taxon=[taxonID]&query=[url-encoded-json]<br />
<br />
The JSON-formatted query specification should contain only a list of phenotypes. The <code>taxon</code> parameter is optional. If included, the results will contain profile match counts for each of the taxon's children. If not provided, the service will return data the highest taxon which has children with different match counts (useful for starting the tree display).<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"matches": [{<br />
"taxon_id": "TTO:10000304",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000293",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:251",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000352",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000326",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:10000316",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:254",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:10000357",<br />
"greatest_profile_match": 1<br />
},<br />
{<br />
"taxon_id": "TTO:253",<br />
"greatest_profile_match": 2<br />
},<br />
{<br />
"taxon_id": "TTO:252",<br />
"greatest_profile_match": 2<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Informatics&diff=8585Informatics2011-06-21T16:31:08Z<p>Jpb15: /* Source code */</p>
<hr />
<div>This page provides a broad overview of our informatics activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible. Development plans can be found at our [[software roadmap]].<br />
<br />
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.<br />
<br />
==Phenoscape software components==<br />
<br />
===Phenex curation tool===<br />
[[Phenex]] is a platform-independent desktop application for annotating character-by-taxon matrices with ontology terms. Phenex allows a user to describe phenotypic variation among taxa (or specimens) using Entity-Quality syntax and write the data to a NeXML file. Phenex is written in Java, based on code from the [http://oboedit.org/ OBO-Edit] and [http://www.phenote.org/ Phenote] project, and is being released under an open-source license. It can be configured to load user-selected ontologies, and in this way can be adapted to data curation in different taxonomic groups.<br />
<br />
===Phenoscape data repository===<br />
We are adopting [http://www.bioontology.org/wiki/index.php/OBD:Main_Page OBD] as the ontology-driven datastore for our phenotype annotations. We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.<br />
<br />
===Data services built on OBD===<br />
We are also developing a suite of web services on top of OBD to serve as a [http://apidocs.phenoscape.org data access API] and foundation for our user-oriented Phenoscape web application. These web services make use of mostly standard SQL [[Queries]] and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].<br />
<br />
===Phenoscape web UI===<br />
The [[Phenoscape web UI|Phenoscape web application]] will allow scientists to browse and query the phenotype annotations as well as the supporting ontologies. Initially, the query capabilities will concentrate on implementing a select set of "use-cases", research questions that show the utility of the approach. Ultimately, we will build interfaces that allow researchers to ask open-ended questions of the data. The web application is being developed using [http://www.rubyonrails.org/ Ruby on Rails] and accesses phenotype data and ontology information via our OBD web services.<br />
<br />
===Synchronization Tool===<br />
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.<br />
<br />
== Source code ==<br />
<br />
The software source code is in part being contributed back directly to a variety of existing projects we build upon, and deposited in the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO] and [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape Phenoscape] Subversion repositories on SourceForge.<br />
* Phenex:<br />
** [http://phenex.git.sourceforge.net/git/gitweb-index.cgi Browse source]<br />
** Code checkout: <code>git clone git://phenex.git.sourceforge.net/gitroot/phenex/phenex</code><br />
* Database and database loading:<br />
** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk/scripts Browse source]<br />
** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
* Data services and middleware:<br />
** Data model and database access API (OBD-API):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk Browse source]<br />
*** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
** Web-services (OBD-WS):<br />
*** [https://github.com/phenoscape/PhenoscapeOBD-WS Browse source]<br />
*** Code checkout: <code>git clone git://github.com/phenoscape/PhenoscapeOBD-WS.git</code><br />
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):<br />
** [https://github.com/phenoscape/PhenoscapeWeb Browse source]<br />
** Code checkout: <code>git clone git://github.com/phenoscape/PhenoscapeWeb.git</code><br />
* Ontology conversion and management:<br />
** TTOUpdate<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code><br />
** Synchronization Tool<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/src/SynchronizationTool/ Browse source]<br />
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/SynchronizationTool</code><br />
* Other scripts and small tools:<br />
<br />
==Affiliated projects==<br />
<br />
===OBO-Edit===<br />
We are using the [http://oboedit.org/ OBO-Edit] ontology editor to develop and maintain our [[ontologies]] such as the Teleost Anatomy Ontology and the Teleost Taxonomy Ontology.<br />
<br />
===NeXML===<br />
Phenex saves character matrix data using the new evolutionary data standard [http://www.nexml.org/ NeXML]. NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.<br />
<br />
[[Category:Informatics]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Informatics&diff=8584Informatics2011-06-21T16:29:46Z<p>Jpb15: /* Source code */</p>
<hr />
<div>This page provides a broad overview of our informatics activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible. Development plans can be found at our [[software roadmap]].<br />
<br />
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.<br />
<br />
==Phenoscape software components==<br />
<br />
===Phenex curation tool===<br />
[[Phenex]] is a platform-independent desktop application for annotating character-by-taxon matrices with ontology terms. Phenex allows a user to describe phenotypic variation among taxa (or specimens) using Entity-Quality syntax and write the data to a NeXML file. Phenex is written in Java, based on code from the [http://oboedit.org/ OBO-Edit] and [http://www.phenote.org/ Phenote] project, and is being released under an open-source license. It can be configured to load user-selected ontologies, and in this way can be adapted to data curation in different taxonomic groups.<br />
<br />
===Phenoscape data repository===<br />
We are adopting [http://www.bioontology.org/wiki/index.php/OBD:Main_Page OBD] as the ontology-driven datastore for our phenotype annotations. We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.<br />
<br />
===Data services built on OBD===<br />
We are also developing a suite of web services on top of OBD to serve as a [http://apidocs.phenoscape.org data access API] and foundation for our user-oriented Phenoscape web application. These web services make use of mostly standard SQL [[Queries]] and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].<br />
<br />
===Phenoscape web UI===<br />
The [[Phenoscape web UI|Phenoscape web application]] will allow scientists to browse and query the phenotype annotations as well as the supporting ontologies. Initially, the query capabilities will concentrate on implementing a select set of "use-cases", research questions that show the utility of the approach. Ultimately, we will build interfaces that allow researchers to ask open-ended questions of the data. The web application is being developed using [http://www.rubyonrails.org/ Ruby on Rails] and accesses phenotype data and ontology information via our OBD web services.<br />
<br />
===Synchronization Tool===<br />
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.<br />
<br />
== Source code ==<br />
<br />
The software source code is in part being contributed back directly to a variety of existing projects we build upon, and deposited in the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO] and [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape Phenoscape] Subversion repositories on SourceForge.<br />
* Phenex:<br />
** [http://phenex.git.sourceforge.net/git/gitweb-index.cgi Browse source]<br />
** Code checkout: <code>git clone git://phenex.git.sourceforge.net/gitroot/phenex/phenex</code><br />
* Database and database loading:<br />
** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk/scripts Browse source]<br />
** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
* Data services and middleware:<br />
** Data model and database access API (OBD-API):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk Browse source]<br />
*** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
** Web-services (OBD-WS):<br />
*** [https://github.com/phenoscape/PhenoscapeOBD-WS Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBD-WS/trunk</code><br />
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):<br />
** [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape/trunk/src/PhenoscapeWeb/ Browse source]<br />
** Code checkout: <code>git clone git://github.com/phenoscape/PhenoscapeOBD-WS.git</code><br />
* Ontology conversion and management:<br />
** TTOUpdate<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code><br />
** Synchronization Tool<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/src/SynchronizationTool/ Browse source]<br />
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/SynchronizationTool</code><br />
* Other scripts and small tools:<br />
<br />
==Affiliated projects==<br />
<br />
===OBO-Edit===<br />
We are using the [http://oboedit.org/ OBO-Edit] ontology editor to develop and maintain our [[ontologies]] such as the Teleost Anatomy Ontology and the Teleost Taxonomy Ontology.<br />
<br />
===NeXML===<br />
Phenex saves character matrix data using the new evolutionary data standard [http://www.nexml.org/ NeXML]. NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.<br />
<br />
[[Category:Informatics]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Informatics&diff=8583Informatics2011-06-21T16:28:05Z<p>Jpb15: /* Source code */</p>
<hr />
<div>This page provides a broad overview of our informatics activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible. Development plans can be found at our [[software roadmap]].<br />
<br />
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.<br />
<br />
==Phenoscape software components==<br />
<br />
===Phenex curation tool===<br />
[[Phenex]] is a platform-independent desktop application for annotating character-by-taxon matrices with ontology terms. Phenex allows a user to describe phenotypic variation among taxa (or specimens) using Entity-Quality syntax and write the data to a NeXML file. Phenex is written in Java, based on code from the [http://oboedit.org/ OBO-Edit] and [http://www.phenote.org/ Phenote] project, and is being released under an open-source license. It can be configured to load user-selected ontologies, and in this way can be adapted to data curation in different taxonomic groups.<br />
<br />
===Phenoscape data repository===<br />
We are adopting [http://www.bioontology.org/wiki/index.php/OBD:Main_Page OBD] as the ontology-driven datastore for our phenotype annotations. We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.<br />
<br />
===Data services built on OBD===<br />
We are also developing a suite of web services on top of OBD to serve as a [http://apidocs.phenoscape.org data access API] and foundation for our user-oriented Phenoscape web application. These web services make use of mostly standard SQL [[Queries]] and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].<br />
<br />
===Phenoscape web UI===<br />
The [[Phenoscape web UI|Phenoscape web application]] will allow scientists to browse and query the phenotype annotations as well as the supporting ontologies. Initially, the query capabilities will concentrate on implementing a select set of "use-cases", research questions that show the utility of the approach. Ultimately, we will build interfaces that allow researchers to ask open-ended questions of the data. The web application is being developed using [http://www.rubyonrails.org/ Ruby on Rails] and accesses phenotype data and ontology information via our OBD web services.<br />
<br />
===Synchronization Tool===<br />
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.<br />
<br />
== Source code ==<br />
<br />
The software source code is in part being contributed back directly to a variety of existing projects we build upon, and deposited in the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO] and [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape Phenoscape] Subversion repositories on SourceForge.<br />
* Phenex:<br />
** [http://phenex.git.sourceforge.net/git/gitweb-index.cgi Browse source]<br />
** Code checkout: <code>git clone git://phenex.git.sourceforge.net/gitroot/phenex/phenex</code><br />
* Database and database loading:<br />
** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk/scripts Browse source]<br />
** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
* Data services and middleware:<br />
** Data model and database access API (OBD-API):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk Browse source]<br />
*** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
** Web-services (OBD-WS):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBD-WS/trunk/ Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBD-WS/trunk</code><br />
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):<br />
** [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape/trunk/src/PhenoscapeWeb/ Browse source]<br />
** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/PhenoscapeWeb</code><br />
* Ontology conversion and management:<br />
** TTOUpdate<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code><br />
** Synchronization Tool<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/src/SynchronizationTool/ Browse source]<br />
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/SynchronizationTool</code><br />
* Other scripts and small tools:<br />
<br />
==Affiliated projects==<br />
<br />
===OBO-Edit===<br />
We are using the [http://oboedit.org/ OBO-Edit] ontology editor to develop and maintain our [[ontologies]] such as the Teleost Anatomy Ontology and the Teleost Taxonomy Ontology.<br />
<br />
===NeXML===<br />
Phenex saves character matrix data using the new evolutionary data standard [http://www.nexml.org/ NeXML]. NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.<br />
<br />
[[Category:Informatics]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Informatics&diff=8582Informatics2011-06-21T16:27:44Z<p>Jpb15: /* Source code */</p>
<hr />
<div>This page provides a broad overview of our informatics activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible. Development plans can be found at our [[software roadmap]].<br />
<br />
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.<br />
<br />
==Phenoscape software components==<br />
<br />
===Phenex curation tool===<br />
[[Phenex]] is a platform-independent desktop application for annotating character-by-taxon matrices with ontology terms. Phenex allows a user to describe phenotypic variation among taxa (or specimens) using Entity-Quality syntax and write the data to a NeXML file. Phenex is written in Java, based on code from the [http://oboedit.org/ OBO-Edit] and [http://www.phenote.org/ Phenote] project, and is being released under an open-source license. It can be configured to load user-selected ontologies, and in this way can be adapted to data curation in different taxonomic groups.<br />
<br />
===Phenoscape data repository===<br />
We are adopting [http://www.bioontology.org/wiki/index.php/OBD:Main_Page OBD] as the ontology-driven datastore for our phenotype annotations. We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.<br />
<br />
===Data services built on OBD===<br />
We are also developing a suite of web services on top of OBD to serve as a [http://apidocs.phenoscape.org data access API] and foundation for our user-oriented Phenoscape web application. These web services make use of mostly standard SQL [[Queries]] and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].<br />
<br />
===Phenoscape web UI===<br />
The [[Phenoscape web UI|Phenoscape web application]] will allow scientists to browse and query the phenotype annotations as well as the supporting ontologies. Initially, the query capabilities will concentrate on implementing a select set of "use-cases", research questions that show the utility of the approach. Ultimately, we will build interfaces that allow researchers to ask open-ended questions of the data. The web application is being developed using [http://www.rubyonrails.org/ Ruby on Rails] and accesses phenotype data and ontology information via our OBD web services.<br />
<br />
===Synchronization Tool===<br />
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.<br />
<br />
== Source code ==<br />
<br />
The software source code is in part being contributed back directly to a variety of existing projects we build upon, and deposited in the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO] and [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape Phenoscape] Subversion repositories on SourceForge.<br />
* Phenex:<br />
** [http://phenex.git.sourceforge.net/git/gitweb-index.cgi Browse source]<br />
** Code checkout: <code>git clone git://phenex.git.sourceforge.net/gitroot/phenex/phenex</code><br />
* Database and database loading:<br />
** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk/scripts Browse source]<br />
** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk/scripts</code><br />
* Data services and middleware:<br />
** Data model and database access API (OBD-API):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk Browse source]<br />
*** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code><br />
** Web-services (OBD-WS):<br />
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBD-WS/trunk/ Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBD-WS/trunk</code><br />
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):<br />
** [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape/trunk/src/PhenoscapeWeb/ Browse source]<br />
** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/PhenoscapeWeb</code><br />
* Ontology conversion and management:<br />
** TTOUpdate<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]<br />
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code><br />
** Synchronization Tool<br />
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/src/SynchronizationTool/ Browse source]<br />
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/SynchronizationTool</code><br />
* Other scripts and small tools:<br />
<br />
==Affiliated projects==<br />
<br />
===OBO-Edit===<br />
We are using the [http://oboedit.org/ OBO-Edit] ontology editor to develop and maintain our [[ontologies]] such as the Teleost Anatomy Ontology and the Teleost Taxonomy Ontology.<br />
<br />
===NeXML===<br />
Phenex saves character matrix data using the new evolutionary data standard [http://www.nexml.org/ NeXML]. NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.<br />
<br />
[[Category:Informatics]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Publications_and_Posters&diff=8581Publications and Posters2011-06-15T18:46:53Z<p>Jpb15: /* 2011 */</p>
<hr />
<div>==Publications==<br />
* Dahdul, W. M., J. P. Balhoff, J. Engeman, T. Grande, E. J. Hilton, C. R. Kothari, H. Lapp, J. G. Lundberg, P. E. Midford, T. J. Vision, M. Westerfield, and P. M. Mabee. 2010. Evolutionary characters, phenotypes and ontologies: curating data from the systematic biology literature. PLoS ONE 5(5):e10708. [http://dx.doi.org/10.1371/journal.pone.0010708 doi:10.1371/journal.pone.0010708]<br />
* Balhoff, J. P., W. M. Dahdul, C. R. Kothari, H. Lapp, J. G. Lundberg, P. M. Mabee, P. E. Midford, M. Westerfield, and T. J. Vision. 2010. Phenex: Ontological annotation of phenotypic diversity. PLoS ONE 5(5):e10500. [http://dx.doi.org/10.1371/journal.pone.0010500 doi:10.1371/journal.pone.0010500]<br />
* Washington, N.L., C.J. Mungall, M.Gibson, J.P. Balhoff, J. Day-Richter, and S. Lewis. Phenote: A biological data annotation editor using ontologies. ''In revision November 2010''<br />
* Dahdul, W.M., Lundberg, J.G., Midford, P.E., Balhoff, J.P., Lapp, H., Vision, T.J., Haendel, M.A., Westerfield, M., Mabee, P.M. 2010. The Teleost Anatomy Ontology: Anatomical Representation for the Genomics Age. Systematic Biology 59(4):369-383. [http://dx.doi.org/10.1093/sysbio/syq013 doi:10.1093/sysbio/syq013]<br />
* Haendel, M.A., Neuhaus, F., Osumi-Sutherland, D.S., Mabee, P.M., Mejino J.L.V., Mungall, C.J., and Smith, B. (2008) [[Media:Caroreprint.pdf|CARO - The Common Anatomy Reference Ontology]]. ''In:'' Albert Burger, Duncan Davidson and Richard Baldock (Editors): ''Anatomy Ontologies for Bioinformatics: Principles and Practice''. ISBN 978-1-84628-884-5.<br />
* Mabee PM, Ashburner M, Cronk Q, Gkoutos GV, Haendel M, Segerdell E, Mungall C, and Westerfield M. Phenotype ontologies: the bridge between genomics and evolution. Trends Ecol Evol 2007 Jul; 22(7) 345-50. [http://dx.doi.org/10.1016/j.tree.2007.03.013 doi:10.1016/j.tree.2007.03.013]<br />
* Mabee PM, Arratia G, Coburn M, Haendel M, Hilton EJ, Lundberg JG, Mayden RL, Rios N, and Westerfield M. Connecting evolutionary morphology to genomics using ontologies: a case study from Cypriniformes including zebrafish. J Exp Zoolog B Mol Dev Evol 2007 Jun 28. [http://dx.doi.org/10.1002/jez.b.21181 doi:10.1002/jez.b.21181]<br />
<br />
==Posters & Presentations==<br />
===2011===<br />
<br />
<br />
James Balhoff, Wasila Dahdul, Hilmar Lapp, Peter Midford, Todd Vision, Monte Westerfield and Paula Mabee (2011) Poster; "Employing reasoning within the Phenoscape Knowledgebase", International Conference on Biomedical Ontology; University at Buffalo, NY, July 26-30, 2011<br />
<br />
Wasila Dahdul, James Balhoff, Hilmar Lapp, Peter Midford, Todd Vision, Monte Westerfield and Paula Mabee; (2001) Presentation; "Phenoscape: use cases and anatomy ontology requirements for linking evolutionary and model organism phenotypes", ICBO workshop: From fins to limbs to leaves: Facilitating anatomy ontology interoperability; International Conference on Biomedical Ontology; University at Buffalo, NY; Poster, July 26-30, 2011<br />
<br />
James P. Balhoff, Peter E. Midford, Hilmar Lapp (2011) International Conference on Biomedical Ontology, Buffalo, NY, "Integrating anatomy and phenotype ontologies with taxonomic hierarchies", July 2011.<br />
<br />
James P. Balhoff and Hilmar Lapp (2011) Phenotype RCN Meeting, Boulder, CO, "The challenge of expressive reasoning over large knowledgebases", June 1, 2011.<br />
<br />
Paula Mabee (2011) Keynote talk for Fish Skeletal Meeting (Tavira, Portugal) "500,000 fish phenotypes: the new informatics landscape of evolutionary and developmental skeletal biology." April 28, 2011.<br />
<br />
<u>Hilmar Lapp</u> (2011) [[Media:UF Seminar Mar2011 HL.pdf| Reasoning over phenotype diversity, character change, and evolutionary descent]]. Invited seminar at University of Florida, March 1, 2011.<br />
<br />
<u>James P. Balhoff</u> (2011) [http://www.iscb.org/cshals2011-program/cshals2011-full-agenda Conference on Semantics in Healthcare and Life Sciences], Cambridge, MA, "The Phenoscape Knowledgebase: Linking Evolutionary Diversity to Genetic Data Using Phenotype Ontologies" February 24, 2011.<br />
<br />
<u>Richard.C.Edmunds</u> (2011) Northwest Developmental Biology Meeting, Society for Developmental Biology, Friday Harbor, WA "Using Phenoscape to Uncover the Genetic Basis of Evolutionary Phenotypes" March 17, 2011.<br />
<br />
Monte Westerfield (2011) Phenotype Ontology Project Meeting, Berlin, "Update on Phenoscape", Germany, February 11-14, 2011.<br />
<br />
===2010===<br />
<br />
James P. Balhoff (2010) iEvoBio Conference, Portland, OR, "Phenex: Ontological Annotation of Phenotypic Diversity", June 29, 2010<br />
<br />
Monte Westerfield (2010) Vertebrate Anatomy Workshop, Hinxton, UK, "Anatomy Representation in Phenoscape", June 25-29, 2010.<br />
<br />
<u>Richard.C.Edmunds</u> (2010) Joint Meeting of Ichthyologists and Herpetologists, American Society of Ichthyology and Herpetology, Providence, RI, "Using Phenoscape to Uncover the Genetic Basis of Evolutionary Phenotypes" July 10, 2010.<br />
<br />
<u>Hilmar Lapp</u> (2010) [http://www.bioontology.org/phenoscape Bringing reason to phenotype diversity, character change, and common descent], Webex recording of NCBO Webinar, November 17, 2010.<br />
<br />
<u>Paula Mabee </u> (2010) Hymenoptera Anatomy Ontology meeting, Raleigh, NC, "Phenoscape: Integration with ontologies" October 16, 2010.<br />
<br />
<u>Paula Mabee and Wasila Dahdul </u> (2010) Joint Meeting of Ichthyologists and Herpetologists, American Society of Ichthyology and Herpetology, Providence, RI, "New Tools for Study of Development and Evolution of the Fish Skeleton" July 11, 2010.<br />
<br />
<u>Paula Mabee</u> (2010), Sanford Health USD Biomedical Research Symposium, University of South Dakota, Vermillion, SD, "Linking phenotypes of species, mutants, and human diseases to genetics and evolution" May 14, 2010.<br />
<br />
<u>Paula Mabee</u> (2010), Collections Web Workshop II: New research opportunities emerging from integrating data across different taxonomic colletions, NSF Collections Web RCN (http://www.collectionsweb.org), New Orleans, LA, "Phenoscape integration", March 26, 2010.<br />
<br />
<u>Paula Mabee</u> (2010), Informatics tools for integrating morphological data, Encyclopedia of Life and Phenoscape (via NSF), Field Museum of Natural History, Chicago, IL, March 19, 2010.<br />
<br />
<u>Paula Mabee</u> (2010), Phenotype and Trait Ontology Workshop, PATO (NIH funded), Rome, Italy, "Phenoscape and use of the PATO ontology", February 27, 2010.<br />
<br />
<u>Paula Mabee</u> (2010), Locating Biology: The Development and Application of an Environment Ontology, Schloss Dagstuhl - Leibniz Center for Informatics, Germany, "Phenoscape: species phenotypes, genes, development...and environment", February 22, 2010.<br />
<br />
===2009===<br />
<u>Todd Vision</u> (2009) [[Media:iplant_ontologies_2009_11_22.pdf|Ontologies in Phenoscape: Morphology, Taxa and Evolution]], Presentation at the iPlant Tree of Life Data Assembly Meeting, Phoenix, AZ, Nov 22, 2009.<br />
<br />
<u>Paula Mabee</u> (2009) Introduction to Phenoscape and relation to AmphibAnat. Presentation at the AmphibAnat Meeting, Kansas City, KS Nov. 6, 2009.<br />
<br />
<u>Peter Midford</u>, Paula Mabee, Todd Vision, Hilmar Lapp, Jim Balhoff, Wasila Dahdul, Cartik Kothari, John Lundberg, Monte Westerfield (2009) [http://precedings.nature.com/documents/3594/version/1|Phenoscape: Ontologies for large multi-species phenotype datasets.] Poster at the [http://icbo.buffalo.edu/| 2009 International Conference on Biomedical Ontology] in Buffalo, NY, July 25, 2009.<br />
<br />
<u>Hilmar Lapp</u>, Jim Balhoff, Cartik Kothari, Todd Vision, Wasila Dahdul, Paula Mabee, John Lundberg, Peter Midford, Monte Westerfield (2009) "[[Media:Lapp et al ISMB2009.pdf|Informatics obstacles for integrating evolutionary phenotype diversity with model organism data]]". Poster at the 2009 ISMB conference in Stockholm, Sweden.<br />
<br />
<u>Todd Vision</u>, Jim Balhoff, Cartik Kothari, <u>Hilmar Lapp</u>, Wasila Dahdul, Paula Mabee, John Lundberg, Peter Midford, Monte Westerfield (2009) "[[Media:Vision et al eBiosphere09.pdf|Phenoscape: Linking phenotypic biodiversity to model organism genetics using ontologies]]". Poster at the e-Biosphere09 conference in London, UK.<br />
<br />
Mabee, P., J.P. Balhoff, W. Dahdul, C. Kothari, H. Lapp, J. Lundberg, P. Midford, T. Vision, M. Westerfield. Phenoscape: evolutionary morphology linked to genes using informatics. Poster at Joint Meeting of Ichthyologists and Herpetologists, Portland, OR, 2009.<br />
<br />
<u>Hilmar Lapp</u>, Todd J. Vision. 2009. A gentle introduction to ontologies for biology. 'Ontologies for Ichthyology and Herpetology' symposium. Joint Meeting of Ichthyologists and Herpetologists, Portland, OR. July 25, 2009.<br />
<br />
<u>Monte Westerfield</u>. 2009. Linking animal models and human diseases. 'Ontologies for Ichthyology and Herpetology' symposium. Joint Meeting of Ichthyologists and Herpetologists, Portland, OR. July 25, 2009.<br />
<br />
<u>Paula Mabee</u>, Jim Balhoff, Wasila Dahdul, Cartik Kothari, Hilmar Lapp, John Lundberg, Peter Midford, Todd Vision, Monte Westerfield (2009). 2009. Phenoscape: Using ontologies to link comparative morphology to genes. 'Ontologies for Ichthyology and Herpetology' symposium. Joint Meeting of Ichthyologists and Herpetologists, Portland, OR. July 25, 2009.<br />
<br />
<u>Wasila Dahdul</u>. 2009. The Teleost Anatomy Ontology: computable evolutionary morphology for teleost fishes. Department of Biological Science seminar at California State University, Fullerton, CA. May 13, 2009.<br />
<br />
<u>Paula Mabee</u>, Wasila Dahdul, John Lundberg, Peter Midford, Todd Vision, Hilmar Lapp, Jim Balhoff, Cartik Kothari, Monte Westerfield (2009) "[[Media:Mabee et al. Biocurator 09.pdf|PHENOSCAPE: Curation of evolutionary phenotypes using the MOD model]]". Poster at the 2009 Biocurator Conference in Berlin, Germany. April 18, 2009.<br />
<br />
<u>Wasila Dahdul</u>, Paula Mabee, John Lundberg, Peter Midford, Todd Vision, Hilmar Lapp, Jim Balhoff, Cartik Kothari, Melissa Haendel, Monte Westerfield (2009) "[[Media:Dahdul et al. Biocurator 09.pdf|Developing a Multi-species Anatomy Ontology for Teleost Fishes]]". Poster at the 2009 Biocurator Conference in Berlin, Germany. April 18, 2009<br />
<br />
<u>Jim Balhoff</u>, Cartik Kothari, Hilmar Lapp, Todd Vision (2009) "[[Media:EvoBioOnt_SICB09_Vision.pdf|Software and database resources for curation and management of evolutionary phenotypes]]". Presentation (by T. Vision) at the [http://www.bioontology.org/wiki/index.php/Evolutionary_Biology_and_Ontologies_2009 2nd Evolutionary Biology and Ontologies workshop] in conjunction with the [http://www.sicb.org/meetings/2009/index.php3 Annual Meeting of the Society for Integrative and Comparative Biology (SICB)]. Boston, MA, January 5, 2009.<br />
<br />
<u>Wasila Dahdul</u> (2009) "[[Media:EvoBioOnt_SICB09_Dahdul.pdf|Challenges of developing multi-species anatomy ontologies]]". Presentation at the [http://www.bioontology.org/wiki/index.php/Evolutionary_Biology_and_Ontologies_2009 2nd Evolutionary Biology and Ontologies workshop] in conjunction with the [http://www.sicb.org/meetings/2009/index.php3 Annual Meeting of the Society for Integrative and Comparative Biology (SICB)]. Boston, MA, January 5, 2009.<br />
<br />
<u>Paula Mabee</u> (2009) "[[Media:EvoBioOnt_SICB09_Mabee.pdf|Phenoscape: Extending model organism ontologies for devo-evo studies of evolutionary phenotypes]]". Presentation at the [http://www.bioontology.org/wiki/index.php/Evolutionary_Biology_and_Ontologies_2009 2nd Evolutionary Biology and Ontologies workshop] in conjunction with the [http://www.sicb.org/meetings/2009/index.php3 Annual Meeting of the Society for Integrative and Comparative Biology (SICB)]. Boston, MA, January 5, 2009.<br />
<br />
===2008===<br />
Paula Mabee (2008) “Phenoscape: Bridging systematics and genetics with ontologies”. Panel presentation at “Establishing Fish Collections and Other Biodiversity Research Resources in Africa Countries” as part of [http://www.museum.tulane.edu/ctolafrica/ International Workshop Enhancing Freshwater Fish Biodiversity Research in Africa] Grahamstown, South Africa, Nov. 18, 2008.<br />
<br />
Paula Mabee, Jim Balhoff, Wasila Dahdul, Cartik Kothari, Hilmar Lapp, John Lundberg, Peter Midford, Todd Vision, Monte Westerfield (2008) “Phenoscape: Morphology linked to genes using ontologies” Poster presentation (by P. Mabee) at: [http://www.museum.tulane.edu/ctolafrica/ International Workshop Enhancing Freshwater Fish Biodiversity Research in Africa] Grahamstown, South Africa, Nov. 17, 2008.<br />
<br />
Paula Mabee (2008). "Introduction to Phenoscape, annotation and ontologies". Presentation at [http://174.133.140.86/ AmphibAnat workshop] St. Louis, MO, Nov. 7, 2008<br />
<br />
Paula Mabee, Jim Balhoff, Wasila Dahdul, Hilmar Lapp, John Lundberg, Peter Midford, Todd Vision, Monte Westerfield (2008). Linking evolutionary morphology to genomics using ontologies. Poster (presented by Wasila Dahdul) at the [http://www.vertpaleo.org/meetings/past.cfm Society of Vertebrate Paleontology Annual Meeting], Cincinnati, OH, October 2008<br />
<br />
Peter Midford (2008) [http://www.tdwg.org/fileadmin/2008conference/slides/Midford_06_02_TaxonomicOntologies.ppt Taxonomic ontologies: Bridging phylogenetic and taxonomic history.] Presentation at the 2008 TDWG Conference, Fremantle, Western Australia, October 2008.<br />
<br />
Paula Mabee, Jim Balhoff, Wasila Dahdul, Hilmar Lapp, John Lundberg, Peter Midford, Todd Vision, Monte Westerfield (2008). [[Media:Evolution2008-phenoscape.ppt|Linking evolutionary morphology to genomics using ontologies]]. Poster at the Evolution 2008 Conference, Minneapolis, MN, July 2008.<br />
<br />
Todd Vision, Jim Balhoff, Wasila Dahdul, Hilmar Lapp, John Lundberg, Paula Mabee, Peter Midford, Monte Westerfield (2008) [[Media:atol.march08.pdf|How to enable computable phenotypes?]] Assembling the Tree of Life Principal Investigators Meeting, Hilton St. Charles, New Orleans, LA, March 2008.<br />
<br />
Paula Mabee. Keynote presentation at the NSF conference "Where to Next with the Tree of Life?" http://www.biology.uiowa.edu/ATOL/index.htm “Development of an Informatics System to bridge AToL and Evo-Devo”. April 4, 2008.<br />
<br />
===2007===<br />
<br />
Todd Vision and Hilmar Lapp (2008) [http://www.nesc.ac.uk/esi/events/710/programme.cfm Prospects for enabling phylogenetically informed comparative biology on the web]. e-Science Institute PhyloInformatics Workshop, Edinburgh, UK, October 2007.<br />
<br />
Paula Mabee, J.P. Balhoff, W. Dahdul, H. Lapp, J. Lundberg, P. Midford, T.J. Vision, M. Westerfield (2007) [[Media:Biocurator2007-phenoscape.ppt|Linking Evolution to Genomics Using Phenotype Ontologies]]. Poster at the [http://tesuque.stanford.edu/biocurator.org/Mtg2007/ 2nd Int. BioCurator Meeting], San Jose, California, Oct 2007.<br />
<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8489Data Services2011-04-28T20:38:55Z<p>Jpb15: /* Phenotypes */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_taxa": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8488Data Services2011-04-28T20:38:31Z<p>Jpb15: /* Phenotypes */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"gene_class": [<br />
{<br />
"id": "GO:XXXX"<br />
},<br />
{<br />
"id": "GO:YYYY"<br />
}<br />
],<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8487Data Services2011-04-28T20:37:18Z<p>Jpb15: /* Phenotypes */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[entity|quality|related_entity]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all phenotypes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8486Data Services2011-04-28T20:36:08Z<p>Jpb15: /* Taxa */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Phenotypes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8485Acknowledgments2011-04-27T14:50:55Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* Judith Blake, The Jackson Laboratory<br />
* Miles Coburn, John Carroll University<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Jeff Engeman, University of South Dakota<br />
* Vladimir Gapeyev, National Evolutionary Synthesis Center<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Ryan Kerney, Dalhousie University<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* Daniel Lumbantobing, George Washington University<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Richard Mayden, St. Louis University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael de Sá, University of Richmond<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8484Acknowledgments2011-04-27T14:48:57Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* Judith Blake, The Jackson Laboratory<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Vladimir Gapeyev, National Evolutionary Synthesis Center<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Ryan Kerney, Dalhousie University<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* Daniel Lumbantobing, George Washington University<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael de Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8483Acknowledgments2011-04-27T14:45:18Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* Judith Blake, The Jackson Laboratory<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Vladimir Gapeyev, National Evolutionary Synthesis Center<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Ryan Kerney, Dalhousie University<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* Daniel Lumbantobing, George Washington University<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael de Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8482Acknowledgments2011-04-27T14:38:56Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Ryan Kerney, Dalhousie University<br />
* Daniel Lumbantobing, George Washington University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael De Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8481Acknowledgments2011-04-27T14:38:34Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Ryan Kerney, Dalhousie University<br />
* Daniel Lumbantobing, George Washington University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael De Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8480Acknowledgments2011-04-27T14:37:26Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Ryan Kerney, Dalhousie University<br />
* Daniel Lumbantobing, George Washington University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael De Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
* David Wake, University of California, Berkeley<br />
* Marvalee Wake, University of California, Berkeley<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8479Acknowledgments2011-04-27T14:36:40Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Ryan Kerney, Dalhousie University<br />
* Daniel Lumbantobing, George Washington University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Rafael De Sá, University of Richmond<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
* Linda Trueb, University of Kansas<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8478Acknowledgments2011-04-27T14:32:46Z<p>Jpb15: /* Software testing */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Angel Amores, University of Oregon<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Susan Bassham, University of Oregon<br />
* William Cresko, University of Oregon<br />
* April DeLaurier, University of Oregon<br />
* Daniel Lumbantobing, George Washington University<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Conor O'Brien, University of Oregon<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Brian Sidlauskas, Oregon State University<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Jared Talbot, University of Oregon<br />
* Tom Titus, University of Oregon<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8477Acknowledgments2011-04-27T14:32:09Z<p>Jpb15: /* Phenoscape Workshop Participants &amp; Contributors */</p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Daniel Lumbantobing, George Washington University<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8476Acknowledgments2011-04-27T14:12:55Z<p>Jpb15: </p>
<hr />
<div>==Contributors==<br />
The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:<br />
<br />
===Teleost Anatomy Ontology Contributors===<br />
* Gloria Arratia, The University of Kansas<br />
* David Blackburn, University of Kansas<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Brian Sidlauskas, Oregon State University<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Richard Vari, National Museum of Natural History, Smithsonian Institution<br />
* Matt Vickaryous, University of Guelph<br />
* Jacqueline Webb, University of Rhode Island<br />
* Edward Wiley, The University of Kansas<br />
<br />
===Teleost Taxonomy Ontology Contributors===<br />
* Nicolas Bailly, WorldFish Center, Philippines<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* Wasila Dahdul, University of South Dakota<br />
* Bill Eschmeyer, California Academy of Sciences<br />
* Rainer Froese, Leibniz-Institute of Marine Sciences<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Richard Mayden, St. Louis University<br />
<br />
===Curators (Data Annotation)===<br />
* Miles Coburn, John Carroll University<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Wasila Dahdul, University of South Dakota<br />
* Jeff Engeman, University of South Dakota<br />
* Terry Grande, Loyola University, Chicago<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Richard Mayden, St. Louis University<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Sandrine Tercerie, Muséum National d'Histoire Naturelle<br />
<br />
===Phenoscape Workshop Participants &amp; Contributors===<br />
* Arhat Abzhanov, Harvard University<br />
* Angel Amores, University of Oregon<br />
* Gloria Arratia, The University of Kansas<br />
* Michael Ashburner, University of Cambridge<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Susan Bassham, University of Oregon<br />
* Rüdiger Bieler, Field Museum, Chicago<br />
* David Blackburn, University of Kansas<br />
* Judith Blake, The Jackson Laboratory<br />
* Stan Blum, California Academy of Sciences<br />
* Miles Coburn, John Carroll University<br />
* Kevin Conway, St. Louis University<br />
* William Cresko, University of Oregon<br />
* Quentin Cronk, The University of British Columbia<br />
* Wasila Dahdul, University of South Dakota<br />
* Mário de Pinna, Universidade de São Paulo<br />
* Andy Deans, North Carolina State University<br />
* April DeLaurier, University of Oregon<br />
* Alexander Diehl, The Jackson Laboratory<br />
* Torsten Dikow, Field Museum, Chicago<br />
* Jeff Engeman, University of South Dakota<br />
* George Gkoutos, University of Cambridge<br />
* Lance Grande, Field Museum, Chicago<br />
* Terry Grande, Loyola University, Chicago<br />
* Melissa Haendel, Zebrafish Information Network<br />
* Brian Hall, Dalhousie University<br />
* Eric Hilton, Virginia Institute of Marine Science<br />
* Robert Ho, University of Chicago<br />
* Hopi Hoekstra, Harvard University<br />
* Hans Hofmann, University of Texas at Austin<br />
* Elizabeth Jockusch, Univesity of Connecticut<br />
* Elizabeth Kellogg, University of Missouri, St. Louis<br />
* Chuck Kimmel, University of Oregon<br />
* Cartik Kothari, National Evolutionary Synthesis Center<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Suzanna Lewis, Berkeley Bioinformatics and Ontology Project<br />
* John Lundberg, The Academy of Natural Sciences, Philadelphia<br />
* Paula Mabee, University of South Dakota<br />
* Anne Maglia, Missouri University of Science and Technology<br />
* Joanna Mandecki, University of Chicago<br />
* Austin Mast, Florida State University<br />
* Richard Mayden, St. Louis University<br />
* Charlene McCord, University of Chicago<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
* Chris Mungall, Berkeley Bioinformatics and Ontology Project<br />
* Conor O'Brien, University of Oregon<br />
* Vicky Prince, University of Chicago<br />
* Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina<br />
* Sue Rhee, Carnegie Institution<br />
* Martin Ringwald, The Jackson Laboratory<br />
* Nelson Rios, Tulane University<br />
* Callum Ross, University of Chicago<br />
* Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia<br />
* Erik Segerdell, University of Calgary<br />
* Paul Sereno, University of Chicago<br />
* Brian Sidlauskas, Oregon State University<br />
* Barry Smith, University at Buffalo<br />
* David Stern, Princeton University<br />
* Jared Talbot, University of Oregon<br />
* Margaret Thayer, Field Museum, Chicago<br />
* Tom Titus, University of Oregon<br />
* Ceri Van Slyke, Zebrafish Information Network<br />
* Matt Vickaryous, University of Guelph<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Peter Vize, University of Calgary<br />
* Gunter Wagner, Yale University<br />
* Michael Wallinga, University of South Dakota<br />
* Nicole Washington, Lawrence Berkeley National Lab<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Mark Westneat, Field Museum, Chicago<br />
* Edward Wiley, The University of Kansas<br />
* Matt Yoder, North Carolina State University<br />
<br />
===Software testing===<br />
* Carole Baldwin, Smithsonian National Museum of Natural History<br />
* Julie Mounts, Smithsonian National Museum of Natural History<br />
* Lynne Parenti, Smithsonian National Museum of Natural History<br />
* Jiakun Song, Smithsonian National Museum of Natural History<br />
* Daniel Lumbantobing, George Washington University<br />
<br />
===Students===<br />
* Alex Ahearn, Duke University<br />
* Alyssa Block, University of South Dakota<br />
* Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina<br />
* Jeff Engeman, University of South Dakota<br />
* Ericka Grey, University of South Dakota<br />
* Jonathan Lee, Duke University<br />
* Leah Mabee, University of South Dakota<br />
* Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya<br />
* Carla Perez, Duke University<br />
* Carin Rambow, University of South Dakota<br />
* Du Rui, University of South Dakota<br />
* Brad Schanche, University of South Dakota<br />
* Michael Wallinga, University of South Dakota<br />
<br />
==Project team==<br />
* Paula Mabee, University of South Dakota<br />
* Monte Westerfield, Zebrafish Information Network and University of Oregon<br />
* Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill<br />
* Hilmar Lapp, National Evolutionary Synthesis Center<br />
* Jim Balhoff, National Evolutionary Synthesis Center<br />
* Wasila Dahdul, University of South Dakota<br />
* Peter Midford, National Evolutionary Synthesis Center<br />
<br />
==Data sources==<br />
* [http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes<br />
* [http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy<br />
* [http://www.fishbase.org/ Fishbase] - fish common names<br />
<br />
==Funding==<br />
The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.<br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Acknowledgments&diff=8475Acknowledgments2011-04-27T14:06:37Z<p>Jpb15: </p>
<hr />
<div><h2>Contributors</h2><br />
<p>The following individuals have contributed to Phenoscape ontology development, data curation, workshops, and data entry:</p><br />
<h3>Teleost Anatomy Ontology Contributors</h3><br />
<ul><br />
<li>Gloria Arratia, The University of Kansas</li><br />
<li>David Blackburn, University of Kansas</li><br />
<li>Miles Coburn, John Carroll University</li><br />
<li>Kevin Conway, St. Louis University</li><br />
<li>Wasila Dahdul, University of South Dakota</li><br />
<li>Mário de Pinna, Universidade de São Paulo</li><br />
<li>Alexander Diehl, The Jackson Laboratory</li><br />
<li>Jeff Engeman, University of South Dakota</li><br />
<li>Terry Grande, Loyola University, Chicago</li><br />
<li>Melissa Haendel, Zebrafish Information Network</li><br />
<li>Brian Hall, Dalhousie University</li><br />
<li>Eric Hilton, Virginia Institute of Marine Science</li><br />
<li>John Lundberg, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Paula Mabee, University of South Dakota</li><br />
<li>Richard Mayden, St. Louis University</li><br />
<li>Martin Ringwald, The Jackson Laboratory</li><br />
<li>Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Erik Segerdell, University of Calgary</li><br />
<li>Brian Sidlauskas, Oregon State University</li><br />
<li>Sandrine Tercerie, Muséum National d'Histoire Naturelle</li><br />
<li>Ceri Van Slyke, Zebrafish Information Network</li><br />
<li>Richard Vari, National Museum of Natural History, Smithsonian Institution</li><br />
<li>Matt Vickaryous, University of Guelph</li><br />
<li>Jacqueline Webb, University of Rhode Island</li><br />
<li>Edward Wiley, The University of Kansas</li><br />
</ul><br />
<h3>Teleost Taxonomy Ontology Contributors</h3><br />
<ul><br />
<li>Nicolas Bailly, WorldFish Center, Philippines</li><br />
<li>Stan Blum, California Academy of Sciences</li><br />
<li>Miles Coburn, John Carroll University</li><br />
<li>Kevin Conway, St. Louis University</li><br />
<li>Wasila Dahdul, University of South Dakota</li><br />
<li>Bill Eschmeyer, California Academy of Sciences</li><br />
<li>Rainer Froese, Leibniz-Institute of Marine Sciences</li><br />
<li>Terry Grande, Loyola University, Chicago</li><br />
<li>Eric Hilton, Virginia Institute of Marine Science</li><br />
<li>John Lundberg, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Richard Mayden, St. Louis University</li><br />
</ul><br />
<h3>Curators (Data Annotation)</h3><br />
<ul><br />
<li>Miles Coburn, John Carroll University</li><br />
<li>Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina</li><br />
<li>Jeff Engeman, University of South Dakota</li><br />
<li>Terry Grande, Loyola University, Chicago</li><br />
<li>Eric Hilton, Virginia Institute of Marine Science</li><br />
<li>John Lundberg, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Paula Mabee, University of South Dakota</li><br />
<li>Richard Mayden, St. Louis University</li><br />
<li>Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Sandrine Tercerie, Muséum National d'Histoire Naturelle</li><br />
</ul><br />
<h3>Phenoscape Workshop Participants &amp; Contributors</h3><br />
<ul><br />
<li>Arhat Abzhanov, Harvard University</li><br />
<li>Angel Amores, University of Oregon</li><br />
<li>Gloria Arratia, The University of Kansas</li><br />
<li>Michael Ashburner, University of Cambridge</li><br />
<li>Jim Balhoff, National Evolutionary Synthesis Center</li><br />
<li>Susan Bassham, University of Oregon</li><br />
<li>Rüdiger Bieler, Field Museum, Chicago</li><br />
<li>David Blackburn, University of Kansas</li><br />
<li>Judith Blake, The Jackson Laboratory</li><br />
<li>Stan Blum, California Academy of Sciences</li><br />
<li>Miles Coburn, John Carroll University</li><br />
<li>Kevin Conway, St. Louis University</li><br />
<li>William Cresko, University of Oregon</li><br />
<li>Quentin Cronk, The University of British Columbia</li><br />
<li>Wasila Dahdul, University of South Dakota</li><br />
<li>Mário de Pinna, Universidade de São Paulo</li><br />
<li>Andy Deans, North Carolina State University</li><br />
<li>April DeLaurier, University of Oregon</li><br />
<li>Alexander Diehl, The Jackson Laboratory</li><br />
<li>Torsten Dikow, Field Museum, Chicago</li><br />
<li>Jeff Engeman, University of South Dakota</li><br />
<li>George Gkoutos, University of Cambridge</li><br />
<li>Lance Grande, Field Museum, Chicago</li><br />
<li>Terry Grande, Loyola University, Chicago</li><br />
<li>Melissa Haendel, Zebrafish Information Network</li><br />
<li>Brian Hall, Dalhousie University</li><br />
<li>Eric Hilton, Virginia Institute of Marine Science</li><br />
<li>Robert Ho, University of Chicago</li><br />
<li>Hopi Hoekstra, Harvard University</li><br />
<li>Hans Hofmann, University of Texas at Austin</li><br />
<li>Elizabeth Jockusch, Univesity of Connecticut</li><br />
<li>Elizabeth Kellogg, University of Missouri, St. Louis</li><br />
<li>Chuck Kimmel, University of Oregon</li><br />
<li>Cartik Kothari, National Evolutionary Synthesis Center</li><br />
<li>Hilmar Lapp, National Evolutionary Synthesis Center</li><br />
<li>Suzanna Lewis, Berkeley Bioinformatics and Ontology Project</li><br />
<li>John Lundberg, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Paula Mabee, University of South Dakota</li><br />
<li>Anne Maglia, Missouri University of Science and Technology</li><br />
<li>Joanna Mandecki, University of Chicago</li><br />
<li>Austin Mast, Florida State University</li><br />
<li>Richard Mayden, St. Louis University</li><br />
<li>Charlene McCord, University of Chicago</li><br />
<li>Peter Midford, National Evolutionary Synthesis Center</li><br />
<li>Chris Mungall, Berkeley Bioinformatics and Ontology Project</li><br />
<li>Conor O'Brien, University of Oregon</li><br />
<li>Vicky Prince, University of Chicago</li><br />
<li>Martin Ramirez, Museo Argentino de Ciencias Naturales "Bernardino Rivadavia," Argentina</li><br />
<li>Sue Rhee, Carnegie Institution</li><br />
<li>Martin Ringwald, The Jackson Laboratory</li><br />
<li>Nelson Rios, Tulane University</li><br />
<li>Callum Ross, University of Chicago</li><br />
<li>Mark Sabaj Pérez, The Academy of Natural Sciences, Philadelphia</li><br />
<li>Erik Segerdell, University of Calgary</li><br />
<li>Paul Sereno, University of Chicago</li><br />
<li>Brian Sidlauskas, Oregon State University</li><br />
<li>Barry Smith, University at Buffalo</li><br />
<li>David Stern, Princeton University</li><br />
<li>Jared Talbot, University of Oregon</li><br />
<li>Margaret Thayer, Field Museum, Chicago</li><br />
<li>Tom Titus, University of Oregon</li><br />
<li>Ceri Van Slyke, Zebrafish Information Network</li><br />
<li>Matt Vickaryous, University of Guelph</li><br />
<li>Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill</li><br />
<li>Peter Vize, University of Calgary</li><br />
<li>Gunter Wagner, Yale University</li><br />
<li>Michael Wallinga, University of South Dakota</li><br />
<li>Nicole Washington, Lawrence Berkeley National Lab</li><br />
<li>Monte Westerfield, Zebrafish Information Network and University of Oregon</li><br />
<li>Mark Westneat, Field Museum, Chicago</li><br />
<li>Edward Wiley, The University of Kansas</li><br />
<li>Matt Yoder, North Carolina State University</li><br />
</ul><br />
<h3>Software testing</h3><br />
<ul><br />
<li>Carole Baldwin, Smithsonian National Museum of Natural History</li><br />
<li>Julie Mounts, Smithsonian National Museum of Natural History</li><br />
<li>Lynne Parenti, Smithsonian National Museum of Natural History</li><br />
<li>Jiakun Song, Smithsonian National Museum of Natural History</li><br />
<li>Daniel Lumbantobing, George Washington University</li><br />
</ul><br />
<h3>Students</h3><br />
<ul><br />
<li>Alex Ahearn, Duke University</li><br />
<li>Alyssa Block, University of South Dakota</li><br />
<li>Sonia Crichigno, Centro Regional Universitario Bariloche, (Univ. Nac. del Comahue), Argentina</li><br />
<li>Jeff Engeman, University of South Dakota</li><br />
<li>Ericka Grey, University of South Dakota</li><br />
<li>Jonathan Lee, Duke University</li><br />
<li>Leah Mabee, University of South Dakota</li><br />
<li>Mtakai Ngara, International Institute of Tropical Agriculture, Nairobi, Kenya</li><br />
<li>Carla Perez, Duke University</li><br />
<li>Carin Rambow, University of South Dakota</li><br />
<li>Du Rui, University of South Dakota</li><br />
<li>Brad Schanche, University of South Dakota</li><br />
<li>Michael Wallinga, University of South Dakota</li><br />
</ul><br />
<br />
<h2>Project team</h2><br />
<ul><br />
<li>Paula Mabee, University of South Dakota</li><br />
<li>Monte Westerfield, Zebrafish Information Network and University of Oregon</li><br />
<li>Todd Vision, National Evolutionary Synthesis Center and University of North Carolina at Chapel Hill</li><br />
<li>Hilmar Lapp, National Evolutionary Synthesis Center</li><br />
<li>Jim Balhoff, National Evolutionary Synthesis Center</li><br />
<li>Wasila Dahdul, University of South Dakota</li><br />
<li>Peter Midford, National Evolutionary Synthesis Center</li><br />
</ul><br />
<br />
<h2>Data sources</h2><br />
<ul><br />
<li>[http://zfin.org ZFIN] - mutant and morpholino zebrafish genes and phenotypes</li><br />
<li>[http://research.calacademy.org/ichthyology/catalog Catalog of Fishes] - fish taxonomy</li><br />
<li>[http://www.fishbase.org/ Fishbase] - fish common names</li><br />
</ul><br />
<br />
<h2>Funding</h2><br />
<p>The Phenoscape project is funded by NSF grant BDI-0641025, and supported by the National Evolutionary Synthesis Center (NESCent), NSF #EF-0423641.</p><br />
<br />
[[Category:Curation]]<br />
[[Category:Community]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8467Data Services2011-04-20T18:54:09Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]&part_of=[true|false]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The "path" parameter accepts a comma-separated list of IDs, ordered parent-to-child. The "part_of" parameter affects the entity traversal - the default is "false".<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8466Data Services2011-04-20T18:52:24Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?path=[ids]entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'. The path parameter accepts a comma-separated list of IDs, ordered parent-to-child.<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892<br />
},<br />
{<br />
"id": "TAO:0000037",<br />
"count": 8841<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841,<br />
"children": [{<br />
"id": "TAO:0007009",<br />
"count": 51<br />
},<br />
{<br />
"id": "TAO:0000393",<br />
"count": 9<br />
},<br />
{<br />
"id": "TAO:0001082",<br />
"count": 2<br />
},<br />
{<br />
"id": "TAO:0001821",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0002189",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0000190",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0000089",<br />
"count": 11<br />
},<br />
{<br />
"id": "TAO:0001122",<br />
"count": 21<br />
},<br />
{<br />
"id": "TAO:0001641",<br />
"count": 3558<br />
},<br />
{<br />
"id": "TAO:0002205",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005125",<br />
"count": 6<br />
},<br />
{<br />
"id": "TAO:0002223",<br />
"count": 10<br />
},<br />
{<br />
"id": "TAO:0002215",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0005147",<br />
"count": 13<br />
},<br />
{<br />
"id": "TAO:0005145",<br />
"count": 50<br />
},<br />
{<br />
"id": "TAO:0002193",<br />
"count": 1<br />
},<br />
{<br />
"id": "TAO:0001486",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000135",<br />
"count": 43<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8465Data Services2011-04-20T18:10:26Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"facet": [{<br />
"count": 13892,<br />
"children": [{<br />
"id": "TAO:0009000",<br />
"count": 921<br />
},<br />
{<br />
"id": "TAO:0001834",<br />
"count": 1524<br />
},<br />
{<br />
"id": "TAO:0001835",<br />
"count": 348<br />
},<br />
{<br />
"id": "TAO:0001094",<br />
"count": 118<br />
},<br />
{<br />
"id": "TAO:0001512",<br />
"count": 532<br />
},<br />
{<br />
"id": "TAO:0001973",<br />
"count": 45<br />
},<br />
{<br />
"id": "TAO:0001105",<br />
"count": 145<br />
},<br />
{<br />
"id": "GO:0005575",<br />
"count": 711<br />
},<br />
{<br />
"id": "TAO:0001738",<br />
"count": 33<br />
},<br />
{<br />
"id": "TAO:0000382",<br />
"count": 2<br />
},<br />
{<br />
"id": "GO:0008150",<br />
"count": 1298<br />
},<br />
{<br />
"id": "GO:0003674",<br />
"count": 26<br />
},<br />
{<br />
"id": "TAO:0002107",<br />
"count": 7<br />
},<br />
{<br />
"id": "TAO:0002105",<br />
"count": 4<br />
},<br />
{<br />
"id": "TAO:0001477",<br />
"count": 3841<br />
},<br />
{<br />
"id": "TAO:0002106",<br />
"count": 5<br />
},<br />
{<br />
"id": "TAO:0001487",<br />
"count": 28<br />
},<br />
{<br />
"id": "TAO:0000496",<br />
"count": 751<br />
},<br />
{<br />
"id": "TAO:0001308",<br />
"count": 660<br />
},<br />
{<br />
"id": "TAO:0001488",<br />
"count": 710<br />
},<br />
{<br />
"id": "TAO:0000020",<br />
"count": 4<br />
}]<br />
}]<br />
}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8464Data Services2011-04-20T18:05:07Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8463Data Services2011-04-20T18:04:51Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?entity=[entity-id]&quality=[quality-id]&related_entity=[related_entity-id]&taxon=[taxon-id]&gene=[gene-id]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8462Data Services2011-04-20T18:04:16Z<p>Jpb15: /* Phenotype facet counts */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/phenotype/facet/{facet}?entity=[entity-id]&quality=[quality-id]&taxon=[taxon-id]&gene=[gene-id]<br />
<br />
A facet name of either "entity", "quality", "related_entity", "taxon", or "gene" must be substituted in the URI path. All URI parameters are optional. It is an error to supply query parameter matching the facet name, i.e. for '.../phenotype/facet/entity', do not provide '?entity=xx'<br />
<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8461Data Services2011-04-20T17:43:24Z<p>Jpb15: </p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
==Phenotype facet counts==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15https://wiki.phenoscape.org/wg/phenoscape/index.php?title=Data_Services&diff=8460Data Services2011-04-20T17:42:36Z<p>Jpb15: /* Phenoscape Knowledgebase data services */</p>
<hr />
<div>This page details the data services that query the Phenoscape OBD database and transfer the retrieved results to the Phenoscape UI. Each service may support multiple media types. The desired media type can be specified by appending <code>?media=json</code> or similar to the request URL. URI specifications are defined (loosely) using [http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html URI Templates].<br />
<br />
=Phenoscape Knowledgebase data services=<br />
These are available at http://kb.phenoscape.org/OBD-WS/<br />
<br />
==Timestamp==<br />
'''URI'''<br />
<br />
<BASE URI>/timestamp<br />
<br />
This service returns the date on which the Knowledgebase content was refreshed.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"refresh_date":"2010-01-09"<br />
}<br />
<br />
</javascript><br />
<br />
==Term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}<br />
<br />
This is a generic term info service returning basic properties and relationships of a term, given its ID. The returned relationships are those included in the source ontology for the term, not all links to the term in the Knowledgebase.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TAO:0000620",<br />
"definition": "Endochondral bone that is part of the antero-lateral region of the palate.<br />
Commonly, it articulates with the maxilla anterolaterally and with the ethmoidal region medially.<br />
It may also articulate with the dermopalatine ventro-laterally and with the entopterygoid posteriorly. The autopalatine is paired.",<br />
"name": "autopalatine",<br />
"synonyms": [<br />
{<br />
"name": "palatine bone", "scope": "EXACT", "type": {"id":"COMMONNAME"}<br />
}],<br />
"parents": [<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001272",<br />
"name": "palatoquadrate arch"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0001399",<br />
"name": "palatoquadrate cartilage"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:is_a",<br />
"name": "is_a"<br />
},<br />
"target": {<br />
"id": "TAO:0001591",<br />
"name": "endochondral bone"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001942",<br />
"name": "autopalatine-maxillary joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001784",<br />
"name": "autopalatine-vomer joint"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "overlaps",<br />
"name": "overlaps"<br />
},<br />
"target": {<br />
"id": "TAO:0001608",<br />
"name": "autopalatine-lateral ethmoid joint"<br />
}<br />
}],<br />
"children": [<br />
{<br />
"relation": {<br />
"id": "develops_from",<br />
"name": "develops from"<br />
},<br />
"target": {<br />
"id": "TAO:0002158",<br />
"name": "palatine"<br />
}<br />
},<br />
{<br />
"relation": {<br />
"id": "OBO_REL:part_of",<br />
"name": "part_of"<br />
},<br />
"target": {<br />
"id": "TAO:0001578",<br />
"name": "anterior dorsomedial process of autopalatine"<br />
}<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Path to root term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/{term_id}/path<br />
<br />
This returns an array of term info objects from the ontology root to the given term.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"path":[<br />
//sequence of term info objects as returned by the term info service<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Taxon term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/taxon/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for taxa.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "TTO:101020",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000005",<br />
"name": "genus"<br />
},<br />
"name": "Ictalurus",<br />
"species_count": 231,<br />
"common_names":[{"scope":"RELATED","name":"Zebra danio","type":{"id":"COMMONNAME"}}]<br />
"synonyms": [{<br />
"name": "Villarius"<br />
},<br />
{<br />
"name": "Haustor"<br />
},<br />
{<br />
"name": "Elliops"<br />
},<br />
{<br />
"name": "Istlarius"<br />
},<br />
{<br />
"name": "Synechoglanis"<br />
}],<br />
"parent": {<br />
"id": "TTO:10930",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000004",<br />
"name": "family"<br />
},<br />
"name": "Ictaluridae"<br />
},<br />
"children": [{<br />
"id": "TTO:10000452",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Vigliotta 2008)"<br />
},<br />
{<br />
"id": "TTO:1004548",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus lupus"<br />
},<br />
{<br />
"id": "TTO:1049346",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus mexicanus"<br />
},<br />
{<br />
"id": "TTO:1004550",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus meridionalis"<br />
},<br />
{<br />
"id": "TTO:1005781",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus balsanus"<br />
},<br />
{<br />
"id": "TTO:1045587",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus australis"<br />
},<br />
{<br />
"id": "TTO:1005768",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus pricei"<br />
},<br />
{<br />
"id": "TTO:1039419",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus ochoterenai"<br />
},<br />
{<br />
"id": "TTO:1004547",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus furcatus"<br />
},<br />
{<br />
"id": "TTO:1054206",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus punctatus"<br />
},<br />
{<br />
"id": "TTO:10000228",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Mo 1991)"<br />
},<br />
{<br />
"id": "TTO:10000044",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus sp. (Fink and Fink 1981)"<br />
},<br />
{<br />
"id": "TTO:1046960",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Ictalurus dugesii"<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication term info==<br />
'''URI'''<br />
<br />
<BASE URI>/term/publication/{term_id}<br />
<br />
This is a specialized term info service which returns data in a format customized for publications.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"id": "PSPUB:0000042",<br />
"name": "Lundberg 1982",<br />
"abstract": "The skeletal and soft anatomy of Trogloglanis pattersoni Eigenmann are described and compared to other ictalurids.<br />
Trogloglanis is shown to possess a distinctive mosaic of relatively primitive and highly derived character states. Many of its features<br />
are paralleled in rother troglobitic catfishes, some of its features are paedomorphic. Phylogenetic analysis leads to the following<br />
hypothesis of inter-relationships. Pylodictis and Satan are sister groups, Noturus is monophyletic and is the sister group of Prietella,<br />
the subgenus Amiurus of Ictalurus is monophyletic and is the sister group of Noturus + Prietella + Pylodictis + Satan. In turn this<br />
large lineage is the sister group of Trogloglanis. The subgenus Ictalurus is monophyletic and is the sister group of all other living<br />
ictalurids. Geological and paleontological data suggest that Trogloglanis could not have evolved in situ before middle Eocene, but<br />
that its immediate repigean ancestors evolved by middle Oligocene.",<br />
"citation": "Lundberg, J. G. 1982. The comparative anatomy of the toothless blindcat, Trogloglanis pattersoni Eigenmann, with a phylogenetic analysis of the ictalurid catfishes.",<br />
"source": {<br />
"id": "phenoscape_pub",<br />
"name": "Phenoscape-annotated publications"<br />
},<br />
"doi":"some doi" //may not be present<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no term with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication data matrix==<br />
<br />
<BASE URI>/term/publication/{term_id}/matrix<br />
<br />
Returns a data matrix containing all characters and OTUs loaded from a published dataset.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matrix": {<br />
"2875e05f-9479-4456-91fb-81b8709a7b44": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "absent"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"dc038812-e6e7-47ed-9656-576cd46f8da5": {<br />
"6d6adec7-a220-4629-883c-b65346beba25": {<br />
"label": "absent"<br />
},<br />
"92087cf1-a738-4315-be78-58a0bc28079d": {<br />
"label": "present"<br />
},<br />
"c34ce73c-fc2e-4919-886a-68200eb19704": {<br />
"label": "passing through these bones"<br />
},<br />
"8b710077-4b7c-433c-81eb-cc20ce920bfa": {<br />
"label": "present"<br />
},<br />
"c306421f-9fcc-4dee-90b1-ea96428cf672": {<br />
"label": "fused with articular"<br />
}},<br />
"otus": [{<br />
"id": "2875e05f-9479-4456-91fb-81b8709a7b44",<br />
"label": "Armigatus brevissimus",<br />
"taxon": {<br />
"id": "TTO:10000250",<br />
"extinct": true,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Armigatus brevissimus"<br />
}<br />
},<br />
{<br />
"id": "99c913d0-f84c-4340-afac-cd0ad3ba0f0a",<br />
"label": "Clupea harengus",<br />
"taxon": {<br />
"id": "TTO:1001154",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"label": "species"<br />
},<br />
"label": "Clupea harengus"<br />
}<br />
}],<br />
"characters": [{<br />
"id": "92087cf1-a738-4315-be78-58a0bc28079d",<br />
"num": "1",<br />
"label": "Recessus lateralis"<br />
},<br />
{<br />
"id": "4b6e04bd-affa-47cc-95a2-b314cc17c20d",<br />
"num": "2",<br />
"label": "Otophysic connection involving a diverticulum of the swimbladder that penetraates the exoccipital and extends into the prootic within the lateral wall of the braincase"<br />
},<br />
{<br />
"id": "597b3b2b-10f2-4b4a-a8ce-07bd84b8e261",<br />
"num": "3",<br />
"label": "Preepiotic fossa"<br />
},<br />
{<br />
"id": "b71d0cb7-f67c-4100-9325-6e0450ea21b3",<br />
"num": "4",<br />
"label": "Parietals "<br />
}]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Publication OTUs list==<br />
<br />
<BASE URI>/term/publication/{term_id}/otus<br />
<br />
Returns a list of all OTUs in the data matrix for the given publication. For each OTU, the valid taxon TTO identifier and a list of specimens is provided.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"otus": [{<br />
"label": "Glyptothorax sp.",<br />
"specimens": [{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
},<br />
{<br />
"catalog_number": "288474",<br />
"collection": {<br />
"id": "COLLECTION:0000417",<br />
"name": "USNM"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:10000098",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax sp. (de Pinna 1996)"<br />
}<br />
},<br />
{<br />
"label": "Glyptothorax telchitta",<br />
"specimens": [{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
},<br />
{<br />
"catalog_number": "208876",<br />
"collection": {<br />
"id": "COLLECTION:0000403",<br />
"name": "UMMZ"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1051772",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Glyptothorax telchitta"<br />
}<br />
},<br />
{<br />
"label": "Breitensteinia insignis",<br />
"specimens": [{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
},<br />
{<br />
"catalog_number": "58378",<br />
"collection": {<br />
"id": "COLLECTION:0000009",<br />
"name": "AMNH"<br />
}<br />
}],<br />
"taxon": {<br />
"id": "TTO:1005733",<br />
"extinct": false,<br />
"rank": {<br />
"id": "TAXRANK:0000006",<br />
"name": "species"<br />
},<br />
"name": "Breitensteinia insignis"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there is no publication with the given ID, the service should return "404 Not Found".<br />
<br />
==Bulk term name mapper==<br />
'''URI'''<br />
<br />
<BASE URI>/term/names<br />
<br />
This service accepts a list of term IDs and returns a JSON mapping of IDs to names. Rank and extinct status are included in the output for taxon terms. The <code>render_postcompositions</code> key is optional, and can take the values "none" (the default), "structure", "semantic_label", or "simple_label".<br />
<br />
'''Accepts via POST'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"ids":["TAO:0000620", "TTO:1380", "TTO:11021", "ZFIN:ZDB-GENE-061116-1"],<br />
"render_postcompositions": "none"<br />
}<br />
</javascript><br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"terms":[<br />
{"id":"TAO:0000620","name":"autopalatine"},<br />
{"id":"TTO:1380","extinct":false,"rank":{"id":"TAXRANK:0000003","name":"order"},"name":"Siluriformes"},<br />
{"id":"TTO:11021","extinct":false,"rank":{"id":"TAXRANK:0000004","name":"family"},"name":"Erethistidae"},<br />
{"id":"ZFIN:ZDB-GENE-061116-1","name":"foxe1"}]}<br />
</javascript><br />
<br />
==Autocomplete==<br />
'''URI'''<br />
<br />
<BASE URI>/term/search?text=[input]&name=[true|false]&syn=[true|false]&ontology=[ont1,ont2,...]&type=[type1,type2,...]&limit=[count]<br />
<br />
All URI parameters are optional except for <code>text</code>. Default values are <code>name=true</code>, <code>syn=false</code>. The <code>ontology</code> parameter should be a comma-separated list of ontology prefixes to search within (any of <code>tao, go, pato, tto, zfin, pspub</code>). The <code>type</code> parameter should be any of: <code>entity, quality, taxon, gene, pub</code>. If no ontology or type is given, the default is to search all ontologies. The <code>limit</code> parameter limits the number of results to the given integer count.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"matches": [{<br />
"match_text": "Brachydanio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Cyprinus rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "syn",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
},<br />
{<br />
"match_text": "Danio rerio",<br />
"id": "TTO:1001979",<br />
"match_type": "name",<br />
"name": "Danio rerio",<br />
"source": "teleost-taxonomy"<br />
}],<br />
"search_term": "rerio"<br />
}<br />
</javascript><br />
<br />
'''Error'''<br />
<br />
If there are no terms matching the given input, a document should still be returned, containing an empty results list.<br />
<br />
==Gene annotations==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene?query=[url-encoded-json]&sortby=[gene|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all gene annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
},<br />
{<br />
"id": "ZFIN:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"gene": {<br />
"id": "TAO0001514",<br />
"name": "brph1"<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"gene": {<br />
"id": "TAO0001522",<br />
"name": "brph2"<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Gene annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/gene/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including gene, entity, quality, and optional related entity. While the gene and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"gene": [<br />
{<br />
"id": "ZFIN:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-12","name":"brpf1<sup>b943/b943<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}},<br />
{"gene":{"id":"ZFIN:ZDB-GENE-040426-731","name":"brpf1"},<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"quality":{"id":"PATO:0000587","name":"decreased size"},<br />
"genotype":{"id":"ZFIN:ZDB-GENO-080925-13","name":"brpf1<sup>t20002/t20002<\/sup>","type":{"id":"SO:0001027","name":"genotype"}},<br />
"publication":{"id":"ZFIN:ZDB-PUB-080515-4","name":"Laue, K., Daujat, S., Crump, J.G., Plaster, N., Roehl, H.H.; Tübingen 2000 Screen Consortium, Kimmel, C.B., Schneider, R., and Hammerschmidt, M.. 2008. The multidomain protein Brpf1 binds histones and is required for Hox gene expression and segmental identity. Development 135(11):1935-1946."}}<br />
]}<br />
</javascript><br />
<br />
==Genes==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/gene/annotated?query=[url-encoded-json]&sortby=[gene|fullname]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated genes will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":1690, "genes":[<br />
{"id":"ZFIN:ZDB-GENE-040426-1995","name":"abce1","fullname":"ATP-binding cassette, sub-family E (OABP), member 1"},<br />
{"id":"ZFIN:ZDB-GENE-070117-775","name":"abf","fullname":"about face"},<br />
{"id":"ZFIN:ZDB-GENE-040909-1","name":"abhd11","fullname":"abhydrolase domain containing 11"},<br />
{"id":"ZFIN:ZDB-GENE-030131-55","name":"acta1b","fullname":"actin, alpha 1b, skeletal muscle"},<br />
{"id":"ZFIN:ZDB-GENE-020419-36","name":"actl6a","fullname":"actin-like 6A"},<br />
{"id":"ZFIN:ZDB-GENE-990415-9","name":"acvr1l","fullname":"activin A receptor, type I like"},<br />
{"id":"ZFIN:ZDB-GENE-021003-1","name":"acvrl1","fullname":"activin A receptor type II-like 1"}]}<br />
</javascript><br />
<br />
==Taxon annotations==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/distinct?query=[url-encoded-json]&sortby=[taxon|entity|quality|relatedentity]&limit=[count]&index=[start_index]&desc=[true|false]&postcompositions=[none|structure|simple|semantic]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all taxon annotations will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful. The <code>postcompositions</code> parameter is optional, and is "none" by default. Rendering postcompositions should only be requested for a limited number of returned results.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{<br />
"total": 5478,<br />
"annotations": [<br />
{<br />
"taxon": {<br />
"id": "TAO0001514",<br />
"name": "Ictalurus punctatus",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001516",<br />
"name": "basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001517",<br />
"name": "fused with"<br />
},<br />
"related_entity": {<br />
"id": "TAO0001518",<br />
"name": "posterior ceratohyal"<br />
}<br />
},<br />
{<br />
"taxon": {<br />
"id": "TAO0001522",<br />
"name": "Danio rerio",<br />
"rank": {<br />
"id": "TAXRANK:00000",<br />
"name": "species"<br />
},<br />
"extinct": false<br />
},<br />
"entity": {<br />
"id": "TAO0001524",<br />
"name": "fossa of basihyal bone"<br />
},<br />
"quality": {<br />
"id": "TAO0001525",<br />
"name": "decreased width"<br />
},<br />
"related_entity": null<br />
}<br />
]<br />
}<br />
</javascript><br />
<br />
==Taxon annotation sources==<br />
'''URI'''<br />
<br />
<BASE URI>/annotation/taxon/source?query=[url-encoded-json]&postcompositions=[none|structure|simple|semantic]<br />
<br />
A JSON-formatted query specification must be provided. It must contain entries for one annotation, including taxon, entity, quality, and optional related entity. While the taxon and phenotype entries are lists, this is just for consistency with the query format used in other services - each list should contain only one entry. The "publication" list is optional, but may contain multiple publications within which to constrain the results. The <code>postcompositions</code> parameter is optional, and is "none" by default.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX"<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
]<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON:<br />
<javascript><br />
{"annotations":[{"otu":"Silurus glanis",<br />
"entity":{"id":"TAO:0000316","name":"basihyal bone"},<br />
"state":{"text":"basihyal absent"},<br />
"quality":{"id":"PATO:0000462","name":"absent"},<br />
"taxon":{"id":"TTO:1005466","extinct":false,"rank":{"id":"TAXRANK:0000006","name":"species"},"name":"Silurus glanis"},<br />
"character":{"text":"Basihyal","character_number":"240"},<br />
"publication":{"id":"PSPUB:0000022","name":"de Pinna 1993"}}]}<br />
</javascript><br />
<br />
==Taxa==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/taxon/annotated?query=[url-encoded-json]&sortby=[taxon|family|order]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated taxa will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"publication": [<br />
{<br />
"id": "PSPUB:1243"<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_publications": false,<br />
"include_inferred": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":2312, "taxa":[<br />
{"id":"TTO:1068687","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1360","extinct":false,"name":"Cypriniformes"},<br />
"family":{"id":"TTO:10760","extinct":false,"name":"Cyprinidae"},<br />
"name":"Abbottina binhi"},<br />
{"id":"TTO:1004289","extinct":false,<br />
"rank":{"id":"TAXRANK:0000006","name":"species"},<br />
"order":{"id":"TTO:1370","extinct":false,"name":"Characiformes"},<br />
"family":{"id":"TTO:10856","extinct":false,"name":"Anostomidae"},<br />
"name":"Abramites hypselonotus"}<br />
]<br />
}<br />
</javascript><br />
<br />
==Publications==<br />
<br />
'''URI'''<br />
<br />
<BASE URI>/publication/annotated?query=[url-encoded-json]&sortby=[publication]&limit=[count]&index=[start_index]&desc=[true|false]<br />
<br />
All URI parameters are optional. If no JSON-formatted query specification is provided, all annotated publications will be returned. The <code>limit</code> parameter limits the number of results to the given integer count. This must be a positive integer. The <code>index</code> parameter can be used for pagination under a given sorting and limit regime. It should be greater than or equal to zero (the default). <code>desc</code> can be used to return the results in descending order (it is false by default). If a value is not provided for <code>sortby</code>, the sort order, limit, and start index are not very useful.<br />
<br />
'''Phenotype query specification'''<br />
<br />
The value of the <code>query</code> parameter should be an annotation query represented as JSON, following this structure (in practice it should be collapsed as far as possible to shorten the URL):<br />
<br />
<javascript><br />
{<br />
"taxon": [<br />
{<br />
"id": "TTO:XXXX"<br />
},<br />
{<br />
"id": "TTO:YYYY"<br />
}<br />
],<br />
"phenotype": [<br />
{<br />
"entity": {<br />
"id": "TAO:XXXX",<br />
"including_parts": false<br />
},<br />
"quality": {<br />
"id": "PATO:XXXX"<br />
},<br />
"related_entity": {<br />
"id": "TAO:YYYYY"<br />
}<br />
}<br />
],<br />
"match_all_phenotypes": false,<br />
"match_all_taxa": false<br />
}<br />
</javascript><br />
It should be URL-encoded to include in the request.<br />
<br />
'''Returns'''<br />
<br />
JSON<br />
<javascript><br />
{"total":19, "publications":[<br />
{"id":"PSPUB:0000002","name":"Armbruster 2004"},<br />
{"id":"PSPUB:0000006","name":"Bockmann 1998"},<br />
{"id":"PSPUB:0000009","name":"Bornbusch 1995"},<br />
{"id":"PSPUB:0000011","name":"Britto 2003"},<br />
{"id":"PSPUB:0000018","name":"Chen 1994"}]}<br />
</javascript><br />
<br />
=Other ontology service definitions (for comparison)=<br />
<br />
* [http://www.ebi.ac.uk/ontology-lookup/ Ontology Lookup Service (OLS)] at the EBI. <cite>cote2006</cite> According to the website, the OLS can integrate any ontology available in OBO format. OLS is implemented as a web-service. The website has documentation on<br />
** [http://www.ebi.ac.uk/ontology-lookup/WSDLDocumentation.do web-service API] (representing the WSDL) with [http://www.ebi.ac.uk/ontology-lookup/api/uk/ac/ebi/ook/web/interfaces/QueryImpl.html JavaDoc for the interface contract], and<br />
** [http://www.ebi.ac.uk/ontology-lookup/implementationOverview.do implementation overview] (architecture)<br />
** OLS also provides 3 ReST-style services, similar to some of the lookups described above. These queries return a simple key-value XML format.<br />
*** Term info: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termmetadata&termid=ID&ontologyname=LABEL<br />
*** Completion list: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termautocomplete&termname=NAME&ontologyname=LABEL<br />
*** Term name for ID: http://www.ebi.ac.uk/ontology-lookup/ajax.view?q=termname&termid=ID&ontologyname=LABEL<br />
* The NCBO [http://www.bioontology.org/ncbo/faces/index.xhtml BioPortal] supports a [http://www.bioontology.org/docs/bioportal/development/web_services.html SOAP-based web-service API]:<br />
** WSDL: http://www.bioontology.org/ncboservicebeans/NCBOWebserviceBean?wsdl<br />
** Java JUnit test: [http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk/test/webservice/NCBOServiceTest.java test.webservice.NCBOServiceTest]<br />
* The [http://zthes.z3950.org/srw/zthes-srw-1.0.html Zthes profile for SRU] is a specification for navigating and querying remote thesauri<br />
** [http://www.loc.gov/sru/ SRU] is a Library of Congress-sponsored standard for query interoperability between digital repositories<br />
** The Zthes profile for SRU is based on an [http://zthes.z3950.org/model/zthes-model-1.0.html abstract model for thesaurus representation], which is also available as an XML Schema implementation.<br />
<br />
[[Category:Informatics]]<br />
[[Category:API]]</div>Jpb15