# raw files directory
raw_folder <- system.file(package = "isoorbi", "extdata")
# read files
raw_files <-
  raw_folder |> 
  orbi_find_raw(pattern = "nitrate") |> 
  orbi_read_raw(include_spectra = c(1, 10, 100)) |>
  suppressMessages()
# show summary for the read files
raw_files──────────────── [1m2 raw files - combine with orbi_aggregate_raw()[22m ───────────────1. [34mnitrate_test_10scans.raw[39m has 10 [32mscans[39m with 126 [32mpeaks[39m; + loaded 2 [32mspectra[39m
(618 points)
2. [34mnitrate_test_1scan.raw[39m   has  1 [32mscans[39m with  12 [32mpeaks[39m; + loaded 1 [32mspectrum[39m
(325 points)[32m✔[39m [38;5;249m[172ms][39m [1morbi_aggregate_raw()[22m aggregated [34mfile_info[39m (2), [34mscans[39m (11), [34mpeaks[39m
(138), and [34mspectra[39m (943) from 2 files using the [1m[3mstandard[23m[22m aggregator─────── [1maggregated data from 2 raw files - retrieve with orbi_get_data()[22m ───────→ [34mfile_info[39m (2): [32muidx[39m, [32mfilepath[39m, [32mfilename[39m, [32mcreation_date[39m, [32min_aquisition[39m,
[32mOperator[39m, [32mFileDescription[39m, [32mMassResolution[39m, [32mSpectraCount[39m, [32mFirstSpectrum[39m,
[32mLastSpectrum[39m, [32mStartTime[39m, [32mEndTime[39m, [32mLowMass[39m, [32mHighMass[39m, [32mInstrumentCount[39m,
[32mInstrumentModel[39m, [32mInstrumentName[39m, [32mSerialNumber[39m, [32mSoftwareVersion[39m,
[32mHardwareVersion[39m, [32mRawFileVersion[39m, [32mInstrumentUnits[39m, [32mComment[39m, [32mSampleId[39m,
[32mSampleName[39m, [32mSampleType[39m, [32mSampleWeight[39m, [32mSampleVolume[39m, [32mBarcode[39m, [32mRowNumber[39m, [32mVial[39m,
[32mInjectionVolume[39m, [32mDilutionFactor[39m, [32mIstdAmount[39m, [32mCalibrationLevel[39m,
[32mInstrumentMethodFile[39m, [32mCalibrationFile[39m, [32mProcessingMethodFile[39m, [32mUserText0[39m,
[32mUserText1[39m, [32mUserText2[39m, [32mUserText3[39m, [32mUserText4[39m→ [34mscans[39m (11): [32muidx[39m, [32mscan.no[39m, [32mtime.min[39m, [32mtic[39m, [32mit.ms[39m, [32mresolution[39m, [32mmicroscans[39m,
[32mbasePeakMz[39m, [32mbasePeakIntensity[39m, [32mlowMass[39m, [32mhighMass[39m, [32mrawOvFtT[39m, [32mintensCompFactor[39m,
[32magc[39m, [32magcTarget[39m, [32mnumberLockmassesFound[39m, [32manalyzerTemperature[39m; ([3mnot aggregated[23m:
[3m[33mIsCentroidScan[39m[23m, [3m[33mScanType[39m[23m, [3m[33mScan Description[39m[23m, [3m[33mMultiple Injection[39m[23m, [3m[33mMulti Inject[39m[23m
[3m[33mInfo[39m[23m, [3m[33mScan Segment[39m[23m, [3m[33mScan Event[39m[23m, [3m[33mMaster Index[39m[23m, [3m[33mMaster Scan Number[39m[23m, [3m[33mCharge State[39m[23m,
[3m[33mMonoisotopic M/Z[39m[23m, [3m[33mError in isotopic envelope fit[39m[23m, [3m[33mMax. Ion Time (ms)[39m[23m, [3m[33mMS2[39m[23m
[3m[33mIsolation Width[39m[23m, [3m[33mMS2 Isolation Offset[39m[23m, [3m[33mHCD Energy[39m[23m, [3m[33mHCD Energy V[39m[23m, [3m[33m=== Mass[39m[23m
[3m[33mCalibration: ===[39m[23m, [3m[33mConversion Parameter B[39m[23m, [3m[33mConversion Parameter C[39m[23m, [3m[33mTemperature[39m[23m
[3m[33mComp. (ppm)[39m[23m, [3m[33mRF Comp. (ppm)[39m[23m, [3m[33mSpace Charge Comp. (ppm)[39m[23m, [3m[33mResolution Comp. (ppm)[39m[23m,
[3m[33mNumber of Lock Masses[39m[23m, [3m[33mLock Mass #1 (m/z)[39m[23m, [3m[33mLock Mass #2 (m/z)[39m[23m, [3m[33mLock Mass #3[39m[23m
[3m[33m(m/z)[39m[23m, [3m[33mLM Search Window (ppm)[39m[23m, [3m[33mLM Search Window (mmu)[39m[23m, [3m[33mLast Locking (sec)[39m[23m, [3m[33mLM[39m[23m
[3m[33mm/z-Correction (ppm)[39m[23m, [3m[33m=== Ion Optics Settings: ===[39m[23m, [3m[33mS-Lens RF Level[39m[23m, [3m[33m====[39m[23m
[3m[33mDiagnostic Data: ====[39m[23m, [3m[33mApplication Mode[39m[23m, [3m[33mMild Trapping Mode[39m[23m, [3m[33mAPD[39m[23m, [3m[33mRes. Dep.[39m[23m
[3m[33mIntens[39m[23m, [3m[33mQ Trans Comp[39m[23m, [3m[33mPrOSA NumF[39m[23m, [3m[33mPrOSA Comp[39m[23m, [3m[33mPrOSA ScScr[39m[23m, [3m[33mDynamic RT Shift[39m[23m
[3m[33m(min)[39m[23m, [3m[33mAnalytical OT usage (%)[39m[23m, [3m[33mLC FWHM parameter[39m[23m, [3m[33mPS Inj. Time (ms)[39m[23m, [3m[33mAGC PS[39m[23m
[3m[33mMode[39m[23m, [3m[33mAGC PS Diag[39m[23m, [3m[33mAGC Target Adjust[39m[23m, [3m[33mAGC Diag 1[39m[23m, [3m[33mAGC Diag 2[39m[23m, [3m[33mHCD abs. Offset[39m[23m,
[3m[33mSource CID eV[39m[23m, [3m[33mAGC Fill[39m[23m, [3m[33mInjection t0[39m[23m, [3m[33mt0 FLP[39m[23m, [3m[33mIso Para R[39m[23m, [3m[33mInj Para R[39m[23m, [3m[33mAccess[39m[23m
[3m[33mId[39m[23m, [3m[33mAnalog In A (V)[39m[23m, [3m[33mAnalog In B (V)[39m[23m, [3m[33mFAIMS Attached[39m[23m, [3m[33mFAIMS Voltage On[39m[23m, [3m[33mFAIMS[39m[23m
[3m[33mCV[39m[23m)→ [34mpeaks[39m (138): [32muidx[39m, [32mscan.no[39m, [32mmzMeasured[39m, [32mintensity[39m, [32mbaseline[39m, [32mpeakNoise[39m,
[32mpeakResolution[39m, [32misRefPeak[39m, [32misLockPeak[39m→ [34mspectra[39m (943): [32muidx[39m, [32mscan.no[39m, [32mmz[39m, [32mintensity[39m→ [34mproblems[39m: has [32mno issues[39mThe minimal aggregator contains a smaller set of columns
to aggregate. The extended aggregator is more elaborate,
providing access to additional columns from the raw data files.
────────────────────────────── [1mAggregator [3mminimal[23m[22m ──────────────────────────────[1mDataset[22m [34mfile_info[39m:
 → [32mfilename[39m = [3mas.character(sub(FileName, pattern = ".raw", replacement = "",[23m
[3mfixed = TRUE))[23m
 → [32mcreation_date[39m = [3mas.POSIXct(CreationDate)[23m
 → [32min_aquisition[39m = [3mas.logical(InAquisition)[23m
[1mDataset[22m [34mscans[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mtime.min[39m = [3mas.numeric(StartTime)[23m
 → [32mtic[39m = [3mas.numeric(TIC)[23m
 → [32mit.ms[39m = [3mas.numeric(`Ion Injection Time (ms)`)[23m
 → [32mresolution[39m = [3mas.numeric(one_of(`FT Resolution`, `Orbitrap Resolution`))[23m
 → [32mmicroscans[39m = [3mas.integer(`Micro Scan Count`)[23m
[1mDataset[22m [34mpeaks[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mmzMeasured[39m = [3mas.numeric(mass)[23m
 → [32mintensity[39m = [3mas.numeric(intensity)[23m
 → [32mbaseline[39m = [3mas.numeric(baseline)[23m
 → [32mpeakNoise[39m = [3mas.numeric(noise)[23m
 → [32mpeakResolution[39m = [3mas.numeric(resolution)[23m
 → [32misRefPeak[39m = [3mas.logical(is_ref)[23m
 → [32misLockPeak[39m = [3mas.logical(is_lock_peak)[23m
[1mDataset[22m [34mspectra[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mmz[39m = [3mas.numeric(mass)[23m
 → [32mintensity[39m = [3mas.numeric(intensity)[23m────────────────────────────── [1mAggregator [3mextended[23m[22m ─────────────────────────────[1mDataset[22m [34mfile_info[39m:
 → [32mfilename[39m = [3mas.character(sub(FileName, pattern = ".raw", replacement = "",[23m
[3mfixed = TRUE))[23m
 → [32mcreation_date[39m = [3mas.POSIXct(CreationDate)[23m
 → [32min_aquisition[39m = [3mas.logical(InAquisition)[23m
 → [35m(.*)[39m = [3mas.character(all_matches("(.*)"))[23m
[1mDataset[22m [34mscans[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mtime.min[39m = [3mas.numeric(StartTime)[23m
 → [32mtic[39m = [3mas.numeric(TIC)[23m
 → [32mit.ms[39m = [3mas.numeric(`Ion Injection Time (ms)`)[23m
 → [32mresolution[39m = [3mas.numeric(one_of(`FT Resolution`, `Orbitrap Resolution`))[23m
 → [32mmicroscans[39m = [3mas.integer(`Micro Scan Count`)[23m
 → [32mbasePeakMz[39m = [3mas.numeric(BasePeakMass)[23m
 → [32mbasePeakIntensity[39m = [3mas.numeric(BasePeakIntensity)[23m
 → [32mlowMass[39m = [3mas.numeric(LowMass)[23m
 → [32mhighMass[39m = [3mas.numeric(HighMass)[23m
 → [32mrawOvFtT[39m = [3mas.numeric(RawOvFtT)[23m
 → [32mintensCompFactor[39m = [3mas.numeric(`OT Intens Comp Factor`)[23m
 → [32magc[39m = [3mas.character(AGC)[23m
 → [32magcTarget[39m = [3mas.integer(`AGC Target`)[23m
 → [32mnumberLockmassesFound[39m = [3mas.integer(`Number of LM Found`)[23m
 → [32manalyzerTemperature[39m = [3mas.numeric(`Analyzer Temperature`)[23m
 → [35m(.*)[39m = [3mas.character(all_matches("(.*)"))[23m
[1mDataset[22m [34mpeaks[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mmzMeasured[39m = [3mas.numeric(mass)[23m
 → [32mintensity[39m = [3mas.numeric(intensity)[23m
 → [32mbaseline[39m = [3mas.numeric(baseline)[23m
 → [32mpeakNoise[39m = [3mas.numeric(noise)[23m
 → [32mpeakResolution[39m = [3mas.numeric(resolution)[23m
 → [32misRefPeak[39m = [3mas.logical(is_ref)[23m
 → [32misLockPeak[39m = [3mas.logical(is_lock_peak)[23m
[1mDataset[22m [34mspectra[39m:
 → [32mscan.no[39m = [3mas.integer(scan.no)[23m
 → [32mmz[39m = [3mas.numeric(mass)[23m
 → [32mintensity[39m = [3mas.numeric(intensity)[23m# using the extended aggregator instead of the default (standard)
raw_files |> orbi_aggregate_raw(aggregator = "extended")[32m✔[39m [38;5;249m[298ms][39m [1morbi_aggregate_raw()[22m aggregated [34mfile_info[39m (2), [34mscans[39m (11), [34mpeaks[39m
(138), and [34mspectra[39m (943) from 2 files using the [1m[3mextended[23m[22m aggregator─────── [1maggregated data from 2 raw files - retrieve with orbi_get_data()[22m ───────→ [34mfile_info[39m (2): [32muidx[39m, [32mfilepath[39m, [32mfilename[39m, [32mcreation_date[39m, [32min_aquisition[39m,
[32mOperator[39m, [32mFileDescription[39m, [32mMassResolution[39m, [32mSpectraCount[39m, [32mFirstSpectrum[39m,
[32mLastSpectrum[39m, [32mStartTime[39m, [32mEndTime[39m, [32mLowMass[39m, [32mHighMass[39m, [32mInstrumentCount[39m,
[32mInstrumentModel[39m, [32mInstrumentName[39m, [32mSerialNumber[39m, [32mSoftwareVersion[39m,
[32mHardwareVersion[39m, [32mRawFileVersion[39m, [32mInstrumentUnits[39m, [32mComment[39m, [32mSampleId[39m,
[32mSampleName[39m, [32mSampleType[39m, [32mSampleWeight[39m, [32mSampleVolume[39m, [32mBarcode[39m, [32mRowNumber[39m, [32mVial[39m,
[32mInjectionVolume[39m, [32mDilutionFactor[39m, [32mIstdAmount[39m, [32mCalibrationLevel[39m,
[32mInstrumentMethodFile[39m, [32mCalibrationFile[39m, [32mProcessingMethodFile[39m, [32mUserText0[39m,
[32mUserText1[39m, [32mUserText2[39m, [32mUserText3[39m, [32mUserText4[39m→ [34mscans[39m (11): [32muidx[39m, [32mscan.no[39m, [32mtime.min[39m, [32mtic[39m, [32mit.ms[39m, [32mresolution[39m, [32mmicroscans[39m,
[32mbasePeakMz[39m, [32mbasePeakIntensity[39m, [32mlowMass[39m, [32mhighMass[39m, [32mrawOvFtT[39m, [32mintensCompFactor[39m,
[32magc[39m, [32magcTarget[39m, [32mnumberLockmassesFound[39m, [32manalyzerTemperature[39m, [32mIsCentroidScan[39m,
[32mScanType[39m, [32mScan Description[39m, [32mMultiple Injection[39m, [32mMulti Inject Info[39m, [32mScan[39m
[32mSegment[39m, [32mScan Event[39m, [32mMaster Index[39m, [32mMaster Scan Number[39m, [32mCharge State[39m,
[32mMonoisotopic M/Z[39m, [32mError in isotopic envelope fit[39m, [32mMax. Ion Time (ms)[39m, [32mMS2[39m
[32mIsolation Width[39m, [32mMS2 Isolation Offset[39m, [32mHCD Energy[39m, [32mHCD Energy V[39m, [32m=== Mass[39m
[32mCalibration: ===[39m, [32mConversion Parameter B[39m, [32mConversion Parameter C[39m, [32mTemperature[39m
[32mComp. (ppm)[39m, [32mRF Comp. (ppm)[39m, [32mSpace Charge Comp. (ppm)[39m, [32mResolution Comp. (ppm)[39m,
[32mNumber of Lock Masses[39m, [32mLock Mass #1 (m/z)[39m, [32mLock Mass #2 (m/z)[39m, [32mLock Mass #3[39m
[32m(m/z)[39m, [32mLM Search Window (ppm)[39m, [32mLM Search Window (mmu)[39m, [32mLast Locking (sec)[39m, [32mLM[39m
[32mm/z-Correction (ppm)[39m, [32m=== Ion Optics Settings: ===[39m, [32mS-Lens RF Level[39m, [32m====[39m
[32mDiagnostic Data: ====[39m, [32mApplication Mode[39m, [32mMild Trapping Mode[39m, [32mAPD[39m, [32mRes. Dep.[39m
[32mIntens[39m, [32mQ Trans Comp[39m, [32mPrOSA NumF[39m, [32mPrOSA Comp[39m, [32mPrOSA ScScr[39m, [32mDynamic RT Shift[39m
[32m(min)[39m, [32mAnalytical OT usage (%)[39m, [32mLC FWHM parameter[39m, [32mPS Inj. Time (ms)[39m, [32mAGC PS[39m
[32mMode[39m, [32mAGC PS Diag[39m, [32mAGC Target Adjust[39m, [32mAGC Diag 1[39m, [32mAGC Diag 2[39m, [32mHCD abs. Offset[39m,
[32mSource CID eV[39m, [32mAGC Fill[39m, [32mInjection t0[39m, [32mt0 FLP[39m, [32mIso Para R[39m, [32mInj Para R[39m, [32mAccess[39m
[32mId[39m, [32mAnalog In A (V)[39m, [32mAnalog In B (V)[39m, [32mFAIMS Attached[39m, [32mFAIMS Voltage On[39m, [32mFAIMS[39m
[32mCV[39m→ [34mpeaks[39m (138): [32muidx[39m, [32mscan.no[39m, [32mmzMeasured[39m, [32mintensity[39m, [32mbaseline[39m, [32mpeakNoise[39m,
[32mpeakResolution[39m, [32misRefPeak[39m, [32misLockPeak[39m→ [34mspectra[39m (943): [32muidx[39m, [32mscan.no[39m, [32mmz[39m, [32mintensity[39m→ [34mproblems[39m: has [32mno issues[39mThere were no problems reading and/or aggregating the raw data so these are empty.
[38;5;246m# A tibble: 0 × 6[39m
[38;5;246m# ℹ 6 variables: uidx <int>, file <chr>, type <chr>, call <chr>, message <chr>,[39m
[38;5;246m#   condition <list>[39m[38;5;246m# A tibble: 0 × 6[39m
[38;5;246m# ℹ 6 variables: uidx <int>, file <chr>, type <chr>, call <chr>, message <chr>,[39m
[38;5;246m#   condition <list>[39m# list of isotopocules (can alternatively be in a tsv/csv/xlsx file)
isotopocules <- tibble(
    compound = "nitrate",
    isotopolog = c("M0", "15N", "17O", "18O"),
    mass = c(61.9878, 62.9850, 62.9922, 63.9922),
    tolerance = 1,
    charge = 1
  )
# identify
data <- agg_data |> orbi_identify_isotopocules(isotopocules)[32m✔[39m [38;5;249m[12ms][39m [1morbi_identify_isotopocules()[22m identified 44/138 peaks (32%)
representing 100% of the total ion current (TIC) as isotopocules [32mM0[39m, [32m15N[39m, [32m17O[39m,
and [32m18O[39m# this can happen here or later on in the workflow
# in the case of these files there are no satellite peaks
data |> orbi_flag_satellite_peaks() |> orbi_plot_satellite_peaks()[32m✔[39m [38;5;249m[4ms][39m [1morbi_flag_satellite_peaks()[22m confirmed there are no [33msatellite[39m peaks[1m[22m`geom_line()`: Each group consists of only one observation.
[36mℹ[39m Do you need to adjust the [32mgroup[39m aesthetic?[38;5;246m# A tibble: 8 × 10[39m
   uidx filename        compound isotopocule data_stretch n_points start_scan.no
  [3m[38;5;246m<int>[39m[23m [3m[38;5;246m<fct>[39m[23m           [3m[38;5;246m<fct>[39m[23m    [3m[38;5;246m<fct>[39m[23m              [3m[38;5;246m<int>[39m[23m    [3m[38;5;246m<int>[39m[23m         [3m[38;5;246m<int>[39m[23m
[38;5;250m1[39m     1 nitrate_test_1… nitrate  M0                     0       10             1
[38;5;250m2[39m     1 nitrate_test_1… nitrate  15N                    0       10             1
[38;5;250m3[39m     1 nitrate_test_1… nitrate  17O                    0       10             1
[38;5;250m4[39m     1 nitrate_test_1… nitrate  18O                    0       10             1
[38;5;250m5[39m     2 nitrate_test_1… nitrate  M0                     0        1             1
[38;5;250m6[39m     2 nitrate_test_1… nitrate  15N                    0        1             1
[38;5;250m7[39m     2 nitrate_test_1… nitrate  17O                    0        1             1
[38;5;250m8[39m     2 nitrate_test_1… nitrate  18O                    0        1             1
[38;5;246m# ℹ 3 more variables: end_scan.no <int>, start_time.min <dbl>,[39m
[38;5;246m#   end_time.min <dbl>[39m[32m✔[39m [38;5;249m[4ms][39m [1morbi_get_data()[22m retrieved 138 records from the combination of [34mfile_info[39m
(2) and [34mpeaks[39m (138) via [32muidx[39m[38;5;246m# A tibble: 138 × 10[39m
    uidx filename scan.no mzMeasured intensity baseline peakNoise peakResolution
   [3m[38;5;246m<int>[39m[23m [3m[38;5;246m<chr>[39m[23m      [3m[38;5;246m<int>[39m[23m      [3m[38;5;246m<dbl>[39m[23m     [3m[38;5;246m<dbl>[39m[23m    [3m[38;5;246m<dbl>[39m[23m     [3m[38;5;246m<dbl>[39m[23m          [3m[38;5;246m<dbl>[39m[23m
[38;5;250m 1[39m     1 nitrate…       1       62.0     [4m1[24m211.     8.32      513.          [4m7[24m[4m0[24m900
[38;5;250m 2[39m     1 nitrate…       1       62.0     [4m1[24m463.     8.32      513.          [4m9[24m[4m4[24m100
[38;5;250m 3[39m     1 nitrate…       1       62.0     [4m1[24m172.     8.31      513.          [4m8[24m[4m0[24m300
[38;5;250m 4[39m     1 nitrate…       1       62.0     [4m1[24m116.     8.30      513.          [4m8[24m[4m7[24m900
[38;5;250m 5[39m     1 nitrate…       1       62.0  4[4m0[24m[4m4[24m[4m6[24m979      8.28      513.         [4m1[24m[4m1[24m[4m4[24m902
[38;5;250m 6[39m     1 nitrate…       1       62.0     [4m1[24m798.     8.26      513.          [4m8[24m[4m6[24m300
[38;5;250m 7[39m     1 nitrate…       1       62.0     [4m1[24m444.     8.26      513.          [4m9[24m[4m3[24m200
[38;5;250m 8[39m     1 nitrate…       1       62.0     [4m1[24m346.     8.25      513.          [4m8[24m[4m4[24m700
[38;5;250m 9[39m     1 nitrate…       1       62.0     [4m1[24m469.     8.25      513.          [4m9[24m[4m2[24m400
[38;5;250m10[39m     1 nitrate…       1       62.1     [4m1[24m043.     8.16      513.          [4m8[24m[4m9[24m900
[38;5;246m# ℹ 128 more rows[39m
[38;5;246m# ℹ 2 more variables: isRefPeak <lgl>, isLockPeak <lgl>[39m