Command line applications on a server machine can be made available for use by CLC 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. Input data and parameter settings are specified in the same way as for standard tools provided via the client software. This is described further in Running external applications.
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 CLC Server tasks, tools configured as an External Application are run as the same logical user that runs the CLC Server process itself. 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 External Applications Client Plugin must be installed on a CLC Workbench for external applications to be accessible via the Workbench menu system. This plugin can be found in the Workbench Plugin Manager.
- Updates made to existing external applications configurations are registered in the CLC Workbench during a single login session, but to discover new external applications, you need to log out of and back into the CLC Server12.1.
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.
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 CLC 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.
- ... 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.
- General configuration of external applications
- Stream handling
- End user interface
- Using consistent reference data in external applications
- Velvet integration
- Bowtie integration
- Import and export of external application configurations
- External applications in workflows
- Running external applications
- Troubleshooting external applications