Skip to content

MoleCalc is a cloud-based web interface that allows anyone to build molecules and calculate molecular properties in the cloud

License

Notifications You must be signed in to change notification settings

mscloudlab/molecalc

 
 

Repository files navigation

MoleCalc - The Molecule Calculator

MoleCalc is now publically available at molecalc.cloud!

MoleCalc is based on the MolCalc project (https://github.com/jensengroup/molcalc), a web-based chemistry teaching tool available at molcalc.org that was originally built by the Jensen Group at the University of Copenhagen. MoleCalc is a separate project currently being developed by Dr. Sean L. Seyler and led by Prof. Jeffery Yarger in the Yarger Research Group at the School of Molecular Sciences at Arizona State University. MoleCalc allows chemists to build small molecules and estimate key molecular properties using research-grade quantum chemistry software. Currently, MoleCalc can provide, in a matter of minutes or seconds, a decent sense of the physical and chemical properties of a chosen molecule, such as

  • energy-minimized molecular structure
  • electronic structure and molecular orbitals
  • thermochemical properties of the molecular gas form
  • vibrational modes and their frequencies

screenshot

Important: MoleCalc, is heavily based on the original molcalc.org project , is under active development! This ReadMe is also not guaranteed to reflect the most recent state of the project, so please be patient!

MoleCalc is a small web-based interface for doing small-scale quantum chemistry calculation with the intent of giving chemical and physical intuition to students, from high-school to university.

Installation

MoleCalc is a Python based web-service, so dependencies include python packages, javascript modules and at least one backend quantum chemistry program (currently GAMESS, with plans to incorporate new capabilities using Orca).

To setup the Python environment please use Anaconda, because we use RDKit in the background.

# Install anaconda (only needed if you don't already have a Python enviroment with conda)
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda3.sh
bash miniconda3.sh -b -p /opt/miniconda3

with the Python environment we can setup MoleCalc. Note that most of the steps are inserted into the Makefile.

  1. Clone down the repository
git clone https://github.com/mscloudlab/molecalc --depth 1
cd molecalc
  1. Create the Python environment using conda and pip and the provided environment.yml and requirements.txt files.
# make env chemhelp
conda env create -f environment.yml -p env
pip install -r requirements.txt
  1. Install molecalc in ./env and ppqm locally in the molecalc directory:
pip install -e .
git clone --branch main git@github.com:mscloudlab/ppqm.git ppqm.git
ln -s ppqm.git/ppqm ppqm
  1. Download the JavaScript and frontend libraries, using the scripts. You need unzip and wget installed. All JavaScript libraries will be installed in the molcalc/static folder.
# make setup_assets
bash scripts/setup_chemdoodle.sh
bash scripts/setup_jsmol.sh
bash scripts/setup_fontawesome.sh
bash scripts/setup_jquery.sh
bash scripts/setup_rdkit.sh
  1. Set up GAMESS. You need to download and compile GAMESS.
  1. Set up the PasteDeploy configuration (*.ini file) by copying the example and editing the [scr] and [gamess] sections to reflect the corresponding (csh) variables SCR, USERSCR, and GMSPATH specified in your rungms script. One might opt to create a copy of rungms (say, molcalc_rungms) so as to specify different scratch directories to be used when GAMESS is run by MoleCalc; in this case, the rungms variable in the [gamess] section of your *.ini file should point to this new copy (molcalc_rungms).
cp example.development.ini development.ini
# edit development.ini
  1. Test using pytest to check that the configuration for GAMESS is set up correctly
# make test
python -m pytest tests
  1. MoleCalc should be ready. Serve the server by
# make serve
env/bin/pserve development.ini --reload
  1. In your favorite browser, type localhost:6543 (or whatever corresponding ip/port was specified in development.ini) in the URL bar and have fun!

Dependencies

rdkit, pyramid, fontawesome, jquery, chemdoodle, jsmol, gamess

TODO

Remove connections from javascript libs

Failed to load resource: net::ERR_INTERNET_DISCONNECTED
ichemlabs.cloud.chemdoodle.com/icl_cdc_v070001/WebHQ

TODO computation

Extend the computations for molcalc to include

  • spectrum

** H/C-NMR ** mass spectrum ** vibrational

  • open shell systems

TODO Better texts

Tutorials and assignment examples (with answers)

Better FAQ interface

Known Problems

If rdkit has problems finding libxrender.so then you need to install

sudo apt install libxrender-dev

or

./env/bin/conda install nox
./env/bin/conda install cairo

About

MoleCalc is a cloud-based web interface that allows anyone to build molecules and calculate molecular properties in the cloud

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 32.5%
  • CSS 25.1%
  • Python 24.1%
  • JavaScript 16.1%
  • Makefile 1.5%
  • Shell 0.7%