The chemalot_knime package contains the chemalot_knime framework. The chemalot_knime dynamically creates KNIME nodes from a configuration file that defines command line programs.
The command line nodes are executed on a remote server using ssh. The framework reads an xml configuration file and automatically creates KNIME nodes that execute command line programs for processing chemical compounds. A few lines of xml in the configuration file suffice to generate a new node. The only requirement for the command line tools is that they read SDF files from stdin and write SDF files to stdout.
In addition to executing the command line tools on a remote server the nodes can also generate the UNIX csh script to execute the same sequence of tools as a UNIX pipe. The result is that KNIME can be used to develop and debug complex UNIX pipes. Once the pipes have been tested and validated a light-weight execution is possible by simply extracting the c-shell syntax from the terminal command line node in KNIME and incorporating it into a UNIX csh shell script.
We recommend that before installing the chemalot_knime package you install the chemalot command line tools on your UNIX server and make sure they are working and included in your default path.
The configuration file (<chemalot_knime_dir>
/config/cmdLine/commandLinePrograms.xml) in this package has entries predefined for all of the chemalot command line tools. The KNIME nodes for those will be auto generated but the nodes will only work if the command line tools themselves are in the user's path on the remote host.
The chemalot_knime package is released under the GNU General Public License Version 3.
A copy of the license file can be found in the license folder.
This description assumes that you have downloaded and installed the KNIME Desktop from the KNIME Download Page. In this documentation the directory containing your KNIME executable will be denoted <KNIME_INSTALL_DIR>
.
To install the chemalot_knime framework and KINME nodes into an existing KNIME environment follow these steps:
The installation was tested using the 3.2.0 version of KNIME. It requires the 3.2.0 version but might work with newer versions. Make sure you have the following modules installed:
KNIME Base Chemistry Types & Nodes
KNIME Chemistry Add-Ons
KNIME External Tool Support
If you do not, goto "Help/Install New Software" in KNIME desktop and
Installation of the chemalot_knime package:
<chemalot_knime_dir>
.<KNIME_INSTALL_DIR>
/knime.ini:
<chemalot_knime_dir>
/config<chemalot_knime_dir>
/config/dev.properties<chemalot_knime_dir>
/config/cmdLine/commandLinePrograms.xml file:
remoteHost
attribute to the ssh
element so that it contains the remote host on which you want to execute the command line programsinitFileTemplate
attribute to the ssh
element so that it points to a file that is "sourced" before executing the command line programs to setup the environment.exchangeDir
elements; provide the correct paths to the exchange directory. <chemalot_knime_dir>
/config/dev.properties file:
SSHHost
property; Enter the remote host name.executer.user
. It should contain the username executing the KNIME executer when using the KNIME Web Portalserver.ssh.user
. It should contain the ssh user to be used when executing the workflow in the KNIME Web Portal<chemalot_knime_dir>
/updateSiteFor the SDF command line nodes to work you have to setup ssh using private keys in KNIME:
Copy this file onto your remote linux machine into a file named
~/.ssh/authorized_keys
If the file already exists append the contents of id_rsa.pub to it.
Goto File/Import/KNIME Workflow
<chemalot_knime_dir>
/test/Command Line Knime Test.knar"Open the "Command Line Knime Test/ExtSSHTest" workflow. This workflow only uses basic KNIME nodes to test your ssh configuration
Test the chemalot_knime nodes:
Command Line nodes are configured in the "<chemalot_knime_dir>
/config/cmdLine/commandLinePrograms.xml" file. Open the file with your favorite text editor.
Each KNIME node is defined by a <command>
element. The example below defines the "babel" command line node:
<command name='babel' label='babel (OE)' subfolder='GNEStructManipulation'>
<IO in="-in .sdf" out="-out .sdf"/>
<default>-add2d</default>
<ports in='sdf' out='sdf'/>
<help option='--help all'/>
</command>
Attributes to the <command>
element:
name
label
command
specifies the executable name used when executing the command line. If the executable is not in your path you must supply an absolute path or a path relative to your home directory on the remote host.subfolder
GNEAdvanced,
GNEAdvanced/GNEAdvUtilities,
GNEAdvanced/GNEAdvStructManipulation,
GNEAdvanced/GNEAdvWriter,
GNEAdvanced/GNEAdvStructManipulation/GNEAdvProps,
GNEStructManipulation,
GNEStructManipulation/GNEStrProps,
GNEStructManipulation/GNEStrDiversity,
GNEStructManipulation/GNEStrSearch,
GNEStructManipulation/GNEStrQSAR,
GNEWriter
GNEUserDefined This is not currently used but could be used for adding your own command line programs.
Sub elements of <command>
:
<IO>
<default>
<ports>
<help>
To install the KNIME SDK environment in order to debug or modify the code please follow the steps outlined in: developer.readme.md