msa-talk@minlists.org

MSA public list serve

View all threads

Open-Source RamanLab Software Suite for Raman Spectroscopy Analysis

AC
Aaron Celestian
Sun, Jun 22, 2025 6:01 PM

Dear MSA colleagues,

I am pleased to announce the initial release of RamanLab (v1.0.1), an open-source Python-based GUI software suite specifically designed for comprehensive Raman spectroscopy data analysis. I started making this program for myself, so a lot of is focused on my own workflow and I don’t want to spend lots of money on commercial software.  But the program quickly started to get bigger and a few people wanted to use it as well.  I made some easy installation instructions and a desktop shortcut for easy launching.  No knowledge of Python is needed.

RamanLab Trailer here (2 min. 42 sec.) https://youtu.be/V9a9qfQWFYM

The software is fully functional, but I would say that this is still in a beta state as I’m constantly working on it and finding bugs.  Feel free to download/clone and kick the tires, and let me know if you encounter any bugs by direct message - don’t reply here :)  I will be setting up YouTube tutorials on how to use it in a few days, but the Readme document at the RamanLab GitHub page contains the details to get you started on both MacOS and Windows.

Be patient, I’m the only developer for this code, this is a side project, I’m not an advanced programmer, it’s taken me months to get to where it is now, and I know there are still issues that need to be fixed.

Core Technical Functionality of the Software:

Advanced database management where you can load your own spectra, share database with colleagues, add your own search filters, add DFT calculated spectra (Eigen values/vectors, dielectric tensors, etc.)
Search/Match using RRUFF and SLOPP/E for mineral and plastic ID using several algorithms — including dynamic time warping — of your choosing (I’m very strict on search match fit quality), with advanced search/match features including element filtering, Hey index filtering, and customizable filters.
Automated spectral preprocessing with customizable baseline correction, normalization, and noise reduction algorithms
Advanced peak detection and fitting routines utilizing various peak fitting routines for quantitative spectral analysis and robust exporting
Raman map data analysis using a combination of a template matching engine, PCA and NMF for rapid spectral identification with robust statistical confidence metrics to minimize false positive identifications — also has a robust CRE rejection filter for data that are collected extremely rapidly
Interactive data visualization capabilities with matplotlib-based plotting tools optimized for publication-quality figures
Batch peak fitting for all your time-resolved, in situ, in operando studies with lots of data analysis options, and exporting options
Cluster analysis with a suite statistical tools for validation of a variety of Raman data
Polarization and Raman tensor analysis/visualization that is currently underdeveloped to predict the orientation of your mineral with respect to the laser, and have the crystal/tensor orientation presented to you (relative to the laser direction) with a companion database of calculated spectra and DFT optimized parameters via WURM.info
And I will be implementing stress/strain analysis for mechanical stress (via Ross Angel et al.), a custom chemical stress that will be introduced, calibration features, advanced baseline correction for those stubborn spectra, and data conversion methods.  I currently own Horiba instruments (but I’m building my own research grade spectrometer, that will be release later in 2025), and I’m happy to add any other text based format from other manufacturers (no binaries please).
The software implements transparent processing workflows with comprehensive logging capabilities, detailed code documentation, supporting reproducible research practices. All analytical parameters and processing steps are exportable, facilitating method validation and inter-laboratory comparisons.  All the code is open, and feel free to use it, improve it, share it (or ignore it if you don’t like it).

If you do end up using it in your publications, all I ask is that you reference the Zenodo DOI citation below.

Access and Documentation:

Zenodo Archive: https://zenodo.org/records/15670748 (DOI: 10.5281/zenodo.15670747)
GitHub Repository: https://github.com/aaroncelestian/RamanLab/blob/main/README.md
The software is distributed under an open-source license with complete source code, and documentation. Community contributions and feedback are welcomed through the GitHub platform.

Citation: Aaron J. Celestian, RamanLab Software Suite (Version 1.0.1) [Software]. https://doi.org/10.5281/zenodo.15713997

mailto:acelestian@nhm.orgAaron Celestian, Ph.D. https://storymaps.arcgis.com/stories/3e16dcb052ab444e87ffc4edc96611b2
Curator of Mineral Sciences, Natural History Museum of Los Angeles
Adj. Assoc. Prof. USC Earth Sciences
Adj. Instructor, West LA Community College
Chief Technology Officer, BrineWorks
Host and Writer: Pockful of Xtals https://aaroncelestian.substack.com/?utm_source=navbar&utm_medium=web

Dear MSA colleagues, I am pleased to announce the initial release of RamanLab (v1.0.1), an open-source Python-based GUI software suite specifically designed for comprehensive Raman spectroscopy data analysis. I started making this program for myself, so a lot of is focused on my own workflow and I don’t want to spend lots of money on commercial software. But the program quickly started to get bigger and a few people wanted to use it as well. I made some easy installation instructions and a desktop shortcut for easy launching. No knowledge of Python is needed. RamanLab Trailer here (2 min. 42 sec.) https://youtu.be/V9a9qfQWFYM The software is fully functional, but I would say that this is still in a beta state as I’m constantly working on it and finding bugs. Feel free to download/clone and kick the tires, and let me know if you encounter any bugs by direct message - don’t reply here :) I will be setting up YouTube tutorials on how to use it in a few days, but the Readme document at the RamanLab GitHub page contains the details to get you started on both MacOS and Windows. Be patient, I’m the only developer for this code, this is a side project, I’m not an advanced programmer, it’s taken me months to get to where it is now, and I know there are still issues that need to be fixed. Core Technical Functionality of the Software: Advanced database management where you can load your own spectra, share database with colleagues, add your own search filters, add DFT calculated spectra (Eigen values/vectors, dielectric tensors, etc.) Search/Match using RRUFF and SLOPP/E for mineral and plastic ID using several algorithms — including dynamic time warping — of your choosing (I’m very strict on search match fit quality), with advanced search/match features including element filtering, Hey index filtering, and customizable filters. Automated spectral preprocessing with customizable baseline correction, normalization, and noise reduction algorithms Advanced peak detection and fitting routines utilizing various peak fitting routines for quantitative spectral analysis and robust exporting Raman map data analysis using a combination of a template matching engine, PCA and NMF for rapid spectral identification with robust statistical confidence metrics to minimize false positive identifications — also has a robust CRE rejection filter for data that are collected extremely rapidly Interactive data visualization capabilities with matplotlib-based plotting tools optimized for publication-quality figures Batch peak fitting for all your time-resolved, in situ, in operando studies with lots of data analysis options, and exporting options Cluster analysis with a suite statistical tools for validation of a variety of Raman data Polarization and Raman tensor analysis/visualization that is currently underdeveloped to predict the orientation of your mineral with respect to the laser, and have the crystal/tensor orientation presented to you (relative to the laser direction) with a companion database of calculated spectra and DFT optimized parameters via WURM.info And I will be implementing stress/strain analysis for mechanical stress (via Ross Angel et al.), a custom chemical stress that will be introduced, calibration features, advanced baseline correction for those stubborn spectra, and data conversion methods. I currently own Horiba instruments (but I’m building my own research grade spectrometer, that will be release later in 2025), and I’m happy to add any other text based format from other manufacturers (no binaries please). The software implements transparent processing workflows with comprehensive logging capabilities, detailed code documentation, supporting reproducible research practices. All analytical parameters and processing steps are exportable, facilitating method validation and inter-laboratory comparisons. All the code is open, and feel free to use it, improve it, share it (or ignore it if you don’t like it). If you do end up using it in your publications, all I ask is that you reference the Zenodo DOI citation below. Access and Documentation: Zenodo Archive: https://zenodo.org/records/15670748 (DOI: 10.5281/zenodo.15670747) GitHub Repository: https://github.com/aaroncelestian/RamanLab/blob/main/README.md The software is distributed under an open-source license with complete source code, and documentation. Community contributions and feedback are welcomed through the GitHub platform. Citation: Aaron J. Celestian, RamanLab Software Suite (Version 1.0.1) [Software]. https://doi.org/10.5281/zenodo.15713997 <mailto:acelestian@nhm.org>Aaron Celestian, Ph.D. <https://storymaps.arcgis.com/stories/3e16dcb052ab444e87ffc4edc96611b2> Curator of Mineral Sciences, Natural History Museum of Los Angeles Adj. Assoc. Prof. USC Earth Sciences Adj. Instructor, West LA Community College Chief Technology Officer, BrineWorks Host and Writer: Pockful of Xtals <https://aaroncelestian.substack.com/?utm_source=navbar&utm_medium=web>