The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Analyze, Process, Identify, and Share Raman and (FT)IR Spectra
Raman and (FT)IR spectral analysis tool for environmental samples
with a special focus on microplastics (Cowger et al. 2025, doi: 10.1021/acs.analchem.5c00962).
With read_any(), Open Specy provides a single function for
reading individual, batch, or map spectral data files like .asp, .csv,
.jdx, .spc, .spa, .0, and .zip. process_spec() simplifies
processing spectra, including smoothing, baseline correction, range
restriction and flattening, intensity conversions, wavenumber alignment,
and min-max normalization. Spectra can be identified in batch using an
onboard reference library using match_spec(). A bundled
Shiny app is available via run_app() or directly on this
website.
Use the hosted browser app on the OpenSpecy website.
The local app remains available through run_app().
OpenSpecy is available from CRAN and GitHub.
You can install the latest release of OpenSpecy from CRAN with:
install.packages("OpenSpecy")To install the development version of this package, paste the following code into your R console (requires devtools):
if (!require(devtools)) install.packages("devtools")
devtools::install_github("wincowgerDEV/OpenSpecy-package")library(OpenSpecy)
run_app()See package vignette for a detailed standard operating procedure.
# Fetch the current spectral library from the Open Specy AWS distribution
get_lib("derivative")
# Load library into global environment
spec_lib <- load_lib("derivative")
# Read sample spectrum
raman_hdpe <- read_extdata("raman_hdpe.csv") |>
read_any()
# Look at the spectrum
plotly_spec(raman_hdpe)
# Process the spectra and conform it to the library format
raman_proc <- raman_hdpe |>
process_spec(conform_spec_args = list(range = spec_lib$wavenumber),
smooth_intens = TRUE, make_rel = TRUE)
# Compare raw and processed spectra
plotly_spec(raman_hdpe, raman_proc)
top_matches <- match_spec(raman_proc, library = spec_lib, na.rm = TRUE, top_n = 5,
add_library_metadata = "sample_name",
add_object_metadata = "col_id")
# Print the top 5 results with relevant metadata
top_matches[, c("object_id", "library_id", "match_val", "SpectrumType",
"SpectrumIdentity")]
# Get all metadata for the matches
get_metadata(spec_lib, logic = top_matches$library_id)Kris Heath created a Open Specy python package! https://pypi.org/project/openspi/
Cowger W, Steinmetz Z, Gray A, Munno K, Lynch J, Hapich H, Primpke S, De Frond H, Rochman C, Herodotou O (2021). “Microplastic Spectral Classification Needs an Open Source Community: Open Specy to the Rescue!” Analytical Chemistry, 93(21), 7543-7548. doi: 10.1021/acs.analchem.1c00123.
Cowger W et al. (2025). “Open Specy 1.0: Automated (Hyper)spectroscopy for Microplastics.” Analytical Chemistry, 97(32), 17345-17356. doi: 10.1021/acs.analchem.5c00962.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.