{ "info": { "author": "jeeberhardt", "author_email": "qksoneo@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Unix", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering" ], "description": "# Unrolr\nConformational analysis of MD trajectories based on (pivot-based) Stochastic Proximity Embedding using dihedral distance as a metric (https://github.com/jeeberhardt/unrolr).\n\n## Prerequisites\n\nYou need, at a minimum (requirements.txt):\n\n* Python 2.7 or python 3\n* NumPy\n* H5py\n* Pandas\n* Matplotlib\n* PyOpenCL\n* MDAnalysis (>=0.17)\n\n## Installation on UNIX (Debian/Ubuntu)\n\nI 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 (NumPy, H5py, Pandas, Matplotlib).\n\n1 . First, you have to install OpenCL:\n* 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.)\n* AMD: You have to install the [AMDGPU graphics stack](https://amdgpu-install.readthedocs.io/en/amd-18.30/index.html).\n* Nvidia: You have to install the [CUDA toolkit](https://developer.nvidia.com/cuda-downloads).\n* Intel: And of course it's working also on CPU just by installing this [runtime software package](https://software.intel.com/en-us/articles/opencl-drivers). Alternatively, the CPU-based OpenCL driver can be also installed through the package ```pocl``` (http://portablecl.org/) with the conda package manager.\n\nFor any other informations, the official installation guide of PyOpenCL is available [here](https://documen.tician.de/pyopencl/misc.html).\n\n2 . As a final step, installation from PyPi server\n```bash\npip install unrolr\n```\n\nOr from the source\n\n```bash\n# Get the package\nwget https://github.com/jeeberhardt/unrolr/archive/master.zip\nunzip unrolr-master.zip\nrm unrolr-master.zip\ncd unrolr-master\n\n# Install the package\npython setup.py install\n```\n\nAnd if somehow pip is having problem to install all the dependencies,\n```bash\nconda config --append channels conda-forge\nconda install pyopencl mdanalysis\n\n# Try again\npython setup.py install\n```\n\n## OpenCL context\n\nBefore running Unrolr, you need to define the OpenCL context. And it is a good way to see if everything is working correctly.\n\n```bash\npython -c 'import pyopencl as cl; cl.create_some_context()'\n```\n\nHere in my example, I have the choice between 3 differents computing device (2 graphic cards and one CPU). \n\n```bash\nChoose platform:\n[0] \nChoice [0]:0\nChoose device(s):\n[0] \n[1] \n[2] \nChoice, comma-separated [0]:1\nSet the environment variable PYOPENCL_CTX='0:1' to avoid being asked again.\n```\n\nNow you can set the environment variable.\n\n```bash\nexport PYOPENCL_CTX='0:1'\n```\n\n## Example\n\n```python\nfrom __future__ import print_function\n\nfrom unrolr import Unrolr\nfrom unrolr.feature_extraction import Dihedral\nfrom unrolr.utils import save_dataset\n\n\ntop_file = 'examples/inputs/villin.psf'\ntrj_file = 'examples/inputs/villin.dcd'\n\n# Extract all calpha dihedral angles from trajectory and store them into a HDF5 file (start/stop/step are optionals)\nd = Dihedral(top_file, trj_file, selection='all', dihedral_type='calpha', start=0, stop=None, step=1).run()\nX = d.result\nsave_dataset('dihedral_angles.h5', \"dihedral_angles\", X)\n\n# Fit X using Unrolr (pSPE + dihedral distance) and save the embedding into a csv file\nU = Unrolr(r_neighbor=0.27, n_iter=50000, verbose=1)\nU.fit(X)\nU.save(fname='embedding.csv')\n\nprint('%4.2f %4.2f' % (U.stress, U.correlation))\n```\n\n## Todo list\n- [ ] Compare SPE performance with UMAP\n- [x] Compatibility with python 3\n- [x] Compatibility with the latest version of MDAnalysis (==0.17)\n- [ ] Unit tests\n- [x] Accessible directly from pip\n- [ ] Improve OpenCL performance (global/local memory)\n\n## Citation\nEberhardt, 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\n\n## License\nMIT\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeeberhardt/unrolr", "keywords": "bioinformatics,molecular structures,molecular dynamics,OpenCL,dimensionality reduction,stochastic proximity embedding,dihedral angles", "license": "MIT", "maintainer": "jeeberhardt", "maintainer_email": "qksoneo@gmail.com", "name": "unrolr", "package_url": "https://pypi.org/project/unrolr/", "platform": "", "project_url": "https://pypi.org/project/unrolr/", "project_urls": { "Homepage": "https://github.com/jeeberhardt/unrolr", "Repository": "https://github.com/jeeberhardt/unrolr" }, "release_url": "https://pypi.org/project/unrolr/0.4.0.6/", "requires_dist": [ "matplotlib (>=1.4.3)", "pyopencl (>=2015.1)", "MDAnalysis (>=0.17.0)", "h5py (>=2.5.0)", "numpy (>=1.11.3)", "pandas (>=0.17.1)" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", "summary": "Dimensionality reduction method for MD trajectories", "version": "0.4.0.6" }, "last_serial": 5606223, "releases": { "0.4.0.1": [ { "comment_text": "", "digests": { "md5": "91fe46ef7b2e8772ddf826dc9f5a5550", "sha256": "d6dca8bba9715f9d40f4a7cb83c07efcabe6395a5dd6bc5cffef6264dfa13126" }, "downloads": -1, "filename": "unrolr-0.4.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "91fe46ef7b2e8772ddf826dc9f5a5550", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25265, "upload_time": "2019-02-05T07:11:47", "url": "https://files.pythonhosted.org/packages/59/bc/e43be659974359747ef5738729cd5766fdfae648a5768023a1034181c4e6/unrolr-0.4.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e07473797fc0d85510e4b069a044ebe2", "sha256": "595206abbc6a1d7e542f9fa2e1a3ecff90ae5dfa1a31db878ffe0b7bb31a19bf" }, "downloads": -1, "filename": "unrolr-0.4.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e07473797fc0d85510e4b069a044ebe2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25267, "upload_time": "2019-02-05T07:11:49", "url": "https://files.pythonhosted.org/packages/3f/b4/a5f17f8e74c32e78cbe52bab24041c4bdfb0a184e7b2f9a381eef3498760/unrolr-0.4.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3663da272feca2d7ad73daf3f65f269", "sha256": "5dc27ce7ad0bca29a2dbf44dc814f89620d965c6a17aa200185ebe0c08d2bf52" }, "downloads": -1, "filename": "unrolr-0.4.0.1.tar.gz", "has_sig": false, "md5_digest": "b3663da272feca2d7ad73daf3f65f269", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14678, "upload_time": "2019-02-05T07:11:50", "url": "https://files.pythonhosted.org/packages/f9/96/33b7208ee62e8c537c86f430b27a07dee7b12364978f9069727e7f2744c0/unrolr-0.4.0.1.tar.gz" } ], "0.4.0.6": [ { "comment_text": "", "digests": { "md5": "b753306d4cea65de5bd2285f9de25e52", "sha256": "920ff8de027ac7f07a936e93e9f1354e5fc4682e27ed81e66c037363605ee343" }, "downloads": -1, "filename": "unrolr-0.4.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b753306d4cea65de5bd2285f9de25e52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", "size": 17856, "upload_time": "2019-07-30T07:18:34", "url": "https://files.pythonhosted.org/packages/de/fc/1904b0b4db100929bb7dda55a1dff7ce446d9cb8437c495ad5c2086757d5/unrolr-0.4.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a228e4c0fe9bcb0c42c4bef7a6a08fbe", "sha256": "c520b2e634b4ffef31f585779d65b41d20b0481434063c2159a4d40313a9914b" }, "downloads": -1, "filename": "unrolr-0.4.0.6.tar.gz", "has_sig": false, "md5_digest": "a228e4c0fe9bcb0c42c4bef7a6a08fbe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", "size": 14730, "upload_time": "2019-07-30T07:18:36", "url": "https://files.pythonhosted.org/packages/4d/58/10961f3aa9aae4d6db0354ee204f2ea90455de50e7dcd905df20ed191c57/unrolr-0.4.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b753306d4cea65de5bd2285f9de25e52", "sha256": "920ff8de027ac7f07a936e93e9f1354e5fc4682e27ed81e66c037363605ee343" }, "downloads": -1, "filename": "unrolr-0.4.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b753306d4cea65de5bd2285f9de25e52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", "size": 17856, "upload_time": "2019-07-30T07:18:34", "url": "https://files.pythonhosted.org/packages/de/fc/1904b0b4db100929bb7dda55a1dff7ce446d9cb8437c495ad5c2086757d5/unrolr-0.4.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a228e4c0fe9bcb0c42c4bef7a6a08fbe", "sha256": "c520b2e634b4ffef31f585779d65b41d20b0481434063c2159a4d40313a9914b" }, "downloads": -1, "filename": "unrolr-0.4.0.6.tar.gz", "has_sig": false, "md5_digest": "a228e4c0fe9bcb0c42c4bef7a6a08fbe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", "size": 14730, "upload_time": "2019-07-30T07:18:36", "url": "https://files.pythonhosted.org/packages/4d/58/10961f3aa9aae4d6db0354ee204f2ea90455de50e7dcd905df20ed191c57/unrolr-0.4.0.6.tar.gz" } ] }