Skip to main content

Icolos Workflow Manager

Project description

License PyPI version Code style: black GitHub contributors Latest tag GitHub forks GitHub stars

Icolos: Workflow manager

The Icolos tool is a workflow manager for structure-based workflows in computational chemistry, that abstracts execution logic from implementation as much as possible. Icolos was designed to interface with REINVENT, and workflows can be called as a component of the scoring function, or to postprocess results with more expensive methods. Workflows are specified in JSON format (see folder examples). Currently wrapped are a diverse set of tools and internal steps, including docking, QM and MD capabilities. The pre-print is available here.

Introduction

Icolos provides a unified interface to a host of software for common computational chemistry calculations, with built in parallelization, and straight-forward extensibiltiy to add additional functionality. It was principally developed to handle structural calculations for REINVENT jobs, however, workflows can also be run independently.

Workflows are constructed from elementary 'steps', individual blocks which are combined to specify a sequential list of operations, with control of the command-line options provided through step settings, and options to control other aspects of the step's behaviour included in the additional block.

For many use cases, one of the template workflows might suit your needs, or need a few tweaks to do what you want. Demonstration notebooks for common workflows are available here.

Initial configuration

You are welcome to clone the repository and use a local version, and in particular if you would like to experiment with the code base and/or contribute features, please get in contact with us.

Installation

After cloning, first install and activate the icolosprod conda environment. To ensure the right installation directory is used, you can add the --prefix parameter to the create call, specifying the location of the conda environments.

conda env create -f environment_min.yml
conda activate icolosprod

Then install the package:

pip install -e .

This will give you access to the icolos entrypoint.

ESPsim installation

The following will install the ESPsim package into the environment - this is only required if ligand-based matching using this package is desired.

cd ..
git clone https://github.com/hesther/espsim.git
cd espsim
conda activate icolosprod
pip install -e .

Unit testing

Icolos is extensively unit tested, and relies on an external data repo located here. The full test suite takes ~60 mins on a workstation, therefore it is recommended that you execute a subset of unit tests relevant to the workflow you are running. To execute the full test suite, run something like:

pytest -n 8 tests/

Execution

Once a JSON is specified, the workflow can be executed like so:

conda activate icolosprod
icolos -conf workflow.json

We usually advise to check the validity of your configuration file before you try to execute it. There is a bespoke validator entry point to facilitate this:

validator -conf workflow.json

SLURM Execution

Once specified, a workflow can be called like this in a bash script:

#!/bin/bash -l
#SBATCH -N 1
#SBATCH -t 0-02:59:00
#SBATCH -p core
#SBATCH --ntasks-per-node=5
#SBATCH --mem-per-cpu=2G

source /<conda_path>/miniconda3/bin/activate /<conda_path>/minconda3/envs/icolosprod
icolos -conf workflow.json

For GROMACS workflows requiring the GPU partition, you will need to adapt the header accordingly, e.g. like so:

#!/bin/bash
#SBATCH -J gmx_cco1_fold_microsecond
#SBATCH -o MygpuJob_out_%j.txt
#SBATCH -e MygpuJob_err_%j.txt
#SBATCH -c 8
#SBATCH --gres=gpu:1
#SBATCH --mem-per-cpu=4g
#SBATCH -p gpu
#SBATCH --time=12:00:00

Developers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

icolos-1.9.0.tar.gz (194.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icolos-1.9.0-py3-none-any.whl (321.6 kB view details)

Uploaded Python 3

File details

Details for the file icolos-1.9.0.tar.gz.

File metadata

  • Download URL: icolos-1.9.0.tar.gz
  • Upload date:
  • Size: 194.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for icolos-1.9.0.tar.gz
Algorithm Hash digest
SHA256 2c0d4e33cd751fd8c18c67c9d8123c06d5a21b5802eef3faa12654f140b0d334
MD5 c4fdde4198194d93c3155d4c398350db
BLAKE2b-256 19bab4a70c9c4dadefb03f80807b23c36827b4b41a63ab9fc190ed18409fa4f9

See more details on using hashes here.

File details

Details for the file icolos-1.9.0-py3-none-any.whl.

File metadata

  • Download URL: icolos-1.9.0-py3-none-any.whl
  • Upload date:
  • Size: 321.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for icolos-1.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29f442e42d64b9f5a54a8e1d4129e7b8dc1cd5802d56094b9a73b71d5770a289
MD5 1e9ec05c0d9b6a5e14bb7988add48f49
BLAKE2b-256 3cae5f49ebe0db4b390f431c124b3b595bb347ee35c24270e5c95b7a125655a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page