Skip to main content

NCLEdetector

A comprehensive Python package for studying non-covalent lasso entanglements in protein folding through molecular dynamics simulations and experimental data analysis.

Overview

NCLEdetector 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

NCLEdetector supports two installation methods. Choose the one that best matches your workflow.

Method 1: Conda environment install (Linux and macOS)

Use this when you want a local Python environment and direct script/package development.

From the repo root:

conda env create -f environment.yml
conda activate ncledetector

Notes:

  • The provided conda environment targets Python 3.11 for best compatibility with the scientific stack.
  • Run conda env create from the NCLEdetector 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 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 ncledetector
  • 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 ncledetector

Method 2: Container install (Docker and Apptainer/Singularity)

Use this for reproducible runs, HPC workflows, or when you do not want to manage local dependencies.

Pull prebuilt images:

# Docker
docker pull ghcr.io/obrien-lab-psu/ncledetector:latest

# Apptainer/Singularity
apptainer pull ncledetector.sif docker://ghcr.io/obrien-lab-psu/ncledetector:latest

For full run examples and bind-mount guidance, see Documentation/container_usage.md.

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

NCLEdetector/
├── NCLEdetector/                    # 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 NCLEdetector in your research, please cite:

@software{ncledetector2024,
  title={NCLEdetector: 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/NCLEdetector}
}

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 NCLEdetector 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for NCLEdetector 2.0.0
File Size Uploaded
ncledetector-2.0.0.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for NCLEdetector 2.0.0
File Interpreter ABI Platform
ncledetector-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.3 MB

Release files / ncledetector-2.0.0.tar.gz

Download URL ncledetector-2.0.0.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
36c5d2621ed4b241f88d90933026d446be182ebb834b991f581319ebaf3acee5
BLAKE2b-256 checksum
How to use checksums
a3f0e3db5964c370cfb8268b2ed8126e0ff73d64f1421df3451852a21d97d157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / ncledetector-2.0.0-py3-none-any.whl

Download URL ncledetector-2.0.0-py3-none-any.whl
Size 2.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
766d693973a4f1d61d5f4744937ad26978c178a13cb1927370cffd20c33d392f
BLAKE2b-256 checksum
How to use checksums
e5f1c9cbb4f5557d099e9192820f76efdb40349e75eb60619657f63ba593b2c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page