Skip to content

samsungDS-PoCs/Spectrum

Repository files navigation

Physics-Informed Machine Learning for Spectrum Prediction in Phosphorescent OLEDs

Overview

Authors: Hasup Lee, Hyuntae Cho, Hwidong Na, Kuhwan Jeong, Sang Ha Park, Kisoo Kwon, MiYoung Jang, Eun Hyun Cho, Sanghyun Yoo, Hyun Koo, Changjin Oh, and Sun-Jae Lee

Environments

  • Install the dependencies
# Recommended environment: Python 3.12 and CUDA 12.4
python3 -m venv venv_spectrum
source venv_spectrum/bin/activate

# Install dependencies
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 \
    --index-url https://download.pytorch.org/whl/cu124

pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv \
    -f https://data.pyg.org/whl/torch-2.5.1+cu124.html

pip install e3nn==0.5.1 torch_geometric==2.6.1 transformers==4.56.0 \
    ogb==1.3.6 ase==3.25.0 pytorch-lightning==2.5.1.post0 \
    rdkit==2025.3.5 einops==0.8.1 tensorboard==2.15.1 timm==1.0.19 lmdb==1.7.3 \
    "pydantic<2"

Getting started

To train for spectrum prediction, just run:

python train.py --base-model {Geoformer|PaiNN|Equiformer} [--spectrum-type {Naive|GMM|FC} (default: FC)] [--batch-size <int> (default: 16)] [--data-path {IrDB|PtDB|IrDB_uff|IrDB_murcko} (default: IrDB)]

model

  • Geoformer
  • PaiNN
  • Equiformer

spectrum_type

  • Naive: Not consider Spectrum Loss.
  • GMM: Spectrum prediction based on Gaussian Mixture Model
  • FC: Spectrum prediction based on Franck-Condon progression

Output

Spectrum prediction results are saved to "p_spec.csv"

  • p_spec.csv: id,Wavelength,Intensity (Normalized)

Scripts

Python utilities for spectrum metrics are located in scripts/:

  • calc_SID.py: Spectral Information Divergence (SID), Spectral Information Similarity (SIS), Jensen-Shannon Divergence (JSD), Earth Mover's Distance (EMD)
  • calc_peak_fwhm.py: Peak position (Peak), Full Width at Half Maximum (FWHM), PL center, Full Width at Quarter Maximum (FWQM)
  • calc_ITPL_center.py: Intensity-Threshold PL center (IPTL center)
  • calc_FWXM.py: Generalized width at X% of maximum (FWXM) for Intensity-Threshold
  • clustering_murcko.py: Grouping based on Murcko scaffold

Contact

Please contact Hasup Lee for technical support. (hasup.lee@samsung.com)

License

This project contains code under multiple licenses:

  1. excluding spectrum/:

  2. spectrum/:

Acknowledgements

This work builds upon the following models:

About

By formulating the loss function as the difference between the reconstructed and reference spectra, the model enables gradients to propagate through the physics-based module.

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE-CCBYNCSA.txt
Unknown
LICENSE-MIT.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages