External applications
Non-interactive command line applications and scripts can be integrated into the CLC environment by configuring them as external applications. Once configured and installed, external applications are available to launch via the graphical menu system of a CLC Workbench or via the CLC Server Command Line Tools. External applications can also be included in workflows, allowing complex, reproducible analyses involving CLC tools and other, non-CLC tools to be easily configured and launched by end users.
Configuration of an external application includes defining whether users will select input data from CLC File Locations or from CLC Server import/export directories, setting types and any default values for parameters that will be passed to the command line application, and defining how results generated by the external tool should be handled, including post-processing if desired.
With the External Applications functionality, the CLC Server administrator controls which tools are made available, which parameters can be set by users at runtime, and which users and groups should have access to each tool.
Figure 12.1 shows an overview of the actions and data flow that occur when an external application is launched on the CLC Server via a CLC Workbench. A textual description is:
- An end user specifies input data and sets values for parameters when launching the external application from a CLC Workbench or CLC Server Command Line Tools.
- The CLC Server exports the input data from the CLC Server to a temporary file.
- The CLC Server starts the command line application, using parameter values specified by the user and the input data from the temporary file.
- When the command line application has finished, results are handled as specified in the external application configuration. Generally, this would mean the results are imported into the CLC environment and saved in the location specified by the user when the external application was launched.
- Results imported into the CLC environment are available for viewing and further analysis, for example using a CLC Workbench.
Temporary files are created outside the CLC environment during the execution of third party (non-CLC) tools and are deleted after the process completes.
Figure 12.1: An overview of the flow of an external application when launched from a CLC Genomics Workbench.
Key information about external applications
- The CLC Server software should be run by an unprivileged user. Like other CLC Server tasks, external applications processes are owned by the same logical user that owns the CLC Server process itself. If the system's root user is running the CLC Server process, then tasks run via the External Applications functionality will also be executed by the root system user. This is usually undesirable.
- Tools configured as external applications must be available on all the systems where an external application can be run by the CLC Server.
- The External Applications Client Plugin must be installed on a CLC Workbench for external applications to be accessible from the CLC Workbench Toolbox menu. This plugin can be found in the CLC Workbench Plugin Manager or online at https://www.qiagenbioinformatics.com/plugins/.
- Updates to existing external application configurations are registered in the CLC Workbench during a single login session. To discover new external applications, log out of and back into the CLC Server12.1.
- An external application configuration must be saved and installed before it is available for use via a CLC Workbench or CLC Server Command Line Tools. Configurations stored as drafts are not made available for use.
Footnotes
- ... Server12.1
- Prior to CLC Genomics Server 11.0, users had to log out and log back into the server to discover updates to existing external application configurations.
Subsections
- External application configuration
- Using consistent reference data in external applications
- Example: Velvet integration
- Example: Bowtie integration
- Import and export of external application configurations
- External applications in workflows
- Running external applications
- Troubleshooting external applications