Skip to main content

Machine learning for molecular dynamics.

Project description

mdlearn

PyPI version Documentation Status

mdlearn is a Python library for analyzing molecular dynamics with machine learning. It contains PyTorch implementations of several deep learning methods such as autoencoders, as well as preprocessing functions which include the kabsch alignment algorithm and higher-order statistical methods like quasi-anharmonic analysis.

Currently supported models:

For more details and specific examples of how to use mdlearn, please see our documentation.

Table of Contents

  1. Installation
  2. Usage
  3. Contributing
  4. Acknowledgments
  5. License

Installation

Install latest version with PyPI

If you have access to an NVIDIA GPU, we highly recommend installing mdlearn into a Conda environment which contains RAPIDS to accelerate t-SNE computations useful for visualizing the model results during training. For the latest RAPIDS version, see here. If you don't have GPU support, mdlearn will still work on CPU by using the scikit-learn implementation.

Run the following commands with updated versions to create a conda environment:

conda create -p conda-env -c rapidsai -c nvidia -c conda-forge cuml=0.19 python=3.7 cudatoolkit=11.2
conda activate conda-env
export IBM_POWERAI_LICENSE_ACCEPT=yes
pip install -U scikit-learn

Then install mdlearn via: pip install mdlearn.

Some systems require PyTorch to be built from source instead of installed via PyPI or Conda, for this reason we made torch an optional dependency. However, it can be installed with mdlearn by running pip install 'mdlearn[torch]' for convenience. Installing this way will also install the wandb package. Please check that torch version >= 1.7.

Usage

Train an autoencoder model with only a few lines of code!

from mdlearn.nn.models.ae.linear import LinearAETrainer

# Initialize autoencoder model
trainer = LinearAETrainer(
    input_dim=40, latent_dim=3, hidden_neurons=[32, 16, 8], epochs=100
)

# Train autoencoder on (N, 40) dimensional data
trainer.fit(X, output_path="./run")

# Generate latent embeddings in inference mode
z, loss = trainer.predict(X)

Contributing

Please report bugs, enhancement requests, or questions through the Issue Tracker.

If you are looking to contribute, please see CONTRIBUTING.md.

Acknowledgments

License

mdlearn has a MIT license, as seen in the LICENSE file.

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

mdlearn-1.0.4.tar.gz (207.7 kB view details)

Uploaded Source

Built Distribution

mdlearn-1.0.4-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

Details for the file mdlearn-1.0.4.tar.gz.

File metadata

  • Download URL: mdlearn-1.0.4.tar.gz
  • Upload date:
  • Size: 207.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for mdlearn-1.0.4.tar.gz
Algorithm Hash digest
SHA256 6a8b1c7c9a338e373079ad6d5978f5a1041753b30c24070e819490c6776cc20f
MD5 3ac0c039b2681d4f1e6cee99d4eb3f01
BLAKE2b-256 d43bc24fe2ceb9f2fcbf6d2672e82605cfb1a3726d77d97ec4336d10b2ee9362

See more details on using hashes here.

File details

Details for the file mdlearn-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: mdlearn-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 80.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for mdlearn-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ec198a54f64511f9c90f2e4917a25fdf0fe177a1568447482462f8e26f1187a0
MD5 5457cee3893619316a003ecc711a17b4
BLAKE2b-256 24201f4dce5230f28140d069a1fd289f9ed339ad0932b00ad1cb2433fcf26d99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page