GithubHelp home page GithubHelp logo

pychemia's Introduction

[Build Status] (https://travis-ci.org/MaterialsDiscovery/PyChemia) PyPI version [Coverage Status] (https://coveralls.io/github/MaterialsDiscovery/PyChemia?branch=master) Documentation Status

PyChemia

Python Materials Discovery Framework

![PyChemia](https://raw.githubusercontent.com/MaterialsDiscovery/PyChemia/master/docs/images/PyChemia_Small.png)

PyChemia is an open-source Python Library for materials structural search. The purpose of the initiative is to create a method agnostic framework for materials discovery and design using a variety of methods from Minima Hoping to Soft-computing based methods. PyChemia is also a library for data-mining, using several methods to discover interesting candidates among the materials already processed.

The core of the library is the Structure python class, it is able to describe periodic and non-periodic structures. As the focus of this library is structural search the class defines extensive capabilities to modify atomic structures.

The library includes capability to read and write in several ab-initio codes. At the level of DFT, PyChemia support VASP, ABINIT and Octopus. At Tight-binding level development is in process to support DFTB+ and Fireball. This allows the library to compute electronic-structure properties using state-of-the-art ab-initio software packages and extract properties from those calculations.

PyChemia requirements

Before installing PyChemia, you may need to first install a few critical dependencies

Mandatory

  1. Python >= 2.7 or Python >= 3.3 The library is tested for versions of Python 2.7, 3.3, 3.4 and 3.5

    https://travis-ci.org/MaterialsDiscovery/PyChemia

  2. Numpy >= 1.11 NumPy is a fundamental package for any Python scientific library. Numpy arrays are essential for efficient array manipulation. Many distributions come with relatively old version of numpy, so you should install a more recent version.

  3. SciPy >= 0.17 SciPy is used for many linear algebra and FFT calls Most distros comes with scipy 0.13 or below. PyChemia uses scipy.spatial that have been actively developed since version 0.15, we have tested PyChemia on 0.17.

  4. spglib > 1.9.4 Spglib is used to determine symmetry groups for structures Many changes have been introduced recently, you should install it from the github repository as spglib-1.9.4 is not available on pip for that version. You can install using pip by refering to the git repository

    pip install -e "git+https://github.com/atztogo/spglib.git#egg=spglib&subdirectory=python"

    or

    pip install -e "git+https://github.com/atztogo/spglib.git#egg=spglib&subdirectory=python" --user

  5. future This is a library that offers some easy hacks to support python 2.7 and python 3 on the same code source. The library is easy to install with pip

    pip install future

    or

    pip install future --user

Optional Highly Recomended

  1. pymongo > 3.2 At least for structural search PyChemia relies strongly in MongoDB and its python driver. Any version beyond 3.0 should be fine. We have tested pychemia on pymongo-3.2.2

    pip install pymongo

    or

    pip install pymongo --user

  2. [nose] (https://nose.readthedocs.io/en/latest/) >= 1.3.7 A python library for testing, simply go to the source directory and execute

    nosetests -v

  3. Matplotlib >= 1.2 Used to plot band structures, densities of states and other 2D plots

Optional

  1. Pandas Library for Data Analysis used by the datamining modules

  2. PyMC PyMC is a python module that implements Bayesian statistical models and fitting algorithms Important for the datamining capabilities of PyChemia

  3. Mayavi >= 4.1 Some basic visualization tools are incorporated using this library

  4. ScientificPython >2.6 This library is used for reading and writing NetCDF files

  5. pymatgen >= 2.9 pymatgen is an excellent library for materials analysis

  6. ASE Atomic Simulation Environment is another good library for ab-initio calculations. Quite impressive for the number of ab-initio packages supported

  7. qmpy The Python library behind the Open Quantum Materials Database. The OQMD is a database of DFT calculated structures. For the time being the database contains more than 300000 structures, with more than 90% of them with the electronic ground-state computed.

  8. [coverage] (https://bitbucket.org/ned/coveragepy) >= 4.0.1 Provides code coverage analysis

  9. python-coveralls To submit coverage information to coveralls.io

    https://coveralls.io/github/MaterialsDiscovery/PyChemia

Documentation

Instructions for installation, using and programming scripts with PyChemia can be found on two repositories for documentation:

Structure of the Library

PyChemia

PyChemia

Contributors

  1. Prof. Aldo H. Romero [West Virginia University] (Project Director)

  2. Guillermo Avendaño-Franco [West Virginia University] (Basic Infraestructure)

  3. Adam Payne [West Virginia University] (Bug fixes (Populations, Relaxators, and KPoints) )

  4. Irais Valencia Jaime [West Virginia University] (Simulation and testing)

  5. Sobhit Singh [West Virginia University] (Data-mining)

  6. Francisco Muñoz (Universidad de Chile)

pychemia's People

Contributors

ahromero avatar apayne9 avatar fvmunoz avatar guilleaf avatar

Stargazers

 avatar

Watchers

 avatar  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.