# Introduction¶

pychemcurv is a python package for structural analyzes of molecular systems or solid state materials focusing on the local curvature at an atomic scale. The local curvature is then used to compute the hybridization of molecular orbitals.

The main features of the library are available from a Plotly/Dash web application available here pychemapps.univ-pau.fr/mosica. The webapps allows to upload simple xyz files and compute the local geometrical properties and the hybridization properties.

Pyramidalization angle of a $$C_{28}$$ fullerene mapped on the structure with a colorscale.

## Features¶

Pychemcurv is divided in two parts. The first one is a standard python package which provides two main classes to compute the local curvature at the atomic scale and the hybridization of a given atom. Second, a Plotly/Dash web application is provided in order to perform a geometrical and electronic analyzes on molecules or materials.

The web application is available at pychemapps.univ-pau.fr/mosica. The webapps allows to upload simple xyz files and compute the local geometrical properties and the hybridization properties.

Some jupyter notebooks are provided in the notebooks/ folder and present use case of the classes implemented in this package. You can access to this notebooks online with binder.

## Citing pychemcurv¶

Julia Sabalot-Cuzzubbo, Germain Vallverdu, Jacky Cresson and Didier Bégué, Relating the shape of a molecule and its reactivity - Haddon’s Curvature and the Pyramidalization Angle

## Installation¶

Before installing pychemcurv it is recommanded to create a virtual environment using conda or virtuelenv.

### Short installation¶

Using pip directly from github, run

pip install git+git://github.com/gVallverdu/pychemcurv.git


Alternatively, you can first clone the pychemcurv repository

git clone https://github.com/gVallverdu/pychemcurv.git


and then install the module and its dependencies using

pip install .


### Full installation¶

If you want to use the web application locally or if you want to use nglview to display structures in jupyter notebooks you need to install more dependencies. The setup configuration provides the viz and app extras so, using pip, run one of

pip install .[app]
# or
pip install .[viz]
# or all extras
pip install .[app, viz]

# escape square bracket with zsh
pip install .$app, viz$


If you have installed nglview you have to enable the jupyter extension

jupyter-nbextension enable nglview --py --sys-prefix


The files requirements.txt and environment.yml are provided to setup a full environment with all dependencies.

pip install -r requirements.txt


or using conda

conda env create -f environment.yml


Do not forget to enable the jupyter nglview extension (see above).

### Install in developper mode¶

In order to install in developper mode, first create an environment (using one of the provided file for example) and then install using pip

pip install -e .[app, viz]


If you want to build the documentation you also need to install sphinx.

## Run the web application¶

The app/ folder contains a dash application that aims to use the pychemcurv package and visualize the geometrical or chemical atomic quantities mapped on the chemical structure of your system.

The application is available online at this address: https://pychemapps.univ-pau.fr/mosaica/

Demo video:

In order to run the application locally, you have to install all the dependencies and in particular dash and dash-bio. You can do that from the files requirements.txt or environment.yml.

Then to run the application, change to the app/ directory and run the app.py file.

[user@computer] (curv) > \$ python app.py
Running on http://127.0.0.1:8050/mosaica/
Debugger PIN: 065-022-191
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on


Open the provided url to use the application.

You can switch off the debug mode by setting debug=False on the last line of the app.py file.

## Licence and contact¶

This software was developped at the Université de Pau et des Pays de l’Adour (UPPA) in the Institut des Sciences Analytiques et de Physico-Chimie pour l’Environement et les Matériaux (IPREM) and the Institut Pluridisciplinaire de Recherches Appliquées (IPRA) and is distributed under the MIT licence.

Authors