Git Product home page Git Product logo

gosling.js's Introduction

Gosling.js

npm version Build Status codecov code style: prettier

teaser


โš ๏ธ Please be aware that the grammar of Gosling.js may change to some extent before the first official release.

Introduction

Gosling is a declarative visualization grammar tailored for interactive genomic visualizations. Using Gosling.js, users can easily create interactive and scalable genomic visualizations through writing a JSON configuration.

{
  // A simple example
  "tracks": [{
      "data": {
        "url": "https://data-url.com",
        "type": "multivec",
        "row": "sample",
        "column": "position",
        "value": "peak",
        "categories": [
          "sample 1", 
          "sample 2", 
          "sample 3", 
          "sample 4"
          ],
        },
        "mark": "area",
        "overrideTemplate": true
      }
    }]
}

Try Online

Why Gosling?

The Gosling's key features compared to existing visualization libraries and grammars are as follows:

  • Data Scalability: As Gosling is built on HiGlass, the grammar allows you to handle and visualize large genome-mapped data (~3 billion base pairs) and quickly switch the scale of visualization from base-pair resolution to whole genome.

  • Encoding Scalability: Gosling supports an advanced zooming technique, called Semantic Zooming, which allows flexible and seamless visual exploration of large genome-mapped data. This allows you to dynamically switch between different visual encoding strategies that are appropriate for given zoom scale.

  • Expressiveness: Since Gosling is designed based on the taxonomy for genomic data visualization, it supports genomic visualizations that cannot be easily created using general visualization tools. For example, Gosling allows you to use a circular layout (i.e., displaying genomic coordinates in a polar system), in addition to a linear layout, and easily switch between the two.

  • Interactivity: Gosling supports intuitive and effective user interactions, including zooming and panning and brushing and linking, that help you flexibly set up visualization reflecting your different visual analytics use cases.

Learn More About Gosling

Installation

npm install gosling.js

Development

We exclusively support yarn (and do not support npm) to manage dependencies in stable and consistent ways, so ensure to install and use Yarn.

After cloning this repository, run the following commands to install all dependencies and run the Gosling.js editor locally.

yarn
yarn start

Then you can open http://localhost:8080/ in a web browser to play with the editor:

Commitlint

We use commitlint to maintain commit messages in a consistent form and auto-update a CHANGE.LOG based on the messages.

The allowed pattern of commit messages is:

type(scope?): subject  #scope is optional; multiple scopes are supported (current delimiter options: "/", "\" and ",")

where type can be either build, ci, chore, docs, feat, fix, perf, refactor, revert, style, or test.

Example commit messages:

git commit -m 'fix: correctly position views'
git commit -m 'feat: add a data preview panel in editor'
git commit -m 'docs: add details about commitlint in README.md'

Find out more at conventional-changelog/commitlint.

Contact

Team

License

This project is licensed under the terms of the MIT license.

gosling.js's People

Contributors

sehilyi avatar wangqianwen0418 avatar flekschas avatar

Watchers

James Cloos 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.