GithubHelp home page GithubHelp logo

vsflow's Introduction

VSFlow - Virtual Screening Workflow

VSFlow is an open-source command-line tool built on top of the RDKit [1] for the ligand-based virtual screening of large compound libraries (databases). It includes a substructure-based, a fingerprint-based and a shape-based virtual screening tool. Additionally, it provides a tool to prepare databases for screening (molecule standardization, fingerprint and conformer generation). Screenings can be parallelized with Python's built-in multiprocessing package. Additionally, VSFlow accepts a wide range of input file formats. The screening results can be exported in various file formats, including Excel files. As additional feature, VSFlow supports the visualization of the screening results as PDF file and/or PyMOL file [2], allowing for a quick inspection of the results by the user. VSFlow is fully written in Python.

Installation

The classic way

First of all, you need a working installation of Anaconda (https://www.anaconda.com/products/individual) or Miniconda (https://conda.io/en/latest/miniconda.html). Both are available for all major platforms.

Second, you need to clone the VSFlow GitHub repository to your system or download the zip file and unpack it (in the following called the repository folder).

All following instructions assume working with a bash shell!

Navigate into the repository folder.

Now, you can install the required dependencies with the provided environment.yml file within the repository folder as follows:

conda env create --quiet --force --file environment.yml
conda activate vsflow

Alternatively, you can also create a new conda environment and install the dependencies manually:

conda create -n vsflow python=3.9
conda activate vsflow
conda install -c conda-forge rdkit xlrd xlsxwriter pdfrw fpdf pymol-open-source molvs matplotlib 

The Python dependencies are:

  • Python >= 3.7
  • RDKit >= 2019.09.3
  • FPDF >= 1.7.2
  • PDFRW >= 0.4
  • XlsxWriter >= 1.2.7
  • Xlrd >= 1.2.0
  • PyMOL >= 2.3.4
  • Molvs >= 0.1.1
  • Matplotlib >= 3.3.4

Now, you can install VSFlow as follows:

pip install .

Using Docker (Linux only)

First, you need to clone the VSFlow GitHub repository to your system or download the zip file and unpack it (in the following called the repository folder). Assuming you have Docker installed and switched to the repository folder, you can build the Docker image as follows:

docker build --tag vsflow .

The build process might take a while and only needs to be done once. After it is finished, you can run VSFlow as follows:

docker run --rm -it -v $(pwd):/data vsflow
cd /data
vsflow --help

Instead of using $(pwd) you can also use the absolute path to your desired working directory. Every file in /data in the container, e.g. generated databases or output files by VSFlow, is mirrored to your working directory on your host system.

If you are finished, you can exit the container by typing exit or pressing Ctrl+D.

General Usage

Always make sure the conda environment is activated. Now you can run VSFlow as follows:

vsflow {mode} {arguments}

For example, the following command will display all included modes (substructure, fpsim, shape, preparedb, managedb) and the general usage:

vsflow -h

To display all possible arguments for a particular mode, type as follows:

vsflow {mode} -h

For example, with the following command all arguments for mode substructure are shown:

vsflow substructure -h

Example Usage

A detailed usage of VSFlow with many examples is provided in the GitHub Wiki:
https://github.com/czodrowskilab/VSFlow/wiki

References

[1] RDKit, Open-Source cheminformatics; http://www.rdkit.org.
[2] The PyMOL Molecular Graphics System, Version 2.0 Schrödinger, LLC.

vsflow's People

Contributors

sasjung avatar mrcblt avatar hlgvth avatar czodrowskilab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.