JavaScript Libraries for Integrating with DNAnexus

Today we are pleased to announce the release of our first publicly available JavaScript toolkit, which simplifies the integration process of your web application with DNAnexus.

Using our API library, it’s easy to make calls to the DNAnexus API from your JavaScript application. Many of the details of constructing the AJAX request are taken care of for you, with this new toolkit, including the configuration of the authentication headers, construction of the URL, serialization of the input, and backoff/retry logic for failed requests. All you need is an authentication token from DNAnexus and you’ll be on your way to making API calls.

Here is example code:

var api = new DX.Api("AUTH_TOKEN_GOES_HERE");"user-bob", "describe").done(function(resp) {
  alert("user-bob's full name is " + [resp.first, resp.last].join(" "));

For additional DX.Api documentation please visit:

In addition to API call management, we are also releasing our upload libraries that utilize multiple connections and check the integrity of files. Traditional file uploads use a single connection, do not provide integrity checking, and are not resumable. To address these shortcomings, DNAnexus upload libraries upload file chunks independently and in parallel and merge them back together, all with only a few lines of code.  Our uploading library is very efficient, utilizing web workers for efficient parallel computation and involves slicing the files into chunks, computing checksums on the chunks, uploading the chunks in parallel, and then closing the file.

Here is example code:

var upload = new DX.Upload(authToken, fileList, options);

For additional DX.Upload documentation please visit:

The DX.Upload library makes it easy to create rich upload experiences, such as the DNAnexus Web Uploader (pictured below).

Add data to project

We’ve only scratched the surface in functionality of DNAnexus JavaScript libraries, and we’ll be releasing additional features in the coming months. Also on the horizon, complete UI components for common operations inside the DNAnexus platform. Check back with our devblog for new updates and if you have any questions or feature requests, please email


DNAnexus Introduces Faster Cloud Options

Spring has arrived at DNAnexus, ushering in important updates! Starting May 1, 2014, we are excited to announce your analyses on DNAnexus will be faster, thanks to new instance types .

What does that really mean? Here’s an example before we dive into all the details…  A specific exome pipeline (e.g., BWA-MEM, GATK-Lite) now runs in less than 4 hours! Previously, the run would have taken nearly 6 hours.

New instance types

We believe, and hope you do too, that DNAnexus is the best choice for expanding your genomic analysis infrastructure. Because, unlike local equipment, which from day one starts collecting dust in your server room while technological advances pile up, the cloud is always on the forefront of computing technology as newer, faster hardware is made available.

These new hardware options are in the form of new instance types (virtual computer configurations) on which your cloud analyses can run. And thanks to the flexibility and reproducibility aspects of the DNAnexus platform, you can start using these new instance types right away—simply launch your existing analyses on one of those new instance types (e.g., using the “–instance-type <…>” option of our “dx run” command-line tool) and enjoy a completely effortless hardware upgrade!

The new instance types are built on high-frequency Intel® processors of the Sandy Bridge and Ivy Bridge microarchitectures, support the Intel® Advanced Vector Extensions (Intel® AVX), and have solid-state drive (SSD) local storage technology for fast I/O performance.

The following table summarizes these new instance types. For a given column (which represents a certain number of cores and local storage capacity), there are up to three different instance types to choose from (with different amounts of memory). Overall these new instance types span a large spectrum, starting at 2 cores, 32 GB SSD, and 3.8 GB RAM, all the way to 32 cores, 640 GB SSD, and 244 GB RAM:

summary new instance types
In an effort to be more informative and transparent, we have also come up with a new, easy to remember, and consistent naming scheme:

  • The prefix (mem1, mem2, or mem3) denotes the memory capacity per core;
  • the infix (ssd1) denotes that these instances have solid-state drive technology;
  • the suffix (x2 through x32) denotes the number of cores.

New names for existing instance types

We liked the convenient new naming scheme so much that we have applied it to existing instance types as well, as shown in the following table.

Compared to the new instance types mentioned earlier, the existing instance types are distinguished by a different storage infix (hdd2), given their regular hard disk drive technology. More information is available on our wiki page, which explains the new naming conventions and includes a detailed list of all instance types.

new instance names
To ease the transition, existing instances can currently be called by either their original name or the new name; the DNAnexus system understands both. However, we encourage you to adopt the new names in a timely manner to avoid any future interruption.

We are very excited to announce these important updates, and we cannot wait to hear your success stories out of them. Drop us a note at if you’d like to get in touch with us.

Security Advisory: Response to Heartbleed Vulnerability

On April 7, 2014, a serious vulnerability known as Heartbleed (CVE-2014-0160) was disclosed in the OpenSSL cryptography library, affecting many popular software packages and Internet services. The vulnerability could potentially be exploited to steal sensitive data such as encryption keys and user passwords. We have no evidence that any DNAnexus customer data or credentials were compromised using this vulnerability. However, out of an abundance of caution, we have taken the following steps below and will continue to implement security actions in response to this event.

At DNAnexus, the security of our clients is our top priority. As soon as the vulnerability was disclosed, we started identifying services on our platform that were affected. All such services were patched to eliminate the vulnerability within 8 hours after it was initially disclosed. After this initial response, we started a thorough analysis of how our systems and the security of our clients could have been affected.

At this time, we have no reason to believe any customer data or credentials were compromised using this vulnerability. Moreover, none of our services that handle genomic data were directly vulnerable. However, services that handle credential information were affected. The nature of this attack makes it hard to detect, and therefore we have decided to take the following precautions:

  • We have updated our affected SSL certificates, to eliminate the possibility that our private SSL keys were compromised.
  • Existing browser-based login sessions initiated before the patch date have been terminated, so you will need to log in again the next time you use the platform.
  • We have triggered early expiration of DNAnexus passwords set before the patch date, so the next time you log in to the platform, you will be prompted to reset your password.
  • The next time you log in, you will also see a security alert advising you to update any API keys that you may have issued on the platform.

To minimize the risk of compromise of your account from possible attacks including this one, we also recommend turning on Two-Factor Authentication (2FA) on the DNAnexus platform, or cycling it if it was already on. Follow these steps:

  • Log in to
  • Select your name on the upper right and pull down the “Profile” menu item
  • Select the Account tab and click Security
  • If 2FA was previously on, turn it off using your current password and a 2FA Code
  • Turn on Two-Factor Authentication and link your account and authenticator application
  • Verify access using your current password and a Two-Factor Authentication Code, being sure to save your backup codes before pressing “Continue”

We welcome customer feedback – if you have any questions or comments about our security practices, please reach us at