Read OPUS binary files from Bruker spectrometers
Description
Read and parse OPUS files with spectral data from individual measurements
Usage
read_opus(dsn, data_only = FALSE, parallel = FALSE, progress_bar = FALSE)
Arguments
dsn
|
data source name. Can be a path to a specific file or a path to a directory. The listing of the files in a directory is recursive. |
data_only
|
read data and parameters with FALSE per default, or only
read data NULL, which only returns the parsed data.
|
parallel
|
read files in parallel via “mirai” (non-blocking parallel
map). Default is FALSE. See section "Details" for more
information.
|
progress_bar
|
print a progress bar. Default is FALSE.
|
Value
List with OPUS spectra collection of class
list_opusreader2. The individual elements are individual
sample measurement data extracted from the corresponding OPUS binary
files, as parsed from the encoded data blocks.
Each element in list_opusreader2 contains metadata and
measurement data equivalent to their names displayed in the Bruker OPUS
viewer software. However, we used snake_case and standardized the naming
for better output handling.
Each parsed block element is a sublist that contains
1. the binary read instructions decoded/derived from
the header ($block_type,
$channel_type,
$text_type and
$additional_type,
$offset (bytes),
$next_offset (bytes),
$chunk_size (bytes)).
2. if parameter block, nested list of specific
parameters under $parameters,
which has elements named according to capitalized Bruker-internal
"three-letter-string" definitions (e.g., "DPF := Data Point Format").
Possible first-level block names and information provided include:
-
refl_no_atm_comp_data_param: classparameter(viewer: "Data Parameters Refl". Parameter list with metadata forrefldata block (refl). -
refl_no_atm_comp: classdata(spectrum; viewer: "Refl"). Unprocessed (raw; i.e, not atmospherically compensated) reflectance spectra (:= sc_sample / sc_ref). Note that this element is the untreated spectra before an eventual "atmospheric compensation" routine is applied. -
refl_data_param: classparameter(viewer: "Data Parameters Refl"). Parameter list with metadata forrefldata block (metadata of reflectance spectrum; seerefloutput). Note that this element only results if "atmospheric compensation" was activated in the OPUS measurement settings. -
refl: classdata(spectrum; viewer: "Refl"). Atmospherically compensated reflectance spectra (:= sc_sample_corr / sc_ref_corr). This result spectrum only exists if either correction of CO2 and/or water vapour bands is set in OPUS setting (proprietary algorithm; could possibly be reverse engineered). Ifreflexists, it has always a corresponding untreatedrefl_no_atm_compspectrum (the latter present in file but not shown in the OPUS viewer, where only (final)abis displayed) -
quant_report_refl: classparameter(viewer: "Quant Report Refl"). Quantification report for tools of multivariate calibration onrefldata (i.e., PLS regression) offered in the QUANT2 OPUS package. Nested list with Bruker-internal "three-letter-string" definitions. "TIT" is the title of a nested quantification table,“E\stands probably for entry,\[2\]” “F\for field, and\[2\]” “Z\we do not yet know what it maps to. There seems more information needed, which we can get by expanding the header parsing algorithm.\[2\]” -
ab_no_atm_comp_data_param: classparameter(viewer: "Data Parameters AB"). Parameter list with metadata forabdata block (spectrum; seeaboutput). -
ab_no_atm_comp: classdata(spectrum; viewer: "Refl"). Unprocessed (raw; i.e, not atmospherically compensated) reflectance spectra (:= sc_sample/ sc_ref). -
ab_data_param: classparameter(viewer: "Data Parameters Refl"). Parameter list with metadata forabdata block (spectrum; seeab). Note that this element only results if "atmospheric compensation" was activated in the OPUS measurement settings. -
ab: classdata(spectrum; viewer: "AB"). Atmospherically compensated (apparent) absorbance spectra (:= log10(1 / (sc_sample_corr / sc_ref_corr)). Only exists if either correction of CO2 and/or water vapour bands is set in OPUS setting (proprietary algorithm; could possibly be reverse engineered). IfABexists, it has always a corresponding untreatedab_no_atm_compspectrum (the latter present in file but not shown in the OPUS viewer, where only finalabis displayed). -
quant_report_ab: classparameter(viewer: "Quant Report AB"). Quantification report for tools of multivariate calibration onabdata (i.e., PLS regression) offered in the QUANT2 OPUS package. Nested list with Bruker-internal "three-letter-string" definitions. "TIT" is the title of a nested quantification table,“E\stands probably for entry,\[2\]” “F\for field, and\[2\]” “Z\we do not yet know what it maps to. There seems more information needed, which we can get by expanding the header parsing algorithm.\[2\]” -
sc_sample_data_param: classparameter(metadata; viewer: "Data Parameters ScSm"). Describes thesc_sampledata block (seesc_sample). -
sc_sample: classdata(spectrum). Single channel (sc) spectrum of the sample (y-axis: intensity). -
ig_sample_data_param: classparameter(metadata; viewer: "Data Parameters IgSm"). -
ig_sample: classdata(signal, viewer: "IgSm"). Interferogram of the sample measurement. Oscillatory signal (x-axis: optical path difference (OPD); y-axis: amplitude of the signal). -
sc_ref_data_param: classparameter(metadata; viewer: "Data Parameters ScRf"). Describes thesc_sampledata block (seesc_ref). -
sc_ref: classdata(spectrum; viewer: "Data Parameters IgSm"). Single channel (sc) spectrum of the reference (background material: e.g., gold; y-axis: intensity). -
ig_ref_data_param: classparameter(metadata; viewer: "Data Parameters IgRf"). -
ig_ref: classdata(spectrum; viewer: "IgRf"). Interferogram of the reference measurement. (background material: e.g., gold). Oscillatory signal (x-axis: optical path difference (OPD); y-axis: amplitude of the signal) -
optics: class "parameter (metadata; viewer: "Optic Parameters"). Optic setup and settings such as "Accessory", "Detector Setting" or "Source Setting". -
optics_ref: class "parameter (metadata; viewer: "Optic Parameters Rf"). Optic setup and settings specific to reference measurement such as "Accessory", "Detector Setting" or "Source Setting". -
acquisition_ref: classparameter(metadata; viewer: "Acquisition parameters Rf". Settings such as ""Additional Data Treatment", (number) of "Background Scans" or "Result Spectrum" (e.g. value "Absorbance"). -
fourier_transformation_ref: classparameter(metadata; viewer: "FT - Parameters Rf"). Fourier transform parameters of the reference sample like Apodization function ("APF"), end frequency limit ("HFQ"), start frequency limit ("LFQ"), nonlinearity correction ("NLI"), phase resolution ("PHR"), phase correction mode ("PHZ"), zero filling factor ("ZFF"). -
fourier_transformation: classparameter(metadata; viewer: "FT - Parameters"). Fourier transform parameters of the sample measurement. Seefourier_transformation_reffor possible elements contained. -
sample: classparameter(metadata; viewer: "Sample Parameters"). Extra information such as the "Operator Name", "Experiment", or "Location". -
acquisition: classparameter(metadata; viewer. "Acquistion Parameters"). Settings of sample measurement, such as "Additional Data Treatment", (number) of "Background Scans" or "Result Spectrum" (e.g. value "Absorbance"). -
instrument_ref: classparameter(metadata; viewer: "Instrument Parameters Rf"). Detailed instrument properties for the reference measurement, such as "High Folding Limit", "Number of Sample Scans", or "Actual Signal Gain 2nd Channel". -
instrument: classparameter(metadata; viewer: "Instrument Parameters"). Detailed instrument properties for the sample measurement. Seeinstrument_ref. -
lab_and_process_param_raw: classparameter(metadata). Laboratory sample annotations such as "Product Group", "Product", "Label Product Info 1" (e.g., forsample_id), "Value Product Info 1" (e.g., thesample_idvalue), or the "Measurement Position Microplate" (e.g., for HTS-XT extension) -
lab_and_process_param_processed: classparameter(metadata). Laboratory sample annotations for measurements done with additional OPUS data processing methods. Seelab_and_process_param_raw -
info_block: classparameter(metadata). Infos such as "Operator", measurement "Group", "Sample ID". These can e.g. be set though the OPUS/LAB sofware interface. -
history: classparameter(metadata). Character vector with OPUS command history. -
unknown: if a block-type can not be matched, no parsing is done and an empty list entry is returned. This gives you a hint that there is a block that can not yet be parsed. You can take further steps by opening an issue.
Details
read_opus() is the high-level interface to read multiple
OPUS files at once from a data source name (dsn).
It optionally supports parallel reads via the {mirai}
backend. {mirai} provides a highly efficient asynchronous
parallel evaluation framework via the Nanomsg Next Gen (NNG),
high-performance, lightweight messaging library for distributed and
concurrent applications.
When reading in parallel, a progress bar can be enabled.