External applications
Command line applications on a server machine can be made available for use by Workbench or CLC Server Command Line Tools users. This involves configuring an external application in the CLC Server web administrative interface.
Tools configured as external applications will be available via the graphical menu system of Workbenches logged into the CLC Server, and also as commands that can be run using the CLC Server Command Line Tools. When running an external application, end users will be able to use data stored on the CLC Server, on the machine the CLC Workbench is installed on, or data stored in areas of the server machine accessible to the CLC Server, depending on the external application configuration.
Key facts about external applications:
- If you plan to configure External Applications, we highly recommend that you run the CLC Server software as an un-privileged user. Like other tasks executed via the CLC Server, any tool configured as an External Application is run as the same logical user that runs the CLC Server process itself. Or, in other words, if your 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.
- The tools configured as external applications must be available on all the systems where an external application can be run by the CLC Server.
- The CLC Workbench Client Plugin and the External Application Client Plugin must be installed on a CLC Workbench to allow access to external applications. These plugins can be found in the Workbench Plugin Manager.
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.
Figure 12.1: An overview of the external applications integration in this example illustrated with CLC Genomics Workbench and CLC Genomics Server.
In general terms the basic work flow is:
- The end user selects input data, sets values for parameters and then launches the external application.
- The CLC Server exports the input data to a temporary file.
- The CLC Server starts the command line application, using the values specified by the user and the temporary file(s) as inputs.
- When the command line application is finished, the CLC Server imports the output into the CLC environment, saving it in the location on the CLC Server specified by the user.
- Results are then available for viewing and further analysis, for example using a Workbench.
All files saved during the execution of an external application are saved within the CLC environment. Temporary files are created outside the CLC environment during the execution of a third party tool and are deleted after the process completes.
Configurations must be saved by clicking on the Save button at the bottom of the editing section before they can be tested via a Workbench or the CLC Server Command Line Tools.
After a configuration has been saved, the external application name will appear in a list under the External applications tab of the web administrative interface. A small checkbox appears to the left of each name. When checked it means that application is accessible to CLC Workbenches that are logged into the CLC Server with the External Applications Client Plugin installed, and also to users of the CLC Server Command Line Tools. To remove access to an external application by end-users, without deleting it, deselect the checkbox beside it.
We will describe integration of third party command lines tools through a series of examples. We start with a basic example and work towards more complex situations.
Subsections
- General configuration of external applications
- Stream handling
- Environment
- End user interface
- Running External Applications
- Import and export
- Use of reference data in external applications
- Velvet Integration
- Bowtie Integration
- External Applications in Workflows
- Troubleshooting external applications