Skip to main content

Computing Electric Field Topologies and Other Features in High-Throughput

Project description



DOI:10.1021/acs.jctc.5c00138

PyCPET

Python-based Computation of Protein Electric Field Topology, built for high-throughput accelerated calculations of several electrostatic properties of enzyme active sites from simulations. This program is incredibly flexible and scriptable for virtually any analysis of classical electric fields and electrostatic potentials.

Cite

To cite your use of PyCPET, please use the following: Ajmera, P., Vargas, S., Chaturvedi, S., Hennefarth, M. & Alexandrova, A. PyCPET - Computing Heterogeneous 3D Protein Electric Fields and Their Dynamics. Journal of Chemical Theory and Computation (2025). doi:10.1021/acs.jctc.5c00138

Requirements and Installation

System requirements:

  • gcc (to compile C-shared libraries)
  • anaconda (preferred, not required)

Follow these steps to install PyCPET. I recommend installing the latest version from GitHub by cloning and "pip install -e .", but these are simpler steps:

  1. Make a clean conda environment (recommended, not required)

conda create -n pycpet-env python=3.12 pip -c conda-forge -y conda activate pycpet-env

  1. Run pip install in the conda environment

pip install pycpet

  1. When running, we advise you set the following:

CPU multithreading (available for topologies): export OMP_NUM_THREADS=1 GPU-accelerated code (available for topologies, fields in dev): export CUDA_VISIBILE_DEVICES=N (where N is the GPU number, only needed for non-HPC setups)

Documentation

Almost all use of PyCPET is either scripting with the objects provided (requires in-depth knowledge of the code) or using the cpet.py script with an options file. We are developing in-depth documentation of how to format and use the options file, examples, and cookbooks at (), but key features and explanation of example files are noted below.

Features

These are the following available features, and their corresponding options file 'method' keywords:

  • Computing point electric fields: 'point_field'
  • Computing point electric field magnitudes: 'point_mag'
  • Computing 3-D electric fields: 'volume'
  • Computing 3-D electrostatic potentials: 'volume_ESP'
  • Computing 3-D distribution of streamlines: 'topo' (CPU, default) and 'topo_GPU' (GPU)
  • Clustering by distribution of streamlines: 'cluster'
  • Clustering by 3-D electric field (tensor decomp): 'cluster_volume_tensor'
  • Clustering by 3-D electrostatic potential: 'cluster_volume_ESP_tensor' IN BETA
  • Visualizing 3-D fields: 'visualize_fields'
  • PCA on 3-D fields, for a single set of data: 'pca' IN BETA
  • PCA on 3-D fields, for a full comparative analysis between multiple sets of field data (e.g. variants): 'pca_compare' IN BETA
  • Finding if any atoms are intruding the field volume: 'box_check'

Examples

Several examples are in the examples directory. Most of these are designed for single calculations, but can be extended to high-throughput with almost no changes.

Specialized Scripts

For features unavailable from the cpet.py script mentioned above, we offer scripts in source/scripts for the following. Please note that these are not rigorously tested for all cases, but showcase the scripting ability of the pycpet library:

  • electrostatic_interaction_QM.py: Electrostatic interaction energy and residue-breakdown for QM/MM calculations
  • residue_breakdown_analysis.py: Residue contribution to topology over dynamics, ranked. Requires completed topology calculations for an MD IN BETA
  • tensor_based_cluster_double.py: Electrostatic potential/electric field-based clustering for two sets of electric fields/electrostatic potentials. Assumes that all field calculations have been completed for both sets of directories. IN BETA
  • field_topology_dipoel.py: Electric field streamline distributions from a given set of dipoles IN BETA

Note: Formatting of PDB/PQR files

Most of the code here requires well-formated PDB or PQR files. The formatting is as follows (see io.py for more details):

PDB:

PQR:

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

pycpet-0.0.7a0.tar.gz (73.9 kB view details)

Uploaded Source

Built Distributions

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

pycpet-0.0.7a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pycpet-0.0.7a0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (116.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pycpet-0.0.7a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pycpet-0.0.7a0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (116.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pycpet-0.0.7a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pycpet-0.0.7a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (116.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pycpet-0.0.7a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pycpet-0.0.7a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (116.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

File details

Details for the file pycpet-0.0.7a0.tar.gz.

File metadata

  • Download URL: pycpet-0.0.7a0.tar.gz
  • Upload date:
  • Size: 73.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pycpet-0.0.7a0.tar.gz
Algorithm Hash digest
SHA256 373008c84eb136e4a8a8dbd6c061f26c85c823a9c40b479d8e636cbe6dd09a1d
MD5 686bc12808187723d8aa26b9f215761b
BLAKE2b-256 5383f6c802424ea410801301b447eb1313fb39eb9a18570e40a4385900221c9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0.tar.gz:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56577030f9de5549e77034b0efeeb1ad3a6d76cd57188054dde45a3b18ad307b
MD5 9938ea49dbe5851cadabc4ca4153e488
BLAKE2b-256 37464055c25e52b4051b0fe58110bfe5adc99744cb062fc6075d3a064eaeac9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f73876f40e6a1108ca052d53d90973ee959c3a57534a520fa0bf420960cb313e
MD5 c09742c0db76d31030ff20e79e6a50a9
BLAKE2b-256 f0abcb64a51f21c87827de14c795b945788b4cae9929880752d3ef2b22d294d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a0c5b300732b1a376a4df32f605a11554294d7530854a0bd4681b68cea2c233
MD5 900d8db95a7eda79f32fd22b031cf9b3
BLAKE2b-256 e2c868d621060908bae7272a44a402c2a4580439d8e7330865d6aac76f58de89

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5600d9210c87cd0e31e6f094e0001ddc8a0c49f93daa1f7126f2ed20f8e781c9
MD5 395dd54e644c05329996a6d13c875620
BLAKE2b-256 1411190bc30e8c539618cfed550b1377af28260fd27af88433c8c5358d1f01a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0435178ce67df21d90b1993f4aff8130163d1a6119fa268ec11a869b8a461ed4
MD5 8129b09619693402931af50cc251a727
BLAKE2b-256 08cc46a9debfc4c22190a1afa761d58ad5118f94847a202599ea1b46e1399cf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 02ea476f0dc6d6b3a9914afb92903ae58229a8763415c5ad6a159f8799220be5
MD5 8111c42da54d4707e89a0479d2c1110a
BLAKE2b-256 7b2cb832ac0166e0a37225d8ea93bdd6224669fd7afe1b9ab1fc429092204f8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdc7088e474f4e22074f34ea3455046a2fb05970619600b5d64c180c64baa57c
MD5 39d6bb3f0b2bbf15a4de2e1e3cf818f7
BLAKE2b-256 84ee6857a83e44b7544d0377461d6f6889933c0a46539ec473a85e33c27a0c26

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycpet-0.0.7a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycpet-0.0.7a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c32a0fc877312d488a9940327d3d4bbda4bce9a857300a28d1090307fdde3e6e
MD5 674af1b68d0f84bb2ff29805ede76073
BLAKE2b-256 43dcffada4766c826fb6f1ae5aaa83de126c48f602a636a758b21835bab0d5ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycpet-0.0.7a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: workflow.yml on pujanajmera/pycpet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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