The following table collects information about free and open source software (FOSS) for spectroscopy. All information is taken from the respective websites and/or repositories. Some projects have been described in publications. If so, we try to provide a link, but the document may be behind a paywall. This blog post give some details about how we find interesting repositories.
Unless otherwise noted, the software mentioned here:
Matlab
, Matlab
is not open source and projects
written in Matlab
are not included.Some other places to look:
R
packages suitable for use in metabolomics, which
partially overlaps with the information here. The authors have also
created a dynamic document
with the same information and more.R
packages listed here as well as related software.The projects listed here have been lightly vetted and the process is imperfect! If a project looks incomplete, is a class project, or I can’t tell what it does, it’s not included!* Of course, if you feel I have not included your package in error, feel free to request its inclusion. With that in mind, there are still many packages to consider. As a general guide, the excellent checklist provided by Lortie et al. is included here for your consideration.
R
(65) or Python
(309).Name | Description | Lang | Focus | Status |
---|---|---|---|---|
AeroViz | Various data processing and visualization tools for aerosol science | Python | XRF | 2025-04-13 |
agilent-format | File reader for Agilent Resolutions Pro FT-IR images | Python | FT-IR | NA |
agilent-ir-formats | Agilent file format handling for infrared spectroscopy | Python | Data Sharing (IR) | 2024-05-30 |
agilentaspparser-egonik | Parse Agilent FT-IR asp files | Python | Data Sharing (IR) | 2021-08-23 |
Akvo | Surface nuclear magnetic resonance workbench | Python | NMR | 2021-10-26 |
albatross | PARAFAC of EEM | R | EEM | 2024-05-06 |
AlpsNMR (pub) | Untargeted NMR Metabolomics | R | NMR | 2024-08-09 |
AMES-Fit | Automatic fitting of multiple-field solid-state NMR spectra | C++ | NMR (SS) | 2024-11-13 |
ANATOLIA (pub) | NMR lineshape analysis | C++ | NMR (Bruker) | 2024-04-02 |
ansurr (pub) | Validate accuracy of protein NMR structures | Python | NMR | 2022-05-22 |
apogee (pub) | Tools for working with APOGEE data | Python | FT-IR | 2025-01-12 |
ASpecD | General spectroscopic data handling | Python | Any | 2024-12-21 |
ASPIRED (pub) | Automated SpectroPhotometric Image REDuction (ASPIRED) | Python | UV-Vis | 2023-12-17 |
autoenrich | Computational NMR Library | Python | NMR | 2020-05-02 |
autogamess | Python module for automating Raman calculations using GAMESS(us). | Python | Raman | NA |
AutomatedLIBS | Laser-Induced Break Down Spectroscopy spectra analysis software | C# | LIBS | 2019-07-29 |
autoXAS | Data processing for the analysis of (in-situ) X-ray absorption spectroscopy data | Python | XAS | NA |
BaMORC (pub) | Automated 13C assignments in proteins | R | NMR (13C) | 2021-04-13 |
baseline | Baseline correction | R | Any | 2024-05-25 |
BaselineRemoval | Baseline removal, baseline correction & baseline subtraction | Python | Any | 2024-04-08 |
BATMAN (pub) | Estimation of metabolite concentrations from 1H NMR | R | NMR (1D) | NA |
bccd | B-NMR/B-NQR Beamspot Image Viewer and Analysis | Python | β-NMR, β-NQR | NA |
bdata (pub) | β-NMR/β-NQR MUD file reader and asymmetry calculator | Python | β-NMR, β-NQR | 2024-01-16 |
beautifuljason | A Python Interface for JASON Software by JEOL | Python | NMR | NA |
benchnirs (pub) | Benchmarking framework for machine learning with fNIRS | Python | fNIR | NA |
bfit (pub) | β-NMR & β-NQR Data Analysis | Python | NMR | 2025-04-27 |
BICePs (pub) | Bayesian inference of conformational populations from NMR data | Python | NMR | 2023-06-12 |
BioEn (pub) | BioEn - Bayesian Inference Of ENsembles | Python | Any | 2024-02-05 |
bionmr-utils | Biological NMR utilities | Python | NMR | 2021-05-16 |
blochsimu | Bloch equation simulator for e.g. NMR-related simulations | Python | NMR | 2015-04-26 |
bm23id24-xas | Library for XAS data analysis | Python | XAS | NA |
BMRBr | Interface to BMRB database | R | Data Sharing | 2019-03-07 |
boxsers | Functionality to process and analyze vibrational spectra (Raman, SERS, FT-IR, etc.). | Python | FT-IR, Raman | 2024-09-24 |
brixs | BRIXS is a python package for processing and analysis of XAS and RIXS spectra | Python | XAS, RIXS | 2025-05-15 |
Bruker-OPUS-to-.DPT-bulk-file-converter | Convert many binary format OPUS files to .dpt (Data Point Table) file format | Python | Data Sharing | 2022-12-06 |
bruker-utils | bruker_utils: Helper functions for handling Bruker NMR data. | Python | NMR (Bruker) | NA |
brukeropus | Work with Bruker OPUS spectroscopy software and read its binary file format. | Python | Data Sharing (IR) | 2025-05-11 |
brukeropusreader | Python package for reading Bruker OPUS files. | Python | Data Sharing (IR) | 2025-01-19 |
CARA | Biomolecular NMR peak assignment | C++ | NMR | 2024-11-18 |
carspy | Synthesizing & fitting coherent anti-Stokes Raman spectra (CARS) | Python | Raman | 2021-08-23 |
catmass | Py Qt package for calculating the proper loading of samples for XAS measurements | Python | XAS | 2024-12-05 |
chem-analysis | Analyzing experimental chemistry data | Python | Any | NA |
ChemEx | Analysis of chemical exchange by NMR | Python | NMR | 2025-05-19 |
ChemoSpec | Exploratory data analysis of 1D spectra | R | Any | 2025-04-14 |
ChemoSpec2D | Exploratory data analysis of 2D NMR | R | NMR (2D) | 2025-04-08 |
CheShift (pub) | Predict 13C shifts in proteins | Python | NMR (13C) | 2017-06-13 |
chiLife | Python package for site-directed spin labeling of proteins | Python | DEER | 2025-05-20 |
colmarvista | Web-based NMR viewer | JavaScript | NMR | 2025-05-05 |
coloured-spectra | Got a spectra? Use this to find what is the observed colour. | Python | Vis | 2021-06-17 |
COMPASS (pub) | Protein backbone assignments from triple-resonance peak lists | Qt | NMR | 2020-09-13 |
compressedFT-IR | Reconstruction of sample FT-IR data | Python | FT-IR | NA |
CoNSEnsX | CoNSEnsX - Complience of NMR-derived Structural Ensembles with Experimental Data | Python | NMR | 2025-01-16 |
constava | Calculate conformational states probability & conformational state variability from a protein structure ensemble | Python | NMR | NA |
CorePy | Python tools designed to integrate and visualize geological core data | Python | XRF | 2023-03-09 |
corepytools | CorePy: XRF clustering tools to interpret and visualize geological core data | Python | XRF | NA |
corr2D (pub) | 2D correlation spectroscopy | R | FT-IR | 2022-07-13 |
CRIkit2 | Hyperspectral imaging toolkit formerly known as the coherent Raman imaging toolkit. | Python | Raman | 2022-10-12 |
crispy | Calculate & plot core-level spectra | Python | XAS | 2025-03-11 |
cronomaxrf | Python package to read and convert the Crono MA-XRF HDF5 data file format | Python | Data Sharing (XRF) | NA |
cs1 (pub) | Compressed Sensing library for 1D Spectroscopic Profiling Data | Python | Raman | 2024-11-27 |
curvit | Create light curves from UV imaging telescope data | Python | UV | 2025-01-28 |
customxepr | Instrument control suite for Bruker E500, MercuryiTC and Keithley 2600. | Python | EPR | 2021-10-31 |
cwepr | Package for handling cw-EPR data. | Python | EPR | NA |
DEEP picker (pub) | 2D NMR peak picker using ANN | R | NMR (2D) | 2025-04-30 |
DeepSpectroscopy | Spectroscopy with deep learning | Python | Any | 2018-05-19 |
DeerLab | Analysis of dipolar EPR spectroscopy | Python | EPR | 2025-03-19 |
DEERPREdict | A package for DEER and PRE predictions based on molecular dynamics ensembles | Python | DEER, EPR | 2025-05-05 |
DESPERATE (pub) | Denoising ssNMR spectra | Python | NMR (SS) | 2024-09-12 |
DiadFit | Fit Raman data | Python | Raman | 2024-09-03 |
dive-EPR | Python package for Bayesian analysis of dipolar EPR spectroscopy data through Markov chain Monte Carlo sampling with PyMC | Python | EPR | NA |
DNPLab | DNPLab - Bringing the power of Python to DNP-NMR Spectroscopy | Python | NMR | 2025-05-19 |
drawnmr | A module for displaying NMR data with bokeh in Python or Jupyter Notebooks. | Python | NMR | 2017-12-01 |
edrixs | An open source toolkit for simulating RIXS spectra based on ED | Python | XAS | 2025-04-29 |
EEM | Analysis of EEM data | R | EEM | 2023-05-28 |
eemR | Preprocessing EEM data | R | EEM | 2025-05-21 |
EEMs-toolkit | EEMs-toolkit是一个可以在Python上对三维荧光(EEM)进行平行因子分析(PARAFAC)的工具包,功能大致类似于MATLAB的drEEM toolbox。 | Python | EEM | NA |
eniric | Extended NIR Information Content | Python | NIR | 2024-06-07 |
eNMRpy | nmrglue-based package for the import and analysis of electrophoretic NMR-data | Python | NMR | 2023-01-06 |
EPR-BindingSite (pub) | Identification of Protein-Ligand Binding Sites using dipolar EPR data | Python | EPR | 2025-04-11 |
EPR-LEF | Sistema de Aquisição Digital para o experimento de EPR do Laboratório de Ensino de Física do IFSC - USP | C++ | EPR | 2018-07-23 |
epr2md | Converts EPR files to Markdown | Python | Data Sharing | NA |
EPRpy | EPRPy is a python library to streamline routine analysis of Electron Paramagnetic Resonance data. | Python | EPR | 2025-02-16 |
eprscope | R package to process and analyze data and spectra in Electron Paramagnetic Resonance spectroscopy for chemists | R | EPR | 2025-05-16 |
EPRsim | Simulation Package for cw-EPR spectra | Python | EPR | 2019-11-24 |
EPRsimGUI | GUI for simulating cw-EPR spectra | Python | EPR | NA |
exspy | EDS and EELS data analysis with HyperSpy | Python | EELS, EDS | 2025-05-04 |
exspy-demos | eXSpy Jupyter Notebook demos | Python | EELS, EDS | 2024-10-04 |
fairmat-readers-transmission | File readers for transmission spectrophotometry raw files | Python | Data Sharing | NA |
FAM-N (pub) | Optimize composite pulses for MQMAS | Python | NMR (SS) | 2019-06-06 |
FANDAS | Fast Analysis of multidimensional NMR DAta Sets | Python | NMR (nD) | NA |
FarSeer-NMR | Automatic treatment, analysis and plotting of large and multivariable datasets of bioNMR peaklists. | Python | NMR | 2020-01-30 |
FID-Net (pub) | Neural network analysis of NUS FID data | Python | NMR | 2025-05-21 |
finchnmr | [FI]tti[N]g 13[C] 1[H] HSQC [NMR] | Python | NMR (2D) | NA |
fisx | Quantitative X-Ray Fluorescence Analysis Support Library | C++ | XRF | 2025-01-21 |
fitpy | Framework for fitting models to (spectroscopic) data | Python | Any | 2024-11-30 |
fitspy | Fitspy: a generic tool to fit spectra in python | Python | Any | NA |
flintpy-nmr | Python implementation of FLINT algorithm for NMR relaxation data. | Python | NMR | NA |
FT-IR-background-subtract | A GUI tool for drawing polynomial backgrounds on FT-IR spectra and subtracting them | Python | FT-IR | NA |
ft4FT-IRs | A package for processing FT-IR interferograms. | Python | FT-IR | NA |
ganx | Generate MA-XRF raw data from RGB images | Python | XRF | NA |
GIPMA (pub) | Peak matching and alignment for HSQC metabolomics | R | NMR (2D) | 2023-03-10 |
GloPel (pub) | Global Analysis of PELDOR time traces | Python | Time Series (EPR) | NA |
hsqc_structure_elucidation (pub) | Neural network for distinguishing molecules based on their HSQC NMR spectra | Python | NMR (2D) | 2023-09-28 |
hyperChemoBridge | Interconversion of hyperSpec & ChemoSpec formats | R | Data Sharing | 2020-08-31 |
hypers | Hyperspectral data analysis and machine learning | Python | Any | 2021-06-28 |
hyperSpec | hyperSpec: Tools for Spectroscopy | R | Any | 2024-05-26 |
hyperSpec.utils | Utilities for use by hyperSpec | R | Any | 2021-04-26 |
hySpc.dplyr | Interface between hyperSpec and dplyr | R | Any | 2023-04-22 |
hySpc.ggplot2 | Interface between hyperSpec and ggplot2 | R | Any | 2023-04-22 |
hySpc.read.ENVI | Import ENVI files into hyperSpec | R | Data Sharing | 2023-04-22 |
hySpc.read.jdx | Import JCAMP-DX files into hyperSpec | R | Data Sharing | 2023-04-22 |
hySpc.read.mat | Import MATLAB files into hyperSpec | R | Data Sharing | 2023-04-22 |
hySpc.read.spc | Import SPC files into hyperSpec | R | Data Sharing | 2023-12-10 |
hySpc.read.spe | Import spe formatted files to hyperSpec | R | Data Sharing | 2023-04-22 |
hySpc.read.txt | Import ASCII formatted data into hyperSpec | R | Data Sharing | 2023-04-22 |
IBR-AIC | Remove Bragg peaks from X-ray absorption spectra. | Python | XAS | 2024-02-29 |
icarus-nmr | Pressure Jump Software for time-resolved pressure NMR | Python | Time Series (NMR) | 2022-02-07 |
icoshift | 1D NMR alignment via ICOSHIFT algorithm | Python | NMR (1D) | 2024-01-23 |
impurityModel | Calculate many-body states of an impurity Anderson model and spectra (e.g. XPS, XAS, RIXS, NIXS) | Python | XAS | 2024-07-07 |
InSituAnalyze (pub) | Spectral imaging | Python | FT-IR | 2021-03-30 |
ioisis | I/O for ISIS files in Python | Python | Data Sharing | NA |
ir | Preprocessing infrared spectra | R | FT-IR | 2025-04-05 |
isatex | Raman & IR processing | Python | IR, Raman | 2021-03-04 |
iSTATS | Shiny app for STOCSY of 1D NMR | R | NMR (1D) | 2023-12-05 |
jcalc | Calculate NMR J values from molecular dynamics simulations | Python | NMR | 2021-11-29 |
jcamp | Read JCAMP-DX files | Python | Data Sharing | 2025-01-07 |
jcamp-dx | Reference implemention of the IUPAC JCAMP-DX spectroscopy data standard. | Java | Data Sharing | 2025-04-27 |
JSpecView (pub) | Read & view spectra in JCAMP-DX format | Java | Data Sharing | 2006-02-28 |
jws2txt | JASCO file to text file converter | Python | Data Sharing | 2025-02-08 |
kars (pub) | Kernel Approximation to Raman Spectra | Python | Raman | 2021-12-15 |
klassez | A collection of functions for NMR data handling. | Python | NMR | 2025-03-25 |
larixite | Convert CIF data to inputs for XAS calculations Feff, FDMNES, etc | Python | XAS | NA |
LIBS | Analysis codes for Laser-Induced Breakdown Spectroscopy data | Python | LIBS | 2017-08-18 |
libssa | LIBSsa: an open source software for analyzing LIBS spectra | Python | LIBS | NA |
LIBStick | LIBS software | Python | LIBS | 2025-04-08 |
lightr (pub) | Import spectral data into R | R | Data Sharing | 2025-02-04 |
lingress | Metabolomics data analysis with univariate (linear regression) and visualization tools. | Python | NMR (1D) | NA |
LiveView | Real-time visualization tools for imaging spectroscopy | C++ | FT-IR, UV-Vis | 2021-03-23 |
lmfitxps | Models for the lmfit package for fitting XPS spectra. | Python | XPS | NA |
lspr-library-Piast-Kolodziej | LSPR-library is a Python 3 scientific package for modelling UV-Vis spectral behaviour of metallic nanoparticle-dieletric composites. | Python | UV-Vis | 2023-10-31 |
lumispy | Luminescence data analysis with HyperSpy. | Python | Raman | 2025-04-06 |
MADByTE (pub) | Dereplication of natural product 2D NMR spectra | Python | NMR (2D) | 2024-10-17 |
magnetstein (pub) | Analysis of NMR spectra using the Wasserstein metric | Python | NMR | 2024-05-01 |
mapstorch | A differentiable modeling package for automating X-ray fluorescence (XRF) analysis | Python | XRF | NA |
masai | Masai, a framework for processing and modelling of solid state NMR spectra | Python | NMR (SS) | NA |
maspim | Processing of mass spectrometry imaging and micro X-Ray fluorescence data. | Python | XRF | NA |
maxrf4u | Explore your X-Ray Fluorescence spectral images | Python | XRF | 2025-04-10 |
mcfNMR (pub) | A Minimum Cost Flow NMR recombinator. | Python | NMR (1D) | NA |
MD2NMR | Tools for calculating NMR relaxation observables (R1/R2/NOE/T1/T2/Tau_c) directly from MD trajectories. proteins/complexes | Python | NMR | NA |
metabohunter | Python interface to Metabohunter 1H NMR metabolite identification service | Python | NMR | NA |
metabolabpy | Python package for data processing of NMR 1D & 2D metabolomics and metabolism tracing data | Python | NMR | 2025-05-19 |
metabolabpytools | Tools for metabolomics and metabolism tracing data | Python | NMR | 2025-05-19 |
MicroRaman (pub) | MicroRaman is an R package to process microbial Raman Spectroscopy data | R | Raman | 2020-07-21 |
MINOTAUR (pub) | High resolution relaxometry | Python | NMR | 2025-03-10 |
MixONat (pub) | Dereplication of 13C NMR data | Python | NMR | 2022-02-01 |
ml-jdp4 | An integrated quantum mechanics-machine learning approach for ultra-fast NMR structural elucidation. | Python | NMR | 2024-11-03 |
mne-nirs | An MNE compatible package for processing near-infrared spectroscopy data | Python | NIR | 2025-05-20 |
modelfree-protein15n | Model free analysis of protein backbone amide 15N spin relaxation rates. | Python | NMR | NA |
moseley | Package for simulating XRF spectra to better understand them | Python | XRF | 2025-04-29 |
mpes | Distributed data processing routines for multidimensional photoemission spectroscopy (MPES) | Python | PES | NA |
mrbin (pub) | NMR binning, normalization (1D & 2D) | R | NMR | 2025-05-19 |
mrinversion | Python based statistical learning of NMR tensor parameters distribution from 2D isotropic/anisotropic NMR correlation spectra. | Python | NMR | NA |
mrsimulator | A fast solid-state NMR spectrum simulation and analysis library. | Python | NMR (SS) | 2025-05-20 |
mrsprint | Magnetic resonance experiment simulator & visualization tool | Python | NMR | NA |
mud-py (pub) | Muon Data file reader | Python | Data Sharing (NMR) | 2024-01-16 |
multinmrfit | Fitting 1D NMR spectra | Python | NMR (1D) | NA |
muma | Exploratory data analysis of 1D NMR | R | NMR (1D) | 2022-05-08 |
musketeer | A tool for fitting data from titration experiments. | Python | NMR, UV-Vis | NA |
mwtab | Parser for mwtab files from the Metabolomics Workbench | Python | Data Sharing (NMR) | 2025-02-11 |
nanofinderparser | Parse and process Raman and photoluminescence (PL) data files generated by Nanofinder instruments | Python | Raman | NA |
ndx-nirs | An NWB extension for storing Near-Infrared Spectroscopy (NIRS) data | Python | NIR | 2022-07-28 |
nef-pipelines | Tools for Manipulating NEF [NMR Exchange Format] Files and Foreign File Access | Python | Data Sharing (NMR) | NA |
nerrds | NERRDS uses backbone chemical shifts to generate an ensemble | Python | NMR | NA |
nightshift (pub) | Library & command line program for plotting simulated 2D & 3D NMR spectra from assigned chemical shifts from the BMRB | Python | NMR | 2022-08-15 |
nippy (pub) | Process NIR data | Python | NIR | 2024-03-27 |
NIR-preprocess | Process NIR data | Python | NIR | 2022-04-18 |
nira | Near-Infrared Analysis | R | NIR | 2020-10-09 |
NIRStat (pub) | NIR time-series | R | Time Series (NIR) | 2020-05-26 |
NIRX | Read NIRX NIR files | Julia | Data Sharing (NIR) | 2021-06-30 |
NistChemPy | A simple Python wrapper around the NIST Chemistry WebBook | Python | Data Sharing | 2025-05-07 |
NMR-EsPy (pub) | Estimation of NMR parameters | Python | NMR | 2024-07-29 |
NMR-onion (pub) | 1D NMR deconvolution | Python | NMR | 2025-05-12 |
nmr-parser | Parse 1D & 2D NMR files to JSON | JavaScript | Data Sharing (NMR nD) | 2023-05-31 |
nmr-schedule | Algorithms for NMR non-uniform sampling | Rust | NMR | NA |
nmr-sims | A package for running basic NMR simulations. | Python | NMR | NA |
nmraspecds | ASpecD derived Package for recipe driven data analysis of NMR spectra | Python | NMR | NA |
nmrespy (pub) | NMR-EsPy: Nuclear Magnetic Resonance Estimation in Python | Python | NMR | 2024-07-29 |
nmrFilter (pub) | Integrated MS & NMR analysis | Python | NMR | 2024-06-27 |
nmrfit | qNMR through least-squares fitting | Python | NMR | 2023-06-26 |
nmrformd | Calculate NMR relaxation time from molecular dynamics trajectory file | Python | NMR | 2025-05-02 |
NMRFx | Processing, visualization & analysis of NMR data | Java | NMR | 2022-12-13 |
nmrGlue (pub) | NMR data processing, analysis, visualization & conversion | Python | NMR (nD) | 2025-04-23 |
nmrgnn | Chemical shift predictor | Python | NMR | 2021-08-30 |
nmrgnn-data | Chemical shift prediction dataset | Python | NMR | NA |
nmrium | React component to display and process NMR spectra. | TypeScript | NMR | 2025-05-22 |
nmrlineshapeanalyser | ss-NMR peak deconvolution and lineshape analysis | Python | NMR (SS) | NA |
nmrML (pub) | Markup language for sharing NMR data | XML | Data Sharing (NMR) | 2022-09-13 |
nmrml2isa | Convert nmrML files to ISA-TAB | Python | Data Sharing (NMR) | 2023-11-05 |
nmrpeaklists | A Python library for handling NMR peak lists | Python | Data Sharing (NMR) | NA |
nmrPipe (pub) | NMR data processing, analysis, visualization & conversion | C-shell | NMR (nD) | 2017-12-11 |
nmrpoise (pub) | Parameter Optimisation by Iterative Spectral Evaluation, a TopSpin-compatible NMR package | Python | NMR | 2022-01-09 |
NMRpro | Process & visualize NMR data | Python | NMR | 2021-06-22 |
NMRProcFlow (pub) | Interactive processing of 1D NMR spectra for metabolomics | R | NMR (1D) | NA |
nmrpy | A suite of tools for processing & analysing NMR spectra in Python | Python | NMR | 2025-05-22 |
nmrPype | Python implementation of Nuclear Magnetic Resonance (NMR) signal analysis program “nmrPipe” | Python | NMR (nD) | NA |
NMRPySchedule | Build non-uniform NMR sample schedules | Python | NMR | NA |
NMRPyStar | Parser for the NMR-STAR data format | Python | Data Sharing (NMR) | 2020-08-05 |
nmrquant | Metabolite concentration quantification from 1D proton NMR integrated data | Python | NMR (1D) | 2024-10-08 |
nmrsim | A Python library for NMR simulation | Python | NMR | 2025-05-13 |
nmrstarlib (pub) | Convert NMR-STAR files to JSON used by BMRB | Python | Data Sharing (NMR) | 2021-06-20 |
nmrtoolbox | simple utility for parsing and working with NMR peak tables, including ROC analysis | Python | NMR | 2023-06-04 |
NMRTools | Import and plot NMR spectra | Julia | NMR | 2025-03-12 |
nmrxiv | FAIR, consensus-driven NMR data repository and computational platform | JavaScript | Data Sharing (NMR) | 2025-05-19 |
octavvs | Vibrational spectroscopy | Python | IR, Raman | 2025-05-04 |
OMNIC-FT-IR-data-processing-tool | OMNIC FT-IR data processing tool | Python | FT-IR | NA |
OpenLIBS | OpenLIBS is a package that provides functionality to analyse Laser Induced Breakdown Spectroscopic Spectras | Python | LIBS | 2025-05-19 |
OpenSpecy (pub) | Process Raman, IR data | R | FT-IR, Raman | 2025-05-07 |
openspi | Interface with the OpenSpecy package for R | Python | FT-IR, Raman | NA |
OpenVibSpec | Vibrational spectroscopy | Python | FT-IR, Raman | 2022-02-21 |
OpenVnmrJ | NMR data acquisition & processing (Varian instruments) | C | NMR (1D) | 2015-12-18 |
opusreader2 | Read Bruker OPUS files | R | Data Sharing (IR) | 2025-05-18 |
oranchada | Orange add-on for Raman spectroscopy | Python | Raman | NA |
orplib | Open Raman Processing Library | Python | Raman | 2023-11-20 |
PALMA (pub) | DOSY signal processing | Python | NMR | 2021-02-15 |
paramagpy (pub) | Calculate paramagnetic effects in NMR spectra of proteins | Python | NMR | 2022-10-05 |
parseq-XAS | A pipeline for data processing of XAS spectra | Python | XRF | NA |
pavo | Perceptual analysis, visualization & organization of spectral color data (including images) | R | UV-Vis | 2025-02-09 |
pdz-extractor | User interface to convert XRF spectral data PDZ files to open CSV and JPEG formats | Python | Data Sharing (XRF) | 2024-12-09 |
pdz-tool | A tool for reading and transforming PDZ 24 and PDZ 25 formats | Python | Data Sharing (XRF) | NA |
PDZReader | Reader module for .PDZ binary spectral file format used by Bruker pXRF Instruments | Python | Data Sharing (XRF) | 2025-03-02 |
Peakaboo | XRF analysis | Java | XRF | 2024-12-01 |
peakfit | PeakFit allow for lineshape fitting in pseudo-3D NMR spectra. | Python | NMR (nD) | NA |
Peakipy | Deconvolution of 2D NMR peaks | Python | NMR (2D) | 2025-02-23 |
PEAKIT (pub) | Analyze chemical exchange saturation transfer spectra | Python | NMR | 2021-11-22 |
penguins | Penguins: an Easy, NPE-free Gateway to Unpacking & Illustrating NMR Spectra | Python | NMR | 2024-05-26 |
photobiology (pub) | Photobiology workflow tools | R | UV-Vis | 2025-01-22 |
PINT (pub) | NMR line shape fitting & analysis | Qt | NMR | NA |
PlotFT-IR | R Code for pretty plotting of FT-IR spectra | R | FT-IR | NA |
pocketchemist-nmr | NMR analysis tools for pocketchemist | Python | NMR | 2022-04-27 |
pol_sim | Simulation of a local polarizer model in an EPR experiment | C | EPR | 2022-01-07 |
polypython (pub) | Analysis of Raman spectral images for plastic content. | Python | Raman | 2020-07-16 |
Porchlight (pub) | Spectra preprocessing | Python | Any | 2025-04-15 |
prospecpy | Python package for analyzing FT-IR Spectroscopy Data from Bruker instruments. | Python | FT-IR | NA |
prospectr | R package: Misc. Functions for Processing and Sample Selection of Spectroscopic Data | R | Any | 2025-03-17 |
Protomix | A Python package for NMR preprocessing | Python | NMR | NA |
pulsee | Program for the Simulation of Nuclear Spin Ensemble Evolution | Python | NMR (SS) | NA |
pulsefig | Plot pulse sequences. | Python | NMR | NA |
PulseShape | A pulse shaping program for EPR | Python | EPR | NA |
py-wdf-reader | Python package for read-only accessing the wdf Raman spectroscopy from Ranishaw WiRE software | Python | Data Sharing (Raman) | 2023-08-28 |
pybaselines | A library of algorithms for the baseline correction of experimental data | Python | Any | 2025-05-21 |
PyBMRB | Visualizations based on BMRB data | Python | NMR (1D) | 2021-11-22 |
pycaltransfer (pub) | Calibration transfer for chemometrics and spectral data applications | Python | UV-Vis, NIR | 2025-05-22 |
pyCoilGen | Magnetic Field Coil Generator for Python, ported from CoilGen | Python | NMR | 2025-03-31 |
pycoilgen_data | Extra data for pyCoilGen, the Open source Magnetic Resonance Coil Generator. | Python | NMR | NA |
pycoilgen_utils | Extra utilities for pyCoilGen, the Open Source Magnetic Resonance Coil Generator. | Python | NMR | NA |
pyDichroX | Analyse XAS data | Python | XAS | 2025-03-18 |
pydnmr | Simulation of dynamic NMR | Python | NMR (1D) | 2020-06-12 |
PyEPRI (pub) | A CPU & GPU compatible Python package for Electron Paramagnetic Resonance Imaging | Python | EPR | 2025-05-17 |
pyexafs | A simple package for fast analysis of EXAFS data | Python | XFAS | NA |
pyfasma-spc | A Python package for handling SPC files | Python | Data Sharing | NA |
pyicoshift | Python 3 Version of icoshift | Python | NMR (1D) | NA |
pyihm | Indirect Hard Modelling of NMR mixtures | Python | NMR | NA |
PyIRoGlass | Analyze transmission FT-IR spectra of basaltic to andesitic glasses. | Python | FT-IR | NA |
pynics | Computing Nuclear Independent Chemical Shifts | Python | NMR | NA |
pynir | NIR calibration toolbox in python | Python | NIR | 2024-12-26 |
pynmr | Parse & Process NMR data. | Python | NMR | 2025-04-01 |
PyNMR-STAR | I/O NMR-STAR files from BMRB | Python | Data Sharing (NMR) | 2025-01-01 |
pynmranalysis | python library for NMR preprocessing & analysis | Python | NMR | 2022-12-11 |
pynmrstar | PyNMR-STAR provides tools for reading, writing, modifying, & interacting with NMR-STAR files | Python | Data Sharing (NMR nD) | 2025-01-01 |
pynxtools-raman | A reader for transferring raman data from vendor formats to NeXus and NOMAD. | Python | Data Sharing (Raman) | NA |
PyOR | Simulate NMR spin physics | Python | NMR | 2025-04-17 |
pyperspec | Analysis and manipulation of hyperspectral data sets | Python | Any | 2025-04-23 |
pyPreprocessing | Preprocessing of datasets, especially from spectroscopy | Python | Any | 2025-04-13 |
PyRoShift (pub) | Compute rotamer populations from 13C NMR shifts | Python | NMR (13C) | 2024-05-15 |
pySpecData | object-oriented N-dimensional data processing with notebook functionality | Python | Any | NA |
PythonNDVI | Process images acquired using a Near-Infrared (NIR) converted camera to get NVDI | Python | NIR | 2024-04-29 |
pytnt | Read files from TecMag NMR instruments | Python | Data Sharing (TecMag) | 2020-11-06 |
pyUSID (pub) | Universal spectroscopy & imaging data format | Python | Data Sharing | 2025-03-13 |
pyuvis | Python tools for Cassini UVis data | Python | UV-Vis | 2024-08-01 |
qtmetabolabpy | Python package for data processing of NMR 1D and 2D metabolomics and metabolism tracing data | Python | NMR | 2025-05-19 |
quakesranalysis-tspspi | Analysis package for QUAK/ESR runs | Python | ESR | NA |
quakesrrtdisplay-tspspi | A simple realtime display for QUAK/ESR data in a specific experimental setup | Python | ESR | NA |
quakesrthorcam-tspspi | Mini utility that handles pictures taken for QUAK/ESR experiment by ThorCam camera | Python | ESR | NA |
quasar | General spectroscopic data handling running on Orange | Python | Any | 2025-05-22 |
QUIDDIT3 | QUIDDIT is a software tool for automated processing of diamond IR spectra | Python | FT-IR | 2025-04-14 |
RADIS | Compute IR spectra | Python | FT-IR | 2025-05-14 |
raman | Deep CNN for Raman Applications | Python | Raman | 2018-12-13 |
raman_tl | Baseline correction, smoothing, processing and plotting of Raman spectra | Python | Raman | 2024-05-17 |
raman-cnn | Neural network classifier for Raman spectral data using TensorFlow | Python | Raman | 2023-02-10 |
raman-fitting | A Python framework for the batch processing and deconvolution of Raman spectra of carbonaceous materials. | Python | Raman | 2025-04-20 |
raman-hypmap | Raman hyperspectral processing for Horiba instrument | Python | Raman | NA |
Raman-noodles | Repository containing code for analysis of Raman and IR spectra datasets | Python | Raman | 2020-05-19 |
raman-opu-analysis | OPU anaysis for Raman single-cell spectroscopy data | Python | Raman | NA |
raman-rabi | Parameter fitting for Raman-Rabi electron-nuclear spin flip-flop transitions in NV centers. | Python | Raman | 2019-05-16 |
ramanchada2 | Harmonising Raman Spectroscopy | Python | Raman | 2025-05-13 |
ramanfitter | A Raman peak finder and model fitter | Python | Raman | NA |
ramannoodle | Compute off-resonance Raman spectra from first principles calculations | Python | Raman | 2025-03-30 |
ramanspy | RamanSPy: An open-source Python package for integrative Raman spectroscopy data analysis | Python | Raman | 2025-04-03 |
ramantools | Tools for analyzing Raman spectroscopy data, measured by a Witec confocal Raman microscope. | Python | Raman | NA |
ramCOH | Library for processing and peak fitting of Raman spectra, targeted at CO2 fluids and hydrous silicate glasses | Python | Raman | 2023-07-24 |
ramix | RaMix: A Python package for generating Raman Mixture Spectra | Python | Raman | 2023-06-28 |
ramkit | An analysis kernel for raman spectrum. | Python | Raman | 2023-07-24 |
RamPy | Processing Raman, IR, XAS spectra | Python | Any | 2025-05-11 |
RBMRB | Interface to BMRB database | R | Data Sharing | 2023-01-09 |
rCRSI | Visualization and processing toolbox for Confocal Raman Spectroscopy Imaging | R | Raman | 2019-11-18 |
rCSRI | Tools for confocal Raman imaging spectroscopy | R | Raman | 2019-11-18 |
rDolphin | 1D NMR profiling for metabolomics | R | NMR (1D) | 2023-11-15 |
read_pdz | Convert Bruker XRF spectral data .pdz files into an open file format | Python | Data Sharing (XRF) | 2024-09-20 |
readJDX | Import JCAMP-DX files to ChemoSpec format | R | Raman | 2023-11-17 |
Rela2x (pub) | Analytic and automatic NMR relaxation theory | Python | NMR | 2025-03-06 |
relaxNMR | 1D Proton NMR relaxometry analysis | Python | NMR | 2024-05-02 |
relaxometrynmr | solid-state NMR relaxation data analysis: T1, T1_rho and T2 | Python | NMR (SS) | NA |
renishaw-wdf | Renishaw spectroscopy data file accessor classes | Python | Data Sharing (Raman) | NA |
renishawWiRE | Reading wdf Raman spectroscopy file from Renishaw WiRE | Python | Data Sharing (Raman) | 2023-08-28 |
resemble | Non-linear modeling of Vis & IR spectra | R | IR, Vis | 2025-05-21 |
rNMR (pub) | Visualization of 1D & 2D NMR | R | NMR (nD) | 2015-02-08 |
Rnmr1D (pub) | 1D NMR processing for metabolomics | R | NMR (1D) | 2025-04-23 |
S1Control | XRF Spectral Analysis and control of Bruker pXRF Instruments - S1 TITAN, TRACER, CTX, XMS | Python | XRF | 2024-08-18 |
sabarsi | Workflow for processing surface enhanced Raman spectra (SERS) | R | Raman | 2023-04-02 |
seabreeze | Python interface module for Ocean Optics spectrometers | Python | UV-Vis | 2025-05-22 |
serrsBayes (pub) | Modeling of surface enhanced Raman spectra (SERS) | R | Raman | 2021-06-27 |
simLIBS | simLIBS provides Python class to simulate LIBS spectra with NIST LIBS Database interface. | Python | LIBS | 2025-03-27 |
simos | Spin simulations in Python (NMR, EPR/ESR as well as ODMR). | Python | NMR, EPR | NA |
simplerspec | Spectral processing & modeling | R | MIR, NIR | 2024-08-08 |
SimulatedLIBS | SimulatedLIBS provides Python class to simulate LIBS spectra with NIST LIBS Database interface. | Python | LIBS | 2025-03-27 |
simulateIRAS | A python package for simulating Infrared Reflection Absorption Spectroscopy(IRAS) measurements | Python | IR | 2023-05-03 |
sleepy-nmr | Spins in Liouville-space for rElaxation and Exchange in PYthon | Python | NMR | NA |
SmoothDeconvolutionNMR (pub) | NMR data processing | R | NMR | 2025-02-18 |
spa-on-python | Read Nicolet/Thermo Omnic files on python (.spa). | Python | Data Sharing | 2024-04-11 |
spc-io | SPC file format parser | Python | Data Sharing | 2025-04-29 |
SPCSpectra | Module for working with .SPC spectra | Julia | Data Sharing | 2022-07-14 |
SPCViewer | SPCViewer (fka. BluEPRint) is a versatile Tool for NMR, EPR and UV/Vis Spectroscopy | C# | NMR, EPR, UV-Vis | 2023-08-15 |
speaq (pub) | NMR data processing | R | NMR (nD) | 2022-05-22 |
Spec (pub) | Spectral analysis of plant stoichiometry | R | NIR | 2024-06-06 |
specio | I/O spectroscopic files | Python | Any | 2024-09-25 |
specmine | General spectroscopic data handling | R | Any | 2021-09-20 |
specreduce | Reduce & calibrate spectroscopic data | Python | IR, UV-Vis | 2025-05-19 |
spectacles | Storing, manipulation & analysis of spectroscopic data sets | R | Any | 2023-11-01 |
Spectoprep | Bayesian optimization of spectroscopic preprocessing | Python | Any | 2025-05-04 |
spectra | Library for UV, IR, 1D & 2D NMR | Python | Any | 2020-09-08 |
Spectra | Treatment of spectra (Raman, infrared, XAS, NMR) data | Julia | Any | 2025-05-02 |
spectra-formatter | Tool to write out NMR data for publication summaries | html | NMR (1D) | 2019-02-10 |
spectradb | A Lightweight Spectroscopic Data Manager | Python | Data Sharing | NA |
SpectraFP | A package to perform fingerprints from spectroscopy datas. | Python | Any | 2024-07-24 |
spectrai | spectrai: a deep learning framework for spectral data. | Python | Any | 2024-06-19 |
Spectral-Anomaly-Checker | Tool to identify anomalous peaks in XRF spectra | Python | XRF | 2025-04-23 |
spectral-nexus | Spectral Nexus is a web application for data analysis, spectra classification and visualization. | Python | FT-IR | 2025-04-23 |
spectralAnalysis | Exploratory data analysis of 1D spectra | R | Any | 2024-01-29 |
spectramap | Hyperspectral package for spectroscopists | Python | Raman | 2025-02-20 |
spectrapepper | A Python package to simplify & accelerate analysis of spectroscopy data | Python | Any | 2024-09-06 |
SpectraSimulation | Simulation Program for calculating synthetic spectra from theoretical data. | Python | XRF | NA |
SpectroChemPy | General spectroscopic data handling | Python | Any | 2025-05-06 |
spectrocrunch | Spectroscopic imaging library (XRF/XAS) | Python | XRF | NA |
SpectroscoPyx | Atomic/Plasma spectroscopy | Python | UV-Vis | 2021-05-28 |
spectroview | A Tool for Spectroscopic Data Processing and Visualization. | Python | Raman | NA |
spectrum-image | Python Package for EELS (Electron Energy Loss Spectroscopy) Analysis | Python | EELS | NA |
specutils | Toolbox for astronomical spectroscopic data | Python | UV-Vis | 2025-05-22 |
speview | Program to display binary SPE files containing Raman spectra | Python | Data Sharing (Raman) | 2017-07-05 |
spike | FT-spectroscopy processing | Python | NMR | 2024-09-02 |
spike-py | The SPIKE program. A collaborative development for a FT-spectroscopy processing program | Python | NMR (1D, 2D) | 2024-09-02 |
spinpy | Package for simulating EPR data. | Python | EPR | NA |
spinsolveproc | Python library to process Spinsolve NMR experiments. | Python | NMR | NA |
SRPAstro | Astronomical Data Analysis Tools | Python | NIR | 2024-04-29 |
SRPAstro.FITS | Tools for handling FITS files under SRP | Python | NIR | 2024-07-28 |
SRPAstro.GW | Tools for handling GW EM transient search under SRP | Python | NIR | 2019-08-25 |
SRPAstro.REM | Tools for the REM telescope under SRP | Python | NIR | 2023-05-18 |
SRPAstro.STATS | Statistical tools under SRP | Python | NIR | NA |
SRPAstro.TNG | Tools for the TNG telescope under SRP | Python | NIR | 2021-05-11 |
ssfp | Simple steady-state free precession simulation | Python | NMR | NA |
ssNAKE (pub) | SS NMR processing & fitting | Python | NMR (SS) | 2024-06-25 |
tameNMR | 1H NMR metabolomics | R | NMR (1D) | 2021-09-02 |
teacups | Simulation of timeresolved transient EPR spectra of spinpolarised spin species | Python | Time Series (EPR) | 2025-02-24 |
tesliper | Bbatch processing of spectra-related Gaussian output files | Python | Raman, FT-IR, UV | NA |
thorondor (pub) | XANES package using jupyter widgets | Python | XAS | 2022-07-18 |
tidyDenovix | Cleans spectrophotometry data from the Denovix DS-X | R | UV-Vis | 2024-07-13 |
tidyspec | Analyze spectroscopy data using tidy-data philosophy | R | Any | 2025-05-19 |
TIMP (pub) | Time-resolved spectroscopy | R | Time Series | 2023-02-09 |
trEPR | Time-resolved EPR spectroscopy | Python | Time Series (EPR) | 2023-07-15 |
unmixR | Unmixing of hyperspectral data sets | R | Any | 2025-03-20 |
uvvispy | Package for handling optical absorption data | Python | UV-Vis | 2021-07-14 |
uvvistauc | Optical band gap plots for semiconductors | R | UV-Vis | 2023-03-24 |
Vespucci (pub) | Tools for spectroscopic data analysis & imaging | C++ | Raman | 2020-02-17 |
vibrav | Vibrational averaging of molecular properties | Python | FT-IR | NA |
wai-spectralio | Python library for reading/writing various NIR, MIR, XRF spectroscopy data formats. | Python | Data Sharing | NA |
wasatch | This package is a driver for Wasatch Photonics spectrometers | Python | Raman | NA |
waves | General spectroscopic data handling | R | Any | 2024-10-23 |
web_geochemistry | Shiny app for visualizing XRF & NAA geochemistry concentrations | R | XRF | 2021-04-28 |
whose | A fast solid-state NMR spectrum simulation and analysis library. | Python | NMR | 2025-05-20 |
whoseline | Interactive tool for identifying atomic spectral lines | Python | UV-Vis, NIR | 2025-02-26 |
wobble (pub) | Analysis of stellar spectra time series | Python | Time Series | 2024-08-06 |
WrightTools (pub) | Toolbox for coherent multidimensional spectroscopy | Python | Raman | 2025-02-16 |
xanespy | Tools for analyzing X-ray absorbance spectroscopy data | Python | XAS | 2023-07-07 |
xas-pipeline | A data pipeline for processing XAS data | Python | XAS | NA |
xaspy | Analysis of experimental xray absorption spectroscopy data | Python | XAS | NA |
xcal_raman | Module for x-axis calibration of Raman spectrometers | Python | Raman | NA |
xfit | Package for fitting XRF spectra | Python | XRF | NA |
XL-e (pub) | Simulate photoelectron spectra driven by laser pulses | Fortran | PES | 2015-10-29 |
xmimsim | Toolkit for making & processing X-ray fluoresence simulations via XMI-MSIM | Python | XRF | NA |
XPlotLib | Libary to plot experimental and theoretical XRay data. | Python | XRF, XAS | NA |
Xray-Fluorescence-Depth | Estimate the theoretical maximum depth at which an element will be detectable through a solid layer of a different element via XRF analysis. ex: coatings calibration | Python | XRF | 2024-11-11 |
xraylarch | Synchrotron X-ray data analysis in python | Python | XRF, XAS | NA |
xrf_cluster | Producing mineral maps from μXRF geochemistry using KMeans clustering | Python | XRF | 2025-02-15 |
xrf_filetools | XRF file tools | Go | Data Sharing (XRF) | NA |
xrf_parser | Parse files from handheld XRF spectrometers | Python | Data Sharing (XRF) | 2019-07-21 |
xrf-tomo | XRF Tomography Reconstruction | Python | XRF | NA |
xyza2pipe | File conversion for NMR data formats | C | Data Sharing (NMR nD) | 2024-07-10 |
Additions or corrections? Please file an issue with the necessary information or submit a pull request at the repo.
The status column in the table gives the date of the most recent:
as a proxy for regular maintenance, at the time this page was updated. Keep in mind that some software is fairly mature and thus an older status date does not necessarily mean the software is not maintained. Follow the links to the websites for more details.
The status date is found by automatic checking of sites with valid links. Commits and issues are only checked for Github sites, via the Github API. Web site updates are found using a simple search for common date formats and may be inaccurate. Keep in mind the most recent activity may be on any branch in a repo, and may be newer than any official releases.1
We made 522 inquiries to Github to produce this report.↩︎