{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pygraphviz as pgv\n", "from IPython.core.display import Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The cell below comes from the Orthology notebook" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import requests\n", " \n", "ensembl_server = 'http://rest.ensembl.org'\n", "\n", "def do_request(server, service, *args, **kwargs):\n", " params = ''\n", " for a in args:\n", " if a is not None:\n", " params += '/' + a\n", " req = requests.get('%s/%s%s' % (server, service, params),\n", " params=kwargs,\n", " headers={'Content-Type': 'application/json'})\n", " \n", " if not req.ok:\n", " req.raise_for_status()\n", " return req.json()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "lct_id = 'ENSG00000115850'" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "13\n", "[u'display_id', u'description', u'db_display_name', u'info_text', u'linkage_types', u'info_type', u'primary_id', u'synonyms', u'version', u'dbname']\n", "GO:0000016 molecular_function lactase activity\n", "\"Catalysis of the reaction: lactose + H2O = D-glucose + D-galactose.\" [EC:3.2.1.108]\n", "\n", "GO:0004553 molecular_function hydrolase activity, hydrolyzing O-glycosyl compounds\n", "\"Catalysis of the hydrolysis of any O-glycosyl bond.\" [GOC:mah]\n", "\n", "GO:0005886 cellular_component plasma membrane\n", "\"The membrane surrounding a cell that separates the cell from its external environment. It consists of a phospholipid bilayer and associated proteins.\" [ISBN:0716731363]\n", "\n", "GO:0005887 cellular_component integral component of plasma membrane\n", "\"The component of the plasma membrane consisting of gene products and protein complexes that have some part that penetrates at least one leaflet of the membrane bilayer. This component includes gene products that are buried in the bilayer with no exposure outside the bilayer.\" [GOC:dos, GOC:go_curators]\n", "\n", "GO:0005975 biological_process carbohydrate metabolic process\n", "\"The chemical reactions and pathways involving carbohydrates, any of a group of organic compounds based of the general formula Cx(H2O)y. Includes the formation of carbohydrate derivatives by the addition of a carbohydrate residue to another molecule.\" [GOC:mah, ISBN:0198506732]\n", "\n", "GO:0009405 biological_process pathogenesis\n", "\"The set of specific processes that generate the ability of an organism to cause disease in another.\" [GOC:go_curators]\n", "\n", "GO:0016020 cellular_component membrane\n", "\"Double layer of lipid molecules that encloses all cells, and, in eukaryotes, many organelles; may be a single or double lipid bilayer; also includes associated proteins.\" [GOC:mah, ISBN:0815316194]\n", "\n", "GO:0016324 cellular_component apical plasma membrane\n", "\"The region of the plasma membrane located at the apical end of the cell.\" [GOC:curators]\n", "\n", "GO:0017042 molecular_function glycosylceramidase activity\n", "\"Catalysis of the reaction: glycosyl-N-acylsphingosine + H2O = a sugar + N-acylsphingosine.\" [EC:3.2.1.62]\n", "\n", "GO:0044245 biological_process polysaccharide digestion\n", "\"The whole of the physical, chemical, and biochemical processes carried out by living organisms to break down ingested polysaccharides into components that may be easily absorbed and directed into metabolism.\" [GOC:go_curators]\n", "\n", "GO:0044281 biological_process small molecule metabolic process\n", "\"The chemical reactions and pathways involving small molecules, any low molecular weight, monomeric, non-encoded molecule.\" [GOC:curators, GOC:pde, GOC:vw]\n", "\n", "GO:0004553 molecular_function hydrolase activity, hydrolyzing O-glycosyl compounds\n", "\"Catalysis of the hydrolysis of any O-glycosyl bond.\" [GOC:mah]\n", "\n", "GO:0005975 biological_process carbohydrate metabolic process\n", "\"The chemical reactions and pathways involving carbohydrates, any of a group of organic compounds based of the general formula Cx(H2O)y. Includes the formation of carbohydrate derivatives by the addition of a carbohydrate residue to another molecule.\" [GOC:mah, ISBN:0198506732]\n", "\n" ] } ], "source": [ "refs = do_request(ensembl_server, 'xrefs/id', lct_id, external_db='GO', all_levels='1')\n", "print(len(refs))\n", "print(refs[0].keys())\n", "for ref in refs:\n", " go_id = ref['primary_id']\n", " details = do_request(ensembl_server, 'ontology/id', go_id)\n", " print('%s %s %s' % (go_id, details['namespace'], ref['description']))\n", " print('%s\\n' % details['definition'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "definition: \"Catalysis of the reaction: lactose + H2O = D-glucose + D-galactose.\" [EC:3.2.1.108]\n", "name: lactase activity\n", "subsets: []\n", "namespace: molecular_function\n", "accession: GO:0000016\n", "synonyms: [u'\"lactase-phlorizin hydrolase activity\" [EC:3.2.1.108]', u'\"lactose galactohydrolase activity\" [EC:3.2.1.108]']\n", "{u'definition': u'\"Catalysis of the hydrolysis of any O-glycosyl bond.\" [GOC:mah]', u'name': u'hydrolase activity, hydrolyzing O-glycosyl compounds', u'subsets': [u'gosubset_prok'], u'namespace': u'molecular_function', u'accession': u'GO:0004553', u'synonyms': [u'\"O-glucosyl hydrolase activity\" []'], u'ontology': u'GO'}\n", "ontology: GO\n", "children: []\n", "(u'GO:0004553', 97)\n" ] } ], "source": [ "go_id = 'GO:0000016'\n", "my_data = do_request(ensembl_server, 'ontology/id', go_id)\n", "for k, v in my_data.items():\n", " if k == 'parents':\n", " for parent in v:\n", " print(parent)\n", " parent_id = parent['accession']\n", " else:\n", " print('%s: %s' % (k, str(v)))\n", "\n", "parent_data = do_request(ensembl_server, 'ontology/id', parent_id)\n", "print(parent_id, len(parent_data['children']))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GO:0016787\n", "hydrolase activity \"Catalysis of the hydrolysis of various bonds, e.g. C-O, C-N, C-C, phosphoric anhydride bonds, etc. Hydrolase is the systematic name for any enzyme of EC class 3.\" [ISBN:0198506732]\n", "\t is a: GO:0003824\n", "\n", "GO:0000016\n", "lactase activity \"Catalysis of the reaction: lactose + H2O = D-glucose + D-galactose.\" [EC:3.2.1.108]\n", "\t is a: GO:0004553\n", "\n", "GO:0016798\n", "hydrolase activity, acting on glycosyl bonds \"Catalysis of the hydrolysis of any glycosyl bond.\" [GOC:jl]\n", "\t is a: GO:0016787\n", "\n", "GO:0003824\n", "catalytic activity \"Catalysis of a biochemical reaction at physiological temperatures. In biologically catalyzed reactions, the reactants are known as substrates, and the catalysts are naturally occurring macromolecular substances known as enzymes. Enzymes possess specific binding sites for substrates, and are usually composed wholly or largely of protein, but RNA that has catalytic activity (ribozyme) is often also regarded as enzymatic.\" [ISBN:0198506732]\n", "\t is a: GO:0003674\n", "\n", "GO:0003674\n", "molecular_function \"Elemental activities, such as catalysis or binding, describing the actions of a gene product at the molecular level. A given gene product may exhibit one or more molecular functions.\" [GOC:go_curators]\n", "\t is a: \n", "\n", "GO:0004553\n", "hydrolase activity, hydrolyzing O-glycosyl compounds \"Catalysis of the hydrolysis of any O-glycosyl bond.\" [GOC:mah]\n", "\t is a: GO:0016798\n", "\n" ] } ], "source": [ "refs = do_request(ensembl_server, 'ontology/ancestors/chart', go_id)\n", "for go, entry in refs.items():\n", " print(go)\n", " term = entry['term']\n", " print('%s %s' % (term['name'], term['definition']))\n", " is_a = entry.get('is_a', [])\n", " print('\\t is a: %s\\n' % ', '.join([x['accession'] for x in is_a]))\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_upper(go_id):\n", " parents = {}\n", " node_data = {}\n", " refs = do_request(ensembl_server, 'ontology/ancestors/chart', go_id)\n", " for ref, entry in refs.items():\n", " my_data = do_request(ensembl_server, 'ontology/id', ref)\n", " node_data[ref] = {'name': entry['term']['name'], 'children': my_data['children']}\n", " try:\n", " parents[ref] = [x['accession'] for x in entry['is_a']]\n", " except KeyError:\n", " pass # Top of hierarchy\n", " return parents, node_data" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "parents, node_data = get_upper(go_id)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "strict digraph {\n", "\t\"catalytic activity\n", "(GO:0003824)\" -> \"...27...\";\n", "\t\"catalytic activity\n", "(GO:0003824)\" -> \"hydrolase activity\n", "(GO:0016787)\";\n", "\t\"hydrolase activity\n", "(GO:0016787)\" -> \"hydrolase activity\n", "acting on glycosyl bonds\n", "(GO:0016798)\";\n", "\t\"hydrolase activity\n", "(GO:0016787)\" -> \"...22...\";\n", "\t\"hydrolase activity\n", "acting on glycosyl bonds\n", "(GO:0016798)\" -> \"GO:0016799\";\n", "\t\"hydrolase activity\n", "acting on glycosyl bonds\n", "(GO:0016798)\" -> \"hydrolase activity\n", "hydrolyzing O-glycosyl compounds\n", "(GO:0004553)\";\n", "\t\"hydrolase activity\n", "hydrolyzing O-glycosyl compounds\n", "(GO:0004553)\" -> \"...96...\";\n", "\t\"hydrolase activity\n", "hydrolyzing O-glycosyl compounds\n", "(GO:0004553)\" -> \"lactase activity\n", "(GO:0000016)\";\n", "\t\"molecular_function\n", "(GO:0003674)\" -> \"catalytic activity\n", "(GO:0003824)\";\n", "\t\"molecular_function\n", "(GO:0003674)\" -> \"...21...\";\n", "}\n", "\n" ] }, { "data": { "image/png": "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\nfj1lyhQlJSVzc/OHDx8SBHHq1Cn8L3jHjh1sNpsgiKioKCaTeeLECYIgmpqavL29//e//23evHnD\nhg349oHD4aSmpq5du1ZPT6+kpGTChAm6urrv37+vqqrasGHDpk2bXF1dbW1tXV1dKysryQAQ393i\ns2fPZs2a5eHhsWjRogkTJuTk5OD1T548sbW1xcei0Wg1NTUEQdTW1vr6+i5duvSbb76xsbHJzc1t\n9QTbqrO+vn7fvn1Lly5du3athYXFzp07uVyur68vQkhFRWXVqlUEQXA4nJiYmCVLlowfP54giAsX\nLrBYLISQt7c3riQ0NJROpx85ckSgpEA9wi+m2KAuulvsqnokTfc9L0iLXQynRS8vr8LCwgsXLiCE\nyKbfpk2bEEKPHz/Giy9fvpw1axZBEFwu18bGBg9STxDE8+fP8dvGxsbG27dv47//nTt3XrlyZfny\n5aWlpYMHD/7tt99wJeXl5YMHD9bX1//w4QNew58WBw8ebGBgQBBEc3OzioqKkZERXm9sbKympoYP\nZ2dnV15ezuPxFi9enJ+fjwvY2tpqaGhUV1e3PMFW62Sz2ba2tg4ODlwulyCIsLAwhFBCQgLRolH/\n/v17/jXBwcEIocTERLxYVFS0cOHCVksK1NPWxRQnSIvCdd/zgrTYxXBaxNmBy+Wqqan16tULbyor\nK5OXl1++fDle9PHxwekgIiICIYRvKrHBgweTN/L45/fv3+PFzZs3I4RKS0vJwidPnkQIubu740X+\n9HH48OGwsDAciYGBAYPBwOv79u2LEAoKCuJyubm5udXV1WlpaS1bEmS24tdqnfhVz9OnT3GZ5ubm\n48eP43tYgXSGXyWRa5qamnR1dadPn44Xvby8srOzWy0pUE9bF1OcIC0K133PC95EiwR+UUin09XV\n1T9+/IhXampqOjs7nzp1qqSkhCCI1NTU7777DiGEbyq/+uorgd35fyZfyN6+fRshpKSkRBaYMGEC\nQujOnTstw1i1atW8efMOHDjg6+vb1NREjoJ16NAhRUVFV1dXCwuL+vp6ZWXlrKwsY2NjgX8cM2bM\naGedKSkpCCHy1QGTyXRycsINZAEC46fKysquXbv24sWLz58/b25ufvbs2YgRI1otKaCtiwlA50Fa\nFCt8TxcUFJSVlTVmzBj8ARqenaOdH4HjLFlUVESu0dTURAipqKi0LJyWlmZiYoIb3b179ybXz507\n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\nbfAsAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = pgv.AGraph(directed=True)\n", "for ofs, ofs_parents in parents.items():\n", " ofs_text = '%s\\n(%s)' % (node_data[ofs]['name'].replace(', ', '\\n'), ofs)\n", " for parent in ofs_parents:\n", " parent_text = '%s\\n(%s)' % (node_data[parent]['name'].replace(', ', '\\n'), parent)\n", " children = node_data[parent]['children']\n", " if len(children) < 3:\n", " for child in children:\n", " if child['accession'] in node_data:\n", " continue\n", " g.add_edge(parent_text, child['accession'])\n", " else:\n", " g.add_edge(parent_text, '...%d...' % (len(children) - 1))\n", " g.add_edge(parent_text, ofs_text)\n", "print(g)\n", "g.graph_attr['label']='Ontology tree for Lactase activity'\n", "g.node_attr['shape']='rectangle'\n", "g.layout(prog='dot')\n", "g.draw('graph.png')\n", "Image(\"graph.png\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GO:0000016\n", "(u'GO:0004553', u'hydrolase activity, hydrolyzing O-glycosyl compounds', u'\"Catalysis of the hydrolysis of any O-glycosyl bond.\" [GOC:mah]')\n", "(u'GO:0016798', u'hydrolase activity, acting on glycosyl bonds', u'\"Catalysis of the hydrolysis of any glycosyl bond.\" [GOC:jl]')\n", "(u'GO:0016787', u'hydrolase activity', u'\"Catalysis of the hydrolysis of various bonds, e.g. C-O, C-N, C-C, phosphoric anhydride bonds, etc. Hydrolase is the systematic name for any enzyme of EC class 3.\" [ISBN:0198506732]')\n", "(u'GO:0003824', u'catalytic activity', u'\"Catalysis of a biochemical reaction at physiological temperatures. In biologically catalyzed reactions, the reactants are known as substrates, and the catalysts are naturally occurring macromolecular substances known as enzymes. Enzymes possess specific binding sites for substrates, and are usually composed wholly or largely of protein, but RNA that has catalytic activity (ribozyme) is often also regarded as enzymatic.\" [ISBN:0198506732]')\n", "(u'GO:0003674', u'molecular_function', u'\"Elemental activities, such as catalysis or binding, describing the actions of a gene product at the molecular level. A given gene product may exhibit one or more molecular functions.\" [GOC:go_curators]')\n" ] } ], "source": [ "print(go_id)\n", "refs = do_request(ensembl_server, 'ontology/descendants', go_id)\n", "for go in refs:\n", " print(go['accession'], go['name'], go['definition'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }