The open-source spectroscopy stack has consolidated. Five years ago a practitioner had to glue together a half-dozen barely-maintained scripts to get from a vendor .spc file to a usable preprocessing pipeline. Today most of that gluing is done by a small number of mature packages with citations, documentation, and active issue trackers.
This piece ranks the tools we see in production - both at biopharmaceutical pilot plants and at industrial-chemistry sites in Europe - by what they do well and where the gap to a commercial chemometric platform is still real. The companion ranking, open-source chemometric libraries, focuses on the modelling side; this one focuses on the spectroscopy-processing side: file readers, preprocessing, baseline and peak handling, and the GUIs that wrap them.
Methodology
We scored each package against six criteria and weighted them as follows:
- Spectroscopy-domain breadth (25%): does it read common vendor formats, handle Raman/IR/NIR/UV-Vis, and cover preprocessing operations that matter for those modalities (cosmic ray removal, baseline correction, normalisation, derivative spectra)?
- Maintenance velocity (20%): commit frequency over the last 12 months, issue-resolution time, presence of a tagged release in 2025 or 2026.
- Documentation and examples (15%): API reference plus runnable notebooks, not a 2017 README.
- Production fitness (15%): tested code, semantic versioning, dependency hygiene, ability to be pinned and reproduced.
- Ergonomics for non-programmers (15%): GUI availability and the steepness of the learning curve for an analytical chemist who is not a full-time Python developer.
- Interoperability (10%): clean handoff to scikit-learn, PyTorch, or R’s tidymodels for downstream modelling.
Inputs were the project repositories, the peer-reviewed papers in sources, our own production use across PAT projects in 2025-2026, and discussion threads on the relevant GitHub trackers. We did not score tools whose last commit predates 2024; abandoned packages are flagged in the closing section rather than ranked.
The ranking
1. Quasar (Orange Spectroscopy)
Quasar is the Orange Data Mining extension for spectroscopy. It pairs a visual workflow editor with a Python backend, and that pairing is the reason it tops the list. An analyst who has never written a line of Python can build a working Raman or FTIR preprocessing pipeline in an afternoon, save it as a workflow file, and hand it to a colleague who runs it on a different dataset. The Cells paper is the canonical reference and the package has had multiple 2025 and 2026 releases.
Strengths: GUI-first, Raman and IR coverage equally strong, native MCR via pyMCR, reads most vendor formats either directly or through bundled converters. Weaknesses: the visual paradigm hides what is actually happening, which is fine for exploration but uncomfortable for a regulated PAT method record. For that, capture the workflow file in version control and document each widget’s parameters explicitly.
2. ramanspy
ramanspy is the youngest serious entrant and the most Raman-specific. The 2024 Analyst paper from Cambridge introduced a package that is deliberately scoped: Raman only, Python only, opinionated defaults for cosmic ray removal, baseline correction, normalisation, and denoising. The 2025 and 2026 releases added support for hyperspectral Raman imaging and tighter integration with deep-learning frameworks.
Strengths: clean API, sensible defaults, active maintenance, well-documented benchmarks. Weaknesses: Raman only - if your lab also runs NIR and FTIR you will still need a second tool. The dataset readers cover the most common Renishaw, Horiba, and WITec exports but stop short of less common vendor variants.
3. spectrochempy
spectrochempy is the broadest Python framework on the list. It treats a spectrum as a labelled n-dimensional array with units, time stamps, and metadata - closer to xarray than to a plain NumPy array. That data model is the package’s most useful contribution. It handles IR, NIR, Raman, UV-Vis, and even small NMR datasets in a single object model.
Strengths: rich data model, integrated readers for Bruker OPUS, Thermo OMNIC, Renishaw WiRE, Horiba LabSpec, and several others; full MCR-ALS implementation. Weaknesses: heavier API than ramanspy, and the documentation, while extensive, is structured more like an academic course than a getting-started guide.
4. mdatools (R)
mdatools is the R workhorse for chemometrics and stays on this list because the modelling work it does (PCA, PLS, iPLS, SIMCA) is what spectroscopy users actually need next after preprocessing. Kucheryavskiy keeps it under active maintenance, and the textbook-and-package pairing makes it the de facto teaching tool in European chemometrics courses.
Strengths: complete chemometric workflow, excellent diagnostics, well-documented. Weaknesses: R-only; the import side is thinner than the Python tools and most users pair it with hyperSpec or ChemoSpec for the file-reading half of the job.
5. pybaselines
pybaselines does one thing - baseline correction - and does it more thoroughly than anything else open source. The package implements over 50 algorithms (Whittaker, ASLS, airPLS, IModPoly, FABC, several morphological methods) with a consistent API. The 2024 JOSS paper is the citation; releases in 2025 added GPU-accelerated variants of the most expensive algorithms.
Strengths: comprehensive, well-tested, lightweight, no opinion about what comes before or after baseline correction. Weaknesses: not a full pipeline tool - you compose it into a larger workflow.
6. pyMCR
NIST’s MCR-ALS implementation. Mature, peer-reviewed, and the reference Python implementation for multivariate curve resolution. The 2019 NIST paper is the citation, and the project has had small but steady updates since.
Strengths: correct, well-documented mathematics, sensible constraints (non-negativity, closure), used by both spectrochempy and Quasar under the hood. Weaknesses: small surface area, no GUI, no preprocessing - it is one well-built building block.
7. rampy
Charles Le Losq’s rampy is the long-running Python toolbox for Raman processing in geosciences and glass science. It predates ramanspy by several years and remains useful for users who want a procedural, script-friendly tool rather than an object-oriented framework.
Strengths: stable, lightweight, transparent code, easy to read and modify. Weaknesses: slower release cadence than ramanspy, narrower feature set, documentation is mostly tutorial notebooks rather than a full API reference.
8. specutils
specutils is the Astropy coordinated package for one-dimensional spectra. It was built for astronomical spectroscopy but the data model translates directly to analytical work, and several PAT teams use it for its excellent uncertainty handling and unit-aware operations.
Strengths: rigorous uncertainty propagation, units, well-engineered I/O. Weaknesses: astronomy idioms leak through (wavelength axes that prefer Angstroms, spectral line catalogues for stellar elements), and the analytical-spectroscopy preprocessing methods are not as numerous as in domain-specific packages.
9. ChemoSpec (R)
ChemoSpec is the long-standing exploratory tool for spectra in R. It is teaching-oriented, well-paired with hyperSpec for data import, and has had small releases through 2025.
Strengths: pedagogically clear, good for exploratory PCA and hierarchical clustering on spectra. Weaknesses: not a production pipeline tool; the API has grown organically and shows it.
10. hyperSpec (R)
Claudia Beleites’ hyperSpec is the R framework for hyperspectral data and the package most R users reach for to read vendor files. Maintenance velocity has slowed but the package is still actively used and the documentation is the most complete in the R spectroscopy ecosystem.
Strengths: excellent data model, comprehensive file readers, mature. Weaknesses: 2025 commits are infrequent, and the dependency on older R imaging packages occasionally complicates installation on current R versions.
Honourable mentions and the abandoned shelf
nmrglue deserves a mention as the canonical Python tool for NMR spectroscopy data, with a 2013 paper and steady maintenance. It is out of scope for a Raman/IR/NIR ranking but if your workflow includes NMR there is no real open-source competitor.
We deliberately did not score the following: PySpectra, scipy-based one-off scripts that ship as packages but have not seen commits since 2022, several abandoned academic projects whose last release predates the pyproject.toml era. If you find yourself depending on a package that has not been updated since 2022, plan a migration path now. The academic snapshot from June covers what the next cohort of hires is actually being taught with.
What we actually use
In production our 2026 default Python stack is spectrochempy for I/O and the data model, pybaselines for baseline correction, ramanspy for Raman-specific preprocessing where it is more opinionated, and pyMCR or scikit-learn downstream depending on the modelling task. Where a non-programming analyst needs to drive the pipeline, Quasar is the front end. For teams already invested in R, mdatools plus hyperSpec covers the same ground with similar quality, and chemometrics 101 walks through the modelling vocabulary that ties either stack together.
The honest summary is that the gap to a commercial platform like Unscrambler, SIMCA, or Solo has narrowed sharply on the algorithmic side and remains real on the workflow-validation side. If you need a 21 CFR Part 11-friendly audit trail, the commercial tools still win. For everything upstream of that - method development, preprocessing exploration, scientific publication - the open-source stack in this ranking is what we recommend.