UNPKG

sbgn-renderer

Version:

A library that renders SBGN

108 lines (86 loc) 3.45 kB
# SBGN Renderer A JavaSript library that renders biological networks using cytoscape.js and the System Biology Graphical Notation language ### Purpose To render SBGN(Systems Biology Graphical Notation) graphs -- a visual language for representing biological processes. ### Requirements Input needs to be formatted Cytoscape.js graph JSON. The following graph JSON structure is required: ``` { nodes: [], // array of nodes edges: [] // array of edges } ``` The following node JSON structure is required: ``` "data": { "id": "glyph23", // id of the node "class": "simple chemical", // class of the node (see classes section for a list of supported sbgn glyphs "label": "Ca2+", // label to be displayed on the node "parent": "glyph2", // parent node id if any "clonemarker": false, // whether the node has a clonemarker or not "stateVariables": [], // an array of state variables "unitsOfInformation": [], // an array of units of information } ``` The following edge JSON structure is required: ``` "data": { "id": "glyph19-glyph5", // id "class": "production", // sbgn class "cardinality": 0, // cardinality "source": "glyph19", // source node id "target": "glyph5", // target node id "portSource": "glyph19", // port of the source "portTarget": "glyph5" // port of the target } ``` To get Cytoscape.js graph JSON, you need the following: * SBGN-ML files; xml files that represent biological networks. * An [SBGN-ML to Cytoscape.js converter](https://github.com/PathwayCommons/sbgnml-to-cytoscape). ### Installation SBGN Renderer can be installed via npm ``` npm install sbgn-renderer ``` ### Usage SBGNRenderer provides Cytoscape.js's API, as well as SBGN specific functions for SBGN graph analysis. Learn how to use SBGNRenderer by learning how to use [Cytoscape.js](http://js.cytoscape.org/#introduction) Learn how to use the [SBGN API] () CommonJS Usage ```js var SBGNRenderer = require('sbgn-renderer'); var renderer = new SBGNRenderer(/* opts */); renderer.nodes(); // get cytoscape graph nodes renderer.edges(); // get cytoscape graph edges // renderer.<cytoscape-api-method-here> ``` ##### Demo For a detailed example, refer to the code in the [demo](https://github.com/PathwayCommons/sbgn-renderer/tree/master/demo): ###### Running the Demo Clone this repository ``` git clone https://github.com/PathwayCommons/sbgn-renderer ``` Change directory to the newly cloned folder ``` cd sbgn-renderer ``` Run a local server ``` node http-server -p <PORT> ``` Open your browser and type the following address: ``` localhost:<PORT>/demo/ ``` ### Building the Library The following npm scripts are available. To run a script, type: ``` npm run <command> ``` * ```build```: Builds the sbgn-renderer library; Places it in the dist folder * ```build-demo```: Builds the browserify version of the demo app in the demo folder * ```clean```: Removes the browserify demo bundle and the contents of the dist folder * ```watch```: Watches for changes in the src directory and builds the library in response * ```watch-demo```: Watches for changes in demo/browserify-entry.js and builds the demo in response