Skip to main content

Documentation Status

Unrolr

Conformational analysis of MD trajectories based on (pivot-based) Stochastic Proximity Embedding using dihedral distance as a metric (https://github.com/jeeberhardt/unrolr).

Prerequisites

You need, at a minimum (requirements.txt):

  • Python
  • NumPy
  • H5py
  • Pandas
  • Matplotlib
  • PyOpenCL
  • MDAnalysis

Installation on UNIX (Debian/Ubuntu)

1 . First, you have to install OpenCL:

  • MacOS: Good news, you don't have to install OpenCL, it works out-of-the-box. (Update: bad news, OpenCL is now depreciated in macOS 10.14. Thanks Apple.)
  • AMD: You have to install the AMDGPU graphics stack.
  • Nvidia: You have to install the CUDA toolkit.
  • Intel: And of course it's working also on CPU just by installing this runtime software package. Alternatively, the CPU-based OpenCL driver can be also installed through the package pocl (http://portablecl.org/) using Anaconda.

For any other informations, the official installation guide of PyOpenCL is available here.

2 . I highly recommand you to install the Anaconda distribution (https://www.continuum.io/downloads) if you want a clean python environnment with nearly all the prerequisites already installed. To install everything properly, you just have to do this:

$ conda create -n unrolr python=3
$ conda activate unrolr
$ conda install -c conda-forge mkl numpy scipy pandas matplotlib h5py MDAnalysis pyopencl ocl-icd-system

3 . Install unrolr

$ pip install unrolr

... or from the source directly

$ git clone https://github.com/jeeberhardt/unrolr
$ cd unrolr
$ python setup.py build install

OpenCL context

Before running Unrolr, you need to define the OpenCL context. And it is a good way to see if everything is working correctly.

$ python -c 'import pyopencl as cl; cl.create_some_context()'

Here in my example, I have the choice between 3 differents computing device (2 graphic cards and one CPU).

Choose platform:
[0] <pyopencl.Platform 'AMD Accelerated Parallel Processing' at 0x7f97e96a8430>
Choice [0]:0
Choose device(s):
[0] <pyopencl.Device 'Tahiti' on 'AMD Accelerated Parallel Processing' at 0x1e18a30>
[1] <pyopencl.Device 'Tahiti' on 'AMD Accelerated Parallel Processing' at 0x254a110>
[2] <pyopencl.Device 'Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz' on 'AMD Accelerated Parallel Processing' at 0x21d0300>
Choice, comma-separated [0]:1
Set the environment variable PYOPENCL_CTX='0:1' to avoid being asked again.

Now you can set the environment variable.

$ export PYOPENCL_CTX='0:1'

Example

from unrolr import Unrolr
from unrolr.feature_extraction import Dihedral
from unrolr.utils import save_dataset


top_file = 'examples/inputs/villin.psf'
trj_file = 'examples/inputs/villin.dcd'

# Extract all calpha dihedral angles from trajectory and store them into a HDF5 file
d = Dihedral(top_file, trj_file, selection='all', dihedral_type='calpha').run()
X = d.result
save_dataset('dihedral_angles.h5', "dihedral_angles", X)

# Fit X using Unrolr (pSPE + dihedral distance) and save the embedding into a csv file
# The initial embedding is obtained using PCA (init = 'pca') with the OpenCL implementation
# to run SPE, a CPU implementation can be used as an alternative (platform='CPU')
U = Unrolr(r_neighbor=0.27, n_iter=50000, init='pca', platform='OpenCL', verbose=1)
U.fit_transform(X)
U.save(fname='embedding.csv')

print('%4.2f %4.2f' % (U.stress, U.correlation))

Todo list

  • Compare SPE performance with UMAP
  • Compatibility with python 3
  • Compatibility with the latest version of MDAnalysis (==0.17)
  • Unit tests
  • Accessible directly from pip
  • Improve OpenCL performance (global/local memory)

Citation

Eberhardt, J., Stote, R. H., & Dejaegere, A. (2018). Unrolr: Structural analysis of protein conformations using stochastic proximity embedding. Journal of Computational Chemistry, 39(30), 2551-2557. https://doi.org/10.1002/jcc.25599

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unrolr-0.5.0.3.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

unrolr-0.5.0.3-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file unrolr-0.5.0.3.tar.gz.

File metadata

  • Download URL: unrolr-0.5.0.3.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.6.10 Darwin/19.3.0

File hashes

Hashes for unrolr-0.5.0.3.tar.gz
Algorithm Hash digest
SHA256 1ad33a83f6f9a8b92914a917d90a954826da3df006b6fd51155c5da8a0a9c4b2
MD5 1e0f82a8120d03371f568cc6047c55c8
BLAKE2b-256 d8775c627ee58b75171f776a1d0b3dbfc447e8df37f3cd5db3842ed4ce0dea5d

See more details on using hashes here.

File details

Details for the file unrolr-0.5.0.3-py3-none-any.whl.

File metadata

  • Download URL: unrolr-0.5.0.3-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.6.10 Darwin/19.3.0

File hashes

Hashes for unrolr-0.5.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a4af3be0e97d8d0fb7e4997ebcbed93de0c56e532d080b051b30212568563366
MD5 1de811d1955a8a7ea3adf28e9997e3f8
BLAKE2b-256 3aa4c08cd498d2b011fb0cf2320a367469fdf57752740e419da697c401e670ae

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.0.3 This release

2 files

0.5.0.2

2 files

0.5.0.1

2 files

0.5

2 files

0.4.0.6

2 files

0.4.0.1

3 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page