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:
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 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$wavenumbers), smooth_intens = T, make_rel = T) # Compare raw and processed spectra plotly_spec(raman_hdpe, raman_proc) top_matches <- match_spec(raman_proc, library = spec_lib, na.rm = T, 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)
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 (2023). “OpenSpecy: Analyze, Process, Identify, and Share Raman and (FT)IR Spectra.” R package, 1.0.6. https://github.com/wincowgerDEV/OpenSpecy-package.