Computing Electric Field Topologies and Other Features in High-Throughput
Project description
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 recommended steps to install PyCPET
- 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
- Run pip install in the conda environment
pip install pycpet
- 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' IN BETA
- 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:
- 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
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:
- Up to and including charge information, follow standard formatting: https://www.cgl.ucsf.edu/chimerax/docs/user/formats/pdbintro.html
- For charge information, charges must be in columns 55-64 of each line, inclusive
PQR:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycpet-0.0.6.tar.gz.
File metadata
- Download URL: pycpet-0.0.6.tar.gz
- Upload date:
- Size: 70.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
805a9aa8ab175c8f027fd76cc74500b8c59c1d82c39f9126db7ab00abb03629a
|
|
| MD5 |
73aa16f301bdd8792b7caf0ee589d311
|
|
| BLAKE2b-256 |
573cbff29c16384e8ca9f2f65bcea621a3d889e5e851ee8be2b1d7085e74a19c
|
Provenance
The following attestation bundles were made for pycpet-0.0.6.tar.gz:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6.tar.gz -
Subject digest:
805a9aa8ab175c8f027fd76cc74500b8c59c1d82c39f9126db7ab00abb03629a - Sigstore transparency entry: 234941557
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pycpet-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 104.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
362a624221bdc37f198a1805f10dfc0256e12379cf287ca92e0980a37e695cf1
|
|
| MD5 |
715bd5fe4a34e1469804699212747bf2
|
|
| BLAKE2b-256 |
131a0238f3dd42901257060fca5078133391f32dec501270ba3f866ad3d1261c
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
362a624221bdc37f198a1805f10dfc0256e12379cf287ca92e0980a37e695cf1 - Sigstore transparency entry: 234941581
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pycpet-0.0.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
047dab28c47b9651ebdd869698e6e4add62ba24120b2fb7c05c50263669e5cdc
|
|
| MD5 |
534e0ca7c122e699465fc23b8948c19f
|
|
| BLAKE2b-256 |
8a33aedbf39b5abe5642fde8468ac3136135d90ee126e2fc20ef2dd3893af760
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
047dab28c47b9651ebdd869698e6e4add62ba24120b2fb7c05c50263669e5cdc - Sigstore transparency entry: 234941559
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pycpet-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 104.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2f98e4b75abf46e2bbc77e1ed36fc99f4fcdec62728488884045afaa51f1e06
|
|
| MD5 |
a7b1f2459b996d25702e3302a794e898
|
|
| BLAKE2b-256 |
7b70bc4da93ed94d574ef21b543d6eb75fafec33349ef0f2f470ba166673a9f9
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
f2f98e4b75abf46e2bbc77e1ed36fc99f4fcdec62728488884045afaa51f1e06 - Sigstore transparency entry: 234941578
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pycpet-0.0.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6efac5240be1c95f1e492afddcf23031f96d4ca0c4025011070e2b8e236405d
|
|
| MD5 |
1b8c3c7fedb1cb8dabc23bd3f76ba29f
|
|
| BLAKE2b-256 |
580e0e3528d79f8c650989d8bf4819494d6cc4aeaddf8a695ecfbcfb3baff597
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
f6efac5240be1c95f1e492afddcf23031f96d4ca0c4025011070e2b8e236405d - Sigstore transparency entry: 234941568
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pycpet-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 104.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5576c48170d30a9e7108ce0407a934a405674d0679da7e82b22a550cfe6b826a
|
|
| MD5 |
8324e5e34ceca498b9f4e9a2bfb7e3a1
|
|
| BLAKE2b-256 |
c8cfda03fb50db54593a9d13729c8f4c0249502c4333d4d1b89d3e85e766ee51
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
5576c48170d30a9e7108ce0407a934a405674d0679da7e82b22a550cfe6b826a - Sigstore transparency entry: 234941585
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pycpet-0.0.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f4ad728e66aecfc7a9e4948c12c39b24e382e02f5a52446b153ed964672fb6b
|
|
| MD5 |
2baa792ab9be54f07e5c51bb610a9415
|
|
| BLAKE2b-256 |
543601bff7aefc5c7c8e4ea897247cf400e12ddd6d555071aa4ed64f8b2f1d3f
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
5f4ad728e66aecfc7a9e4948c12c39b24e382e02f5a52446b153ed964672fb6b - Sigstore transparency entry: 234941574
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pycpet-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 104.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fa65d45d747eaef64f368dc79e22a52b0bcc32b993fe86c5a96f463108c023c
|
|
| MD5 |
72a1ed1f3cb98a28c0c2761a64430ef3
|
|
| BLAKE2b-256 |
daab585ad444bc5bceb0bcbf926504a7f942c62a00eaaea476ebce7fce025ae1
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
4fa65d45d747eaef64f368dc79e22a52b0bcc32b993fe86c5a96f463108c023c - Sigstore transparency entry: 234941571
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycpet-0.0.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pycpet-0.0.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
948e57b6dcd809691803b8e16a963257ec184d9984c73d96bd89da78a1d76efc
|
|
| MD5 |
2b79c27c06c8e41714144f22bfc44a26
|
|
| BLAKE2b-256 |
277c12d48a2b08b99bfcef52877b95cb666c41488c271a1bf39ebd64fca57ba1
|
Provenance
The following attestation bundles were made for pycpet-0.0.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
workflow.yml on pujanajmera/pycpet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycpet-0.0.6-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
948e57b6dcd809691803b8e16a963257ec184d9984c73d96bd89da78a1d76efc - Sigstore transparency entry: 234941563
- Sigstore integration time:
-
Permalink:
pujanajmera/pycpet@01b2e8a529151687a099c044afdc79ff22386024 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pujanajmera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@01b2e8a529151687a099c044afdc79ff22386024 -
Trigger Event:
push
-
Statement type: