If you attended the 2017 InterMine developer workshop, you may recall the discussion we had about embedding tools in InterMine’s new UI, BlueGenes. One of the biggest priorities was to make sure that it was easy and fun to create visualisations for your mine.
It’s taken a lot of sweat, toil, testing, and iteration, but I’m incredibly excited to announce that Version 1.0 of the Tool API is released today. This means that you’ll be able to view all of your favourite client-side tools in BlueGenes, hopefully with just a few quick tweaks. It’ll also be relatively straightforward to install tools that other people have created.
You can try it out yourself, at bluegenes.apps.intermine.org – just search for a gene or protein report page.
How does it work?
npm install @intermine/my-new-tool-name --save into a terminal. Equally, updating tools is as simple as running
npm update from your tools folder. BlueGenes then looks inside a file in your tool folder called
package.json, and outputs all installed tools listed there.
package.json is an npm configuration file which contains a manifest of all the installed packages.
Running tools in BlueGenes
If you have an InterMine that’s at least at version 2.1, you can start bluegenes with the
./gradlew blueGenesStart task. See our docs for details.
It’s also possible to run tools on standalone BlueGenes.
Once tools are installed, you can see the entire list of them under the developer menu in BlueGenes (top right > click the cog > developer > tool “app store”).
Developing tools and converting your existing tools
So, you’ve gotten some tools installed and you’d like to add some more of your own? We have the full tool API specs, a tutorial to walk you through creating your first tool, and a nice tool-scaffolder yeoman generator that will create most of the boilerplate files you need automatically, so you can spend time on more important things like eating cake 🎂 and feeding the cat.
Some credits and thanks
A huge thanks to Vivek Krishnakumar for the very first draft of the Tool API specs, and to Josh Heimbach for further work on the spec. I’d also like to thank Julie, who patiently tested the Tool API installation process and helped me iron out a lot of the bugs.
What’s next for BlueGenes and the Tool API? Well, we have some updates planned specifically for the Tool API, including:
You can see a roadmap here for the Tool API. First, though, we’ll probably be thinking about some of the final bits of polish BlueGenes needs before it can be officially launched as a non-beta UI, including:
- Authentication. When the InterMine web services were initially implemented, it was with an eye to enable data scientists and bioinformaticians to access data from InterMine. Some authentication-related services had been implemented, such as token-based authentication, but given the fact that the web services weren’t designed with a full application layer in mind, we need to add some more, including as user registration.
- A MyMine section. We started with some prototypes late last year / early this year, but ended up rolling them back due to unexpected complications.
- Speedier and more configurable report pages. Is there anything you’ve always wished for in a report page that’s not a tool? Feel free to ping us with ideas.
Questions, concerns, confusion, ideas?
Drop by the InterMine chat, email the group at firstname.lastname@example.org, or drop me a mail directly – email@example.com.