Use KNIME to run remote jobs

I am a complete newbie to KNIME, but would like to use it for a very specific task:
I want to use a KNIME workflow to submit Molecular Dynamics simulations to a supercomputer. The simulations will be run with GROMACS, and submitted via simple bash/unix scripts, GROMACS is running on the supercomputer itself.

Any pointers to how to do this are very much appreciated - I have no clue where to start.

Cheers
Gudrun

Hi Gugy,

you should be able to do this with the external tools node.

Cheers, Iris

1 Like

Hi Iris,
thanks for the reply. I am having trouble understanding how the different external tool nodes work…

From what I understand, the External ssh tool is suitable for me: I want to execute scripts on a remote server (I can do that with ‘remote command’). What I do not understand is what the temporary in and out files are supposed to do, they get deleted after executing the node, but have to be present before executing it???

To debug, I am manually creating empty files so that the node runs… Surely, this is not how it is supposed to work, and I am totally clueless.

My remote command to test is just:
ls -ltr > test
In the end, I would like to either do sth like this (file read, file saved):
grep ‘ALA’ protein.pdb >out.txt
or
./script
with script containing the lines
#!/bin/bash
grep ‘ALA’ protein.pdb >out.txt

I cannot find a MWE with an external ssh node, maybe you can provide one?

Cheers
Gudrun

Hi @gugy,
Please excuse the late response, I just discovered this post.
You do not need to create the temporary input file, but you need to fill the output file with some content. The easiest way to ensure this is done correctly is to use the $outFile variable in your command and specifying full paths to input and output files. If you do not need the input table at all, you can connect for example an Empty Table Creator node and set the input file to /dev/null:

best,
Gabriel

Hi,
I realize this is an older post, but there’s still some logic i don’t understand here. If you can pass a null variable to the input, why can’t that also be done for the output? I am trying to use External SSH to start a script that takes care of the output in a different manner. Whenever there is a failed run, the blank output file i am using gets erased. Is there a way to circumvent this?
thanks
Ruben

Hi @RTommasi,

just a quick idea, how about running a command like
touch /tmp/fakeoutput && your_command and set /tmp/faekoutput as your remote output file?

best,
Gabriel