DNAnexus Platform Frequently Asked Questions


Sharing and collaboration

How do I invite other users to access my project?

To invite other users to a project, you must first have ADMINISTER access to that project (this is the default if you created the project yourself). For more information about project sharing, please see the Projects on DNAnexus guide

  1. Navigate to your project page.
  2. Click on the Share button in the upper right-hand corner.
  3. Enter the username or email of the user you'd like to add to the project in the text box.
  4. Select the access level you would like to give to that user in the dropdown box on the right.
  5. Click the Add Member button.

For more detailed instructions, see the instructions here

# The following commands invite a user to have VIEW, UPLOAD, CONTRIBUTE,
# and ADMINISTER permissions, respectively
$ dx invite username project-name-or-id VIEW
$ dx invite username project-name-or-id UPLOAD
$ dx invite username project-name-or-id CONTRIBUTE
$ dx invite username project-name-or-id ADMINISTER

How do I send or transfer data to another user?

To send (transfer) a data object to another user, you can do the following:

  1. Create a new project.
  2. Add all the data that you will give to the other user, the project recipient to this project.
  3. Transfer the project to the recipient. Detailed instructions here

The project recipient will receive an email notification that you wish to transfer the project to them. The recipient must then accept the transfer. The transfer will not be complete until this step is done.

Note that after the user accepts the transfer, they will become an ADMIN of the project. If they wish to do so, they will be able to remove your access from the project.

To transfer a project in the UI:
  1. Navigate to your project page.
  2. Click on the button in the upper left-hand corner for your project settings.
  3. Click the Transfer to Another User link.

Go to this page for more detailed instructions.

# The following command will send a transfer request to a user
# Replace project-xxxx with your project ID and user@email.com
# with the recipient's DNAnexus username or email associated with
# his/her account
$ dx api /project-xxxx/transfer '{"invitee": "user@email.com"}'

I would like to have my sample data uploaded into my DNAnexus account by my sequencing service provider. How should I go about doing this?

If your sequencing service provider has a DNAnexus account, you should do the following:

  1. Create a new empty project
  2. Invite the sequencing service provider to the project as a member with UPLOAD permission to the project.
  3. The sequencing service provider should then upload the data directly into this project. See the answer to the question below for instructions.
  4. After upload is complete, you can remove the sequencing service provider from the project.

If your sequencing service provider does NOT have a DNAnexus account:

You can give your sequencing service provider a DNAnexus API token to allow them to upload the data into a project you own. An API token is a secret string that can be used to authenticate you against the DNAnexus platform while you are using the command line tools. You can limit the scope of the token created to give the bearer UPLOAD access to a specified project, and only that specified project.

We recommend you follow these steps:

  1. Create a new empty project
  2. Create a new API token.
    • Set the token scope to only the project you just created.
    • Set the token scope to have UPLOAD (or greater) access to the project.
    • Set the expiration date for the token.
  3. Send the API token to your sequencing service provider and have them follow the instructions in the question below.
  4. After the upload is complete, if you no longer want your sequencing service provider to access your project, you can revoke (delete) the API token.

I am a sequencing service provider and I HAVE a DNAnexus account. My customers would like their samples uploaded into their DNAnexus account. What should I do?

If you have a DNAnexus account, there are TWO different methods you can go about doing this.

You can create a new project and transfer the project to your customer.

  1. Create a new project either using the web UI or the command-line tools
  2. Upload your data into the project by following the instructions below (we recommend you use the Upload Agent for large files)
  3. After upload is complete, transfer your project to your customer (they will need to give you the username or email address associated with the account)

Alternatively, you can have your customer share with you a project and give you UPLOAD or CONTRIBUTE access.

  1. Give your customer your DNAnexus username or the email associated with your DNAnexus account
  2. Have them follow the instructions in the answer to the question above to give you UPLOAD access to a project they own. When this is done, you will see their project in the list of projects to which you have access.
  3. Upload your data into the platform using Upload Agent (instructions below)
  4. Notify your customer that their samples are ready.

Uploading Large Files using Upload Agent

If you don’t already have Upload Agent installed, please follow the instructions here to install it.

Below, we show an example query which will upload all files which match the pattern *.fastq.gz present in your current local directory. Since files matching this pattern should already be compressed, we set the --do-not-compress flag on Upload Agent. We also set the --progress flag to show upload progress. You should fill in with an API token you create for authentication against the platform and with the ones given to you.

ua --auth-token <your API token> --project <customer project ID> --progress --do-not-compress *.fastq.gz

Note: If you’re using the web platform, you can find the project ID by going to the project settings page (i.e. “project-xxxx”).

Troubleshooting: If you experience any errors using Upload Agent, troubleshoot by following the instructions in the answer to the question below.

I am a sequencing service provider and I DO NOT HAVE a DNAnexus account. My customers would like their samples uploaded into their DNAnexus account. What should I do?

Even if you do not have a DNAnexus account, you can upload to an existing DNAnexus account using the Upload Agent, the DNAnexus command line upload tool, and a DNAnexus API token provided to you by the user. An API token is a secret string that can be used to authenticate you against the DNAnexus platform while you are using the command line tools. API tokens cannot be used to access the web platform.

  1. Your customers should first follow the instructions here and give you the following:

    • Project ID (i.e. “project-xxxx”)
    • API token with UPLOAD (or greater) access to the project above.
  2. Install the Upload Agent executable.

Below we show an example query which will upload all files matching the pattern *.fastq.gz in your current local directory. Since files matching this pattern should already be compressed, we provide the --do-not-compress flag to Upload Agent. We also set the --progress flag to show upload progress. You should fill in and with the ones given to you.

ua --auth-token <API token> --project <project ID> --progress --do-not-compress *.fastq.gz

If you experience any errors using Upload Agent, troubleshoot by following the instructions in the answer to the question below.

I am trying to use Upload Agent with an API token but I keep getting errors. How do I troubleshoot?

If you get the below error while using Upload Agent, this may indicate one of the following:

  • You have typed in an invalid project ID (the project does not exist)
  • You do not have appropriate permissions to upload to this project.
<Project ID> does not represent a valid project name or ID (with >=UPLOAD access).
Please check the project name/ID given and whether you have >= UPLOAD permission
to project specified."

In this case, you can troubleshoot the problem by using the DNAnexus command line tools (a.k.a. DNAnexus SDK).

Step 1: Try to authenticate against the DNAnexus platform using the API token given to you.

If this returns an error, please make a new token.

dx login --token <API token>

Step 2: If you are able to successfully log in, check to see if you have access to the project by trying to dx select (navigate into) the project.

If this command returns a ResourceNotFound error, please check the project ID to make sure that it is valid.

dx select <project-ID>

Step 3: If the above 2 commands work, check that you have UPLOAD or greater permission to the project by describing the project with dx describe and checking that your “Access Level” to the project is UPLOAD, CONTRIBUTE, or ADMINISTER.

If your access level is VIEW, please make a new token with UPLOAD (or greater) access to the project.

dx describe <project-ID>

Step 4: If none of the above work, please try running Upload Agent one more time while logged in on the command line.

Step 5: If you are still experiencing issues uploading, please contact support@dnanexus.com for assistance.

Administering Organizations

Does DNAnexus support Single Sign-On?

Yes. DNAnexus supports Single Sign-On using the SAML 2.0 protocol. For more details, see Single Sign-On.

Automating analysis workflows

How do I batch (apply to multiple inputs) a workflow that I created on the DNAnexus website?

The DNAnexus Command Line Interface provides this ability using the dx run command. For example, if you create a workflow called "Trio Exome Workflow - Jan 5th 2013 2:14pm" in your project, you can run it from the command line like this:

dx login
dx run "Trio Exome Workflow - Jan 5th 2013 2\:14pm"

Note the backslash that is needed to escape the colon in the workflow name.

Inputs to the workflow can be specified using dx run <workflow> --input name=stage_id:value, where stage_id is a numeric ID starting at 0. More help is available with dx run --help and dx run <workflow> --help.

Batching of multiple inputs can then be done like this:

dx cd /path/to/inputs
for i in $(dx ls); do
    dx run "Trio Exome Workflow - Jan 5th 2013 2\:14pm" --input 0.reads="$i"
done

DNAnexus SDK

Is there any way to get the SDK via an APT repository?

Yes! See Ubuntu Repository if you're running Ubuntu 12.04.

Developing apps and applets

What's the difference between an app and an applet?

Applets and apps are both executables in the platform that you can run in the cloud. You can mix and match them in the same workflow. They can also both be specified to require special permissions to the project context or to the user's other projects. Here's how they're different:

Applets Apps
Model can be used as scripts to manipulate data, proprietary analysis pipelines, or testing versions before publishing an app; they are easy to create and revise are general-purpose tools of interest to the community at large that usually strive for compatibility, reproducibility, and robustness
Platform Representation are data objects residing in projects are created from applets and reside in separate data containers outside of users' projects, one container per version of an app
Input/Output Specifications can be created with no input or output specifications; this means that it can be run with any input, and it makes no guarantees about what it returns must have input and output specifications so that they behave predictably and can be used compatibly with other apps
Sharing are shared by sharing their project, and are otherwise completely private are shared by publishing the app to a customizable list of authorized users that can easily discover it (via the website or command-line), install it, and run it
Open/Closed Source expose their source code and attached resources to anyone who has VIEW permissions to their project can hide their source code and attached resources so that only the app's developers can access them
Naming can be given any name belong to a global namespace, and the first time someone creates an app with a particular name, it is reserved for that user and any others that he/she designates as developers
Versioning each revision has a permanent unique ID, recorded in any job started and any data produced are published with semantic version numbers (xx.yy.zz), with different versions automatically archived and accessible to platform users

Want to read more? Dig into the API documentation for applets and apps.

So should I be building an applet or an app?

If you are new to writing applications for the DNAnexus platform, start by building applets. They are easier to iterate quickly and share directly with collaborators in your project. Keep in mind that as long as you write your applet to have both an input and output specification (which we recommend as a good coding practice in general), it can always be built to become an app later on.

How do I package a Linux executable into an app(let)?

If you haven't already, you may want to take a look at the Intro to Building Apps tutorial which walks you through packaging up an applet which takes in a file and outputs another file.

A brief overview of the workflow:

  1. Run dx-app-wizard
    • Pick some app name (e.g. "appname")
    • Specify any input files or other parameters needed for the executable
    • Specify any output files or values that the executable generates
    • Pick bash as the language
    • Pick the basic template
  2. Place the executable you want to run into the appname/resources directory
  3. Add a line in the .sh file in the appname/src directory to run the executable on the file with any parameters received from the input. (Use the lines generated by the app wizard for automatically downloading any file input and uploading file output.)
  4. Run either dx build or dx build --create-app (depending on whether you want to build an applet or an app).

How do I install software requirements for my app (e.g. Java, R, samtools)?

There are a few different options, depending on where the software can be found and if you would like it to be reproducible.

  1. If the software you need is available as an APT package in Ubuntu 12.04, you can edit the dxapp.json file to specify it (and optionally the version you want). The following JSON excerpt shows you how to request APT software packages; in this case, Java, R, and the samtools packages have been requested and will be available when the app is run.
    { "runSpec": {
        "execDepends": [
            {"name": "openjdk-6-jre", "version": "6b24-1.11.1-4ubuntu2"},
            {"name": "r-base-core"},
            {"name": "samtools"},
    
    Note that the APT "Recommends" of the packages are not installed by default. You can simulate this behavior on your local Ubuntu machine with --no-install-recommends option to apt-get install.
  2. If the software resides in a globally accessible location (e.g. a git repository hosted on github), you must also request network access to the server hosting it. The following JSON excerpt shows how to request and automatically build a repository hosted on github. (Alternatively, you can also just request access to a particular host and perform the download and build steps manually as part of your app.)
    { "access": {
        "network": ["github.com"]
      },
      "runSpec": {
        "execDepends": [
            {"name": "dx-toolkit",
             "package_manager": "git",
             "url": "git@github.com:dnanexus/dx-toolkit.git",
             "tag": "master",
             "build_commands": "make install DESTDIR=/ PREFIX=/opt/dnanexus"
            },
    
  3. If it is software that you already have and would like to upload and install as part of the app, then you should place any necessary files in the resources directory of your app before running dx build. The build tool will compress and package up the contents of that directory as part of your app, and, when it is run, it will be automatically downloaded and extracted into the root directory /. Your first steps in the code of your app should then be to perform any build or installation commands necessary.

How do I write my app in my favorite programming language?

The following languages are fully supported via dx-app-wizard templates, client libraries and tools, and sample code:

The following language is partially supported with a minimal library that includes functions for making API calls:

In the near future, we are planning on increasing support for Java and other popular languages such as Ruby and Perl. If you would like to use a language that is not yet supported, you can still do so by packaging any scripts or files with a Python or bash script that will be responsible for running your code. See the Intro to Building Apps tutorial for an example of how to package up an arbitrary Linux executable as an applet. If you need to install any extra software dependencies such as Java or R, see the relevant FAQ answer.

How do I request more memory/CPU for my app? How do I specify the compute instance type?

By default, a job will run on a virtual machine with these resources:

  • Dual-core x86-64 CPU
  • 7.5 GB of RAM
  • 400 GB scratch file system

To request a different machine, you will need to edit the dxapp.json file to specify the instance type for each entry point of your app. Please see the documentation on the Run Specification for the list of available instance types and other details.

The following dxapp.json excerpt shows how to request larger virtual machines for both the "main" and "myEntryPoint" entry points of your app; any other entry points not listed in systemRequirements will use the default virtual machine mem2_hdd2_x2.

{ "runSpec": {
    "systemRequirements": {
      "main": {
        "instanceType": "mem2_hdd2_x4"
      },
      "myEntryPoint": {
        "instanceType": "mem3_hdd2_x2"
      }
    },

What are the default user limits for processes running inside the Linux execution environment?

The default limits, as presented by the output of ulimit -a are the following:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 59461
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 4096
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 59461
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

How do I request network access for my app?

You will need to modify your dxapp.json file so that the key access.network is a list of allowed domain names. You can use "*" to indicate that you want access to everything. The following excerpt gives access (redundantly) to everything, github, and Google.

{ "access": {
    "network": ["*", "github.com", "google.com"]
  },

How do I parallelize my app?

You can have your app launch a child job on another machine in the cloud by calling an entry point that you have specified in the bash or Python script that runs your app. To add entry points to your code, you can either generate the parallelized code template using dx-app-wizard (provided in the SDK) to get you started, or add them manually (see the code examples below). A more in-depth tutorial can be found here.

# Anything outside the function declarations is always run

myfunc() {
        echo $myinput
}

main() {
        # main gets run when you run the app/applet

        # The following line creates a new job running "myfunc" which
        # will receive an input variable $myinput set to "hello world"

        dx-jobutil-new-job myfunc -imyinput='hello world'
}
import dxpy

@dxpy.entry_point("myfunc")
def myfunc(myinput):
    print myinput

@dxpy.entry_point("main")
def main():
    # main gets run when you run the app/applet

    # The following line creates a new job running "myfunc" which
    # will receive an input variable myinput set to "hello world"

    dxpy.new_dxjob(fn_input={ "myinput": "hello world" }, fn_name="myfunc")

# The following line will call the appropriate entry point.
dxpy.run()

What are DNAnexus links, and how are they different from using the data object IDs?

DNAnexus links are JSON hashes containing a data object ID (or optionally a project ID as well). The following two hashes are both valid DNAnexus links (the second is called an extended DNAnexus link).

{
    "$dnanexus_link": "file-B37v04Q7z11654j7gjj000F8"
}
{
    "$dnanexus_link": {
        "project": "project-B2f3Pz87z115j6K7yb40001V",
        "id": "file-B37v04Q7z11654j7gjj000F8"
    }
}

There are two contexts in which you will want to use DNAnexus links instead of string IDs:

  1. JSON details of a data object
  2. Job input/output

JSON details

Before closing a data object, you have the option to include non-extended DNAnexus links (i.e. ID-only links) in the details of the object. This allows you to link to an existing data object (e.g. a reference genome) that was used to compute the new data object (e.g. a reference genome indexed for a particular mapper like BWA). Doing so allows you to search your data objects by what objects they link to.

How do they affect cloning (copying between projects)?

Any linked data objects that are also hidden will be copied and moved along with their parent data object.

Job input/output

If an app(let) requires an input or output to be of a data object class (e.g. file), then the value in the input/output JSON hash must be given as a DNAnexus link.

There are convenient utility functions in some of the client libraries and command-line tools so that you don't usually have to formulate the hash yourself.

How do they affect job execution?

Before a job created from running an app or applet (origin or master job) will be started, data objects found as DNAnexus links in its input hash must be closed. Thus if you run an app on an open file, it will not run until the file has been closed. The input data objects will then be cloned into the new job's temporary workspace right before the job starts running.

Similarly, if an origin or master job has DNAnexus links in its output hash, then those referenced objects must be closed to be cloned as output into the parent container. If they are open when all jobs in the tree have finished running, then the platform will fail the job. If there are any closing objects, the platform will wait until they finish closing before cloning them as output and marking the job as done.

What are job-based object references (JBORs), and how can I use them when running apps?

Job-based object references (JBOR) are JSON hashes with two pieces of information:

  • a job ID (under the key "job")
  • the name of an output the job is expected to provide (under the key "field")

They can be used in place of an input value to a new job or an output value of an existing job. Once the referenced job finishes successfully, the JBOR will be replaced with the value found in the referenced job's output. If the referenced job fails or does not provide the requested output, then the job waiting for the value will also fail.

{
    "job": "job-xxxx",
    "field": "ref_output_field"
}

Inside of a single workflow, you can use the output of a job as the input of another job by dragging the output of a job to the input of another.

$ dx run someapp -iinput=job-xxxx:ref_output_field

For more information on how to use JBORs when writing apps, see the Sample Code page.

How do I view the stdout/stderr and any other logs for a job?

  1. Navigate to the project in which you ran the job
  2. Click on the Monitor tab
  3. Click on the name of the top-level job
  4. Click on the job for which you want the logs
$ dx watch job-xxxx

Where can I find example code for writing applications for the platform?

There are many helpful code snippets to be found on the Sample Code page, listed by programming language. Also, check the "Developer Applets" public project for working applets (with source) for many common bioinformatics tools. You can use dx get to download the applet source code and explore the code.

A github repo containing all these applets can be found here as well.

Importing data

How do I upload my data files?

From the home screen, click on any project to which you have Uploader, Contributor, or Admin access, then click Add Data. Follow instructions in the Add Data dialog.
Download and run the Upload Agent to upload your files. For example, the following command will upload a set of paired-end FASTQ files:
ua sample_1_left.fastq.gz sample_1_right.fastq.gz

How do I upload data from my MiSeq instrument into DNAnexus?

Your MiSeq instrument produces run results in the folder D:\Illumina\MiSeqOutput or on a network path that you specify. After on-instrument secondary analysis is complete, the reads are available in *.fastq.gz files in the subfolder /Data/Intensities/BaseCalls/ of the run folder. For example, the first file may be called D:\Illumina\MiSeqOutput\Run1\Data\Intensities\BaseCalls\sample1_L001_R1_001.fastq.gz.

To upload these files into DNAnexus, follow the instructions in How do I upload my data files?

How do I work with data from my Ion Torrent PGM instrument into DNAnexus?

If you have .fastq.gz files from your Ion Torrent PGM instrument, follow the instructions in How do I upload my data files?

To upload your Ion Torrent flowgram data and map it with TMAP, follow these steps:

  1. Upload your .SFF file(s) with the Upload Agent or the dx upload tool.
  2. Find the TMAP aligner, available in the Developer Applets project under Resources on the right side of the home screen. Copy this applet into a project where you have Contribute (or Administer) permissions.
  3. Run the applet (click the Run button after selecting the applet in your project) and select the .SFF file as input. The applet expects the reads to be gzip compressed (*.sff.gz) and will produce a sam file as output.

How do I import reads from the Sequence Read Archive (SRA)?

Visit the European Nucleotide Archive (ENA) and locate there your SRA dataset (sequencing run) of choice. For example, if you search for "SRR001662", you will reach the result page for sequencing run SRR001662. On that page, the "Read Files" panel contains FTP links to fastq files (under the "Fastq files (ftp)" column). In your project, click "Add Data", choose "Transfer from another server" and supply these links.

For example, the "SRR001662" run is contained in these two (download) links: left reads file and right reads file. If you wish to import these files, use these link addresses with the method above.

How do I import a track from the UCSC Genome Browser?

If the track has an associated BED, GTF, or WIG file, use the link to that file as input to the URL fetcher app. This app will launch a job which downloads the file and uploads it to your DNAnexus project.

For example, the default UCSC Genome Browser view for hg19 includes a track called "Digital DNaseI Hypersensitivity Clusters from ENCODE". If you click on the gray rectangle to the left of the track to configure it, you will find a "downloads" link that leads you to a gzipped BED file with the track data. The link to that file can given as the input to the URL fetcher app.

Not all UCSC Genome Browser tracks include links to downloadable data. However, you can still export most tracks into BED using the UCSC "Table Browser". Select "Table Browser" from the "Tools" menu at the top, and choose the track of interest. In the "output format" select BED, and type in a filename. Click the "get output" button to download a BED file.

I get the following error: schannel: failed to setup extended errors when running the Upload Agent on Windows. What can I do?

This is a known issue with Microsoft Windows 7/2008. Please install this hotfix from Microsoft to fix it.

If you still continue to face the problem, please email DNAnexus Support: support@dnanexus.com

Legal and Compliance

If I upload data to DNAnexus, will DNAnexus share the data with other people?

DNAnexus is committed to protecting the confidentiality of your data and the privacy of your tissue donors. If you upload data to your account, the only people who have access to the data will be you and those with whom you share it. For further information, please see the DNAnexus Privacy Policy

Can I use the apps that DNAnexus makes available to users? What are my rights?

DNAnexus has made apps available for use by its registered users. When you run an app, you agree to the terms of the End User License Agreement provided by the developer of the app. In the case of apps that DNAnexus itself has made available, the End User License Agreement will typically be an open source license agreement, as required by the original developer of the app.

I have licensed an application from a software vendor that I want to run in my DNAnexus account. Do I have the right to do that?

Your right to use an application licensed from a software vendor in your DNAnexus account will depend on the terms of your agreement with the vendor. In most cases an internal use license will allow you to choose to use the software either on a computer at your own facility or in the cloud.

How secure is my data when I upload it to DNAnexus?

We have put in measures to ensure the highest level of data security for both research and clinical use. These measures include high-end physical data center security; reliable, replicated data storage; all data encrypted at rest and in transfer; and enterprise and user controlled permissions for data, analysis tool, and workflow sharing. For compliance support, we enable data logging and auditability for 6 years, versioned and reproducible analysis tools and results, and compliance with HIPAA, CLIA, GCP, 21 CFR Parts 11, 58, and 493, and European Data Privacy laws and regulations. For more details, please refer to the compliance white papers posted on the wiki.

What if something happens to the data that I upload to DNAnexus?

If something happens to the data you upload to DNAnexus, please contact DNAnexus Customer Support.

Can I load personal health information into DNAnexus and comply with HIPAA?

We have designed and developed the DNAnexus platform so that it supports HIPAA compliance. All customer data uploaded to a DNAnexus user account is encrypted while in transit and at rest, as required by the HIPAA privacy rule. We have implemented logging procedures that allow you to track access to data, as contemplated by the HIPAA security rule. Of course, HIPAA compliance also requires that you implement procedures, including security procedures and informed consents. For more information regarding HIPAA compliance, please see our HIPAA White Paper.

I am based in Europe and have samples taken from European tissue donors. Can I upload my data to DNAnexus without violating European privacy laws?

DNAnexus certifies that it complies with the US/EC and US/Swiss safe harbor rules. This means that you can upload samples taken from tissue donors in the EC and Switzerland and comply with the European Commission’s Directive on Data Protection of 1998 and Switzerland’s Federal Act on Data Protection of 1993. For more information regarding European Data Privacy compliance, please see our European Safe Harbor White Paper.

I work at a CLIA lab. Can we use DNAnexus to manage our genomic information and still comply with CLIA requirements?

The logging and version control features of the DNAnexus platform will allow you to track exactly how your samples were processed, so as to enable the reproducibility of your clinical experiments, as required by CLIA. Of course, CLIA compliance requires that you observe standard operating procedures necessary to ensure compliance, such as sample tracking and prohibitions on sharing user IDs and passwords. For further information, please see our compliance white papers on the wiki.

I want to upload sequence information from a preclinical or clinical study, and may eventually need to submit the data to the FDA. Does the DNAnexus platform comply with GCP and 21 CFR Part 11?

The security and logging features of the DNAnexus platform are designed to enable the data integrity of your preclinical and clinical data and facilitate audits of those data. Using the platform, it will be possible to identify who uploaded or had access to data, when they did so, and what they did to the data. Prior versions of data can be retained, rather than overwritten. Of course, compliance with clinical requirements requires that you observe standard operating procedures necessary to ensure compliance, such as prohibitions on sharing of user IDs and passwords. For further information, please see our compliance white papers on the wiki.

Does the consent I received from my study subjects allow me to upload data derived from their samples to DNAnexus?

That depends on the terms of the consent and the information provided to the sample donor before s/he gave the consent. In evaluating whether the consent includes uploading data to DNAnexus, please keep in mind that data uploaded to DNAnexus are encrypted in transit and at rest. In this way, uploading data to DNAnexus is akin to storing them in encrypted form on your own servers, where the servers are managed by independent contractors. Ultimately the scope of consent should be determined by the IRB that is overseeing your research or clinical trial.

If I load my new app into DNAnexus, is it automatically going to run in a CLIA-compliant way?

The DNAnexus platform enables versioning, as required for the reproducibility of experiments required by CLIA, but you are responsible for version control in the ongoing development of your app and the naming of various versions.

If I use data shared with the public on DNAnexus, am I safe from any legal actions if there are problems with any of the samples at a later date?

Your rights and obligations with regard to datasets available through the DNAnexus platform are the same as they would be if you obtain them directly from the organization that makes them available. If you have a detailed question about a potential problem with a sample from a dataset, check with the organization that provides the dataset for answers to frequently asked questions or for an email address to which you might address your question.

 


If your question is not listed here, contact DNAnexus support, and we will get back to you!

Last edited by Thanh-Ha Nguyen, 2017-01-14 00:24:05

 Feedback