Code Monkey home page Code Monkey logo

molecalc's Introduction

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 [email protected]: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

molecalc's People

Contributors

charnley avatar mscloudlab avatar sseyler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

sseyler

molecalc's Issues

Issues calculating properties on AM1 RM1 and PM6 theory levels

I am trying to calculate quantum thermodynamic properties for Lauric acid. Whenever I try to run MoleCalc on any Theory Level other than PM3, MoleCalc hangs and becomes unresponsive. The issue doesn't occur with any other molecule and occurs whether done on the http or https version of the website.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.