A free, open-source Python library for bioinformatics and drug development applications.
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.
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 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).
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.
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.
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.
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.
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.
7. Search & select sequences
8. Ambient occlusion for 3d molecules
9. Visualize chromosomes with Dash Ideogram
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
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.
12. Build phylogeny trees and network graphs
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.