{"id":22752809,"url":"https://github.com/moldyn/clustering","last_synced_at":"2025-04-14T15:14:18.555Z","repository":{"id":60721374,"uuid":"157541781","full_name":"moldyn/Clustering","owner":"moldyn","description":"Robust and stable clustering of molecular dynamics simulation trajectories.","archived":false,"fork":false,"pushed_at":"2022-09-02T11:53:03.000Z","size":7709,"stargazers_count":18,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T15:14:11.282Z","etag":null,"topics":["biophysics","clustering","cpp","cuda","molecular-dynamics"],"latest_commit_sha":null,"homepage":"http://moldyn.github.io/Clustering/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moldyn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-14T11:54:47.000Z","updated_at":"2024-12-19T06:09:31.000Z","dependencies_parsed_at":"2022-10-03T19:45:38.497Z","dependency_job_id":null,"html_url":"https://github.com/moldyn/Clustering","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FClustering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FClustering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FClustering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FClustering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moldyn","download_url":"https://codeload.github.com/moldyn/Clustering/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904637,"owners_count":21180835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biophysics","clustering","cpp","cuda","molecular-dynamics"],"created_at":"2024-12-11T06:07:25.535Z","updated_at":"2025-04-14T15:14:18.530Z","avatar_url":"https://github.com/moldyn.png","language":"C++","readme":"\n\n\nThis software package provides extensive tools for fast, robust and stable\nclustering of molecular dynamics trajectories.\nThe essential functions are:\n  - density-based geometric clustering for microstate generation\n  - dynamic clustering based on the Most-Probable-Path algorithm (MPP)\n  - variable dynamic coring for boundary corrections\n  - dynamic noise assignment.\n\nAdditionally, the package includes tools to efficiently filter original\ncoordinates or order parameters based on a discrete state definition\nto identify representative structures and variables of clusters.\n\n\u003c!--\nComputationally demanding functions are parallelized in a hybrid model using\nOpenMP for SMP parallelization on a single node (multithreading)\nand MPI over different cluster nodes. MPI support, however, is optional and\nfor a modern computer with a high number of fast cores or\neven multiple CPUs, OpenMP parallelization is sufficiently fast.\n--\u003e\nComputationally demanding functions are parallelized using CUDA or OpenMP.\n\n# Documentation\nAll options are well documented and may be viewed by 'clustering -h'.\n\nA documentation can be found on the project [page](https://moldyn.github.io/Clustering/docIndex.html), including an extensive [tutorial](https://moldyn.github.io/Clustering/docTutorial.html) which describes all technical\ndetails in performing a complete clustering run from trajectory to markov state model.\n\nThe source code itself is additionally documented via doxygen. Run 'make doc' in\nthe build directory (see below for installation intructions) to compile the source\ncode documentation in html. Otherwise, it can be viewed [here](https://moldyn.github.io/Clustering/doxygen/index.html).\n\n\n# Citations\nThe underlying methods are based on the following articles:\n  - F. Sittel and G. Stock, *Robust Density-Based Clustering to Identify\n    Metastable Conformational States of Proteins*,\n    J. Chem. Theory Comput., 12, 2426; DOI: [10.1021/acs.jctc.5b01233](https://pubs.acs.org/doi/abs/10.1021/acs.jctc.5b01233)\n  - A. Jain and G. Stock, *Hierarchical folding free energy landscape of HP35\n    revealed by most probable path clustering*,\n    J. of Phys. Chem. B, 118, 7750 - 7760, 2014; DOI: [10.1021/jp410398a](https://pubs.acs.org/doi/abs/10.1021/jp410398a)\n  - D. Nagel, A. Weber, B. Lickert and G. Stock, *Dynamical coring of Markov state models*,\n    J. Chem. Phys., 150, 094111, 2019; DOI: [10.1063/1.5081767](https://aip.scitation.org/doi/10.1063/1.5081767)\n\nWe kindly ask you to cite these articles if you use this software package for\npublished works.\n\n\n# Licensing\nThis project was created by [lettis](http://www.lettis.net) and is currently maintained by [moldyn-nagel](https://github.com/moldyn-nagel).\n\nCopyright (c) 2015-2019, [Florian Sittel](http://www.lettis.net) and Daniel Nagel\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\nOF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\nTORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n# Installation\nThis package can be installed with conda via\n```\nconda install moldyn-clustering -c conda-forge\n```\nIf conda is not available, it can be compiled as well.\n\n# Compilation\n## Requirements\n required:\n  -  **BOOST \u003e= 1.49**\n  -  **cmake \u003e= 2.8**\n  -  a **recent** C++ compiler (e.g. GNU g++ \u003e= 4.9, must\n     support C++11 standard)\n\n optional:\n  - **CUDA \u003e= 9.1**\n  - doxygen (to build the API docs)\n\u003c!--  - MPI (for parallelized execution on clusters) --\u003e\n\n## Quick-Start\n\nTo quickly get a working (but possibly underperforming) binary\n\n  - unpack the code ...\n```\n    # tar xfz clustering_VERSION.tar.gz\n```\n  - create a build folder inside the code directory ...\n```\n    # cd clustering_VERSION\n    # mkdir build\n```\n  - change to the build directory ...\n```\n    # cd build\n```\n  - ... and run cmake\n```\n    # cmake .. -DCMAKE_INSTALL_PREFIX=/my/installation/path\n```\n  - then compile and install the package to /my/installation/path (or any other\n    path you chose above) by invoking\n```\n    # make\n    # make install \n```\n\nIf you want to have bash completion enabled, you need to add following line to your `.bashrc`\n```bash\n   # in file .bashrc\n   source /my/installation/path/bash_completion_clustering.sh\n```\n\n## Optimized Binaries and Custom Build Options\n\n### CUDA\nIf you have an Nvidia graphic card it can be used to significantly speed up the\n*clustering density* method, by setting the following **cmake-option**:\n-DUSE_CUDA=1\n\n### Vectorization\nIf you have a modern computer with vectorizing instruction sets (SSE2, SSE4_2,\nAVX, ...), set the following **cmake-option**: -DCPU_ACCELERATION=\u003cOPTION\u003e,\nwhere \u003cOPTION\u003e is one of\n  - SSE2\n  - SSE4_1\n  - SSE4_2\n  - AVX\n\nIt is important to select an option that is actually supported by your machine.\nOtherwise the program will produce erratic results, crash or not compile at all.\nOn linux systems, you can check your computer's capabilities with\n```\n    # cat /proc/cpuinfo\n```\nCheck in the *flags:*-block, if a certain instruction set is supported.\nIf it is not listed, it is not supported.\n\n### Native Compilation\nTo compile the code with '-march=native' option (specific to the GNU compiler),\nadd '-DNATIVE_COMPILATION=ON' to your cmake-flags.\nUsing this option, the GNU compiler will automatically use all available\ninstruction sets for optimal performance (**attention**: you still\nneed to set the vectorization option above, even if you use this option).\n\nUnfortunately, the resulting binary will most likely run only on the computer\nit was compiled on - do **not** use this option if you want\nto distribute the binary, e.g. on a cluster.\n\n\u003c!--\n### MPI\nFor MPI support, build your binary with the additional cmake-flag -DDC_USE_MPI=ON.\nInvoke the *clustering_mpi* binary in the following way to run on several nodes with local multithreading via OpenMP:\n\n     # /usr/bin/mpirun -n N_NODES -bind-to-core -bynode -cpus-per-proc N_THREADS_PER_NODE -report-bindings  \\\n          clustering_mpi density -f COORDS_FILE -r RADIUS -p POPS_OUT -d FE_OUT -n N_THREADS_PER_NODE\n--\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoldyn%2Fclustering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoldyn%2Fclustering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoldyn%2Fclustering/lists"}