dynamics 0.2.2

Molecular dynamics
Documentation
[package]

name = "dynamics"

version = "0.2.2"

edition = "2024"

authors = ["David O'Connor <the_alchemist@fastmail.com>"]

description = "Molecular dynamics"

keywords = ["molecular", "dynamics", "biology"]

categories = [

    "science::bioinformatics",

    "science::computational-biology::structural-modeling",

    "science::computational-chemistry::cheminformatics",

    "science::computational-chemistry::molecular-simulation",

]

repository = "https://github.com/David-OConnor/dynamics"

documentation = "https://docs.rs/dynamics"

readme = "README.md"

license = "MIT"

#exclude = [".gitignore"]





# For training our partial charge inference model.

[[bin]]

name = "train"

path = "src/train_params.rs"

required-features = ["train-bin"]



# This is required to package the parameter files on crates.io

include = [

    "src/**",

    "param_data/**",

    "Cargo.toml",

    "README.md",

    "README.md",

    "rustfmt.toml",

]





[dependencies]

lin_alg = { version = "1.4.3", features = ["encode", "random"] }

na_seq = "0.3.15"

bio_files = "0.5.3"

ewald = { version = "0.1.14" }

bio_apis = "0.3.0"

#mol_defs = { path = "../mol_defs" }  # e.g. Dihedral and a few auxillary types.



rand = "0.10.2"

rand_distr = "0.6.0"



itertools = "0.15.0" # For combinations when matching angles.



rayon = "1.12.0"  # Parallel execution on CPU using thread pools.



#bincode = { version = "2.0.1", optional = true }

bincode = "2.0.1"



# We use this to compute the volume of  solvent accessible surface mesh when adding solvent molecules

mcubes = "0.1.7"



candle-core = { version = "0.11.0" }

candle-nn = { version = "0.11.0" }



lazy_static = "1.5.0"



# `dynamic-loading` keeps the CUDA driver library out of the executable's load-time dependencies, so

# a binary built with the `cuda` feature still starts where no NVIDIA driver is installed. Cargo

# unions features across the tree, and cudarc's build script rejects `dynamic-loading` and

# `dynamic-linking` being active together, so `ewald` and any consuming binary must match this.

cudarc = { version = "0.19.9", default-features = false, features = ["std", "driver", "nvrtc", "dynamic-loading", "cuda-13000"], optional = true }





[build-dependencies]

cuda_setup = { version = "0.1.10", optional = true }





[patch.crates-io]

#ewald = { path = "../ewald" }

bio_files = { path = "../bio_files" }





[features]



# Enabling CUDA allows CUDA for short-range interactions, but `cufft` or `vkfft` is

# required to enable it for long-range SPME.

# For now, we have CUDA disabled on CANDLE, as it seesm to require cudfft, curng, and perhaps more

# on the user's computer. And it runs slower for inference than CPU in our first test cases.

#cuda = ["cuda_setup", "cudarc", "lin_alg/cuda", "candle-core/cuda", "candle-nn/cuda"]

cuda = ["cuda_setup", "cudarc", "lin_alg/cuda"]

cufft = ["cuda", "ewald/cufft"]

vkfft = ["cuda", "ewald/vkfft"]



#encode = ["bincode"]

encode = []



train-bin = []