{ "info": { "author": "['Joshua Thomas Horton', 'Chris Ringrose']", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Chemistry" ], "description": "# QUBEKit - *Qu*antum Mechanical *Be*spoke force field tool*kit*\n\n#### **Newcastle University UK - Cole Group**\n\n\n| **Status** | [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/qubekit/QUBEKit.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/qubekit/QUBEKit/context:python) [![Build Status](https://travis-ci.com/qubekit/QUBEKit.svg?branch=master)](https://travis-ci.com/qubekit/QUBEKit) [![Anaconda-Server Badge](https://anaconda.org/cringrose/qubekit/badges/version.svg)](https://anaconda.org/cringrose/qubekit) |\n| :------ | :------ |\n| **Foundation** | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python Version](https://img.shields.io/badge/Python-3.6+-1f425f.svg)](https://www.python.org/) [![platforms](https://img.shields.io/badge/Platform-Linux%20x64-orange.svg)]() |\n| **Installation** | [![Anaconda-Server Badge](https://anaconda.org/cringrose/qubekit/badges/installer/conda.svg)](https://anaconda.org/cringrose) [![Anaconda-Server Badge](https://anaconda.org/cringrose/qubekit/badges/downloads.svg)](https://anaconda.org/cringrose/qubekit) [![Anaconda-Server Badge](https://anaconda.org/cringrose/qubekit/badges/latest_release_date.svg)](https://anaconda.org/cringrose/qubekit)\n\n\n## Table of Contents\n\n* [What is QUBEKit?](https://github.com/qubekit/QUBEKit#what-is-qubekit)\n * [Development](https://github.com/qubekit/QUBEKit#in-development)\n* [Installation](https://github.com/qubekit/QUBEKit#installation)\n * [Requirements](https://github.com/qubekit/QUBEKit#requirements)\n* [Help](https://github.com/qubekit/QUBEKit#help)\n * [Config Files](https://github.com/qubekit/QUBEKit#before-you-start-config-files)\n * [QUBEKit Commands](https://github.com/qubekit/QUBEKit#qubekit-commands-running-jobs)\n * [Running Jobs](https://github.com/qubekit/QUBEKit#qubekit-commands-running-jobs)\n * [Some Examples](https://github.com/qubekit/QUBEKit#qubekit-commands-some-examples)\n * [Logging](https://github.com/qubekit/QUBEKit#qubekit-commands-some-examples)\n * [High Throughput](https://github.com/qubekit/QUBEKit#qubekit-commands-high-throughput)\n * [Custom Start and End Points](https://github.com/qubekit/QUBEKit#qubekit-commands-custom-start-and-end-points-single-molecule)\n * [Single Molecules](https://github.com/qubekit/QUBEKit#qubekit-commands-custom-start-and-end-points-single-molecule)\n * [Skipping Stages](https://github.com/qubekit/QUBEKit#qubekit-commands-custom-start-and-end-points-skipping-stages)\n * [Multiple Molecules](https://github.com/qubekit/QUBEKit#qubekit-commands-custom-start-and-end-points-multiple-molecules)\n * [Checking Progress](https://github.com/qubekit/QUBEKit#qubekit-commands-checking-progress)\n * [Other Commands and Information](https://github.com/qubekit/QUBEKit#qubekit-commands-other-commands-and-information)\n* [Cook Book](https://github.com/qubekit/QUBEKit#cook-book)\n\n\n## What is QUBEKit?\n\n[QUBEKit](https://blogs.ncl.ac.uk/danielcole/qube-force-field/) is a Python 3.6+ based force field derivation toolkit for Linux operating systems.\nOur aims are to allow users to quickly derive molecular mechanics parameters directly from quantum mechanical calculations.\nQUBEKit pulls together multiple pre-existing engines, as well as bespoke methods to produce accurate results with minimal user input.\nQUBEKit aims to avoid fitting to experimental data where possible while also being highly customisable.\n\nUsers who have used QUBEKit to derive any new force field parameters should cite the following papers:\n\n* [QUBEKit: Automating the Derivation of Force Field Parameters from Quantum Mechanics](https://pubs.acs.org/doi/full/10.1021/acs.jcim.8b00767)\n* [Biomolecular Force Field Parameterization via Atoms-in-Molecule Electron Density Partitioning](https://pubs.acs.org/doi/abs/10.1021/acs.jctc.6b00027)\n* [Harmonic Force Constants for Molecular Mechanics Force Fields via Hessian Matrix Projection](https://pubs.acs.org/doi/10.1021/acs.jctc.7b00785)\n\n### In Development\n\nQUBEKit should currently be considered a work in progress.\nWhile it is stable we are constantly working to improve the code and broaden its compatibilities. \n\nWe use lots of software written by many different people;\nif reporting a bug please (to the best of your ability) make sure it is a bug with QUBEKit and not with a dependency.\nWe welcome any suggestions for additions or changes. \n\n## Installation\n\nTo install, it is possible to use git, pip or conda *([help](https://github.com/qubekit/QUBEKit#requirements))*.\nGit has our latest version which will likely have newer features but may not be stable.\n\nWe recommend installing via conda. This will install all necessary dependencies.\n\n git clone https://github.com/qubekit/QUBEKit.git\n cd \n python setup.py install\n\n---\n \n pip install qubekit\n\n---\n\n conda install -c cringrose qubekit\n \n\n### Requirements\n\n* [Anaconda3](https://www.anaconda.com/download/)\n\nDownload Anaconda from the above link and install with the linux command:\n\n ./Anaconda3.sh\n\n*You may need to use `chmod +x Anaconda3.sh` to make it executable.*\n\nWe recommend you add conda to your .bashrc when prompted.\n\n* [Gaussian09](http://gaussian.com/)\n\nInstallation of Gaussian is likely handled by your institution; QUBEKit uses it for density calculations only.\nIf you don't plan on performing these sorts of calculations then it is not necessary.\nIf you do, please make sure Gaussian09 is executable with the command `g09`.\n\n* [Chargemol](https://sourceforge.net/projects/ddec/files/)\n\nChargemol can be downloaded and installed from a zip file in the above link. \nBe sure to add the path to the QUBEKit configs once you've generated them *([explanation](https://github.com/qubekit/QUBEKit#before-you-start-config-files))*.\n\n**Core Requirements**\n\nAll conda packages are included in the conda install:\n\n`conda install -c cringrose qubekit`\n\nBelow details some of the core requirements included in the conda install of QUBEKit.\n\n---\n\n* [PSI4](http://www.psicode.org/)\n\n`conda install -c psi4 psi4`\n\n* [GeomeTRIC](https://github.com/leeping/geomeTRIC)\n\n`conda install -c conda-forge geometric` \n\n* [OpenMM](http://openmm.org/)\n\n`conda install -c omnia openmm`\n\n* [RDKit](http://rdkit.org/)\n\n`conda install -c rdkit rdkit`\n\n* [OpenForceField](https://openforcefield.org/)\n\n`conda install -c omnia openforcefield`\n\n* [QCEngine](https://pypi.org/project/qcengine/)\n\n`pip install qcengine`\n\n* [TorsionDrive](https://github.com/lpwgroup/torsiondrive)\n\n`conda install -c conda-forge torsiondrive`\n\n* [Ambermini](https://github.com/swails/ambermini)\n\n`conda install -c omnia ambermini`\n\n\n**GUI Requirements**\n\n* [PyQt5](https://pypi.org/project/PyQt5/)\n\n`pip install PyQt5`\n\n* [PyQtWebEngine 5.12.1](https://pypi.org/project/PyQtWebEngine/)\n\n`pip install PyQtWebEngine`\n\n---\n\nAdding lots of packages can be a headache. If possible, install using Anaconda through the terminal.\nThis is generally safest, as Anaconda should deal with versions and conflicts in your environment.\nGenerally, conda packages will have the conda install command on their website or github.\nFor the software not available through Anaconda, or if Anaconda is having trouble resolving conflicts, either git clone them and install:\n\n git clone http://\n cd \n python setup.py install\n\nor follow the described steps in the respective documentation.\n\n#### Installing as dev\n\nIf downloading QUBEKit to edit the latest version of the source code, \nthe easiest method is install via conda, then remove the conda version of qubekit and git clone.\nThis is accomplished with a few simple commands:\n \n # Install QUBEKit as normal\n conda install -c cringrose qubekit\n \n # Remove ONLY the QUBEKit package itself, leaving all dependencies installed\n # and on their correct version\n conda remove --force qubekit\n \n # Re-download QUBEKit outside of conda\n git clone https://github.com/qubekit/QUBEKit.git\n \n # Re-install QUBEKit outside of conda\n cd QUBEKit/\n python setup.py install\n\n## Help\n\nBelow is general help for most of the commands available in QUBEKit.\nThere is some short help available through the terminal (invoked with `-h`) \nbut all necessary long-form help is within this document.\n\n### Config files\n\nQUBEKit has a lot of settings which are used in production and changing these can result in very different force field parameters.\nThe settings are controlled using ini style config files which are easy to edit.\nAfter installation you should notice a `QUBEKit_configs` \nfolder in your main home directory; now you need to create a master template.\nTo do this, use the command `QUBEKit -setup` where you will be presented with the following:\n\n You can now edit config files using QUBEKit, chose an option to continue:\n 1) Edit a config file\n 2) Create a new master template\n 3) Make a normal config file\n\nChoose option two to set up a new template which will be used every time you run QUBEKit \n(unless you supply the name of another ini file in the configs folder).\nThe only parameter that ***must*** be changed for QUBEKit to run is the Chargemol path in the descriptions section.\nThis option is what controls where the Chargemol code is accessed from on your PC.\nIt should be the location of the Chargemol home directory, plus the name of the Chargemol folder itself to account for version differences:\n\n '/home//Programs/chargemol_09_26_2017'\n \nFollowing this, feel free to change any of the other options such as the basis set.\n\nQUBEKit ***does*** have a full suite of defaults built in. \nYou do not necessarily need to create and manage an ini config file; everything can be done through the terminal commands.\nTo make it easier to keep track of changes however, we recommend you do use a config file, \nor several depending on the analysis you're doing.\n\nYou can change which config file is being used at runtime using the command:\n\n -config .ini\n \nOtherwise, the default `master_config.ini` will be used.\n\n### QUBEKit Commands: Running Jobs\n\nRunning a job entirely on defaults, is as simple as typing `-i` for input, followed by the pdb file name, for example:\n\n QUBEKit -i methane.pdb\n \nThis will perform a start-to-finish analysis on the `methane.pdb` file using the default config ini file.\nFor anything more complex, you will need to add more commands.\n\n---\n\nGiven a list of commands, such as: `-setup`, `-progress` some are taken as single word commands.\nOthers however, such as changing defaults: (`-c 0`), (`-m 1`), are taken as tuple commands.\nThe first command of tuple commands is always preceded by a `-`, while the latter commands are not: (`-skip` `density` `charges`).\n(An error is raised for 'hanging' commands e.g. `-c`, `1` or `-sm`.)\n\nAll commands can be provided in any order, as long as tuple commands are paired together.\n**All configuration commands are optional**. If nothing at all is given, the program will run entirely with defaults.\nQUBEKit only *needs* to know the molecule you're analysing, given with `-i` `.pdb` or `-sm` ``.\n\nFiles to be analysed must be written with their file extension (.pdb) attached or they will not be recognised commands.\nAll commands should be given in lower case with two main exceptions;\nyou may use whatever case you like for the name of files (e.g. `-i DMSO.pdb`) or the name of the directory (e.g. `-log Run013`).\n\n### QUBEKit Commands: Some Examples\n\n*A full list of the possible command line arguments is given below in the \n[Cook Book](https://github.com/qubekit/QUBEKit#cook-book) section. \nThis section covers some simple examples*\n\nRunning a full analysis on `molecule.pdb` with a non-default charge of `1`, the default charge engine `Chargemol` and with GeomeTRIC `off`:\nNote, ordering does not matter as long as tuples commands (`-c` `1`) are together.\n\n`-i` is for the input, `-c` denotes the charge and `-geo` is for (en/dis)abling geomeTRIC.\n \n QUBEKit -i molecule.pdb -c 1 -geo false\n QUBEKit -c 1 -geo false -i molecule.pdb\n\nRunning a full analysis with a non-default bonds engine: Gaussian09 (g09):\n\n QUBEKit -i molecule.pdb -bonds g09\n\nThe program will tell the user which defaults are being used, and which commands were given.\nErrors will be raised for any invalid commands and the program will not run.\nA full log of what's happening will be created in a `QUBEKit_log.txt` file.\n\nTry running QUBEKit with the command:\n\n QUBEKit -sm C methane -end hessian\n\nThis will generate a methane pdb file (and mol file) using its smiles string: `C`,\nthen QUBEKit will analyse it until the hessian is calculated.\nSee [QUBEKit Commands: Custom Start and End Points (single molecule)](https://github.com/qubekit/QUBEKit#qubekit-commands-custom-start-and-end-points-single-molecule) below for more details on `-end`.\n\n### QUBEKit Commands: Logging\n\nEach time QUBEKit runs, a new working directory containing a log file will be created.\nThe name of the directory will contain the run number or name provided via the terminal command `-log` \n(or the run number or name from the configs if a `-log` command is not provided).\nThis log file will store which methods were called, how long they took, and any docstring for them (if it exists).\nThe log file will also contain information regarding the config options used, as well as the commands given and much more.\nThe log file updates in real time and contains far more information than is printed to the terminal during a run.\nIf there is an error with QUBEKit, the full stack trace of an exception will be stored in the log file.\n\n**The error printed to the terminal may be different and incorrect so it's always better to check the log file.**\n\nMany errors have custom exceptions to help elucidate if, for example, a module has not been installed correctly.\n\nThe format for the name of the active directory is:\n\n QUBEKit_moleculename_YYYY_MM_DD_runnumber\n\nIf using QUBEKit multiple times per day with the same molecule, it is therefore necessary to update the 'run number'.\nNot updating the run number when analysing the same molecule on the same day will prevent the program from running.\nThis is to prevent the directory being overwritten.\n\nUpdating the run number can be done with the command:\n\n -log Prop1201\n \nwhere `Prop1201` is an example string which can be almost anything you like (no spaces or special characters).\n\n**Inputs are not sanitised so code injection is possible but given QUBEKit's use occurs locally, you're only hurting yourself!\nIf you don't understand this, don't worry, just use alphanumeric log names like above.**\n\n### QUBEKit Commands: High Throughput\n\nBulk commands are for high throughput analysis; they are invoked with the `-bulk` keyword.\nA csv must be used when running a bulk analysis.\nIf you would like to generate a blank csv config file, simply run the command:\n\n QUBEKit -csv example.csv\n \nwhere example.csv is the name of the config file you want to create.\nThis will automatically generate the file with the appropriate column headers.\nThe csv config file will be put into wherever you ran the command from.\nWhen writing to the csv file, append rows after the header row, rather than overwriting it.\n\nIf you want to limit the number of molecules per csv file, simply add an argument to the command.\nFor example, if you have 23 pdb files and want to analyse them 12 at a time, use the command:\n\n QUBEKit -csv example.csv 12\n \nThis will generate two csv files, one with 12 molecules inside, the other with the remaining 11.\nYou can then fill in the rest of the csv as desired, or run immediately with the defaults.\n\nBefore running a bulk analysis, fill in each column for each molecule*; \nimportantly, different config files can be supplied for each molecule.\n\n*Only the name column needs to be filled (which is filled automatically with the generated csv),\nany empty columns will simply use the default values:\n\n* If the charge column is empty, charge will be set to 0;\n* If the multiplicity column is empty, multiplicity will be set to 1; \n* If the config column is empty, the default config is used;\n* The smiles string column only needs to be filled if a pdb is *not* supplied;\n* Leaving the restart column empty will start the program from the beginning;\n* Leaving the end column empty will end the program after a full analysis.\n\nA bulk analysis is called with the `-bulk` command, followed by the name of the csv file:\n\n QUBEKit -bulk example.csv\n \nAny pdb files should all be in the same place: where you're running QUBEKit from.\nUpon executing this bulk command, QUBEKit will work through the rows in the csv file.\nEach molecule will be given its own directory and log file (the same as single molecule analyses).\n\nPlease note, there are deliberately two config files.\nThe changeable parameters are spread across a .csv and a .ini config files.\nThe configs in the .ini are more likely to be kept constant across a bulk analysis.\nFor this reason, the .csv config contains highly specific parameters such as torsions which will change molecule to molecule.\nThe .ini contains more typically static parameters such as the basis sets and engines being used (e.g. PSI4, Chargemol, etc).\nIf you would like the ini config to change from molecule to molecule, you may specify that in the csv config.\n\nYou can change defaults inside the terminal when running bulk analyses, and these changed defaults will be printed to the log file.\nHowever, the config files themselves will not be overwritten.\nIt is therefore recommended to manually edit the config files rather than doing, for example:\n\n QUBEKit -bulk example.csv -log run42 -ddec 3 -solvent true\n \nBe aware that the names of the pdb files are used as keys to find the configs.\nSo, each pdb being analysed should have a corresponding row in the csv file with the correct name\n(if using smiles strings, the name column will just be the name given to the created pdb file).\n\nFor example (csv row order does not matter, and you do not need to include smiles strings when a pdb is provided; column order *does* matter):\n\n /:\n benzene.pdb\n ethane.pdb\n bulk_example.csv\n\n bulk_example.csv:\n name,charge,multiplicity,config,smiles,torsion_order,restart,end\n methane,,,default_config,C,,,\n benzene,,,default_config,,,,\n ethane,,,default_config,,,,\n\n### QUBEKit Commands: Custom Start and End Points (single molecule)\n\nQUBEKit also has the ability to run partial analyses, or redo certain parts of an analysis.\nFor a single molecule analysis, this is achieved with the `-end` and `-restart` commands. \n\nThe stages are:\n\n* **parametrise** - The molecule is parametrised using OpenFF, AnteChamber or XML.\nThis step also loads in the molecule and extracts key information like the atoms and their coordinates. \n* **mm_optimise** - This is a quick, preliminary optimisation which speeds up later optimisations.\n* **qm_optimise** - This is the main optimisation stage, default method is to use PSI4 with GeomeTRIC.\n* **hessian** - This again uses PSI4 to calculate the Hessian matrix which is needed for calculating bonding parameters.\n* **mod_sem** - Using the Hessian matrix, the bonds and angles terms are calculated with the Modified Seminario Method.\n* **density** - The density is calculated using Gaussian09. This is where the solvent is applied as well (if configured). \n* **charges** - The charges are partitioned and calculated using Chargemol with DDEC3 or 6.\n* **lennard_jones** - The charges are extracted and Lennard-Jones parameters calculated, ready to produce an XML.\n* **torsion_scan** - Using the molecule's geometry, a torsion scan is performed.\nThe molecule can then be optimised with respect to these parameters.\n* **torsion_optimise** - The optimisation step for the torsional analysis.\n* **finalise** - This step (which is always performed, regardless of end-point) produces an XML for the molecule.\nThis stage also prints the final information to the log file and a truncated version to the terminal.\n\nIn a normal run, all of these stages are called sequentially,\nbut with `-end` and `-restart` you are free to run *from* any step *to* any step inclusively.\n\nWhen using `-end`, simply specify the end-point in the proceeding command (default `finalise`),\nwhen using `-restart`, specify the start-point in the proceeding command (default `parametrise`).\nThe end-point (if not `finalise`) can then be specified with the `-end` command.\n\nWhen using these commands, all other config-changing commands can be used in the same ways as before. For example:\n\n QUBEKit -i methanol.pdb -end charges\n QUBEKit -restart qm_optimise -end density\n QUBEKit -i benzene.pdb -log BEN001 -end charges -geo false \n QUBEKit -restart hessian -ddec 3\n \nIf using `-end` but not `-restart`, a new directory and log file will be created within wherever the command is run from.\nJust like a normal analysis.\n\nHowever, using `-restart` requires files and other information from previous executions.\nTherefore, `-restart` can only be run from *inside* a directory with those files present.\n\n*Note: you do not need to use the `-i` (input file) command when restarting, QUBEKit will detect the pdb file for you.*\n\nTo illustrate this point, a possible use case would be to perform a full calculation on the molecule ethane,\nthen recalculate using a different (set of) default value(s):\n\n QUBEKit -i ethane.pdb -log ETH001\n ...\n cd QUBEKit_ethane_2019_01_01_ETH001\n QUBEKit -restart density -end charges -ddec 3\n \nHere, the calculation was performed with the default DDEC version 6, then rerun with version 3 instead, skipping over the early stages which would be unchanged.\nIt is recommended to copy (**not cut**) the directory containing the files because some of them will be overwritten when restarting.\n\nNote that because `-restart` was used, it was not necessary to specify the pdb file name with `-i`.\n\n### QUBEKit Commands: Skipping Stages\n\nThere is another command for controlling the flow of execution: `-skip`.\nThe skip command allows you to skip any number of *proceeding* steps.\nThis is useful if using a method not covered by QUBEKit for a particular stage, \nor if you're just not interested in certain time-consuming results.\n\n`-skip` takes at least one argument and on use will completely skip over the provided stage(s).\nSay you are not interested in calculating bonds and angles, and simply want the charges; the command:\n\n QUBEKit -i acetone.pdb -skip hessian mod_sem\n\nwill skip over the Hessian matrix calculation which is necessary for the modified Seminario method (skipping that too).\nQUBEKit will then go on to calculate density, charges and so on.\n\n**Beware skipping steps which are required for other stages of the analysis.**\n\nJust like the other commands, `-skip` can be used in conjunction with other commands like config changing, \nand `-end` or `-restart`. Using the same example above, you can stop having calculated charges:\n\n QUBEKit -i acetone.pdb -skip hessian mod_sem -end charges\n\n**`-skip` is not available for `-bulk` commands and probably never will be. \nThis is to keep bulk commands reasonably simple. \nWe recommend creating a simple script to run single analysis commands if you would like to skip stages frequently.**\n\nIn case you want to add external files to be used by QUBEKit, empty folders are created in the correct place even when skipped.\nThis makes it easy to drop in, say, a .cube file from another charges engine, \nthen calculate the Lennard-Jones parameters with QUBEKit.\n\n### QUBEKit Commands: Custom Start and End Points (multiple molecules)\n\nWhen using custom start and/or end points with bulk commands, the stages are written to the csv file, rather than the terminal.\nIf no start point is specified, a new working directory and log file will be created.\nOtherwise, QUBEKit will find the correct directory and log file based on the log string and molecule name.\nThis means the **log string cannot be changed when restarting a bulk run**. \nThere will however be a clear marker in the log file, indicating when an analysis was restarted.\n\nUsing a similar example as above, two molecules are analysed with DDEC6, then restarted for analysis with DDEC3:\n\n first_run.csv:\n name,charge,multiplicity,config,smiles,torsion_order,restart,end\n ethane,,,ddec6_config,,,,charges\n benzene,,,ddec6_config,,,,charges\n \n QUBEKit -bulk first_run.csv\n \n (optional: copy the folders produced to a different location to store results)\n \n \n second_run.csv:\n name,charge,multiplicity,config,smiles,torsion_order,restart,end\n ethane,,,ddec3_config,,,density,charges\n benzene,,,ddec3_config,,,density,charges\n \n QUBEKit -bulk second_run.csv\n\nThe first execution uses a config file for DDEC6 and runs from the beginning up to the charges stage.\nThe second execution uses a config file for DDEC3 and runs from the density stage to the charges stage.\n\n### QUBEKit Commands: Checking Progress\n\nThroughout an analysis, key information will be added to the log file.\nThis information can be quickly parsed by QUBEKit's `-progress` command\n\nTo display the progress of all analyses in your current directory and below, use the command:\n\n QUBEKit -progress\n \nQUBEKit will find the log files in all QUBEKit directories and display a colour-coded table of the progress. \n\n* Tick marks indicate a stage has completed successfully\n* Tildes indicate a stage has not finished nor errored\n* An S indicates a stage has been skipped\n* An E indicates that a stage has started and failed for some reason. \nViewing the log file will give more information as to *why* it failed.\n\n### QUBEKit Commands: Other Commands and Information\n\nYou cannot run multiple kinds of analysis at once. For example:\n\n QUBEKit -bulk example.csv -i methane.pdb -bonds g09\n \nis not a valid command. These should be performed separately:\n\n QUBEKit -bulk example.csv\n QUBEKit -i methane.pdb -bonds g09\n \nBe wary of running QUBEKit concurrently through different terminal windows.\nThe programs QUBEKit calls often just try to use however much memory is assigned in the config files;\nthis means they may try to take more than is available, leading to a crash.\n\n\n## Cook Book\n\n**Complete analysis of single molecule from its pdb file using only defaults:**\n\n QUBEKit -i molecule.pdb\n\nAll commands can be viewed by calling `QUBEKit -h`. Below is an explanation of what all these commands are:\n\n* Enable or disable GeomeTRIC (bool): \n`-geo true` or `-geo false`\n\n* Change DDEC version (int; 3 or 6): \n`-ddec 3` or `-ddec 6`\n\n* Enable or disable the solvent model (bool): \n`-solvent true` or `-solvent false`\n\n* Change the method for initial parametrisation (str; openff, xml or antechamber): \n`-param openff`, `-param xml`, `-param antechamber`\n\n* Change the log file name and directory label (str; any):\n`-log Example123`\n\n* Change the functional being used (str; any valid psi4/g09 functional):\n`-func B3LYP`\n\n* Change the basis set (str; any valid psi4/g09 basis set):\n`-basis 6-31G`\n\n* Change the vibrational scaling used with the basis set (float; e.g. 0.997):\n`-vib 0.967`\n\n* Change the amount of memory allocated (int; do not exceed computer's limits!):\n`-memory 4`\n\n* Change the number of threads allocated (int; do not exceed computer's limits!):\n`-threads 4`\n\n---\n\n**Complete analysis of ethane from its smiles string using DDEC3, OpenFF and no solvent (`-log` command labels the analysis):**\n\n QUBEKit -sm CC -ddec 3 -param openff -solvent false -log ethane_example\n\n---\n\n**Analyse benzene from its pdb file until the charges are calculated; use DDEC3:**\n\n QUBEKit -i benzene.pdb -end charges -ddec 3 -log BENZ_DDEC3\n \n**Redo that analysis but use DDEC6 instead:**\n\n(Optional) Copy the folder and change the name to indicate it's for DDEC6:\n \n cp -r QUBEKit_benzene_2019_01_01_BENZ_DDEC3 QUBEKit_benzene_2019_01_01_BENZ_DDEC6\n\n(Optional) Move into the new folder:\n\n cd QUBEKit_benzene_2019_01_01_BENZ_DDEC6\n\nRerun the analysis with the DDEC version changed.\nThis time we can restart just before the charges are calculated to save time.\nHere we're restarting from density and finishing on charges:\n\n QUBEKit -restart density -end charges -ddec 6\n\nThis will still produce an xml in the `finalise` folder.\n\n---\n\n**Analyse methanol from its smiles string both with and without a solvent:**\n\n QUBEKit -sm CO -solvent true -log Methanol_Solvent\n\n(Optional) Create and move into new folder\n\n cp -r QUBEKit_methanol_2019_01_01_Methanol_Solvent QUBEKit_methanol_2019_01_01_Methanol_No_Solvent\n cd QUBEKit_methanol_2019_01_01_Methanol_No_Solvent\n\n QUBEKit -solvent false -restart density\n\n---\n\n**Calculate the density for methane, ethane and propane using their pdbs:**\n\nGenerate a blank csv file with a relevant name:\n\n QUBEKit -csv density.csv\n \nFill in each row like so:\n\n density.csv:\n name,charge,multiplicity,config,smiles,torsion_order,restart,end\n methane,,,master_config.ini,,,,density\n ethane,,,master_config.ini,,,,density\n propane,,,master_config.ini,,,,density\n\nRun the analysis:\n\n QUBEKit -bulk density.csv\n \nNote, you can add more commands to the execution but it is recommended that changes are made to the config files instead.\n\n---\n\n**Running the same analysis but using the smiles strings instead; this time do a complete analysis:**\n\nGenerate a blank csv with the name `simple_alkanes`:\n\n QUBEKit -csv simple_alkanes.csv\n\nFill in the csv file like so:\n\n simple_alkanes.csv:\n name,charge,multiplicity,config,smiles,torsion_order,restart,end\n methane,,,master_config.ini,C,,,\n ethane,,,master_config.ini,CC,,,\n propane,,,master_config.ini,CCC,,,\n\nRun the analysis:\n\n QUBEKit -bulk simple_alkanes.csv\n\n---\n\n**Just calculating charges for acetone:**\n\nSkip hessian and mod_sem, the two stages used to calculate the bonds and angles,\nthen end the analysis after the charge calculation.\n\n QUBEKit -i acetone.pdb -skip hessian mod_sem -end charges", "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/qubekit/QUBEKit", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "qubekit", "package_url": "https://pypi.org/project/qubekit/", "platform": "", "project_url": "https://pypi.org/project/qubekit/", "project_urls": { "Homepage": "https://github.com/qubekit/QUBEKit" }, "release_url": "https://pypi.org/project/qubekit/2.6.3/", "requires_dist": null, "requires_python": "~=3.6", "summary": "Quantum mechanical bespoke force field parameter generation", "version": "2.6.3" }, "last_serial": 5907070, "releases": { "2.2.0": [ { "comment_text": "", "digests": { "md5": "4bef5fc66d61822f1031a81a8804618a", "sha256": "2736ce546e37b4e9c8b39dc0e333d8ddf07550edbe410841d91914eab94fd92a" }, "downloads": -1, "filename": "qubekit-2.2.0-py3.6.egg", "has_sig": false, "md5_digest": "4bef5fc66d61822f1031a81a8804618a", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 271999, "upload_time": "2019-06-24T15:31:58", "url": "https://files.pythonhosted.org/packages/dc/e1/315c2ab34a4f6aedfca33ec38940322025693b85368d4e764c9d5c78a015/qubekit-2.2.0-py3.6.egg" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "fc98103411e45c104d7efeba66e01952", "sha256": "a85e95bf701c433d72501e192df7990796ae1c9674e23b8defc80c37c4338953" }, "downloads": -1, "filename": "qubekit-2.3.0-py3.6.egg", "has_sig": false, "md5_digest": "fc98103411e45c104d7efeba66e01952", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 330814, "upload_time": "2019-06-24T15:32:01", "url": "https://files.pythonhosted.org/packages/fe/7f/2e29a06be4b4313a5859739bb36c0d3f5258a6ed27d9e673f65e76a0281b/qubekit-2.3.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "cd6996cfd61da4b946273a50e1229f2c", "sha256": "49e170985bfbe8ddf80077336dbb6f9a16a9fce743a9032b377224cb1226d037" }, "downloads": -1, "filename": "qubekit-2.3.0.tar.gz", "has_sig": false, "md5_digest": "cd6996cfd61da4b946273a50e1229f2c", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 138619, "upload_time": "2019-06-24T15:32:04", "url": "https://files.pythonhosted.org/packages/b5/fd/827861a8ce8b8c711823b3a74c2ccdd09366f9779edf997cc76aa2bda9a1/qubekit-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "1778f68147190a669f6db6dc5c0fc3c0", "sha256": "69a75ae11df57c9337c76804f09e2a62de5a9c692fae09843fcf8e8629986b51" }, "downloads": -1, "filename": "qubekit-2.3.1-py3.6.egg", "has_sig": false, "md5_digest": "1778f68147190a669f6db6dc5c0fc3c0", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 268633, "upload_time": "2019-06-25T13:06:05", "url": "https://files.pythonhosted.org/packages/b1/20/6ffc6657f596fa4c96a82ace4f3bc8384fb36c9e45afaac39e569952cdda/qubekit-2.3.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "a79cd9124cb94a102029c02487d51204", "sha256": "c829cd0485b04259d1ae7e98ff1dc6975cac7e1412f5eec208fd8619caf2d9e8" }, "downloads": -1, "filename": "qubekit-2.3.1.tar.gz", "has_sig": false, "md5_digest": "a79cd9124cb94a102029c02487d51204", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 137045, "upload_time": "2019-06-25T13:06:08", "url": "https://files.pythonhosted.org/packages/48/42/312dcacccfa4a8ffe4d581250dcc47485ea135664ca6ac1032e708d94088/qubekit-2.3.1.tar.gz" } ], "2.3.2": [ { "comment_text": "", "digests": { "md5": "6ef776068ae495bae174b3e7575910f2", "sha256": "413c36b00b3ef3eccf5a5b9648224025c85fdc93b98b0c92fcc0fe0b8efe5b9f" }, "downloads": -1, "filename": "qubekit-2.3.2-py3.6.egg", "has_sig": false, "md5_digest": "6ef776068ae495bae174b3e7575910f2", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 269095, "upload_time": "2019-07-03T10:25:47", "url": "https://files.pythonhosted.org/packages/28/75/563180ca05d709eb61b874291bb03cf70bf8133cd027ac9d1c5a834d838d/qubekit-2.3.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "a401f9c214277c69619d0d4a2eada65d", "sha256": "513d8972c75284a8285a7de4883db2bf1d1da678032a2147f3ecfa6603d5307f" }, "downloads": -1, "filename": "qubekit-2.3.2.tar.gz", "has_sig": false, "md5_digest": "a401f9c214277c69619d0d4a2eada65d", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 137523, "upload_time": "2019-07-03T10:25:49", "url": "https://files.pythonhosted.org/packages/39/6a/3f6f7f6d8d808276070bbd88f14687fc476f7cda631541232b718ceedeab/qubekit-2.3.2.tar.gz" } ], "2.3.3": [ { "comment_text": "", "digests": { "md5": "0c4517590739ecabd1ed4d5200096370", "sha256": "96830d95bd22337d0e469ddffa77b33576b0ab7083f7258e3d2d2c500f70cf96" }, "downloads": -1, "filename": "qubekit-2.3.3-py3.6.egg", "has_sig": false, "md5_digest": "0c4517590739ecabd1ed4d5200096370", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 278810, "upload_time": "2019-07-15T15:36:02", "url": "https://files.pythonhosted.org/packages/aa/56/740db0a282845c2e70f4d36f57c54fa764437d4a30fd560fa6744ef0d936/qubekit-2.3.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7c2d93ab3402c9fbd3027f502389c977", "sha256": "7973ab019191951d9b2497c8ddf54218aaae4d8aaca810b04cbd63a5072a3805" }, "downloads": -1, "filename": "qubekit-2.3.3.tar.gz", "has_sig": false, "md5_digest": "7c2d93ab3402c9fbd3027f502389c977", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 142358, "upload_time": "2019-07-15T15:36:04", "url": "https://files.pythonhosted.org/packages/44/3c/57180ef3bda6e6a37c77d0c833e49e6c0d0350403ef48bae7ed127ff955d/qubekit-2.3.3.tar.gz" } ], "2.3.4": [ { "comment_text": "", "digests": { "md5": "ea1df63500db69f5ca464da73a76f0cd", "sha256": "48d58a1f98fd7c89574d1be6d3ad93daffc6a07cf32ace91e3b224bea6292034" }, "downloads": -1, "filename": "qubekit-2.3.4-py3.6.egg", "has_sig": false, "md5_digest": "ea1df63500db69f5ca464da73a76f0cd", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 279732, "upload_time": "2019-07-15T15:42:20", "url": "https://files.pythonhosted.org/packages/d3/6d/8c7bbca2a29f304d372bd09fc8d70faf8b81ec50b993066e2fc7c4bd1b62/qubekit-2.3.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ebf28533a3dab5d757b02a0fdd58197f", "sha256": "3cfe201f1dfca23aa08315e05c1f8371326ce8bd87e07e94ffc09663b84e6878" }, "downloads": -1, "filename": "qubekit-2.3.4.tar.gz", "has_sig": false, "md5_digest": "ebf28533a3dab5d757b02a0fdd58197f", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 142198, "upload_time": "2019-07-15T15:42:22", "url": "https://files.pythonhosted.org/packages/1c/6d/45ea92bf9ad2759e304b186d42ceb5fdb71fbdbea49ae7ea9068788272a3/qubekit-2.3.4.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "641969a684f43b18c5212345b37e485b", "sha256": "ca67669767c2635c23becf29027be5303f12e4ecb7dcd32a23d5cc86086c6607" }, "downloads": -1, "filename": "qubekit-2.4.0-py3.6.egg", "has_sig": false, "md5_digest": "641969a684f43b18c5212345b37e485b", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 279931, "upload_time": "2019-07-17T15:01:19", "url": "https://files.pythonhosted.org/packages/6d/5e/86cd4e8e89a979a7a9756ae2dfe8e1737cbb620ef67b11db3a2604fb52bc/qubekit-2.4.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "2f2d661c2f0d3c393158307b60d7a954", "sha256": "25a8a4c81a7c7bf5ad2b775ee29d5e4ebf25523ff8c706bfd74fea6ace5c1449" }, "downloads": -1, "filename": "qubekit-2.4.0.tar.gz", "has_sig": false, "md5_digest": "2f2d661c2f0d3c393158307b60d7a954", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 142228, "upload_time": "2019-07-17T15:01:22", "url": "https://files.pythonhosted.org/packages/56/8b/5bcf8258d545364c4d92622a18bc75173e6abfbdffd343c1c4e228bdbbca/qubekit-2.4.0.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "164e2959d23774e296c4465b2e22a6fd", "sha256": "99bacfa65a85559f503001db8ccf28d452b469c9a041b61063e730d5e0237348" }, "downloads": -1, "filename": "qubekit-2.5.0-py3.6.egg", "has_sig": false, "md5_digest": "164e2959d23774e296c4465b2e22a6fd", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "~=3.6", "size": 289505, "upload_time": "2019-08-06T13:06:10", "url": "https://files.pythonhosted.org/packages/cf/ce/c7b73d791b772705fde6e97a007ea7c85829e36ecb71da5aa3ddb13a2d1e/qubekit-2.5.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "59b4015e36a11f6fb061780e0212e664", "sha256": "029d3cb2b4c1d380e6f7c0edef25edc226b5d6cf37a89d0610f0b8df8ce3702f" }, "downloads": -1, "filename": "qubekit-2.5.0.tar.gz", "has_sig": false, "md5_digest": "59b4015e36a11f6fb061780e0212e664", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 146338, "upload_time": "2019-08-06T13:06:12", "url": "https://files.pythonhosted.org/packages/ff/66/bce5074a88373f48a1eb72e6a791326109b2047a68827cbd480b3b103bf5/qubekit-2.5.0.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "a9dd2dcd80c7cd41e79f9ca6fcf69a86", "sha256": "cdc9aa0af3c81c61bf95e88415efecb0336c4240ffb6a76ac03766d1c427c374" }, "downloads": -1, "filename": "qubekit-2.5.1-py3.7.egg", "has_sig": false, "md5_digest": "a9dd2dcd80c7cd41e79f9ca6fcf69a86", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": "~=3.6", "size": 354193, "upload_time": "2019-08-16T14:47:43", "url": "https://files.pythonhosted.org/packages/85/35/b52f58b8bacdb4177349ef98b48a41932275ac05578528e36cde08b2cda5/qubekit-2.5.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "961e55613e937f813beed85d93727a14", "sha256": "64268e25e11d390ae9c88de2bfa569dae9495433c23160551588e7fb331dd6c2" }, "downloads": -1, "filename": "qubekit-2.5.1.tar.gz", "has_sig": false, "md5_digest": "961e55613e937f813beed85d93727a14", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 207896, "upload_time": "2019-08-16T14:47:45", "url": "https://files.pythonhosted.org/packages/5b/88/3c6db0899bac1ce2ed6fc1182c3041514122e32f09893c67cdc41cecfa72/qubekit-2.5.1.tar.gz" } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "0f08e5e0eb1837e8f55d5eae67588380", "sha256": "b2dd2a8c86511dde6d3402d09ee2e7f8654e2f96cf21710fc9af4b52e91a1fe9" }, "downloads": -1, "filename": "qubekit-2.6.1-py3.7.egg", "has_sig": false, "md5_digest": "0f08e5e0eb1837e8f55d5eae67588380", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": "~=3.6", "size": 361949, "upload_time": "2019-09-20T14:12:30", "url": "https://files.pythonhosted.org/packages/c2/79/d812ef1e7aa7aa39e5a91e9f5f1e62cbed11ae12e2b7a640aa6ee88c15e0/qubekit-2.6.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "72cfabe331077f0f0a9468bbd0766aa8", "sha256": "9a3280d12c04318926f7688c350092323d5574b087a9ef23d9fb61fac9b52336" }, "downloads": -1, "filename": "qubekit-2.6.1.tar.gz", "has_sig": false, "md5_digest": "72cfabe331077f0f0a9468bbd0766aa8", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 210884, "upload_time": "2019-09-20T14:12:33", "url": "https://files.pythonhosted.org/packages/e7/7a/fbdad15fca25d6219ac8ceb8857acea76579cc43d47fa3970c52b971f781/qubekit-2.6.1.tar.gz" } ], "2.6.2": [ { "comment_text": "", "digests": { "md5": "6c409ccaf83e203574d6013996fcd6fe", "sha256": "dd517055c9bc63f2355507d514aea21e2c0948e8457ce2f98fc5aebd51c8a741" }, "downloads": -1, "filename": "qubekit-2.6.2-py3.7.egg", "has_sig": false, "md5_digest": "6c409ccaf83e203574d6013996fcd6fe", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": "~=3.6", "size": 360494, "upload_time": "2019-09-24T10:20:44", "url": "https://files.pythonhosted.org/packages/09/78/ae85db79e27c90cf1d94938587f73ee4e0721efa95872d863e81747ea311/qubekit-2.6.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "87d86c25982f5d25b491d5fd78e63670", "sha256": "fe9b348c1cd2348098f842f5c05d459956787d00d283967c82a8b1272ed8222e" }, "downloads": -1, "filename": "qubekit-2.6.2.tar.gz", "has_sig": false, "md5_digest": "87d86c25982f5d25b491d5fd78e63670", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 210705, "upload_time": "2019-09-24T10:20:46", "url": "https://files.pythonhosted.org/packages/ba/5a/a2e630c2e15207bf1628a9c868147bc25e296899eb2f0bf51f9922435631/qubekit-2.6.2.tar.gz" } ], "2.6.3": [ { "comment_text": "", "digests": { "md5": "a7e31771f4f84bb56f78210e0891df24", "sha256": "023f09ef0e8bbc64014344c3ad83ff4a43433cec80ba0988455088eca72221a6" }, "downloads": -1, "filename": "qubekit-2.6.3-py3.7.egg", "has_sig": false, "md5_digest": "a7e31771f4f84bb56f78210e0891df24", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": "~=3.6", "size": 359894, "upload_time": "2019-09-30T14:02:39", "url": "https://files.pythonhosted.org/packages/4c/54/9f02e94523917dfcbea912ecdcd8031af9367438803ff2d6131cb67f3617/qubekit-2.6.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "887855f12a9585bb65a36aa92ad57c2c", "sha256": "40114fecb2a0e79ae1b236b049b6ea234f6fc425dedf1ba7a3f363f05d7828a8" }, "downloads": -1, "filename": "qubekit-2.6.3.tar.gz", "has_sig": false, "md5_digest": "887855f12a9585bb65a36aa92ad57c2c", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 210673, "upload_time": "2019-09-30T14:02:41", "url": "https://files.pythonhosted.org/packages/b4/e1/bb404f3f6169ad91902b7354bfb4710844b18d1167a5a3278d0a6221f09c/qubekit-2.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7e31771f4f84bb56f78210e0891df24", "sha256": "023f09ef0e8bbc64014344c3ad83ff4a43433cec80ba0988455088eca72221a6" }, "downloads": -1, "filename": "qubekit-2.6.3-py3.7.egg", "has_sig": false, "md5_digest": "a7e31771f4f84bb56f78210e0891df24", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": "~=3.6", "size": 359894, "upload_time": "2019-09-30T14:02:39", "url": "https://files.pythonhosted.org/packages/4c/54/9f02e94523917dfcbea912ecdcd8031af9367438803ff2d6131cb67f3617/qubekit-2.6.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "887855f12a9585bb65a36aa92ad57c2c", "sha256": "40114fecb2a0e79ae1b236b049b6ea234f6fc425dedf1ba7a3f363f05d7828a8" }, "downloads": -1, "filename": "qubekit-2.6.3.tar.gz", "has_sig": false, "md5_digest": "887855f12a9585bb65a36aa92ad57c2c", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 210673, "upload_time": "2019-09-30T14:02:41", "url": "https://files.pythonhosted.org/packages/b4/e1/bb404f3f6169ad91902b7354bfb4710844b18d1167a5a3278d0a6221f09c/qubekit-2.6.3.tar.gz" } ] }