10
0
mirror of https://github.com/LCPQ/EMSL_Basis_Set_Exchange_Local synced 2024-10-31 19:23:42 +01:00
Go to file
2015-07-24 10:34:30 +02:00
db Add all the transition metal 2015-07-24 10:34:30 +02:00
src Delete a ' in cond_sql_or doc 2015-04-29 18:18:28 +02:00
.gitignore Initial commit 2014-11-12 14:36:12 +01:00
EMSL_api.py Add os.path.join when needed thx to @berguis 2015-04-29 17:43:56 +02:00
LICENSE Initial commit 2014-11-12 14:36:12 +01:00
README.md maj README.md 2015-03-18 13:27:09 +01:00

EMSL_Basis_Set_Exchange_Local

Gitter

Create of Local Copy of the famous EMSL Basis Set Exchange and use it easily with the API.

  • Make a slight copy (40Mo Sqlite3 database) of the EMSL Basis Set Exchange website. Currently avalaible format are :
  • Gamess-us, Gaussian94 and NEWCHEM;
  • API for scripting;
  • Quick local access without delay;
  • Only need Python

##Dependencies * Python >2.6

Optional

If you plan to download manually some database -not using the pre existing one- you need : * Request python module. $pip install requests (do it in a virtual env or with sudo)

##Installation * Download the git repertory ($git clone https://github.com/TApplencourt/EMSL_Basis_Set_Exchange_Local.git for example) * That all! You can now, use EMSL_api.py

##Usage

EMSL Api.

Usage:
  EMSL_api.py list_basis  [--basis=<basis_name>...]
                          [--atom=<atom_name>...]
                          [--db_path=<db_path>]
                          [--average_mo_number]
  EMSL_api.py list_atoms  --basis=<basis_name>
                          [--db_path=<db_path>]
  EMSL_api.py get_basis_data --basis=<basis_name>
                                [--atom=<atom_name>...]
                                [--db_path=<db_path>]
                                [--with_l]
                                [(--save [--path=<path>])]
  EMSL_api.py list_formats
  EMSL_api.py create_db      --db_path=<db_path>
                             --format=<format>
                             [--no-contraction]
  EMSL_api.py (-h | --help)
  EMSL_api.py --version

Options:
  -h --help         Show this screen.
  --version         Show version.
  --no-contraction  Basis functions are not contracted

<db_path> is the path to the SQLite3 file containing the Basis sets.
By default is $EMSL_API_ROOT/db/Gausian_uk.db

Example of use:
    ./EMSL_api.py list_basis --atom Al --atom U
    ./EMSL_api.py list_basis --atom S --basis 'cc-pV*' --average_mo_number
    ./EMSL_api.py list_atoms --basis ANO-RCC
    ./EMSL_api.py get_basis_data --basis 3-21++G*

##Demonstration

(For a beter quality see the Source)

##To do For now we can only parse Gamess-us, Gaussian94 and NEWCHEM (Thanks to @mattbernst for Gaussian94 and NEWCHEM) basis set type file.

###I need more format!

I realy simple. Just read the few explanation bellow.

You just need to provide a function who will split the basis data who containt all the atoms in atom only tuple.

Sommething like this:

def parse_basis_data_gaussian94(data, name, description, elements, debug=True):
    """Parse the Gaussian94 basis data raw html to get a nice tuple.

    The data-pairs item is actually expected to be a 2 item list:
    [symbol, data]

    e.g. ["Ca", "#BASIS SET..."]

    N.B.: Currently ignores ECP data!

    @param data: raw HTML from BSE
    @type data : unicode
    @param name: basis set name
    @type name : str
    @param des: basis set description
    @type des : str
    @param elements: element symbols e.g. ['H', 'C', 'N', 'O', 'Cl']
    @type elements : list
    @return: (name, description, data-pairs)
    @rtype : tuple
    """

Then just add the function in src.parser_handler.format_dict. You are ready to go!

Feel free to fork/pull request.

##Disclaimer Itis not a official API. Use it with moderation.

In papers where you use the basis sets obtained from the Basis Set Exchange please site this: >The Role of Databases in Support of Computational Chemistry Calculations > >>Feller, D.; J. Comp. Chem., 17(13), 1571-1586, 1996.

Basis Set Exchange: A Community Database for Computational Sciences

Schuchardt, K.L., Didier, B.T., Elsethagen, T., Sun, L., Gurumoorthi, V., Chase, J., Li, J., and Windus ; T.L. J. Chem. Inf. Model., 47(3), 1045-1052, 2007, doi:10.1021/ci600510j.

And dont forget: >These documents may be freely distributed and used for non-commercial, scientific and educational purposes. > http://www.pnl.gov/notices.asp