• Stars
    star
    140
  • Rank 259,991 (Top 6 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created about 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Periodic table, physical constants, and molecule parsing for quantum chemistry.

QCElemental

Build Status codecov Documentation Status Chat on Slack python

Documentation: Read The Docs

Core data structures for Quantum Chemistry. QCElemental also contains physical constants and periodic table data from NIST and molecule handlers.

Periodic Table and Physical Constants data are pulled from NIST srd144 and srd121, respectively (details) in a renewable manner (class around NIST-published JSON file).

This project also contains a generator, validator, and translator for Molecule QCSchema.

✨ Getting Started

  • Installation. QCElemental supports Python 3.7+.

    python -m pip install qcelemental
  • To install QCElemental with molecule visualization capabilities (useful in iPython or Jupyter notebook environments):

    python -m pip install 'qcelemental[viz]`
  • To install QCElemental with various alignment capabilities using networkx

    python -m pip install 'qcelemental[align]`
  • Or install both:

    python -m pip install 'qcelemental[viz,align]`
  • See documentation

Periodic Table

A variety of periodic table quantities are available using virtually any alias:

>>> import qcelemental as qcel
>>> qcel.periodictable.to_E('KRYPTON')
'Kr'
>>> qcel.periodictable.to_element(36)
'Krypton'
>>> qcel.periodictable.to_Z('kr84')
36
>>> qcel.periodictable.to_A('Kr')
84
>>> qcel.periodictable.to_A('D')
2
>>> qcel.periodictable.to_mass('kr', return_decimal=True)
Decimal('83.9114977282')
>>> qcel.periodictable.to_mass('kr84')
83.9114977282
>>> qcel.periodictable.to_mass('Kr86')
85.9106106269

Physical Constants

Physical constants can be acquired directly from the NIST CODATA:

>>> import qcelemental as qcel
>>> qcel.constants.Hartree_energy_in_eV
27.21138602
>>> qcel.constants.get('hartree ENERGY in ev')
27.21138602
>>> pc = qcel.constants.get('hartree ENERGY in ev', return_tuple=True)
>>> pc.label
'Hartree energy in eV'
>>> pc.data
Decimal('27.21138602')
>>> pc.units
'eV'
>>> pc.comment
'uncertainty=0.000 000 17'

Alternatively, with the use of the Pint unit conversion package, arbitrary conversion factors can be obtained:

>>> qcel.constants.conversion_factor("bohr", "miles")
3.2881547429884475e-14

Covalent Radii

Covalent radii are accessible for most of the periodic table from Alvarez, Dalton Transactions (2008) doi:10.1039/b801115j (details).

>>> import qcelemental as qcel
>>> qcel.covalentradii.get('I')
2.626719314386381
>>> qcel.covalentradii.get('I', units='angstrom')
1.39
>>> qcel.covalentradii.get(116)
Traceback (most recent call last):
...
qcelemental.exceptions.DataUnavailableError: ('covalent radius', 'Lv')
>>> qcel.covalentradii.get(116, missing=4.0)
4.0
>>> qcel.covalentradii.get('iodine', return_tuple=True).dict()
{'numeric': True, 'label': 'I', 'units': 'angstrom', 'data': Decimal('1.39'), 'comment': 'e.s.d.=3 n=451', 'doi': 'DOI: 10.1039/b801115j'}

van der Waals Radii

Van der Waals radii are accessible for tmost of the periodic table from Mantina, J. Phys. Chem. A (2009) doi: 10.1021/jp8111556 (details).

>>> import qcelemental as qcel
>>> qcel.vdwradii.get('I')
3.7416577284064996
>>> qcel.vdwradii.get('I', units='angstrom')
1.98
>>> qcel.vdwradii.get(116)
Traceback (most recent call last):
...
qcelemental.exceptions.DataUnavailableError: ('vanderwaals radius', 'Lv')
>>> qcel.vdwradii.get('iodine', return_tuple=True).dict()
{'numeric': True, 'label': 'I', 'units': 'angstrom', 'data': Decimal('1.98'), 'doi': 'DOI: 10.1021/jp8111556'}

More Repositories

1

cookiecutter-cms

Python-centric Cookiecutter for Molecular Computational Chemistry Packages
Python
377
star
2

QCEngine

Quantum chemistry program executor and IO standardizer (QCSchema).
Python
162
star
3

QCFractal

A distributed compute and database platform for quantum chemistry.
Python
143
star
4

QCSchema

A Schema for Quantum Chemistry
Python
94
star
5

QCPortal

A client interface to the QCArchive Project (read-only image of QCFractal)
Python
35
star
6

covid

MolSSI SARS-CoV-2 Biomolecular Simulation Data and Algorithm Store
HTML
28
star
7

MIRP

MolSSI Integral Reference Project
C
24
star
8

tensor-interfaces

A place to store information for the tensor discussions and possible specifications.
14
star
9

QCArchiveExamples

Getting started docs, examples, tutorials, and use cases.
Jupyter Notebook
11
star
10

mmelemental

Python implementation of the MMSchema specification. Provides fundamental models for molecular mechanics.
Python
10
star
11

mmic_docking

Strategy MMIC for molecular docking
Python
7
star
12

QCArchiveWebsite

The QCArchive landing page.
HTML
6
star
13

QCEngineRecords

A collection of input and output files for QCEngine parsers.
Python
6
star
14

molssi-branding-guidelines

General guidelines for using MolSSI logo, colors, and fonts.
TeX
6
star
15

MQCAS

History information for the data in the MolSSI QCArchive Server (MQCAS)
Python
5
star
16

zenopy

An open-source Python library for Zenodo REST API
Python
5
star
17

molssi-hub

MolSSI Container Hub for Computational Molecular Science
Python
4
star
18

dash-coreui-components

CoreUI Components for Dash
CSS
4
star
19

EEX

The Energy Expression Exchange for Molecular Dynamics.
Python
4
star
20

mmic_autodock_vina

Tactic MMIC for molecular docking using AutoDock Vina
Python
4
star
21

QCArchiveDemos

Demo notebooks for QCArchive
Jupyter Notebook
3
star
22

QCArchiveInfrastructureWebsite

Jupyter Notebook
3
star
23

python_template

Do not use! Use Cookiecutter-CMS
Python
3
star
24

QCFractalDashboard

Dashboard for the QCFractal Server
CSS
3
star
25

mmic

Molecular Mechanics Interoperable Components
Python
3
star
26

kraken

A docker application for molecular libraries
PLpgSQL
3
star
27

QCArchiveWebapps

QCArchive website (production on Azure)
SCSS
2
star
28

mmic_optim_gmx

Tactic MMIC for energy optimization using gmx
Python
2
star
29

qcarchive-sphinx-theme

A sphinx theme for all QCArchive documentation.
CSS
2
star
30

ml_models_deploy

Machine Learning model deployment
Python
2
star
31

mmschema

A specification for particle & molecular mechanics
Python
1
star
32

mmic_openff

Tactic MMIC translator for OpenFF/MMSchema
Python
1
star
33

reference_handler

Python
1
star
34

dqm_client

Python
1
star
35

mmic_parmed

Tactic MMIC translator for ParmEd/MMSchema
Python
1
star
36

qikpropservice

Python
1
star
37

cmselemental

Basic models for the Computational Molecular Sciences (CMS)
Python
1
star
38

cookiecutter-mmic

Python
1
star
39

cookiecutter-docker

Cookiecutter template to create a Docker development environment.
Shell
1
star
40

QCFractalCompute

QCArchive/QCFractal distributed compute workers
Python
1
star