Methods for converting spectra to structure and solving the materials gap
This is documentation for https://github.com/JLans/jl_spectra_2_structure. jl_spectra_2_structure trains neural network models to learn quantitative descriptions of surface coordination for either extended surfaces or nanoparticles. The model is trained on complex synthetic IR data (secondary data). A class is provided for generating complex (secondary) data from low coverage dft frequency and intensity data (primary data). Another class is provided for generating the primary data from forces on atoms and integrated charges computed by vasp and chargemol respectively.
See our documentation page for examples, equations used, and docstrings.
- Joshua Lansford ([email protected])
- Python3
- Atomic Simulation Environment: Used for I/O operations and for visualiztion
- Numpy: Used for vector and matrix operations
- Pandas: Used to import data from concatenated chargemol files and summing intensities from similar modes
- SciPy: Used for fitting coverage scaling relations
- Matplotlib: Used for plotting data
- scikit-learn: Used for batching data during neural network training and k-means clustering
- JSON_tricks: Used for reading and writing neural network and cross validation parameters
- Imbalanced-learn: Used for balancing the primary data before generating secondary data
- StatsModels: Used to get descriptive statistics of the coverage scaling parameters
- Pillow: Used for writing jpeg files
- uuid: Used forgetting unique identifiers when writing cross validation results during mpi runs
This project is licensed under the MIT License - see the LICENSE.md file for details.