Similarity explorer tool
InterMine Similarity Explorer
Background
InterMine allows scientists to explore biological data. One topic that might be of interest to research scientists would be to use explorative data visualisation to identify previously unknown similarities between two different biological objects (this could be genes, proteins, or other entities).
In order to enable this, we would like to make an explorable graph visualisation of the relationships between InterMine entities.
The current InterMine interface is powered by JSPs (example: http://www.flymine.org) and will be discontinued in the next few years. We’re building a new interface, code-named BlueGenes (Live demo). This tool should be designed to work as a visualisation / tool embedded in BlueGenes and as a standalone tool as well. This is known as the BlueGenes Tool API. You can read more about this on our Tool API release blog announcement.
Project goal:
Build a javascript based tool designed to sit on BlueGenes list pages (e.g. a page with a list of Genes or a list of Proteins).
Specifications
- Two main UI components, a graph visualisation and filters to control it:
- Graph: A cytoscape.js-based graph, which visualise interactions between objects in an InterMine list, with each gene (or protein) shown as a node, and interactions represented as an edge.
- If the items on the list don’t interact, the nodes should float freely, unattached to any other nodes.
- Filters: The filters in question need to look at other aspects of the data for each node and allow users to adjust the appearance of the nodes depending in the data values. For example, if a given gene was highly upregulated in the pancreas, it might have a thick yellow border, and if it was downregulated it might instead have a border that’s blue.
- Some of the other ways we might modify nodes based on the associated data:
- Node colour
- Node border border colour
- Node border style
- Node fill style.
- When filters update, the graph should adjust seamlessly rather than completely re-drawing.
- All colour-based attributes should be from a colourblind-friendly palette. (why this is important)
- Some of the other ways we might modify nodes based on the associated data:
- Graph: A cytoscape.js-based graph, which visualise interactions between objects in an InterMine list, with each gene (or protein) shown as a node, and interactions represented as an edge.
Here are examples of some of the queries we may be filtering on: https://docs.google.com/document/d/1daRcIDb3AUm3xNnpckYDKPkV38ngpv77pif6PT9Tx_o/edit#heading=h.fi7onnjgbvfx
Getting started
- Foundational knowledge: Take some time to learn more about InterMine and InterMine queries by looking through Getting started with InterMine JS-Based applications.
- Take the BlueGenes Tool API Tutorial. The yeoman generator in the tutorial was used to convert the network viewer into a bluegenes compatible tool. Go back to https://github.com/intermine/bluegenes-tool-cytoscape and have a look through the files now that you’ve completed the tutorial. It should look more familiar!
- Time to think about the project proposal: if you’ve made it this far, hopefully you have an understanding of the technical requirements to make a BlueGenes tool. This tool will be focusing on groups of items (e.g. genes or proteins) rather than a single gene, but generally should match the bluegenes tool api. You can discuss this with mentors and/or start writing your proposal. Always share our proposal drafts with your mentors so they can offer feedback, and take a look through our advice for applications to find tips and a proposal template.
Need help? Questions?
Try asking in the GSoC chat. The mentors for this project are:
- Yo Yehudi
- Adrián Rodríguez-Bazaga
- Aman Dwivedi