Lab code that fits spectra one by one in a Python loop gets slow once you have thousands of curves. SPECTROview, an open-source Python desktop app for spectroscopic processing and fitting, replaces that loop with a vectorized batch fitting (VBF) engine built on NumPy. On an Intel Core i5-8365U laptop with 16 GB of RAM, the authors report 16×–62× speedups versus lmfit one-by-one fitting, depending on dataset size and model complexity. The largest test used 16,384 spectra, with peak memory of 845 MB for under a second before returning to about 80 MB after convergence. The SoftwareX paper that describes the software was received 2026-06-17, accepted 2026-07-04, and published 2026-07-08 — a 17-day path from receipt to acceptance in CrushSCI’s SoftwareX records.
What SoftwareX is
SoftwareX is published by Elsevier (ISSN 2352-7110) as an open-access (OA) journal. CrushSCI labels for the journal include: SCIE, OA, 2026 Rising Star Zone 3, 2025 CAS Zone 4, 2026 JCR Q3, with 479 articles published in 2025.
Scope
Per the journal’s Aims and Scope, SoftwareX is meant to give research software academic recognition: peer-reviewed software that can be cited, inspected, and reused, with credit for developers. It is multidisciplinary — mathematics and physics, environment, medicine and biology, humanities and social sciences — and also takes software in areas such as citizen science, cybersecurity, the digital economy, and energy. Domain-independent building blocks are welcome: math libraries, image-processing libraries, visualization tools, data-management tools, and similar.
A submission has two parts: a short descriptive paper of at most 4,000 words, plus an open-source software release with supporting materials. The paper is framed as documentation for software readers and potential users. Article types include Original software publication and Software update.
For developers, that means the code must be open, installable, and usable; the paper should explain what problem the software solves, how it is designed, and how others can use it — not a long algorithm-theory treatise.
The 17-day paper
In CrushSCI’s SoftwareX records, the shortest review cycle is 17 days:
- Received: 2026-06-17
- Accepted: 2026-07-04
- Published: 2026-07-08
Those dates match the paper PDF: Received 17 June 2026, Received in revised form 28 June 2026, Accepted 4 July 2026, Available online 8 July 2026.
What the paper covers
Title: SPECTROview: An open-source application for interactive spectroscopic data processing, fitting, and visualization. Sole author: Van Hoan Le (CEA / LETI, Grenoble). Published in SoftwareX volume 35, article 102862.
Problem. Raman, photoluminescence, and similar experiments produce large numbers of spectra — a 2D scan or wafer map can hold tens of thousands. A common Python approach is lmfit curve fitting inside a per-spectrum loop. That becomes slow at scale, and Python’s GIL limits CPU-bound parallelism.
Software. SPECTROview is Python with a PySide6 UI and three workspaces: Spectra (single spectrum), Maps (2D maps), Graphs (statistical plots). The pipeline covers import from multiple instrument formats, baseline correction, multi-peak fitting, and export of publication-ready figures. It is GPL-3.0 on GitHub and installable with pip install spectroview.
Method: vectorized batch fitting (VBF). Instead of fitting spectra one by one, the engine stacks N spectra into an N×M matrix (M = points per spectrum), builds the Levenberg–Marquardt Jacobian as an N×M×K tensor (K = number of fit parameters), and solves all equations in one vectorized LAPACK call. Two further choices: closed-form analytic Jacobians for each peak shape (not numerical differences), and a convergence mask that drops already-converged spectra from later iterations.
The paper also states why the authors did not reuse batch LM implementations from PyTorch or TensorFlow: those rely on autodiff aimed at neural-net training, not closed-form peak shapes such as Gaussians and Lorentzians, and they do not conveniently handle spectra that converge on different iteration steps.
Results. On an Intel Core i5-8365U, 16 GB laptop, four representative datasets were run 10 times each. Versus lmfit one-by-one fitting, VBF speedups were between 16× and 62×, depending on data scale and model complexity. The largest dataset had 16,384 spectra; peak memory was 845 MB for under a second, then about 80 MB after convergence.
Limits. The authors note that VBF uses one fit model for every spectrum in a batch; with many overlapping peaks (for example more than 20–30), results grow more sensitive to initial parameters and constraints. For inhomogeneous data such as composites or layered structures, the user must define a single model that covers every peak that may appear. Speedups were measured on one laptop against lmfit one-by-one fitting only. Full vectorization trades memory for speed: memory grows linearly with N×M×K.
Takeaway for developers. The contribution is not a new mathematical method; it is rewriting a common slow path (nonlinear fitting in a Python loop) as batched tensor work, then shipping it as an installable tool with a UI and documentation — the kind of research software SoftwareX’s scope describes.
Source
Receipt, acceptance, and publication dates above come from CrushSCI’s paper records for SoftwareX and were checked against the Received / Accepted / Available online dates on the paper PDF. SoftwareX on CrushSCI: https://www.crushsci.com/journal/26
