{ "info": { "author": "Vojtech Spiwok,", "author_email": "spiwokv@vscht.cz", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Chemistry" ], "description": "|PyPI| |Anaconda| |BuildStatus| |codecov| |lgtm| |lgtmpy|\n\nRead more in \nD. Trapl, I. Horva\u0107anin, V. Mare\u0161ka, F. \u00d6z\u00e7elik, G. Unal and V. Spiwok: `anncolvar: Approximation of Complex Collective Variables by Artificial Neural Networks for Analysis and Biasing of Molecular Simulations `_ *Front. Mol. Biosci.* 2019, **6**, 25 (doi: 10.3389/fmolb.2019.00025)\n\n*********\nanncolvar\n*********\n\nCollective variables by artificial neural networks::\n\n usage: anncolvar [-h] [-i INFILE] [-p INTOP] [-c COLVAR] [-col COL]\n [-boxx BOXX] [-boxy BOXY] [-boxz BOXZ] [-nofit NOFIT]\n [-testset TESTSET] [-shuffle SHUFFLE] [-layers LAYERS]\n [-layer1 LAYER1] [-layer2 LAYER2] [-layer3 LAYER3]\n [-actfun1 ACTFUN1] [-actfun2 ACTFUN2] [-actfun3 ACTFUN3]\n [-optim OPTIM] [-loss LOSS] [-epochs EPOCHS] [-batch BATCH]\n [-o OFILE] [-model MODELFILE] [-plumed PLUMEDFILE]\n \n Artificial neural network learning of collective variables of molecular\n systems, requires numpy, keras and mdtraj\n \n optional arguments:\n -h, --help show this help message and exit\n -i INFILE Input trajectory in pdb, xtc, trr, dcd, netcdf or mdcrd,\n WARNING: the trajectory must be 1. must contain only atoms\n to be analyzed, 2. must not contain any periodic boundary\n condition issues!\n -p INTOP Input topology in pdb, WARNING: the structure must be 1.\n centered in the PBC box and 2. must contain only atoms\n to be analyzed!\n -c COLVAR Input collective variable file in text format, must\n contain the same number of lines as frames in the\n trajectory\n -col COL The index of the column containing collective variables\n in the input collective variable file\n -boxx BOXX Size of x coordinate of PBC box (from 0 to set value in\n nm)\n -boxy BOXY Size of y coordinate of PBC box (from 0 to set value in\n nm)\n -boxz BOXZ Size of z coordinate of PBC box (from 0 to set value in\n nm)\n -nofit NOFIT Disable fitting, the trajectory must be properly fited\n (default False)\n -testset TESTSET Size of test set (fraction of the trajectory, default =\n 0.1)\n -shuffle SHUFFLE Shuffle trajectory frames to obtain training and test\n set (default True)\n -layers LAYERS Number of hidden layers (allowed values 1-3, default =\n 1)\n -layer1 LAYER1 Number of neurons in the first encoding layer (default =\n 256)\n -layer2 LAYER2 Number of neurons in the second encoding layer (default\n = 256)\n -layer3 LAYER3 Number of neurons in the third encoding layer (default =\n 256)\n -actfun1 ACTFUN1 Activation function of the first layer (default =\n sigmoid, for options see keras documentation)\n -actfun2 ACTFUN2 Activation function of the second layer (default =\n linear, for options see keras documentation)\n -actfun3 ACTFUN3 Activation function of the third layer (default =\n linear, for options see keras documentation)\n -optim OPTIM Optimizer (default = adam, for options see keras\n documentation)\n -loss LOSS Loss function (default = mean_squared_error, for options\n see keras documentation)\n -epochs EPOCHS Number of epochs (default = 100, >1000 may be necessary\n for real life applications)\n -batch BATCH Batch size (0 = no batches, default = 256)\n -o OFILE Output file with original and approximated collective\n variables (txt, default = no output)\n -model MODELFILE Prefix for output model files (experimental, default =\n no output)\n -plumed PLUMEDFILE Output file for Plumed (default = plumed.dat)\n\nIntroduction\n============\n\nBiased simulations, such as metadynamics, use a predefined set of parameters known\nas collective variables. An artificial bias force is applied on collective variables\nto enhance sampling. There are two conditions for a parameter to be applied as\na collective variable. First, the value of the collective variables can be calculated\nsolely from atomic coordinates. Second, the force acting on collective variables\ncan be converted to the force acting on individual atoms. In the other words, it\nis possible to calculate the first derivative of the collective variables with\nrespect to atomic coordinates. Both calculations must be fast enough, because\nthey must be evaluated in every step of the simulation.\n\nThere are many potential collective variables that cannot be easily calculated.\nIt is possible to calculate the collective variable for hundreds or thousands of\nstructures, but not for millions of structures (which is necessary for nanosecond\nlong simulations). *anncolvar* can approximate such collective variables using\na neural network.\n\nInstallation\n============\n\nYou have to chose and install one of keras backends, such as Tensorflow, Theano or\nCNTK. For this follow one of these links:\n\n- TensorFlow_\n- Theano_\n- CNTK_\n\nInstall numpy and cython by PIP::\n\n pip install numpy cython\n\nNext, install anncolvar by PIP::\n\n pip install anncolvar\n\nIf you use Anaconda type::\n\n conda install -c spiwokv anncolvar\n\nUsage\n=====\n\nA series of representative structures (hundreds or more) with pre-calculated values\nof the collective variable is used to train the neural network. The user can specify\nthe input set of reference structures (*-i*) in the form of a trajectory in pdb, xtc,\ntrr, dcd, netcdf or mdcrd. The trajectory must contain only atoms to be analyzed\n(for example only non-hydrogen atoms). The trajectory must not contain any periodic\nboundary condition issues. Both conversions can be made by molecular dynamics\nsimulation packages, for example by *gmx trjconv*. It is not necessary to fit\nframes to a reference structure. It is possible to switch fitting off by\n*-nofit True*.\n\nIt is necessary to supply an input topology in PDB. This is a structure used\nas a template for fitting. It is also used to define a box. This box must be large\nenough to fit the molecule in all frames of the trajectory. It should not be too\nlarge because this suppresses non-linearity in the neural network. When the user\ndecides to use a 3x3x3 nm box it is necessary to place the molecule to be centered\nat coordinates (1.5,1.5,1.5) nm. In Gromacs it is possible to use::\n gmx editconf -f mol.pdb -o reference.pdb -c -box 3 3 3\nIt must also contain only atoms to be analyzed. Size of the box can be specified\nby parameters *-boxx*, *-boxy* and *-boxz* (in nm).\n\nLast input file is the collective variable file. It is a space-separated text\nfile with the same number of lines as the number of frames in the input trajectory.\nThe index of the column can be specified by *-col* (e.g. *-col 2* for the second\ncolumn of the file.\n\nThe option *-testset* can control the fraction of the trajectory used as\nthe test set. For example *-testset 0.1* means that 10 % of input data is used\nas the test set and 90 % as the training set. The option *-shuffle True* causes\nthat first 90 % is used as the training set and remaining 10 % as the test set.\nOtherwise frames are shuffled before separation to the training and test set.\n\nThe architecture of the neural network is controlled by multiple parameters.\nThe input layer contains 3N neurons (where N is the number of atoms). The number\nof hidden layers is controlled by *-layers*. This can be 1, 2 or 3. For higher\nnumber of layers contact the authors. Number of neurons in the first, second and\nthird layer is controlled by *-layer1*, *-layer2* and *-layer3*. It is useful\nto use the number of layers equal to powers of 2 (32, 64, 128 etc.). Huge numbers\nof neurons can cause that the program is slow or run out of memory. Activation\nfunctions of neurons can be controlled by *-actfun1*, *-actfun2* and *-actfun3*.\nAny activation function supported by keras can be used.\n\nThe optimizer used in the training process can be controlled by *-optim*. The\ndefault ADAM optimizer (*-optim adam*) works well. The loss function can be\ncontrolled by *-loss*. The default *-loss mean_squared_error* works well. The\nnumber of epochs can be controlled by *-epochs*. The default value (100) is\nquite little, usually >1000 is necessary for real life applications. The batch\nsize can be controlled by *-batch* (*-batch 0* for no batches, default is 256).\n\nOutput is written into the text file *-o*. It contains the approximated and\nthe original values of collective variable. The model can be stored in the set\nof text files (try *-model*). The input file is printed into the file controlled\nby *-plumed* (by default plumed.dat). This file can be directly used to calculate\nthe evolution of the collective variable by *plumed driver* or by Plumed-patched\nmolecular dynamics engine. To use the collective variable in enhances sampling\n(for example metadynamics) it is necessary to add a suitable keyword (for example\nMETAD).\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/anncolvar.svg\n :target: https://pypi.org/project/anncolvar/\n :alt: Latest version released on PyPI\n\n.. |Anaconda| image:: https://anaconda.org/spiwokv/anncolvar/badges/version.svg\n :target: https://anaconda.org/spiwokv/anncolvar\n :alt: Latest version released on Anaconda Cloud\n\n.. |BuildStatus| image:: https://travis-ci.org/spiwokv/anncolvar.svg?branch=master\n :target: http://travis-ci.org/spiwokv/anncolvar/\n :alt: Build status of the master branch on Mac/Linux at Travis-CI\n\n.. |codecov| image:: https://codecov.io/gh/spiwokv/anncolvar/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/spiwokv/anncolvar/\n :alt: Code coverage\n\n.. |lgtm| image:: https://img.shields.io/lgtm/alerts/g/spiwokv/anncolvar.svg?logo=lgtm&logoWidth=18\n :target: https://lgtm.com/projects/g/spiwokv/anncolvar/alerts/\n :alt: LGTM code alerts\n\n.. |lgtmpy| image:: https://img.shields.io/lgtm/grade/python/g/spiwokv/anncolvar.svg?logo=lgtm&logoWidth=18\n :target: https://lgtm.com/projects/g/spiwokv/anncolvar/context:python\n :alt: LGTM python quality\n\n.. _TensorFlow: https://www.tensorflow.org/install/\n\n.. _Theano: http://deeplearning.net/software/theano/install.html\n\n.. _CNTK: https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-on-your-machine", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/spiwokv/anncolvar", "keywords": "artificial neural networks molecular dynamics simulation", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "anncolvar", "package_url": "https://pypi.org/project/anncolvar/", "platform": "", "project_url": "https://pypi.org/project/anncolvar/", "project_urls": { "Homepage": "https://github.com/spiwokv/anncolvar" }, "release_url": "https://pypi.org/project/anncolvar/0.6/", "requires_dist": null, "requires_python": "", "summary": "Coding collective variables by artificial neural networks", "version": "0.6" }, "last_serial": 5207378, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "5264f3f0268d8860159c0fbd6f252cf2", "sha256": "5c3196036eaa4bbdf6da4b9d2bc6c0eb263188633471d1e7a5d84e4ae7d76ace" }, "downloads": -1, "filename": "anncolvar-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5264f3f0268d8860159c0fbd6f252cf2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10855, "upload_time": "2018-12-26T17:58:10", "url": "https://files.pythonhosted.org/packages/2d/4a/3703cbde8462e75c15985ff71a087f0a05e7663f291d3e01f6d3e5870430/anncolvar-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6ea89ef96f930d18176052c0c44be1b", "sha256": "7b551e93ad22b2d5b4a32e132ff2fd253a33b36c75ad8045e5dbd5dad1517c18" }, "downloads": -1, "filename": "anncolvar-0.2.tar.gz", "has_sig": false, "md5_digest": "b6ea89ef96f930d18176052c0c44be1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9044, "upload_time": "2018-12-26T17:58:12", "url": "https://files.pythonhosted.org/packages/93/19/2029c9a3ae3bd3b73f025f6eee87da5fc92381d548adafcd53f8895cc2e4/anncolvar-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "33c78c47d7f944ff9128995bed456802", "sha256": "d94a2810e539b7ad73776a04bda020af7545101f9e48398c0c50a040986d0713" }, "downloads": -1, "filename": "anncolvar-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "33c78c47d7f944ff9128995bed456802", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15038, "upload_time": "2018-12-29T23:43:33", "url": "https://files.pythonhosted.org/packages/82/0a/748320712b6503e162fc8a9783b309b84b049e74b43ec792dfee8969efd0/anncolvar-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1d252e795059c17c9eed1e9924a1873", "sha256": "6b205539801fa5e374652a187c4af25411a38832b780c59a85e49857fbe7a6dd" }, "downloads": -1, "filename": "anncolvar-0.3.tar.gz", "has_sig": false, "md5_digest": "f1d252e795059c17c9eed1e9924a1873", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13729, "upload_time": "2018-12-29T23:43:35", "url": "https://files.pythonhosted.org/packages/c0/a2/f6b60435522251dd62408c9e2e5405562ee992dd0d1a7e2460a07ec0ba91/anncolvar-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "ddd1604864654068837b476cf8d0c4d2", "sha256": "61351b2c98312872ab2e9eaaf86b07adff26c04dccee656eb489d1e496cadd91" }, "downloads": -1, "filename": "anncolvar-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ddd1604864654068837b476cf8d0c4d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15075, "upload_time": "2019-01-14T21:56:34", "url": "https://files.pythonhosted.org/packages/28/9d/1a5287f4ae3619badf654a65c72cec16cc797ade8d907dff24afd74a906e/anncolvar-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea6ea1a32ced4a87ee4a445275c3abd8", "sha256": "508fed3bc73e22d4093036bd51620f3e7b39b83bbabc1955a04c336067e34e79" }, "downloads": -1, "filename": "anncolvar-0.4.tar.gz", "has_sig": false, "md5_digest": "ea6ea1a32ced4a87ee4a445275c3abd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13780, "upload_time": "2019-01-14T21:56:35", "url": "https://files.pythonhosted.org/packages/50/b0/6a2705a1a57eb2b0fe42857216e4f37c02f3fa4e4272ce7b46e94b793f87/anncolvar-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "b1e81638bce5960465b2f9e8c0bef502", "sha256": "45c4d57fb4605d53c97c2a3d7a6fb5e99143122690c2df4ad8a3d1f7796335db" }, "downloads": -1, "filename": "anncolvar-0.5.tar.gz", "has_sig": false, "md5_digest": "b1e81638bce5960465b2f9e8c0bef502", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10419, "upload_time": "2019-03-20T15:47:37", "url": "https://files.pythonhosted.org/packages/7b/38/087b8c88a791648235068e98a20fdd74d367cfd19211e899dc98b5633812/anncolvar-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "2ba59d3f0ecaa6748ecc98b447af4899", "sha256": "afcd88db7a29753efca12f7cc7ebbb975fda310f4a0feb0162bae365e3faccfa" }, "downloads": -1, "filename": "anncolvar-0.6.tar.gz", "has_sig": false, "md5_digest": "2ba59d3f0ecaa6748ecc98b447af4899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10796, "upload_time": "2019-04-30T09:25:02", "url": "https://files.pythonhosted.org/packages/87/dd/d0986e43fc47d91baaeba5359e3222ab728e2d23550a1bc6ea50ca80b58b/anncolvar-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ba59d3f0ecaa6748ecc98b447af4899", "sha256": "afcd88db7a29753efca12f7cc7ebbb975fda310f4a0feb0162bae365e3faccfa" }, "downloads": -1, "filename": "anncolvar-0.6.tar.gz", "has_sig": false, "md5_digest": "2ba59d3f0ecaa6748ecc98b447af4899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10796, "upload_time": "2019-04-30T09:25:02", "url": "https://files.pythonhosted.org/packages/87/dd/d0986e43fc47d91baaeba5359e3222ab728e2d23550a1bc6ea50ca80b58b/anncolvar-0.6.tar.gz" } ] }