Executing External Scripts

Now, wouldn’t it be nice to able execute scripts automatically after a simulation? This would safe you the time and effort to start e.g. a python session and execute your script after every simulation.

For this situation, Morpheus provides a useful Analysis plugin called External. This plugin, based on the tiny process library, let’s you execute shell scripts during or after simulation.

For instance, here we specify a shell script to execute the following bash script to first activate a conda environment my_environment and then execute the python script newick_visualization.py:

source activate my_environment
python /path/to/script/newick_visualization.py
The `External` allows you to execute `bash` and `python` scripts during or after a Morpheus simulation.
The External allows you to execute bash and python scripts during or after a Morpheus simulation.

To customize the environment, one can override environment variables such as PYTHONPATH. Here, we use to point it to the correct Python installation in the Anaconda folder:

Override the PYTHONPATH to find the correct python/conda installation.
Override the PYTHONPATH to find the correct python/conda installation.

Shell scripts can be executed as part of the same thread as the simulation, or using a separate background process, using the detach option. In this case, one can set a timeout to kill a detached process after a specific time (in seconds) to prevent a script to hang a simulation, i.e. during a parameter sweep.

Another protip is to use % (percentage) in the Command to provide global symbols as arguments in the script. For instance the substring %time will be replaced with the current time.

Previous
Next