xtal2png
Encode/decode a crystal structure to/from a grayscale PNG image for direct use with image-based machine learning models such as Imagen, DALLE2, or Palette.[1]
Star
Follow @sgbaird
Issue
Discuss
The latest advances in machine learning are often in natural language such as with long
short-term memory networks (LSTMs) and transformers or image processing such as with
generative adversarial networks (GANs), variational autoencoders (VAEs), and guided
diffusion models; however, transfering these advances to adjacent domains such as
materials informatics often takes years. xtal2png
encodes and decodes crystal
structures via grayscale PNG images by writing and reading the necessary information for
crystal reconstruction (unit cell, atomic elements, atomic coordinates) as a square
matrix of numbers, respectively. This is akin to making/reading a QR code for crystal
structures, where the xtal2png
representation is invertible. The ability to feed these
images directly into image-based pipelines allows you, as a materials informatics
practitioner, to get streamlined results for new state-of-the-art image-based machine
learning models applied to crystal structure.
Results manuscript coming soon!
Contents
- Overview
- Examples
- Converting interchangeably between crystal structure and a grayscale PNG image (basic
xtal2png
tutorial) - Selecting Default Parameter Ranges via Materials Project
- Selecting Default Parameter Ranges via Materials Project (Conventional Unit Cell)
- Classification on
matbench_mp_is_metal
usingxtal2png
representation of crystal structures - XGBoost regression for
matbench_mp_e_form
task using basic crystallographic features - Using
xtal2png
withdenoising_diffusion_pytorch
- Using
xtal2png
withimagen-pytorch
- Denoising Diffusion PyTorch Example (script)
- Denoising Diffusion PyTorch Pretrained Sample (script)
- Imagen PyTorch Example (script)
- Converting interchangeably between crystal structure and a grayscale PNG image (basic
- Contributions & Help
- License
- Authors
- Changelog
- v0.9.4 - 2022-07-29 21:41:07
- v0.9.3 - 2022-07-29 21:25:35
- v0.9.2 - 2022-07-29 16:21:51
- v0.9.1 - 2022-07-28 22:06:22
- v0.8.0 - 2022-07-08 07:13:50
- v0.7.0 - 2022-06-23 04:40:25
- v0.6.3 - 2022-06-23 04:09:02
- v0.6.2 - 2022-06-20 18:47:21
- v0.5.1 - 2022-06-18 02:40:01
- v0.5.0 - 2022-06-17 04:13:38
- v0.4.0 - 2022-06-03 02:01:29
- v0.3.0 - 2022-05-31 17:28:49
- v0.2.1 - 2022-05-28 17:12:26
- v0.2.0 - 2022-05-28 09:21:45
- v0.1.6 - 2022-05-27 05:36:46
- What’s Changed
- v0.1.5 - 2022-05-27 04:39:02
- v0.1.4 - 2022-05-27 04:04:54
- v0.1.3 - 2022-05-24 05:08:44
- v0.1.2 - 2022-05-24 04:57:00
- Module Reference
- GitHub Source