matador

matador: a Python library for analysing, curating and performing high-throughput density-functional theory calculations - Published in JOSS (2020)

https://github.com/ml-evs/matador

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    4 of 9 committers (44.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

computational-chemistry materials-science python

Keywords from Contributors

blackhole gravitational-lenses meshes pypi annotations simulations hydrology stellar exoplanets pde

Scientific Fields

Mathematics Computer Science - 88% confidence
Sociology Social Sciences - 87% confidence
Economics Social Sciences - 85% confidence
Last synced: 4 months ago · JSON representation ·

Repository

⚗️ matador is an aggregator, manipulator and runner of first-principles calculations, written with a bent towards battery 🔋 electrode materials.

Basic Info
Statistics
  • Stars: 33
  • Watchers: 2
  • Forks: 20
  • Open Issues: 45
  • Releases: 18
Topics
computational-chemistry materials-science python
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners

README.rst

=======
matador
=======

| |PyPI Version| |GH Actions| |Binder|
| |Documentation Status| |MIT License| |Coverage Status|
| |JOSS| |Zenodo|


matador is an aggregator, manipulator and runner of first-principles calculations, written with a bent towards battery electrode materials.
The source can be found on `GitHub `_ and online documentation is hosted at `ReadTheDocs `_.

Example Jupyter notebooks and tutorials can be found `online `_ or in the ``examples/`` folder of the matador source code.

Written & maintained by `Matthew Evans `_ (2016-).


.. image:: docs/src/img/hull.png
   :name: LiPZn
   :align: center

Installation
------------

In the simplest case (e.g. you already have Python 3.7+ set up), ``pip install matador-db`` is sufficient to get up and running, preferably in a fresh virtual environment.

Upgrading to the latest version should be as simple as ``pip install -U matador-db``.

For an editable development installation, clone the source code from this repository and run ``pip install -e .`` from the matador folder. Tests can be run on your local machine with ``python -m unittest discover -v -b`` or simply with ``py.test`` after test dependencies have been installed with ``pip install .[test]``. In order to test CASTEP-running functionality, the tests will look for an MPI-enabled executable named ``castep`` on your ``$PATH``.

Further instructions can be found in the `Installation instructions `_.


Usage
------

``matador`` is primarily a Python *library* that can be used inside Python scripts/modules to create a custom workflow. There are, however, several command-line scripts bundled with ``matador`` itself. All of these scripts are listed under `CLI Usage `_.

For basic command-line usage, please explore the help system for each command. Common workflows can be found inside ``examples/`` and in the `online docs `_.

Please consult the full `Python API documentation `_ for programmatic usage.

Core functionality
-------------------

The API has many features that can be explored in the examples and API documentation. As a summary, ``matador`` can be used for:

- Scraping of CASTEP (and Quantum Espresso) input/output files into flexible Python dictionaries/models.
- The creation and curation of MongoDB collections of geometry optimisation calculations, with a powerful querying CLI/API.
- Customisable, publication-ready plots for all models, e.g. phase diagrams, PDF, PXRD, voltage profiles, electronic/vibrational bandstructures etc.
- High-throughput geometry optimisations, electronic and vibrational properties using CASTEP (and Quantum Espresso) with ``run3``. Tested on several supercomputers. ``run3`` is designed primarily for simple workflows and offers little in the way of tools for creating complex workflows; if this is your use case, then check out some of the other codes listed below.
- Creation of phase diagrams and electrochemical voltage profiles from the results of DFT calculations.

This functionality is achieved by interfacing with much of the standard scientific Python stack (`NumPy `_, `SciPy `_, `matplotlib `_), some more materials-specific packages (`spglib `_, `SeeK-path `_, `periodictable `_) and other general packages (`pymongo `_, `python-ternary `_, `numba `_).

Similar packages
----------------

This package is by no means unique in its functionality or goals. Below is a list of similar packages and an overview of where they overlap with ``matador``:

- `ASE `_: manipulation of structures, parsing and exporting files, running jobs and local databases with ``ase-db``. An interface is provided to ASE's ``Atoms`` object.
- `pymatgen `_: similar to ASE, with a focus on the VASP DFT code. An interface is provided to pymatgen's ``Structure`` object. Local databases can be constructed with the `pymatgen-db `_ add-on and high-throughput workflows are achieved with `Fireworks `_.
- `AiiDA `_: high-throughput job running, provenance tracking and database storage for many simulation codes.
- `sumo `_ publication quality plotting, primarily for VASP but also with support for other codes.

If you think this list is outdated, incorrect or simply incomplete, then please raise an issue!

Citing matador
--------------

If you use matador in your work, we kindly ask that you cite

    Matthew L. Evans, Andrew J. Morris, *matador: a Python library for analysing, curating and performing high-throughput density-functional theory calculations* Journal of Open Source Software, 5(54), 2563 (2020)
    `10.21105/joss.02563 `_

Source code archives for all versions above 0.9 can be found at Zenodo `DOI 10.5281/zenodo.3908573 `_.


.. |PyPI Version| image:: https://img.shields.io/pypi/v/matador-db?label=PyPI&logo=pypi
   :target: https://pypi.org/project/matador-db/
.. |GH Actions| image:: https://img.shields.io/github/actions/workflow/status/ml-evs/matador/ci.yml?branch=master
   :target: https://github.com/ml-evs/matador/actions?query=branch%3Amaster
.. |MIT License| image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/ml-evs/matador/blob/master/LICENSE
.. |Coverage Status| image:: https://img.shields.io/codecov/c/gh/ml-evs/matador/master?logo=codecov
   :target: https://codecov.io/gh/ml-evs/matador
.. |Documentation Status| image:: https://readthedocs.org/projects/matador-db/badge/?version=stable
   :target: https://matador-db.readthedocs.io/en/stable/?badge=stable
.. |Zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3908573.svg
   :target: https://doi.org/10.5281/zenodo.3908573
.. |Binder| image:: https://mybinder.org/badge_logo.svg
   :target: https://mybinder.org/v2/gh/ml-evs/matador/master?filepath=examples/interactive
.. |JOSS| image:: https://joss.theoj.org/papers/4d0eea9bea4362dec4cb6d62ebccc913/status.svg
   :target: https://joss.theoj.org/papers/4d0eea9bea4362dec4cb6d62ebccc913

Owner

  • Name: Matthew Evans
  • Login: ml-evs
  • Kind: user
  • Location: Brussels, BE / Norfolk, UK
  • Company: @modl-uclouvain / @matgenix / @datalab-industries

Postdoc in comp. matsci. (@modl-uclouvain @Matgenix @Materials-Consortia) and full-stack materials research data (@the-grey-group @datalab-org)

JOSS Publication

matador: a Python library for analysing, curating and performing high-throughput density-functional theory calculations
Published
October 27, 2020
Volume 5, Issue 54, Page 2563
Authors
Matthew L. Evans ORCID
Theory of Condensed Matter Group, Cavendish Laboratory, University of Cambridge, J. J. Thomson Avenue, Cambridge, CB3 0HE, U.K.
Andrew J. Morris ORCID
School of Metallurgy and Materials, University of Birmingham, Edgbaston, Birmingham, B15 2TT, U.K.
Editor
Jeff Gostick ORCID
Tags
density-functional theory ab initio crystal structure prediction materials discovery databases castep quantum espresso mongodb

Citation (CITATION.cff)

# YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.2.0
message: If you use this software, please cite the following article and versioned archive.
title: "matador"
doi: 10.5281/zenodo.3908573
authors:
- given-names: Matthew L.
  family-names: Evans
  affiliation: University of Cambridge
  orcid: https://orcid.org/0000-0002-1182-9098
repository-code: https://github.com/ml-evs/matador
url: https://github.com/ml-evs/matador
type: software
license: MIT
preferred-citation:
  type: article
  authors:
  - given-names: Matthew L.
    family-names: Evans
    affiliation: University of Cambridge
    orcid: https://orcid.org/0000-0002-1182-9098
  - given-names: Andrew J.
    family-names: Morris
    affiliation: University of Birmingham
    orcid: https://orcid.org/0000-0001-7453-5698
  doi: "10.21105/joss.02563"
  journal: "Journal of Open Source Software"
  title: "matador: a Python library for analysing, curating and performing high-throughput density-functional theory calculations"
  volume: 5
  number: 54
  year: 2020

GitHub Events

Total
  • Release event: 3
  • Watch event: 4
  • Delete event: 18
  • Issue comment event: 19
  • Push event: 21
  • Pull request event: 36
  • Create event: 22
Last Year
  • Release event: 3
  • Watch event: 4
  • Delete event: 18
  • Issue comment event: 19
  • Push event: 21
  • Pull request event: 36
  • Create event: 22

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 2,727
  • Total Committers: 9
  • Avg Commits per committer: 303.0
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Matthew Evans m****8@c****k 2,664
Matthew Evans m****2@g****m 20
Angela Harper a****1@c****k 14
dependabot[bot] 4****] 13
JordD04 J****l@h****m 11
matthew m****w@c****k 2
Arfon Smith a****n 1
Matthew Evans m****8@l****) 1
Angela Harper a****1@c****k 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 13
  • Total pull requests: 166
  • Average time to close issues: 4 months
  • Average time to close pull requests: 7 months
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 0.77
  • Average comments per pull request: 1.0
  • Merged pull requests: 33
  • Bot issues: 1
  • Bot pull requests: 127
Past Year
  • Issues: 0
  • Pull requests: 35
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 months
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.11
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 33
Top Authors
Issue Authors
  • ml-evs (8)
  • MJCliffe (2)
  • benedictsaunders (1)
  • janosh (1)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (125)
  • ml-evs (31)
  • harpaf13 (3)
  • dquigley533 (2)
  • JordD04 (2)
  • JPDarby (1)
Top Labels
Issue Labels
bug (6) suggestion (2) dependency_updates (2) build (1)
Pull Request Labels
dependency_updates (113) CI (9) enhancement (3) bug (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,298 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 23
  • Total maintainers: 1
proxy.golang.org: github.com/ml-evs/matador
  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago
pypi.org: matador-db

MATerial and Atomic Databases Of Refined structures.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 1,298 Last month
Rankings
Forks count: 8.5%
Dependent repos count: 8.9%
Dependent packages count: 10.1%
Average: 11.7%
Stargazers count: 11.8%
Downloads: 18.9%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
matador/plugins/qmpy_interface/extra_requirements.txt pypi
  • numpy *
  • pymongo *
  • qmpy *
  • tqdm *
requirements/dev_requirements.txt pypi
  • pre-commit * development
requirements/docs_requirements.txt pypi
  • ipykernel *
  • jinja2 *
  • nbsphinx *
  • sphinx *
  • sphinx-argparse *
  • sphinx-rtd-theme *
  • sphinxcontrib-napoleon *
requirements/optional_requirements.txt pypi
  • ascii_graph *
  • ase *
  • networkx *
  • pymatgen >=2022,<2023
  • requests *
  • seaborn >=0.10
  • statsmodels >=0.11
requirements/requirements.txt pypi
  • matplotlib >=3.0,<3.6
  • numba >=0.55<1
  • numpy >=1.20
  • psutil *
  • pymongo *
  • python-ternary *
  • pyyaml *
  • scipy *
  • seekpath *
  • spglib >=1.16,<3
  • tqdm *
requirements/test_requirements.txt pypi
  • codecov * test
  • coverage * test
  • mongomock * test
  • nbval * test
  • pytest * test
  • pytest-cov * test
requirements/viz_requirements.txt pypi
  • ase *
  • nglview *