Introducing the Native App Engine

Greetings from our first worldwide developers conference at ASHG!  Our keynote presentation was just delivered by Alex Dickinson, Senior Vice President of Cloud Genomics at Illumina.  One of the big announcements in Alex’s keynote was the announcement our new Native App Engine. Developers attending today will receive early access to a new suite of tools that allow easy building of  native applications in BaseSpace. This engine is the same one that we’ve been using internally to develop apps and it allows you to port any analytical application that will run on a Linux environment to run in BaseSpace.

Some of the key benefits for both developers and users are:

  • Apps can be deployed inside of BaseSpace, without the need to host your own Web service.
  • Native Apps will look, feel, and act like BaseSpace applications.
  • Apps can be written and tested locally without the need for any SDK.
  • Reports and forms can be updated without needing to change your application code
  • Reports can be published at a later time, and update all previous analyses that were ever run
  • Any language on any Linux configuration

Three steps to building a native application


Step 1:  The Input Form

Your app may start from a sample, a VCF file, the full output of another app, or whatever data exists in BaseSpace.  It may also have a suite of options that need to be exposed as well. Our form builder tool allows you to dynamically create a form that satisfies all of your app’s requirements.  We have a full suite of configurable standard controls like textboxes, checkbox, dropdown, etc, and BaseSpace-specfic controls too.  These can be put together in any way you want with a powerful rule engine to help validate all of your business rules.  Below is a screenshot of this tool in action.

Screen Shot 2013-10-20 at 4.59.09 PM

Step 2: Add your Code on a Docker Image

Docker is a Linux container engine that allows you to create portable application images.  These images will run exactly the same on any hardware or virtualized hardware that docker itself can run on.  This means your app is totally portable to environments like Amazon EC2, Rackspace, OpenStack, or just a local Linux machine.

In the form builder tool you can specify your command line with options from the form that you built.

function launchSpec(dataProvider){
    var projectId = dataProvider.GetProperty("Input.project-id").Id;
    return [{
        commandLine: ["python", "/home/apps/fastqc/", projectId],
        containerImageId: "basespace/fastqc_v1"

Step 3:  Create your Report using HTML5 and Liquid

Now that you’ve got your app running, you can create a nice set of reports for users so they don’t just see a list of files after running your app.  We built a report builder tool that gives you the full power of HTML5 and ultimate flexibility to create a rich user experience.  Accessing data from your analysis is done via the Liquid templating language (from Shopify) and a set of extensions that we’ve added to it.

Screen Shot 2013-10-20 at 6.02.39 PM


This post is really just scratching the surface of what is possible with the new Native App Engine.  We look forward to your feedback and are really excited about what’s to come!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.