EntDetect
A comprehensive Python package for studying non-covalent lasso entanglements in protein folding through molecular dynamics simulations and experimental data analysis.
Overview
EntDetect provides a complete toolkit for analyzing protein entanglements across multiple scales - from individual structures to large-scale proteomic datasets. The package enables researchers to:
- Identify and characterize native entanglements in protein structures
- Calculate order parameters for simulation trajectories (Q, G, K, SASA, Jwalk, XP)
- Build Markov State Models from coarse-grained simulation ensembles
- Compare simulations to experiments using LiP-MS and XL-MS data
- Perform population-level analysis across heterogeneous protein datasets
- Coarse-grain and back-map between atomic resolutions
Key Features
- Multi-scale Analysis: From single proteins to proteome-wide studies
- Experimental Integration: Direct comparison with mass spectrometry data
- Advanced Clustering: Non-native entanglement clustering and MSM construction
- Statistical Methods: Monte Carlo simulations and logistic regression modeling
- Flexible Resolution: Seamless conversion between all-atom and coarse-grained representations
Installation
Create a new conda environment and install EntDetect (from this repo checkout):
conda env create -f environment.yml
conda activate entdetect
Notes:
- The provided conda environment targets Python 3.11 for best compatibility with the scientific stack.
- Run
conda env createfrom the EntDetect repo root (the environment file usespip -e .). - If you prefer installing into an existing env, use
pip install -e .from the repo root.
macOS (Miniconda) notes:
- The default
environment.ymlis intended to work on both Linux and macOS via conda-forge. - If you hit solver/build issues on macOS, try:
conda env create -f environment-mac.yml
conda activate entdetect
- On Apple Silicon, if a dependency is missing for
osx-arm64, a common workaround is:
CONDA_SUBDIR=osx-64 conda env create -f environment-mac.yml
conda activate entdetect
Tutorials
Step-by-step, runnable tutorials covering all four analysis workflows are in Documentation/. Start here:
- Documentation/index.md — master index with environment setup, path variables, and links to all workflows
For quick CLI reference, every script supports --help:
python scripts/run_nativeNCLE.py --help
python scripts/run_OP_on_simulation_traj.py --help
Package Structure
EntDetect/
├── EntDetect/ # Main package
│ ├── __init__.py
│ ├── gaussian_entanglement.py # Core entanglement calculations
│ ├── clustering.py # Entanglement clustering methods
│ ├── order_params.py # Order parameter calculations
│ ├── compare_sim2exp.py # Simulation-experiment comparison
│ ├── statistics.py # Statistical analysis methods
│ ├── entanglement_features.py # Feature generation
│ ├── change_resolution.py # Resolution conversion
│ └── utilities.py # Helper functions
├── scripts/ # Example workflow scripts
├── Documentation/ # Detailed module documentation
└── TestingGrounds/ # Test data and examples
Core Modules
gaussian_entanglement: Calculate Gaussian linking numbers and identify entanglementsclustering: Cluster native and non-native entanglements, build MSMsorder_params: Compute Q, G, K, SASA, Jwalk, and cross-linking propensitycompare_sim2exp: Integrate LiP-MS and XL-MS experimental datastatistics: Population modeling and Monte Carlo analysisentanglement_features: Generate structural features for entanglementschange_resolution: Convert between all-atom and coarse-grained representations
Documentation
Detailed documentation for each module:
- Tutorial index
- Workflow 1: Native NCLE detection
- Workflow 2: Trajectory analysis
- Workflow 3: Sim-to-experiment comparison
- Workflow 4: Population-level analysis
- Gaussian Entanglement
- Clustering
- Order Parameters
- Simulation-Experiment Comparison
- Statistical Analysis
- Entanglement Features
- Resolution Conversion
- Utilities
Requirements
- Python 3.8+
- NumPy
- Pandas
- SciPy
- MDAnalysis
- OpenMM (for force field operations)
- Matplotlib (for visualization)
- See
environment.ymlfor complete dependencies
Citation
If you use EntDetect in your research, please cite:
@software{entdetect2024,
title={EntDetect: A Python Package for Protein Entanglement Analysis},
author={Ian Sitarik},
author={Yang Jiang},
author={Hyebin Song},
author={Edward O'Brien},
year={2026},
url={https://github.com/obrien-lab-psu/EntDetect}
}
Contributing
Contributions are welcome! Please see our contributing guidelines and submit pull requests for any improvements.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For questions and support, please open an issue on GitHub or contact the developers.
Metadata
Release files for EntDetect 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| entdetect-1.2.2.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entdetect-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.2 MB
Release files / entdetect-1.2.2.tar.gz
| Download URL | entdetect-1.2.2.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
578c4cc8783ebd09681795112f155982c5a45414234dc46a3417873b73c49f9a
|
|
BLAKE2b-256 checksum How to use checksums |
c246e08dac99cd4043fa511c51380bc745d47795b6040ef3dcaf9d9129a0e774
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / entdetect-1.2.2-py3-none-any.whl
| Download URL | entdetect-1.2.2-py3-none-any.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d171eee5c6d3516ff16cf0fd2db97cb99694d4fe14dcdc9631eab5bfc64e868c
|
|
BLAKE2b-256 checksum How to use checksums |
a2c7edb4001ca96c503db0903c91170223d34b0410b46d5dfe44095a5cc99964
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|