Skip to main content

Non-covalent Lasso-like Entanglement (NCLE) Detection in Protein Structures and trajectories

Project description

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 create from the EntDetect repo root (the environment file uses pip -e .).
  • If you prefer installing into an existing env, use pip install -e . from the repo root.

macOS (Miniconda) notes:

  • The default environment.yml is 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:

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 entanglements
  • clustering: Cluster native and non-native entanglements, build MSMs
  • order_params: Compute Q, G, K, SASA, Jwalk, and cross-linking propensity
  • compare_sim2exp: Integrate LiP-MS and XL-MS experimental data
  • statistics: Population modeling and Monte Carlo analysis
  • entanglement_features: Generate structural features for entanglements
  • change_resolution: Convert between all-atom and coarse-grained representations

Documentation

Detailed documentation for each module:

Requirements

  • Python 3.8+
  • NumPy
  • Pandas
  • SciPy
  • MDAnalysis
  • OpenMM (for force field operations)
  • Matplotlib (for visualization)
  • See environment.yml for 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.

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

entdetect-1.2.2.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

entdetect-1.2.2-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file entdetect-1.2.2.tar.gz.

File metadata

  • Download URL: entdetect-1.2.2.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for entdetect-1.2.2.tar.gz
Algorithm Hash digest
SHA256 578c4cc8783ebd09681795112f155982c5a45414234dc46a3417873b73c49f9a
MD5 db5ad201211e1fd24b7e8ced10d23b9f
BLAKE2b-256 c246e08dac99cd4043fa511c51380bc745d47795b6040ef3dcaf9d9129a0e774

See more details on using hashes here.

File details

Details for the file entdetect-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: entdetect-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for entdetect-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d171eee5c6d3516ff16cf0fd2db97cb99694d4fe14dcdc9631eab5bfc64e868c
MD5 4c4e3277092c6d319285b3d63dcbe343
BLAKE2b-256 a2c7edb4001ca96c503db0903c91170223d34b0410b46d5dfe44095a5cc99964

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