Developers new to the DNAnexus platform may find it easier to learn by doing. This page contains a collection of simple tutorials and examples intended to showcase common tasks and methodologies when creating an app(let) on the DNAnexus platform. After reading through the tutorials and examples you should be able to develop app(let)s that:
Run efficiently: make use of cloud computing methodologies.
Are easy to debug: let developers understand and resolve issues.
Use the scale of the cloud: take advantage of the DNAnexus platform’s flexibility
Are easy to use: reduce support and enable collaboration.
If it’s your first time developing an app(let) be sure to read through the Getting started series. This series will introduce terms and concepts that tutorials and examples will build upon.
These tutorials are not meant to show realistic everyday examples, but rather provide a strong starting point for app(let) developers. Tutorials will showcase simple and varied implementations of the SAMtools view command on the DNAnexus platform.
Bash app(let)s use dx-toolkit’s, our platform SDK, command line interface along with common bashisms to create bioinformatic pipelines in the cloud.
To create a web applet, you will need access to Titan or Apollo features Web applets can be made as either python or bash applets, the only difference is that they will launch some kind of web server and expose port 443 (for HTTPS) to allow a user to interact with that web application through a web browser.
A bit of terminology before we start discussing parallel and distributed computing paradigms on the DNAnexus Platform.
There are many definitions and approaches to tackling the concept of parallelization and distributing workloads in the cloud (Here’s a particularly helpful Stack Exchange post on the subject). To help make our documentation easier to understand, when discussing concurrent computing paradigms we’ll refer to:
Parallel: Using multiple threads or logical cores to concurrently process a workload.
Distributed: Using multiple machines (in our case instances in the cloud) that communicate to concurrently process a workload.
Keep these formal definitions in mind as you read through the tutorials and learn how to compute concurrently on the DNAnexus platform.