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
xtal2pngtutorial) - Selecting Default Parameter Ranges via Materials Project
- Selecting Default Parameter Ranges via Materials Project (Conventional Unit Cell)
- Classification on
matbench_mp_is_metalusingxtal2pngrepresentation of crystal structures - XGBoost regression for
matbench_mp_e_formtask using basic crystallographic features - Using
xtal2pngwithdenoising_diffusion_pytorch - Using
xtal2pngwithimagen-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