The Electronic Chirality Measure (ECM) is a quantity that measures the chirality of any (chiral) molecular system. It was proposed by Luca Bellarosa and Francesco Zerbetto in 2003 [1]. In 2023 [2], J. J. Aucar, A. Stroppa, and G. A. Aucar showed a novel, strong, and positive correlation between the energy difference of the total electronic energies of two enantiomers and ECM, supporting a subtle interplay between the weak forces acting within the nuclei of a given molecule and its chirality.
The Electronic Chirality Measure (ECM) is an end-to-end package implemented in Python 3.9 to measure the mentioned quantity. It also has some development interface with the PySCF and DIRAC packages.
The ecm package uses simple input files in xyz format. The so-called nearest asymmetric structure is also needed. It can be easily obtained from this website. The package also allows the user to perform some simple plots to have a better understanding of the geometry of the systems under study.
The ECM is calculated computing the electronic wave function using a standard and powerful quantum chemistry package such as PySCF, the Python-based Simulations of Chemistry Framework. PySCF is an efficient platform for quantum chemistry calculations that can be used to simulate the properties of molecules and crystals using mean-field and post-mean-field methods [3].
The ecm main purpose is to be a user-friendly package, easy to install, import, and run, available on most platforms and open-source. As a Python module, ecm can be integrated into any workflow. This package has code reviews with unit testing and continuous integration, code coverage tools, and automatically keeps documentation up–to–date.
The basic example demonstrates some of these features.
This package allows to:
- Perform basic plots in order to analyze the systems under study.
- Import and export molecules from/to xyz and DIRAC format.
- Calculate CCM and ECM in a single structure.
- Calculate CCM and ECM in several structures at once and in the virtual mirroring path of each one.
Read more on ECM publications.
First, you should install the required python packages. They can be found in the file requirements.txt
. Developers should install requirements_dev.txt
.
pyECM is a Python 3.9 package
-
Download this Git Repository
-
It is recommended to install a virtual environment:
python -m venv venv_pyecm
-
Activate the virtual environment:
source venv_pyecm/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run pyECM (check some examples below)
For developers,
-
Install dependencies:
pip install -r requirements.txt -r requirements_dev.txt
-
Run all test:
tox==3.24.3
tox
To create local html pages,
-
Get into "docs" folder
-
Create html pages
make html
A detailed workflow is provided in the workflow
directory. It has a list of Jupyter notebooks with detailed examples about pyECM tools and capabilities.
- Getting started with some basic plots.
01.Plots.ipynb
- Calculation of ECM in a simple molecule.
02.ECM_one-molecule.ipynb
- Calculation of ECM in several molecules.
04.ECM_several-molecules.ipynb
Some of the ideas to keep growing are:
- Obtain the nearest achiral structure within the code.
The easiest way to get help with the project is through the github project.
GNU General Public License v3 (GLPv3)
Main authors: Juan Jose Aucar ([email protected])
Advisors: Gustavo A. Aucar and Alessandro Stroppa
Under development
The following should be cited in publications utilizing the PyECM program package:
A Relationship between the Molecular Parity-Violation Energy and the Electronic Chirality Measure, J. J. Aucar, A. Stroppa, G. A. Aucar (2023), J. Phys. Chem. Lett., 15, 234-240 doi:10.1021/acs.jpclett.3c03038
PyECM23 Aucar, J. J. (2023), Zenodo. doi: 10.5281/zenodo.10149807
PySCF: the Python‐based simulations of chemistry framework, Q. Sun, T. C. Berkelbach, N. S. Blunt, G. H. Booth, S. Guo, Z. Li, J. Liu, J. McClain, E. R. Sayfutyarova, S. Sharma, S. Wouters, G. K.-L. Chan (2018), WIREs Comput. Mol. Sci., 8: e1340. doi:10.1002/wcms.1340
Please submit tickets on the issues page.