Announcing Dash Bio 🧬
Tags: Biotechnology, Python, Bioinformatics, Dash, Data Visualization

A free, open-source Python library for bioinformatics and drug development applications.

TLDR; To get started with Dash Bio, install with pip install dash_bio

Then head over to the Dash Bio documentation. If you’re new to Dash, you may want to begin with the Getting Started Guide.

Plotly’s open-source app building software for Python, Dash, has seen a steady uptick among bioinformaticians and drug developers since its release. The combination of interactive web graphics, Python authoring, and ease-of-use have made Dash a natural fit in the bioinformatician’s toolbox.

As an example, the Gifford Lab at MIT has published a CRISPR prediction tool written entirely in Dash. The MIT team detailed their methodology in Nature and has made the Dash app and Python code available for free online.

Screenshot from theinDelphi CRISPR prediction app [source]

Similarly, The Hammer Lab at the Medical University of South Carolina is developing an open-source cell microscopy tool with Dash and has published their methodology on bioRxiv:

Cytokit Explorer, a Dash app built by the Hammer Lab [source]

Last summer, Plotly partnered with Canadian Research Chair Aïda Ouangraou to develop open-source, novel genomic data visualizations with Dash. The research isn’t published yet, but you can watch for news on Aïda’s research lab website.

This year, Plotly is re-upping its commitment to life sciences with Dash Bio — an open-source toolkit for building bioinformatics and drug development applications in Python.

Many Dash Bio components are built on top of JavaScript libraries that are already popular among full-stack, bioinformatics app developers. We’ve re-engineered these JavaScript widgets so that Python developers now have access to them. In other words, scientific Python developers can now can put these widgets to work without needing to know JavaScript. All you need to know is Python and Dash.

Many of the heavyweight champions of life sciences software are Java-based desktop programs — PyMol for biologics development, ImageJ for microscope image analysis, and IGV for genomic data viewing are a few examples. With Dash, future versions of apps like these can be being written for the web, entirely in Python, work on mobile devices, and be hyper-customized to particular research goals. Since Dash is open-source, the code for the entire software application stack can be freely distributed and published in a peer-reviewed manner. CRISPR, NGS, and biologics have spurred new waves of innovation and commercialization in the life sciences — Dash is the Python-based analytics library that can keep up.

Here are 12 Dash apps that show this web-based, agile and interactive approach to analysis in bioinformatics and drug development. With Dash Bio, we’ve looked to make the possibilities as broad as possible. If you’re interested in developing Dash apps like these at your company — or others that will speed discovery — you can get going today, or get in touch to discuss about Dash Enterprise options. And if you want a little help (or a lot), we can also build customized Dash apps for your organization.

1. Explore small molecules in 3d

This Dash app reads PDB (“protein data bank”) files from disk, a database, or an API in Python, then visualizes the 3d structure in Dash. Dash fires Python callback functions when you click an atom, rotate the molecule, or change the structure. You can also highlight individual atoms (like a protein’s active site).

A DNA helix visualized with the Dash 3d molecule component

2. Analyze cells in microscope images

This Dash app was made by Emma Gouillart, one of the lead developers behind scikit-image . Hover over white blood cells in the image to highlight the cell’s properties in the adjacent table. You can also use the table to filter for cells with a particular property (e.g. cells with an area below 1500 µm²). You’ll need to install Dash Canvas to run this app.

Monocytes under an optical microscope — interactively explored with Dash Canvas.

3. Run pharmacokinetics analyses

This Dash app is designed to allow someone doing a pharmacokinetics study to enter data (either manually or by copy-paste). A concentration vs. time curve is then displayed along with a table of various parameters calculated in Python.

pk analysis streamlined with a customized Dash app

4. Visualize FASTA data

There are many very nice, interactive multi-sequence alignment (MSA) viewers out there. We took inspiration from these 3:

For the Dash MSA Viewer, we used WebGL for ultrafast, interactive performance in the browser. Since the Dash MSA Viewer is a Dash component, you only need to know Python to use it. The Dash app below reads sequence data from FASTA files in Python, then plots the data with the Dash MSA viewer.

FASTA data interactively visualized with the Dash MSA Viewer

5. Highlight genomic similarities

Circos graphs are commonly used in comparative genomics. In the Dash app below, 21 chromosomes are drawn in a circle and relationships between their genomic regions are linked with a line or band. According to circos.ca, these relationships can be defined however the researcher sees fit:

Relationships between [genomic] positions can reflect any type of correspondence. For example, it can be defined on the basis of similarity (sequence or protein) or by category (functional or structural)

Since Dash Circos is a Dash component, it displays in a web browser and Python is all you need to know to build apps with it.

Highlight genomic similarities with Dash Circos

6. Visualize microarray results

Clustergrams are heatmaps with dendrograms that visualize hierarchical data clustering. They are commonly used with microarray data. The Dash Clustergram responds to click, hover, and zoom events. Python is all you need to know to create apps with Dash Clustergram.

Visualize microarray results with Dash Clustergram

7. Search & select sequences

The Dash Sequence Viewer simplifies UIs for sequence searching and selection. The core of this component was originally developed by the Swiss Institute of BioInformatics as a JavaScript library. We’ve re-engineered it for Dash so that it can be easily used in Python.

Search & select biological sequences with Dash Sequence Viewer

8. Ambient occlusion for 3d molecules

This 3d molecule viewer uses WebGL and ambient occlusion to give a better depth perception. The original JavaScript library — Speck — was developed by Rye Terrell. We’ve re-engineered this library for Dash to make it accessible to Python users building analytic apps.

Dash Speck displays interactive 3d molecules with beautiful style

9. Visualize chromosomes with Dash Ideogram

The core of Dash Ideogram is a JavaScript library developed at the Broad Institute. We’ve re-engineered it as a Dash component so that scientific Python developers can have easy access to it.

Embed interactive chromosome visualizations in your Dash apps

10. Visualize genetic mutations

Interactive needle plots can now be easily composed in Python and embedded in Dash apps. This Dash component design was inspired by the Barcelona Biomedical Genomics Lab’s muts-needle-plot JavaScript library.

11. Measure and annotate medical images

Imaging and image analysis are foundational to life sciences research. Dash Canvas lets you interactively annotate medical images and run Python routines based on the user’s interactions with the image. This Dash app shows how to calculate distances on an X-ray image using Dash Canvas and Python.

Annotate, save, and run Python routines on medical images with Dash Canvas.

12. Build phylogeny trees and network graphs

The most popular JavaScript library on BioJS is Cytoscape — a high performance network graph library. Last year, Plotly worked closely with the Cytoscape author to make this library available to Dash and Python users. Like all Dash components in this article, Dash Cytoscape is free and open-source.

Build interactive network graphs and phylogeny trees with Dash Cytoscape

One more thing…

If you like where we’re going with Dash, head over to these freshly minted GitHub projects and give them a star:

💊 If you’re a lab, chemical company, or drug development company, and you would like a customized Dash app or component built for you, please get in touch — we love a challenge. We also love giving Dash trainings if you’re re-thinking how analytics is done at your organization. Dash is an easy first Python library to learn, and we can help your team quickly get to Python-based productivity.