A library of JavaScript components to represent biological data
Switch branches/tags
Failed to load latest commit information.
CONTRIBUTING.md updated edu link Feb 18, 2015
LICENSE added a dummy unit test Aug 28, 2014
README.md bold tl;dr and italics publication authors Mar 11, 2016


BioJS 2.0

88888888ba  88                     88  ad88888ba      ad888888b,  
88      "8b ""                     88 d8"     "8b    d8"     "88  
88      ,8P                        88 Y8,                    a8P  
88aaaaaa8P' 88  ,adPPYba,          88 `Y8aaaaa,           ,d8P"   
88""""""8b, 88 a8"     "8a         88   `"""""8b,       a8P"      
88      `8b 88 8b       d8         88         `8b     a8P'        
88      a8P 88 "8a,   ,a8" 88,   ,d88 Y8a     a8P    d8i"          
88888888P"  88  `"YbbdP"'   "Y8888P"   "Y88888P"     88888888888 

Version Build Status License: Apache 2 DOI

Slack Gitter IRC

TL;DR: you can browse the registry at biojs.io.

Guy Yachdav, Tatyana Goldberg, Sebastian Wilzbach, David Dao, Iris Shih, Saket Choudhary, Steve Crouch, Max Franz, Alexander García, Leyla J García, Björn A Grüning, Devasena Inupakutika, Ian Sillitoe, Anil S Thanki, Bruno Vieira, José M Villaveces, Maria V Schneider, Suzanna Lewis, Steve Pettifer, Burkhard Rost, and Manuel Corpas
[Anatomy of BioJS, an open source community for the life sciences][BioJS-elife]
eLife 2015;4:e07009 [BioJS-elife]: http://elifesciences.org/content/4/e07009


  1. Essentials
    1.1. Objectives
    1.2. What is BioJS
    1.3. Why is there nothing in this repo?
  1. Essentials

1.1. Objectives

  • Represent consistently biological information across different projects
  • Ease discovery, test and integration of graphical components
  • Standardize and facilitate components development

1.2. What is BioJS?

BioJS builds a infrastructure, guidelines and tools to avoid the reinvention of the wheel in life sciences (= "Docker for Bio web components"). Our community builds modules than can be reused by anyone and makes them available for download via a centralised registry.

1.3. Why is there nothing in this repo?

For BioJS 2.0 every component is a separate github repository. To search for a package, visit our registry. This repo is kept as intro guide and discussion repo. Feel free to open an issue (questions, suggestions, proposal or bug reports here) or to submit a component wish.

However you are still invited to show your interest in this project by starring this repo.

  1. Packages

2.1. What is a package?

A tiny building block like a FASTA parser or a visualization piece. If it obeys the rule "do one thing and do it well" , then it is (most likely) a package. The BioJS packages are published on the JavaScript package manager npm.

2.2. How to search for a package


(Find it on github: Frontend repo, backend repo).

2.3. What do I need to use a package?

A web browser. For convenience you can grab a recent CDN version of

Normally the author provides also provides you with a minimized version of his component, but you can always easily build it yourself by running "npm run build-browser".

2.4. How do I use a package?

In general the README.md of each project should explain you how to interact with it. For visualization components you can just copy the JSBin or Codepen example.

You can also add it as a dependency of your project by using npm install <package> --save.

2.5. How to build a BioJS package

Clone the package an run

npm install # this downloads all the dependencies of a package
npm test # optional
npm run build-browser # this will generate a JS file usuable in every browser (normally in the build folder)

Working examples of the component can be found in the snippets folder of a package.

  1. Developing packages

3.1. What do I need to develop?

Detailed installation instructions.

Even tough you can easily install node on Windows, a Unix-like OS is generally a more productive development enviroment.

3.2. How to create a package?

↝ read our guide

To bootstrap a new project you can use the BioJS slush generator.

npm install -g slush slush-biojs
mkdir biojsAWesome && cd biojsAwesome
slush biojs

3.3. How to use snippets/examples?

↝ read our sniper.

3.4 Guidelines

Especially the snippets should give one a quick start on how to use a component.

3.5. I need the functionality X

You are now ready to enjoy the benefits of npm. For common use cases (requests, drag and drop, promises) you will always find plenty of npm modules.

Learn more

3.6. Gold standards

Our gold standards are conventions we highly encourage you to follow (especially for JS beginners). They will help you to create a great package!

3.7. How to publish a package?

Just publish it on npm.

Learn more

3.8. How can I report defective components?

Either open an issue in their repository or use io-ratings.

  1. Support

4.1. Get involved

Whether you want to write your own component and just submit it onto our BioJS registry or help to increase our ecosystem - we value your contribution(s)!

Get involved

Here are some general ideas:

more information

4.2. Contact

There are many ways to contact us

For technical queries (questions, suggestions, proposal or bug reports) Github issues are preferred.

4.3. More questions

↝ We have a community-based wiki. Some topics include:

4.4. Documentation

We maintain a learning platform edu.biojs.net.

Pull requests are welcome.


  1. License

Apache 2