Giter Club home page Giter Club logo

molcalc's Introduction

MolCalc - The Molecule Calculator

screenshot

Important! Currently version 2.0 is under construction. Version 1.3 is still hosted at molcalc.org and source is available at github.com/jensengroup/molcalc-1.3.

The molecule calculator is a small web-based interface for doing small-scale quantum chemistry calculation with the intent of giving chemical intuition to students, from high-school to university. Hosted at molcalc.org.

Installation

MolCalc is a Python based web-service, so dependencies includes python-packages, javascript-modules and a backend quantum chemistry program (for now it will be GAMESS).

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 MolCalc. Note that most of the steps are inserted into the Makefile.

  1. Clone down the repository
git clone https://github.com/jensengroup/molcalc --depth 1
cd molcalc
  1. Create the Python environment using conda and pip.
# make env chemhelp
conda env create -f environment.yml -p env
pip install -r requirements.txt
git clone https://github.com/ppqm/ppqm ppqm.git --depth 1
ln -s ppqm/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. Setup GAMESS. You need to download and compile GAMESS.
  1. Setup configuration by copying the example and edit. Especially note to edit the GAMESS section to reflect the setup of your setup.
cp example.development.ini development.ini
# edit development.ini
  1. Test. Use the unittest to check that the configuration for GAMESS is setup correctly
# make test
python -m pytest tests
  1. You are ready. Serve the server by
# make serve
env/bin/pserve development.ini --reload

And molcalc should now be available on localhost:6543, based on the settings of development.ini.

Dependencies

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

Setup on Apache server

Easy config is just to host the service on port and use ProxyPass, for example for port 6543.

<VirtualHost *:80>
      ServerName hostname.com
      ProxyPreserveHost On
      ProxyPass / http://127.0.0.1:6543/
      ProxyPassReverse / http://127.0.0.1:6543/
</VirtualHost>

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

apt install -y libxrender-dev

or

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

molcalc's People

Contributors

charnley avatar

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.