Skip to main content

Simulate DNA loop extrusion by SMCs using LAMMPS

Project description

DNA Loop Extrusion by SMCCs in LAMMPS

Loop extrusion simulation

Installation

Python

From PyPI

The code is available as a package on PyPI.

pip install smc-lammps

From Source Using uv (recommended)

git clone https://github.com/LucasDooms/SMC_LAMMPS.git
cd SMC_LAMMPS
uv sync --no-dev
# alternatively, to include optional dependencies
uv sync --all-groups
source .venv/bin/activate

or use uv run <command> without activating the environment.

From Source Using pip

git clone https://github.com/LucasDooms/SMC_LAMMPS.git
cd SMC_LAMMPS
python3 -m venv .venv
source .venv/bin/activate
# get exact versions (recommended)
pip install -r requirements.txt
# or, install from pyproject.toml file
pip install -e .

LAMMPS

You will need a LAMMPS executable with the MOLECULE, EXTRA-MOLECULE, and RIGID packages.
See https://docs.lammps.org/Install.html for more information.

Simple example:

git clone https://github.com/lammps/lammps --depth=1000 mylammps
cd mylammps
git checkout stable # or release for a more recent version
mkdir build && cd build
cmake -D CMAKE_INSTALL_PREFIX="$HOME/lammps" -D PKG_MOLECULE=yes -D PKG_EXTRA-MOLECULE=yes -D PKG_RIGID=yes ../cmake
cmake --build . -j8
make
make install
export PATH="$HOME/lammps/bin:$PATH"

(Optional) VMD

To use the src/smc_lammps/post_process/visualize.py script, you will need VMD,
see https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD.

Docker Installation

You can also use docker to run the code. First build the image

docker build -t smc-lammps .

Now you can run an interactive session using

docker run -it -v .:/data smc-lammps

Or, to run directly (see Usage)

docker run -v .:/data smc-lammps smc-lammps ...

Note: the docker image does not include VMD.

Usage

  1. Create a directory for your simulation using smc-lammps mysim.
  2. Define all parameters in mysim/parameters.py (see src/smc_lammps/generate/default_parameters.py for all options).
  3. Run smc-lammps [flags] mysim, providing the directory of the parameters file. Use the -g flag to generate the required parameterfile and datafile.

Examples

  • smc-lammps mysim -gr to generate and run.
  • smc-lammps mysim -grpv to generate, run, post-process, and visualize.
  • smc-lammps mysim -grvn to generate, run, and visualize while ignoring errors.
  • smc-lammps mysim -v to visualize.
  • smc-lammps mysim -vf to visualize a perspective following the SMC.
  • smc-lammps mysim -c to continue a run from a restart file.

Help

Show help with smc-lammps --help.

Shell Completion

To get shell completion when using smc-lammps on the command-line run the following:

  • For bash or zsh, use eval "$(register-python-argcomplete smc-lammps)"
  • For fish, use register-python-argcomplete --shell fish smc-lammps | source

Development

Enable dev dependencies

uv sync --dev

Tests

Run all tests using

pytest

Documentation

Build

Build the documentation using

make -C docs html

(or sphinx-build -b html docs/source docs/build/html)

Now open docs/build/html/index.html in a browser or use python -m http.server -d docs/build/html and browse to http://localhost:8000.

Autobuild

To view new changes made to the documentation automatically, you can use sphinx-autobuild

sphinx-autobuild -b html --watch src/smc_lammps docs/source docs/build/html

Doctests

Run the doctests using

make -C docs doctest

Authors

Original code by Stefanos Nomidis (https://github.com/sknomidis/SMC_LAMMPS).
Modifications by Arwin Goossens.
All commits in this repository by Lucas Dooms.
Released under MIT license

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

smc_lammps-0.2.1.tar.gz (186.9 kB view details)

Uploaded Source

Built Distribution

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

smc_lammps-0.2.1-py3-none-any.whl (87.8 kB view details)

Uploaded Python 3

File details

Details for the file smc_lammps-0.2.1.tar.gz.

File metadata

  • Download URL: smc_lammps-0.2.1.tar.gz
  • Upload date:
  • Size: 186.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smc_lammps-0.2.1.tar.gz
Algorithm Hash digest
SHA256 431aa4a91d1d4294357f279fea1a711ec50b9970c949571580eee0564ba40e87
MD5 34b5d7a7f0125164e5b4284a5ad98599
BLAKE2b-256 625cd090b6640db8288629809f221d43d85e36352539b377b11f67f6a4c049d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for smc_lammps-0.2.1.tar.gz:

Publisher: publish.yml on LucasDooms/SMC_LAMMPS

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

File details

Details for the file smc_lammps-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: smc_lammps-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 87.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smc_lammps-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5416465dbae9300beb31f4752a4a918781022095fee2038830516ce75a89c9fd
MD5 0a077483c57d766982b1b05875596998
BLAKE2b-256 7ca2b1cae82c53810cde52045f91abec9d851a183d13e59f2b1c470b8fe2bae1

See more details on using hashes here.

Provenance

The following attestation bundles were made for smc_lammps-0.2.1-py3-none-any.whl:

Publisher: publish.yml on LucasDooms/SMC_LAMMPS

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