Skip to main content

Framework for volumetric calculations, with emphasis in biological molecular systems.

Project description

Volumetric Grids (VolGrids)

VolGrids is a framework for volumetric calculations, with emphasis in biological molecular systems. The following applications are provided:

You can read more in the subcommands summary.

QuickStart

pip install volgrids
volgrids --help

Without installing the package

git clone --depth 1 https://github.com/DiegoBarMor/volgrids
cd volgrids
pip install -r requirements.txt
python3 volgrids --help # required vendors will automatically be downloaded

Setup

Requirements

Hard requirements

  • Grid operations are based on NumPy arrays.
  • Molecular structures and trajectories data are parsed by MDAnalysis.
  • CMAP files are parsed by h5py.

Optional requirements

  • [APBS]: Follow the instructions from here.
  • rnapolis (pip install rnapolis) for running residue-selection utilities from smutils.

Vendors

The following are dependencies that are included as vendors in volgrid's pip distribution. If you don't want to use pip, it will be fetched automatically the first time you run volgrids. Alternatively, run bash scripts/_prepare.sh in your local copy of the volgrids repo to fetch the vendor packages manually.

Option 1: Setting up a Conda environment

Automatic

conda env create -f environment.yml
conda activate volgrids

Manual

conda create --name volgrids -y
conda activate volgrids
conda install python -y
conda install -c conda-forge mdanalysis h5py -y

Option 2: Simple setup with PIP

Automatic

pip install -r requirements.txt

Manual

pip install mdanalysis h5py

Running the CLI utilities

Without VolGrids installed

You can use the tools provided by VolGrids without installing it, by calling any of the scripts in the root directory of this repository (it doesn't have to be the current directory, you can call them from anywhere). Leave [options...] empty to read more about the available options.

python3 volgrids apbs    [options...]
python3 volgrids smiffer [options...]
python3 volgrids smutils [options...]
python3 volgrids vgtools [options...]

VolGrids installed

  • VolGrids can be installed as a package via pip:
pip install volgrids
  • (Or alternatively from its repository):
# your current directory must be the root directory of volgrids repository
git clone --depth 1 https://github.com/DiegoBarMor/volgrids
cd volgrids
pip install .
rm -rf build volgrids.egg-info # optional cleanup
  • Then, it can be run from anywhere via:
volgrids apbs    [options...]
volgrids smiffer [options...]
volgrids smutils [options...]
volgrids vgtools [options...]

Running the tests

Follow the instructions at the test data repo.

Usage

Summary of subcommands

Run the subcommands without any further arguments to read more about their specific usage.

  • volgrids apbs: Generate raw APBS potential grids for biomolecular structures.
  • volgrids smiffer prot: Calculate SMIFs for protein structures.
  • volgrids smiffer rna: Calculate SMIFs for RNA structures.
  • volgrids smiffer ligand: Calculate SMIFs for ligand structures. A .chem table must be provided.
  • volgrids smutils res_nobp: Print the set of non-base-paired residues in a given RNA structure. A residue is considered non-base-paired if it does not form a canonical base pair (UA, CG) with any other residue. Requires rnapolis.
  • volgrids smutils res_nostk: Print the set of residues in a given RNA structure for residues that aren't participating in 2 stacking interactions. Requires rnapolis.
  • volgrids smutils histogram: Plot the distribution histogram of non-zero voxel values in a grid file. For multi-frame CMAP files, all frames are concatenated unless --key is specified. Percentiles (p50, p75, p90, p95, p99, p99.9) are printed to the console. Requires matplotlib.
  • volgrids smutils occupancy prot: Calculate OGs for protein structures.
  • volgrids smutils occupancy rna: Calculate OGs for RNA structures.
  • volgrids smutils occupancy ligand: Calculate OGs for ligand structures. A .chem table must be provided.
  • volgrids vgtools convert: Convert grid files between formats.
  • volgrids vgtools pack: Pack multiple grid files into a single CMAP series-file.
  • volgrids vgtools unpack: Unpack a CMAP series-file into multiple grid files.
  • volgrids vgtools fix_cmap: Ensure that all grids in a CMAP series-file have the same resolution, interpolating them if necessary.
  • volgrids vgtools average: Average all grids in a CMAP series-file into a single grid.
  • volgrids vgtools summary: Print a summary of the grid file (format, dimensions, resolution, etc.) to the console.
  • volgrids vgtools compare: Compare two grid files by printing the number of differing points and their accumulated difference.
  • volgrids vgtools rotate: Rotate a grid file by 3 angles, along the xy, yz and xz planes (in degrees).
  • volgrids vgtools op abs: Element-wise absolute value of the grid's points.
  • volgrids vgtools op add: Element-wise addition of the grids' points.
  • volgrids vgtools op sub: Element-wise substraction of the grids' points. Order is "grid_0 - grid_1".
  • volgrids vgtools op mul: Element-wise multiplication of the grids' points.
  • volgrids vgtools op div: Element-wise division of the grids' points. Order is "grid_0 / grid_1". Dubious operation, as grids have usually many 0-valued points; make sure to preprocess the denominator grid appropriately.
  • volgrids vgtools op and: Element-wise AND of the boolean grids' points.
  • volgrids vgtools op or: Element-wise OR of the boolean grids' points.

Commands examples (smiffer)

  • Calculate SMIFs for a protein system (prot) considering only the space inside a pocket sphere (-s).
volgrids smiffer prot testdata/smiffer/pdb_clean/1iqj.pdb -s 4.682 21.475 7.161 14.675
  • Calculate SMIFs for a whole RNA system (rna) considering APBS data (-a).
volgrids smiffer rna testdata/smiffer/pdb_clean/5bjo.pdb -a testdata/smiffer/apbs/5bjo.pdb.mrc
  • Calculate SMIFs for an RNA system (rna) along a trajectory (-t). Note that for "pocket sphere" mode, the same coordinates/radius are used for the whole trajectory.
volgrids smiffer rna testdata/smiffer/traj/7vki.pdb -t testdata/smiffer/traj/7vki.xtc
  • Combine resids_nonpb with smiffer's --resids (-i) flag to have more polished hbond results, e.g.:
python3 volgrids smiffer rna 1akx.pdb \
    -i "$(python3 volgrids smutils res_nobp 1akx.pdb)" \
    -c DO_SMIF_STACKING=false DO_SMIF_HYDROPHOBIC=false DO_SMIF_HYDROPHILIC=false \
        DO_SMIF_HBA=true DO_SMIF_HBD=true HBONDS_ONLY_NUCLEOBASE=true

Visualization

Color standard (smiffer)

Potential Color RGB 0-1 RGB 0-255 HEX
APBS - Red 1,0,0 255,0,0 FF0000
APBS + Blue 0,0,1 0,0,255 0000FF
HB Acceptors Violet 0.7,0,1 179,0,255 B300FF
HB Donors Orange 1,0.5,0 255,128,0 FF8000
Hydrophilic (-) Light Blue 0.3,0.85,1 77,217,255 4DD9FF
Hydrophobic (+) Yellow 1,1,0 255,255,0 FFFF00
Stacking Green 0,1,0 0,255,0 00FF00

MRC/CCP4 data in ChimeraX

Use this command when visualizing MRC/CCP4 data with negative values in ChimeraX (replace 1 with the actual number of the model).

volume #1 capFaces false

CMAP trajectories in ChimeraX

Follow these instructions to visualize the atomic and SMIF trajectories simultaneously in ChimeraX.

  1. Open the PDB and load the atom trajectory into it (in ChimeraX, simply drag the files into the window).
  2. Open the CMAP file in a similar way.
  3. Start the playback by using this ChimeraX command. The numbers specified would change if dealing with multiple structures/cmaps. Examples:
coordset #1; vseries play #2
coordset #1 pauseFrames 5; vseries play #2 pauseFrames 5
coordset #1 pauseFrames 5; vseries play #2 pauseFrames 5; vseries play #3 pauseFrames 5
  1. Use this ChimeraX command to stop the playback. The ids used must match the previous command.
coordset stop #1; vseries stop #2

Smooth Trajectories

  1. Load the PDB and the trajectory files into it ChimeraX (e.g. drag the files into the window).
  2. Load the CMAP file in a similar way.
  3. (Optional) Load the smooth_md.py script (again, can be done by dragging it into ChimeraX).
  4. Start the playback by using this ChimeraX command. The numbers specified would change if dealing with multiple structures/cmaps. Examples:
coordset #1 pauseFrames 10; vop morph #2 playStep 0.0005 frames 2000 modelId 3
coordset #1 pauseFrames 20; vop morph #2 playStep 0.00025 frames 4000 modelId 3
coordset #1 pauseFrames 20; vop morph #2 playStep 0.00025 frames 4000 modelId 4; vop morph #3 playStep 0.00025 frames 4000 modelId 5
  1. Use this ChimeraX command to stop the playback. The ids used must match the previous command.
coordset stop #1; vseries stop #2

Note that this time, the morph can be paused manually with the slider button (is there a command equivalent?)

Other useful ChimeraX commands

volume level 0.5
volume transparency 0.5
volume showOutlineBox true

save trajectory.pdb models #1 allCoordsets true
cartoon style width 0.2 thickness 0.1
size stickradius 0.1

APBS reference

Sample commands to obtain the electrostatic grids from pdb2pqr and APBS

Installation (Ubuntu)

pip install pdb2pqr
# sudo apt install pdb2pqr # alternative
sudo apt-get install apbs

Commands examples

  • Running APBS with Volgrids (recommended).
volgrids apbs testdata/smiffer/pdb_clean/1iqj.pdb --mrc --verbose
  • Alternative (calling directly apbs.sh).
bash volgrids/apbs/apbs.sh testdata/smiffer/pdb_clean/1iqj.pdb --mrc --verbose
  • Running APBS without Volgrids.
pdb2pqr --ff=AMBER testdata/smiffer/pdb_clean/1iqj.pdb testdata/smiffer/pqr/1iqj.pqr --apbs-input testdata/smiffer/1iqj.in
apbs testdata/smiffer/1iqj.in

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

volgrids-0.9.0.tar.gz (105.0 kB view details)

Uploaded Source

Built Distribution

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

volgrids-0.9.0-py3-none-any.whl (133.8 kB view details)

Uploaded Python 3

File details

Details for the file volgrids-0.9.0.tar.gz.

File metadata

  • Download URL: volgrids-0.9.0.tar.gz
  • Upload date:
  • Size: 105.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for volgrids-0.9.0.tar.gz
Algorithm Hash digest
SHA256 4435b42f4c3cff0f63b562c3e3684e5d5137ac32950c6ece2b8498ce2843e35c
MD5 4f3578a60990996676fb266f127a9c15
BLAKE2b-256 6d135c44765f513719735d3d3edc7b90037b8517a9281c26f16a1481a0033fc6

See more details on using hashes here.

File details

Details for the file volgrids-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: volgrids-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 133.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for volgrids-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f57471dccd466d7aad9806985c0f29b32271b9545729edbbbf5e82b9ba774b85
MD5 dff2be292703ae93cdd825762cb1f7c7
BLAKE2b-256 90205a626cef7dac1db2b6b8a82dd281e5a2cf087f123681eecfdaf0b8cfbdd5

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