How to generate mutation distribution and frequency plots?
Let’s plot some mutations!
Easy, right? For our next iteration of the IntOGen database, we wanted to add figures that represent the mutation distribution across the protein sequence. And we found ourselves, just as others, in the situation, that we know that there are solutions, but none is available for us to incorporate in the web portal.
We would like to produce plots that describe the mutation frequency data, are aesthetically pleasing and easily understood. The Mutation Mapper at the cBioPortal does a great job already and provides a web service. Additionally we’d like to reflect different consequence types in the same position. Thus we decided to give the all-so-famous D3 (Data Driven Documents) a go. It’s a blast to use and in a couple of days we had our first plots as a generic library.
Mutation Needle Plot (muts-needle-plot).
Based on D3 we have developed the JavaScript library muts-needle-plot which can be run on the web or local. Just pass the mutation data to the library and an SVG-image will be constructed in the browser window. It generates the plot that we desired and it can do more: interaction. How many of the missense mutations are in the binding-region of the protein you’re asking? Select the region and you’ll know.
You can go see live examples and obtain the code and read installation instructions at the following sites:
- Live examples at the BioJS-registry: http://registry.biojs.net/client/#/detail/muts-needle-plot
- Installable Javascript at the npm-registry: https://www.npmjs.org/package/muts-needle-plot
- At GitHub the source code: https://github.com/bbglab/muts-needle-plot
Furthermore we gave ZENODO a try and published the GitHub-release coupled with a citable DOI. Thus, a library that has not been published with an accompanying article can be cited either way if it is being used. Click on the badge to visit the software publication:
We are happy to share the library: go ahead and give the live examples a try or employ your own data. Feedback in any form such as comments, code and usage is welcome.