Skip to content

The pyEPMaps (Python Electrostatic Potential Maps) is a Python library designed for the calculation and visualization of Electrostatic Potential Maps (EPM), which can be accelerated by GPU.

Notifications You must be signed in to change notification settings

anchieta-oliveira/pyEPMap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyEPMap

The pyEPMap (Python Electrostatic Potential Map) is a Python library designed for the calculation and visualization of Electrostatic Potential Maps (EPM), which can be accelerated by GPU.

Figure 1 Figure 1: Electrostatic Potential Maps (EPM) of di-nucleosome (closed form) protein alone (20,416 atoms and 10,289,600 grid points) and complex DNA protein (36,273 atoms and 18,298,710 grid points) (PDB ID: 8Y3C). You can see the electrostatic complementarity between the positive charges of the protein (blue) and the negative charges of the RNA (red).

Prerequisites

Ensure you have the following installed on your system:

Installation

Step 1: Clone the Repository

Use Git to clone the repository to your local machine:

git clone https://github.com/anchieta-oliveira/pyEPMap

Step 2: Create a virtual environment dedicated to pyEPMap

Navigate to the cloned Git folder:

cd pyEPMap

Create a new Conda environment using the provided requirements.yml file:

conda env create -f environment.yml

Step 3: Then install the package

Optionally, install install the package

python -m pip install -e .

Usage Guide

Step 1: Activate the pyEPMap dedicated environment:

conda activate pyEPMap

Step 2: Call pyEPMap

Displaying pyEPMap usage options:

python3.12 path/to/main.py --help

Uso simples:

python3.12  path/to/main.py -pdb to_pdb.pdb -psf to_psf.psf -o map.cube

Arguments:

  • -h, --help Show this help message and exit
  • -ff, --force_field FORCE_FIELD Force field file used for calculations (e.g., CHARMM).
  • -mop, --mopac_file MOPAC_FILE MOPAC output file.
  • -orca, --orca_file ORCA_FILE ORCA output file.
  • -xtb, --xtb_file_charge XTB_FILE_CHARGE XTB output charge file for charge.
  • -psf, --psf_file PSF_FILE System topology file (PSF), typically generated by software like VMD or CHARMM.
  • -chg_file, --charge_file CHARGE_FILE Path to the file containing charge information.
  • -gpu, --gpu Enable GPU acceleration if available.
  • -gpu_id, --gpu_id GPU_ID Specify the GPU ID to use (default: all gpus).
  • -o, --output OUTPUT Path to the output file or directory where results will be saved.
  • -cutoff, --cutoff CUTOFF Path to the output file or directory where results will be saved.
  • -gs, --grid_spacing GRID_SPACING Grid spacing value to be used in calculations (default: 1).
  • -m, --margin MARGIN Margin value to be used in calculations (default: 0.3).
  • -pdb, --pdb_file PDB_FILE PDB file.
  • -xyz, --xyz_file XYZ_FILE XYZ file.
  • -u, --unit UNIT Unit output.

Benchmark

Figura 2 Figura 2: Benchmark using TRA-cage (PDB ID: 2LUF) varying grid space, resulting in a greater number of points on the grid. We used a computer with an Ryzen 9 3900X, 24 threads (3.8GHz - 4.6GHz) 64 GB RAM and NVIDIA GeForce GTX 1080 Ti.

Figure X Figure 1: Electrostatic Potential Maps (EPM) map of Bean Pod Mottle Virus (BPMV) (PDB ID: 1PGL). pyEPMap can handle large systems in a timely manner, using multiple GPUs; PDB 1PGL contains 525,600 atoms, a grid with 16,836,644 points.

Run the benchmark with your resources:

Activate the pyEPMap dedicated environment:

conda activate pyEPMap
cd to/pyEPMap/benchmark

Unzip data.zip and run the python script:

python3.12 run_benchmark.py
python3.12 run_benchmark_multi_gpu.py

About

The pyEPMaps (Python Electrostatic Potential Maps) is a Python library designed for the calculation and visualization of Electrostatic Potential Maps (EPM), which can be accelerated by GPU.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published