โ ๏ธ Please be aware that the grammar of Gosling.js may change to some extent before the first official release.
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.
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.
npm install gosling.js
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:
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.
- Open Github Issues to ask questions or request features.
- Sehi L'Yi ([email protected])
- Qianwen Wang ([email protected])
- Fritz Lekschas ([email protected])
- Nils Gehlenborg ([email protected])
This project is licensed under the terms of the MIT license.