All Projects → PathwayCommons → cytoscape-sbgn-stylesheet

PathwayCommons / cytoscape-sbgn-stylesheet

Licence: MIT license
View biological networks via Cytoscape.js and sbgn-ml

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to cytoscape-sbgn-stylesheet

newt
A web application to visualize and edit pathway models
Stars: ✭ 46 (-2.13%)
Mutual labels:  biology, sbgn
bioicons
A library of free open source icons for science illustrations in biology and chemistry
Stars: ✭ 665 (+1314.89%)
Mutual labels:  science, biology
platetools
An R package for plotting microtitre plates
Stars: ✭ 45 (-4.26%)
Mutual labels:  biology, lab
chise.js
A web application to visualize and edit the pathway models represented by SBGN Process Description Notation
Stars: ✭ 15 (-68.09%)
Mutual labels:  biology, sbgn
Opentrons
Software for writing protocols and running them on the Opentrons OT-2
Stars: ✭ 203 (+331.91%)
Mutual labels:  science, biology
Osmnx
OSMnx: Python for street networks. Retrieve, model, analyze, and visualize street networks and other spatial data from OpenStreetMap.
Stars: ✭ 3,357 (+7042.55%)
Mutual labels:  graphs, networks
cas
Cellular Automata Simulator
Stars: ✭ 22 (-53.19%)
Mutual labels:  science, biology
gcnn keras
Graph convolution with tf.keras
Stars: ✭ 47 (+0%)
Mutual labels:  graphs, networks
Awesome Biology
Curated (meta)list of resources for Biology.
Stars: ✭ 174 (+270.21%)
Mutual labels:  science, biology
Thrive
The main repository for the development of the evolution game Thrive.
Stars: ✭ 874 (+1759.57%)
Mutual labels:  science, biology
aquarium
The Aquarium Lab Operating System
Stars: ✭ 44 (-6.38%)
Mutual labels:  biology, lab
Erdos.jl
A library for graph analysis written Julia.
Stars: ✭ 37 (-21.28%)
Mutual labels:  graphs, networks
Jvarkit
Java utilities for Bioinformatics
Stars: ✭ 313 (+565.96%)
Mutual labels:  science, biology
js-data-structures
🌿 Data structures for JavaScript
Stars: ✭ 56 (+19.15%)
Mutual labels:  graphs, networks
nxontology
NetworkX-based Python library for representing ontologies
Stars: ✭ 45 (-4.26%)
Mutual labels:  graphs, networks
graphframes
R Interface for GraphFrames
Stars: ✭ 36 (-23.4%)
Mutual labels:  graphs
GeneticVariation.jl
Datastructures and algorithms for working with genetic variation
Stars: ✭ 33 (-29.79%)
Mutual labels:  biology
intel-mkl-src
Redistribute Intel MKL as a crate
Stars: ✭ 52 (+10.64%)
Mutual labels:  science
Mermaid
Provides a parser function to generate diagrams and flowcharts with the help of the mermaid script language
Stars: ✭ 27 (-42.55%)
Mutual labels:  graphs
BigComputeLabs
Big Compute Learning Labs
Stars: ✭ 19 (-59.57%)
Mutual labels:  lab

cytoscape-sbgn-stylesheet

A Cytoscape.js package that provides SBGN specific glyph styles (demo)

Purpose

To render SBGN-PD(Systems Biology Graphical Notation) graphs -- a visual language for representing biological processes.

Installation

Install via npm

npm install cytoscape-sbgn-stylesheet

Usage

Initialize cytoscape.js and call this module as a stylesheet parameter

var cytoscape = require('cytoscape');
var sbgnStylesheet = require('cytoscape-sbgn-stylesheet');

var cy = cytoscape({
  container: container,
  style: sbgnStylesheet(cytoscape),
  // other arguments here
});

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
}

Supported SBGN PD glyphs

  • simple chemical multimer
  • macromolecule multimer
  • nucleic acid feature multimer
  • complex multimer
  • simple chemical
  • macromolecule
  • nucleic acid feature
  • compartment
  • unspecified entity
  • perturbing agent
  • complex
  • phenotype
  • tag
  • process
  • uncertain process
  • omitted process
  • source and sink
  • dissociation
  • association
  • and
  • or
  • not

Supported SBGN PD arcs

  • necessary stimulation
  • production
  • consumption
  • stimulation
  • catalysis
  • inhibition

Unsupported SBGN PD glyphs

  • submap
  • ports

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:

Style Incompatibilities

The following cytoscape.js style properties are used to render SBGN PD graphics. Overriding these entirely will produce unexpected behaviour:

  • shape
  • width
  • height
  • background-image
  • background-width
  • background-position-x
  • background-position-y
  • background-fit
  • background-clip
  • padding
  • border-width

Run targets

  • npm run build : build project
  • npm run build-prod : build the project for production
  • npm run bundle-profile : visualise the bundle dependencies
  • npm run clean : clean the project
  • npm run watch : watch mode (debug mode enabled, autorebuild, autoreload)
  • npm test : run tests
  • npm run lint : lint the project

Testing

All files /test will be run by Mocha. You can npm test to run all tests, or you can run mocha -g specific-test-name (prerequisite: npm install -g mocha) to run specific tests.

Chai is included to make the tests easier to read and write.

Publishing a release

  1. Make sure the tests are passing: npm test
  2. Do a prod build: npm run build-prod
  3. Make sure the linting is passing: npm run lint
  4. Bump the version number with npm version, in accordance with semver. The version command in npm updates both package.json and git tags, but note that it uses a v prefix on the tags (e.g. v1.2.3).
  5. For a bug fix / patch release, run npm version patch.
  6. For a new feature release, run npm version minor.
  7. For a breaking API change, run npm version major.
  8. For a specific version number (e.g. 1.2.3), run npm version 1.2.3.
  9. Push the release: git push origin --tags
  10. Publish to npm: npm publish .
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].