DRAGEN Application Manager
Overview
Dragen Application Manager is a framework for installing and running DRAGEN command line, and DRAGEN applications with Nextflow, in a containerized environment.
Features
Nextflow and DRAGEN versions exist independently. Only one version of DRAGEN need be installed on the OS, and compatible versions of DRAGEN can exist in containers.
Run an application or DRAGEN CLI through Dragen Application Manager with JSON, or command line arguments.
Integrated application help system.
The Dragen Application Manager CLI provides JSON responses for simplifid automation.
Keeps a history of past runs.
Installation and Maintenance
Prerequisites
Oracle Linux 8, or 9
Docker 26 to 28
DRAGEN 4.4
System Maintenance
When performing system maintenance that may include updating Docker or restarting the system, it is recommended to wait until any in progress analysis is completed. The command line provides details about an in progress analysis if there is one.
If there is an analysis in progress, wait until it's completed, and then stop the service, perform the maintenance, and then restart the service. Stopping and starting the service is accomplished with the following commands:
Note that manually teminating the dragen-app-manager service, or any of its dependencies, while it is busy, may result in unintended outcomes.
Uninstallation Procedure
An uninstaller is included, and is the recommended way to remove the software. It is recommended to remove any installed applications and resources first if desired.
Docker Configuration
Official instructions can be found here: https://docs.docker.com/engine/install/linux-postinstall/
The minimal requirement for a Docker configuration is that it is running as a service, there is a Docker group, and users that will use Dragen Application Manager will be in that group.
To create the group:
Add a user to that group
You may need to logout and login for the group changes to take effect.
Changing Docker File Locations
By default, Docker will place its data in /var. Depending on the number of applications and resources you plan to install, it may be preferable to change this setting to a location with more space available.
You can change this default location by creating or modifying the file /etc/docker/daemon.json with the following content.
Change the contents of deamon.json to include a new data-root setting.
Dragen Application Manager Configuration
Data Directories
You have the option to change some settings in Dragen Application Manager. Upon changing these settings, the service must be restarted.
The configuration file is found at /etc/dragen-app-manager/config.toml. Editing the file requires sudo.
A full list of settings can be seen in the Configuration section of the health check. In most cases, the default values do not need to be changed; however, your system configuration may require this. If changing directories, it is recommended to mimic the file permissions of the default directories.
The recommended process to change any settings is to:
Validate that Dragen Application Manager is not currently in use
Stop the service with "sudo stop dragen-app-manager"
Make changes to the configuration with "sudo vim /etc/dragen-app-manager/config.toml"
Move the contents of application, resources, and temp directories when appropriate
Start the service with "sudo start dragen-app-manager"
directory.applications
/var/illumina/dragen-app-manager/applications
0755
directory.resources
/var/illumina/dragen-app-manager/resources
0755
directory.temp
/var/illumina/dragen-app-manager/temp
0777
These settings can be verified from the health check.
Output Directories
If appropriate, consider implementing a disk quota on output directories.
Reserving CPU and Memory for the Host OS
To avoid an overuse of resources by a container, memory and CPU are reserved for the Host OS. By default, 4 CPUs and 6 GiB of memory are reserved. These values can be changed with the following configuration settings. This sets a hard limit on the resources an application can use inside a container based on the available memory at the time it starts.
CPU is a decimal between 1 and one less than the number of logical CPU's. Memory is the amount of memory in bytes.
Applications can override these settings only for the containers they create directly.
CLI Usage
Dragen Application Manager, as with the DRAGEN executable, is intended to handle one command at a time. This means that if one user starts an analysis, a second user will be prevented from starting an analysis at the same time. This applies to all command line operations. In most cases, if Dragen Application Manager is busy, it will pause any additional requests, and handle them when the initial operation is completed.
If a Dragen Application Manager command does not succeed, it will return non-zero, and depending on the command and type of failure, may include JSON in the response, and may also send data to STDOUT and/or STDERR. A successful command will return 0, and send a JSON response to STDOUT, and may also send appropriate informational data to STDERR.
Providing a JSON response allows for easy, and reliable, extraction of specific data. In the case of wanting to view a formatted response, piping the output to "jq" is the preferred option. Examples of this will be provided.
Help
To start using Dragen Application Manager, the first command to become acquainted with is the "help" command.
With any command, you can add the "–help" flag to get further usage information. For example:
If any applications are installed, a command to show additional usage information for that application will be displayed. For example:
Running the command that specifies an application provides the following:
Install
This command installs applications and resources. If an application has any resource dependencies, they must be installed before the application can be installed. Installation of both applications and resources include file validation. The speed of this operation depends on the size of the files that are validated.
Remove
This command removes an application or resource. If a resource is required by an application, the application must be removed first.
It is possible to force remove a resource that is a dependency for an application; however, once it is used, the resource should be immediately installed again.
Health
The health check provides general information about application health, settings, and system status. The health check will return a non-zero value if it is unable to perform the health check.
This is an example of the most relevant parts of the response to a health check.
List
This command will provide a list of all applications and resources.
This is an example response for the default list statement piped to "jq". It shows that the SimpleApp is installed, its Nextflow dependency, and a DRAGEN resource.
Dry-Run
The dry-run command provides a quick way to validate input before running an application. It is best used while creating the input for an application, be it command line arguments or a JSON payload. The help command for an application creates the dry-run command for you as a starting point. The input can be command line arguments, or Standard Input. If no arguments are given, and nothing is sent to standard input, you will be prompted to manually enter the payload. Ctrl-d will end the input in this situation.
Run
This command accepts the same input as the dry-run command.
There are two ways to run an application from the command line. The first is strictly with command line arguments, the second is with a JSON payload.
Once the dry-run command has validated the input, replace "dry-run" with "run" to begin an analysis. This is an example of having run the dry-run command, setting the input and output directory, and removing arguments based on the documentation.
Based on the arguments, a JSON payload representation looks like this. If you prefer to use JSON instead of command line arguments, Dragen Application Manager will have a JSON version of the input for every run. That topic will be covered later.
payload.json
The payload.json can be redirected into the run command. See help for the run command for more usage details.
Dragen Native
Dragen Native requires that DRAGEN 4.4 is installed on the host operating system. In addition to this, a DRAGEN IRES must also be installed.
With the "--DRAGEN" command line option, the following can be used to run native DRAGEN commands.
The above command line options are equivalent to this payload.
Run Status
Without a specified ID, this command is used to determine if an application is currently running. It will return 0 if there is a current run, non-zero if there isn't.
With an ID specified, this command will return details about a specific run.
The result provides details about a run. Payload, Stdout, and Stderr are binary data.
Binary data is encoded in base64, and can be pulled out manually with jq and piped to base64; however this can also be done with additional arguments. When, instead of using the command line, it is preferable to use a JSON payload to run an application, the payload, and the data provided by the status, can be used as a starting point. To automatically decode binary data, three flags are available: stdout, stderr, and payload.
When decoding the payload, it serves as a JSON template that can be reused by changing the input and output directories.
Run History
This provides a list of archived runs no longer in progress. You may refer to the help screen for the active default settings:
The default behavior is to provide a list of archived runs, over a short period of time, with the latest at the end of the list. The duration of time as well as the sort order is configurable based on command line arguments, and all dates are based on the start time. If there are conflicting arguments, only one will be chosen.
Stop
This provides a way for a user to prematurely terminate a running analysis. It is best to always let an analysis to run to completion; however, it can be used when a run must be stopped early. This command initates a safe shutdown, and may take up to 10 minutes (or possibly longer) to complete. It is always recommended to use this to stop an analysis.
Troubleshooting
Log Files
Log files are located in "/var/log/dragen-app-manager/"
You may also see some logged information with journalctl or systemctl:
Health Check /dev/log is Missing
This happens when the logging service on the Host OS is missing the log socket. If an error appears duing these steps, it's usually okay.
Access Denied
You may see Access Denied messages if your user account does not have appropriate file permissions for:
input directories
output directories
read access to the applications, and resources on the file system
full access to the temp directory
Docker socket
Work with an administrator to obtain the necessary file permissions.
Error: dial unix dragen-app-manager.sock: connect: no such file or directory
This may indicate a few things:
Dragen App Manager is under maintenance and is temporarily stopped
Dragen App Manager is not running for another reason
The socket file was removed
In all the above cases, the remedy is to restart the service with
Cannot Run or Stop An Analysis
Dragen App Manager will only interact with a Docker container if it knows for certain that it was the creator. If it becomes necessary to reset everything related to running an analysis, follow this procedure:
If containers cannot be removed from Docker, restart the Docker services.
Start the service and check the health.
DRAGEN License Not Found
This can occur when running an application using DRAGEN on a machine without a license dongle, or if missing a required license key.
Last updated
Was this helpful?