Coder Social home page Coder Social logo

cope-666 / cytoscape-sbgn-stylesheet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pathwaycommons/cytoscape-sbgn-stylesheet

0.0 0.0 0.0 47.15 MB

View biological networks via Cytoscape.js and sbgn-ml

License: MIT License

JavaScript 99.38% HTML 0.62%

cytoscape-sbgn-stylesheet's Introduction

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 .

cytoscape-sbgn-stylesheet's People

Contributors

d2fong avatar maxkfranz avatar petertsmith avatar steevokovsky avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.