Biology (visualisation) is hard
Source: XKCD.com/1605 (CC BY-NC 2.5)
Intermine 2.0Analyse, Visualise, Explore
Yo Yehudi
Who Are We?
➔ Started 2002, funded to 2018
➔ InterMine is an open source data warehouse and analysis system
Gos Micklem’s group Six devs, one biologist
What is InterMine?InterMine has three parts:
1. Database
a. Load data from different data sets into single database
2. Webapp
a. Mine the data
b. Visualise!
3. Web services
Open Source Data Warehouse
github.com/intermine
Who uses InterMine?1. Many model organism databases use InterMine
humanmine.org (Cambridge)
mousemine.org (MGI)
ratmine.org (RGD)
zebrafishmine.org (ZFIN)
yeastmine.org (SGD)
wormine.org (WormBase)
2. Lots of other minesphytomine (JGI) - over 50 plant genomes
targetmine (NIBIO) - drug targets
Visit intermine.org for the full list
What sort of data is in InterMine?● Genomic
● Pathways
● Interactions (complex and binary)
● Protein structures
● GO and other ontologies (Mammalian phenotype, etc)
● Protein domains
● Variation
● Expression and regulation
● Lots more ...
How does one get the data from an InterMine?1. Search tools in UI
a. Keyword search
b. Sophisticated query tools
2. Web services
a. Public API
b. http://iodocs.labs.intermine.org/ - interactive documentation esyN uses InterMine web services for their
network editor tool
Getting data from an InterMine - UIData mining: you can build sophisticated queries and cross-domain multi-step questions.
Example:
1. For my human gene set, give me all the genes not annotated with Alzheimer’s.
2. Give me all the genes annotated/enriched with the wnt signaling pathway or GO term (implicated in Alzheimer’s) .
3. See which genes are expressed in the brain.
4. See what is known about these human genes in mouse (via homologues).
Query results:
$ bower install imjs im-tables
$ npm install imjs im-tables
Getting data from an InterMine - Web servicesJavascript example using the im tables library:var imtables = require('imtables');var selector = '#some-elem';var service = {root: 'http://humanmine.org/humanmine/service/'};var query = { "from": "Gene", "select": [ "primaryIdentifier", "symbol", "name", "pathways.name", "pathways.identifier", "organism.shortName" ]};
imtables.loadTable( selector, // Can also be an element, or a jQuery object. {"start":0,"size":25}, // May be null {service: service, query: query} // May be an imjs.Query).then( function (table) { console.log('Table loaded', table); }, function (error) { console.error('Could not load table', error); });
Easy aspie
Imag
e credit: C
C-B
Y-2
0 B
ill Wa
rd via F
lickr
Internet years pass even quicker than dog years
➔It’s been a long time since FlyMine (which became InterMine) was started in 2002. What can we do better with new tools?
What’s changed, and why?Feature Older Intermine < 2.0 New Intermine 2.0 UI
Page framework JSPs, with much of the logic hardcoded in Java classes
Webservice-driven via Angular
Extensibility Limited, often requires Java backend changes
Modular. Tools can be included:Via IFrameAs Angular controllersDirect from Bower
Data sources Single PostgreSQL DB instance Can draw from multiple InterMines (e.g. Fly, Human, and Yeast data can co-exist) or any other public API, e.g. UniProt or IntAct (at the EBI)
Powered by Java, Tomcat, Struts, PostgreSQL Clojure, Angular, PostgreSQL, Web Services
Workflow Browse / not always as clear as could be desired. User could end up in analysis ‘dead ends’ when unsure how to proceed.
Designed to make previous steps easily recoverable, and expose logical future steps based on current data view.
Web ServicesTo the rescue
Web Services: Let’s build something new
The challenge: We have lots of data, mostly displayed in table format.
So: We pulled out the trusty front end dev toolbelt and came up with a WebService and AngularJS driven framework.
Now: We need visualisation tools!
Modularity
BioJS components are great for InterMine 2.0. They’re usually easy to slot in.
Intermine 2.0 is designed to allow any webapp to be integrated with minimal
effort.
Modularity: how we make it workEach tool gets a basic I/O wrapper allowing it to:
➔ Take in data, e.g. a protein, a gene, a list of genes, etc.
➔ Export data
◆ Example: given a single gene (input) we might show an interaction graph, and output the whole set of genes that it interacts with.
WorkflowWe do this by saving your history and making it easy to find your ‘next step’ from your current data
Intermine 2.0 is designed to allow any webapp to be integrated with minimal
effort.
Workflow: discoverable data, discoverable tools
Ever gone browsing, made good observations along the way - and then forgotten what they were when it's time to write them up?
Your browsing history actions are saved, so you can retrace your steps easily.
Previous Steps
Workflow: discoverable data, discoverable tools
We wanted to avoid dead ends.
So rather than making the user figure out what they can do with their data, the ‘next steps’ menu exposes all the tools which know how to do things with the data you have
Next Steps
PR
EV
IOU
S S
TE
PS
(HIS
TO
RY
)
NE
XT
ST
EP
S
Examples
UniProt Protein Viewer
Pre-made (fantastic!) BioJS component which displays protein features given a protein accession.
InterMine 2.0 wrapper facilitates data discovery by:
Accepts multiple Proteins and Genes
Allows users to quickly switch between Proteins/Genes
Shows all associated proteins if a Gene is chosen.
Example: CytoscapeSlightly more complex wrapper required as the nodes and edges need to be created manually based on InterMine data
Input: A single gene or protein
Output: all the genes or proteins which interact with the chosen gene.
Cytoscape - a component
EBI IntAct - Complex ViewerDeveloped by Colin Combe at the Rappsilber Laboratory at Edinburgh University.
Shows complex interactions between proteins and small molecules. Used by IntAct Complex Portal and Intermine.
We are currently preparing to release as a BioJS component.
TL;DR:InterMine 2.0 makes it easier to get data into your tools.
If you think we should add your tool - let us know!
Thank You!Yo Yehudi
Official alpha testing begins Jan 5 2016.
For a sneak peek, visithttp://beta.intermine.org/We’d love to hear your feedback and thoughts
yoyehudi
@intermineorg
www.intermine.org