Skip to content

Repository files navigation

Spin Classification in Metal Complexes Using Data-Driven Techniques

High-performance computing (HPC) techniques for spin-state classification in inorganic complexes are computationally demanding. Recently, machine learning approaches have emerged as efficient alternatives for this task (ACS JPCA exemple).

This repository contains a Python program to classify spin states in first-row transition metal complexes using machine learning techniques.


1. Extracting and Analyzing Data

  • Reads an input specifying:
    • Target metal ion
    • Spin states
    • Coordination number (4, 5, or 6)
  • Builds a dataset 'distilling' OMOL25 dataset (~4 million structures)
  • Converts molecular structures into SOAP descriptors using the DSCRIBE library
  • Preprocesses data:
    • Normalizing SOAP data
    • Splitting into training and test sets
  • Performs exploratory data analysis:
    • PCA
    • t-SNE
    • k-Means clustering
  • Generates plots colored by spin state and dominant atom in the first coordination sphere
  • Generates scree plot

t-SNE plot colored by spin state (HS is label with 1, LS with 0) t-SNE plot colored by dominant atom in first sphere

2. SVM and Random Forest Benchmark

  • Implements Support Vector Machine (SVM) classification:
    • Linear SVM
    • Kernel SVM
  • Implements Random Forest classifier
  • Generates confusion matrix plots and .txt file containing information about classification metrix

3. Multi-Layer Perceptron (MLP)

  • Performs spin-state classification using an MLP
  • Highly regularized architecture due to small dataset
  • Can work on PCA-reduced data
  • Supports class-balanced training (undersampling majority class)
  • Generates confusion matrix plots and .txt file containing information about classification metrix
  • Generates validation accuracy and loss plots

Usage

  • install dependencies in requirements.txt
  • Change input parameters in input.txt
  • then simply: python3 main.py

About

A collection of function to build up a dataset containing data of transition metal complexes and to analyse it via Statistical Learning and Machine Learning techniques

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages