Analyze, Process, Identify, and Share Raman and (FT)IR Spectra
Raman and (FT)IR spectral analysis tool for plastic particles and
other environmental samples (Cowger et al. 2021, doi: 10.1021/acs.analchem.1c00123).
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 (Cowger et al. 2020, doi: 10.1177/0003702820929064)
using match_spec()
. A Shiny app is available via
run_app()
or online at https://openanalysis.org/openspecy/.
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")
::install_github("wincowgerDEV/OpenSpecy-package") devtools
library(OpenSpecy)
run_app()
See package vignette for a detailed standard operating procedure.
# Fetch current spectral library from https://osf.io/x7dpz/
get_lib("derivative")
# Load library into global environment
<- load_lib("derivative")
spec_lib
# Read sample spectrum
<- read_extdata("raman_hdpe.csv") |>
raman_hdpe read_any()
# Look at the spectrum
plotly_spec(raman_hdpe)
# Process the spectra and conform it to the library format
<- raman_hdpe |>
raman_proc process_spec(conform_spec_args = list(range = spec_lib$wavenumbers),
smooth_intens = T, make_rel = T)
# Compare raw and processed spectra
plotly_spec(raman_hdpe, raman_proc)
<- match_spec(raman_proc, library = spec_lib, na.rm = T, top_n = 5,
top_matches add_library_metadata = "sample_name",
add_object_metadata = "col_id")
# Print the top 5 results with relevant metadata
c("object_id", "library_id", "match_val", "SpectrumType",
top_matches[, "SpectrumIdentity")]
# Get all metadata for the matches
get_metadata(spec_lib, logic = top_matches$library_id)
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, Steinmetz Z, Leong N, Faltynkova A, Sherrod H (2024). “OpenSpecy: Analyze, Process, Identify, and Share Raman and (FT)IR Spectra.” R package, 1.0.8. https://github.com/wincowgerDEV/OpenSpecy-package.