• Stars
    star
    141
  • Rank 258,443 (Top 6 %)
  • Language
    Python
  • License
    Other
  • Created about 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Crystal Toolkit is a framework for building web apps for materials science and is currently powering the new Materials Project website.

Crystal Toolkit

Interested in contributing?

A current list of new contributor issues can be seen here. If you would like a new-contributor issue assigned, get in touch with project maintainers!

Status

Tests Visual Regression Test Status Docker Build Status Release pre-commit.ci status arXiv link

Installation

pip install crystal-toolkit

Documentation

Documentation can be found at docs.crystaltoolkit.org.

Example Apps

Description โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒ
bandstructure.py
Demonstrates capabilities of the BandstructureAndDosComponent component
Launch Codespace
basic_hello_structure.py
Uses StructureMoleculeComponent to show a simple pymatgen structure
Launch Codespace
basic_hello_structure_interactive.py
Adds a button to the basic_hello_structure.py to toggle between two structures interactively
Launch Codespace
basic_hello_world.py
Bare-bones example showing how to render the text "Hello scientist!" in Dash app
Launch Codespace
diffraction.py
Demonstrates capabilities of the XRayDiffractionComponent component
Launch Codespace
diffraction_dynamic.py
Adds a button to diffraction.py to load a new structure on the fly
Launch Codespace
diffraction_empty.py
Shows XRayDiffractionComponent can be mounted without a passing structure
Launch Codespace
kwarg_inputs.py
Shows off boolean input (aka toggle), matrix input and slider input components
Launch Codespace
phase_diagram.py
Combines MPRester.get_entries_in_chemsys() and the PhaseDiagram component to plot the Li-O-Co convex hull
Launch Codespace
pourbaix.py
Combines MPRester.get_pourbaix_entries() and the PourbaixDiagramComponent to plot the Fe-CO Pourbaix diagram
Launch Codespace
structure.py
Show cases multiple layout options for the StructureMoleculeComponent
Launch Codespace
structure_magnetic.py
Plots a structure with magnetic moments
Launch Codespace
matbench_dielectric_structure_on_hover.py
Creates a scatter plot hooked up to a StructureMoleculeComponent and DataTable that show the structure and highlight the table row corresponding to the hovered scatter point.
Launch Codespace
matbench_dielectric_datatable_xrd.py
Renders a DataTable hooked up to a StructureMoleculeComponent and XRayDiffractionComponent so that hovering a table row will show the corresponding structure and its XRD pattern.
Launch Codespace
transformations.py
Combines StructureMoleculeComponent and AllTransformationsComponent to apply interactive structure transformations
Launch Codespace
transformations_minimal.py
Shows how to restrict the types of allowed transformations
Launch Codespace
write_structure_screenshot_to_file.py
Shows to save interactive structure views as image files
Launch Codespace

Team and Contribution Policy

The Crystal Toolkit Development Team includes:

New contributors are welcome, please see our Code of Conduct. If you are a new contributor please modify this README in your Pull Request to add your name to the list.

Future of This Repository

The Crystal Toolkit repository is home of an object-oriented Python framework for rendering materials science data based on the schema employed by the Materials Project.

The custom Plotly Dash components that power Crystal Toolkit are now maintained in a separate repository for ease of development, as well as the custom React components. These components were formerly included in the Crystal Toolkit repo, and are still considered part of Crystal Toolkit in spirit.

There are some important issues still to be resolved, as well as general improvements to documentation and test suite planned. Some currently-private code is also planned to be re-incorporated into the public Crystal Toolkit repo.

Acknowledgements

Thank you to all the authors and maintainers of the libraries Crystal Toolkit depends upon, and in particular pymatgen for crystallographic analysis and Dash from Plotly for their web app framework.

Thank you to the NERSC Spin service for hosting the app and for their technical support.

Cite

To cite this work, see https://arxiv.org/abs/2302.06147 and citation.cff.

Contact

Please contact @mkhorton with any queries or add an issue on the GitHub Issues page.

More Repositories

1

pymatgen

Python Materials Genomics (pymatgen) is a robust materials analysis code that defines classes for structures and molecules with support for many electronic structure codes. It powers the Materials Project.
Python
1,359
star
2

fireworks

The Fireworks Workflow Management Repo.
Python
322
star
3

atomate2

atomate2 is a library of computational materials science workflows
Python
146
star
4

mapidoc

Public repo for Materials API documentation
Jupyter Notebook
140
star
5

custodian

A simple, robust and flexible just-in-time job management framework in Python.
Python
127
star
6

workshop

The Materials Project Workshop Curriculum
Jupyter Notebook
111
star
7

api

New API client for the Materials Project
Python
102
star
8

matbench

Matbench: Benchmarks for materials science property prediction
Python
95
star
9

jobflow

jobflow is a library for writing computational workflows.
Python
83
star
10

reaction-network

Reaction Network is a Python package for predicting likely inorganic chemical reaction pathways using graph theoretical methods. Project led by @mattmcdermott (Lawrence Berkeley National Lab).
Python
79
star
11

mpmorph

MPmorph is a collection of tools to run and analyze ab-initio molecular dynamics (AIMD) calculations run with VASP, and is currently under development. It relies heavily on tools developed by the Materials Project (pymatgen, custodian, fireworks) and atomate.
Python
62
star
12

emmet

Be a master builder of databases of material properties. Avoid the Kragle.
Python
52
star
13

pymatgen-db

Pymatgen-db provides an addon to the Python Materials Genomics (pymatgen) library (https://pypi.python.org/pypi/pymatgen) that allows the creation of Materials Project-style databases for management of materials data.
Python
48
star
14

maggma

MongoDB aggregation machine
Python
38
star
15

MPContribs

Platform for materials scientists to contribute and disseminate their materials data through Materials Project
Jupyter Notebook
34
star
16

pyrho

Python
33
star
17

pymatgen-analysis-defects

Defect analysis modules for pymatgen
Python
28
star
18

MPWorks

merges pymatgen, custodian, and FireWorks into a custom workflow for Materials Project
Python
24
star
19

dash-mp-components

Plotly Dash components developed by the Materials Project
Python
22
star
20

workshop-2017

Assets for the 2017 Materials Project workshop
Jupyter Notebook
18
star
21

mp-react-components

A suite of React components for the Materials Project, developed for use in Crystal Toolkit and the Materials Project public website.
TypeScript
17
star
22

foundation

Ruby
16
star
23

docs

Materials Project Documentation
14
star
24

pymatgen-analysis-alloys

pymatgen-analysis-alloys is an add-on package for pymatgen intended to contain useful classes for describing alloy systems and analyzing data relevant to these systems.
Python
12
star
25

workshop-2016

Assets for the Materials Project workshop in Aug 2016
HTML
12
star
26

rubicon

Workflow for Electrolyte Genome Project.
Python
8
star
27

pymatgen-io-validation

Comprehensive input/output validator. Made with the purpose of ensuring VASP calculations are compatible with Materials Project data, with possible future expansion to cover other DFT codes.
Python
8
star
28

mongogrant

grant username and password credentials for roles on mongo databases via email verification
Python
7
star
29

webtzite

A prototypal structure for serving materials data
Python
6
star
30

public-docs

The latest documentation for the Materials Project.
6
star
31

gbml

Gradient Boosting Machine-Locfit: A GBM framework using local regresssion via Locfit.
C
6
star
32

pymatgen-addon-template

A template for writing add-on namespace packages for pymatgen
Python
5
star
33

build-a-battery

interactive battery demo built on meteor
CSS
4
star
34

.github

3
star
35

MPCite

Continuous and High-Throughput Allocation of Digital Object Identifiers for Materials Data in the Materials Project
Jupyter Notebook
3
star
36

MPContribsUsers

Contributor Modules to enable their data submissions via MPContribs
Python
2
star
37

mp-jupyter-docker

Docker build for Materials Project Jupyter container
Dockerfile
2
star
38

binder

A ready-to-use environment for trying the Materials Project software stack based on the Binder (https://mybinder.org) service.
Jupyter Notebook
2
star
39

mp-jupyterhub

Jupyterhub for spinning up materials project notebook environments
Python
2
star
40

MPenv

create a virtual environment for running FireWorks within Materials Project
Python
2
star
41

www-issues

Public issue tracker for www.materialsproject.org
1
star
42

mp_docker

docker image for materials_django
Dockerfile
1
star
43

status

Status page for Materials Project website and services
1
star