Title: | Laser Ablation Blast Through Endpoint Detection |
---|---|
Description: | Imports a data frame containing a single time resolved laser ablation mass spectrometry analysis of a foraminifera (or other carbonate shell), then detects when the laser has burnt through the foraminifera test as a function of change in signal over time. |
Authors: | Alex Searle-Barnes [aut, cre] (<https://orcid.org/0000-0003-0389-7717>, https://github.com/alexsb1) |
Maintainer: | Alex Searle-Barnes <[email protected]> |
License: | LGPL (>= 3) |
Version: | 1.0.1 |
Built: | 2025-03-13 05:33:44 UTC |
Source: | https://github.com/alexsb1/lablaster |
A fragment of Acropora polystoma coral from Chris Standish.
coral6
coral6
A data frame with 300 rows and 5 variables:
time stamp of each observation (in milliseconds)
raw data for 24Mg
raw data for 43Ca
raw data for 55Mn
raw data for 86Sr
This function imports a data frame containing a single time resolved laser ablation mass spectrometry analysis of a foraminifera (or other carbonate shell).
It assumes that the first row contains the signal of the target sample and that background correction has already been applied.
Column names referencing the time stamps and target signal are specified as function arguments.
Then the signal column is evaluated by smoothing the values using a moving average, then scaled between 0-1 and the rate of change over a number of observations.
The function identifies the maximum rate of signal change, locates the corresponding time stamp and then subtracts the time it took for the laser to ablate through the target.
The result (endTime) is the time stamp of the last observation while the laser is still focussed the desired target.
endPoint( detectDf, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca44", profile = "FLASE", timeUnits = "seconds" )
endPoint( detectDf, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca44", profile = "FLASE", timeUnits = "seconds" )
detectDf |
A data frame containing a single time resolved analysis, with a column referencing time and another with the corresponding measured counts data. |
dt |
An integer that controls the number of observations (rows) are used in calculating a rolling lagged difference in 44Ca signal. Using a lower value for a faster ablation through of chamber wall can improve end point sensitivity. Default = 10. |
smoothing |
Controls the length of the moving average filter to apply over the dt period. Default = 5. |
timeCol |
The column title in the data frame identifying the time stamp of the time resolved analysis. Default = "Time". |
signalCol |
The column title in the data frame identifying the numerical data used to identify the laser ablation blast through endpoint. This is often 44Ca but could be any column of numerical data that you want to detect the endpoint. Default = "Ca44". |
profile |
Logical. A visualisation of the endpoint detection mechanism as a ggplot2 object. To make this profile plot, set the argument to TRUE, otherwise set it to FALSE. Specifying to not make a plot can save a substantial amount of time. Default = "FALSE". |
timeUnits |
The units that the time resolved analysis is measured in. This is the units of the timeCol. This argument is a string and is only necessary if the argument profile = "TRUE". Default = "seconds". |
The function returns a data frame containing the columns:
dfReturn$detectDf contains a data frame with only the observations between the first data frame row and the endTime.
dfReturn$startTime contains the earliest time in your TRA as a numerical value.
df$Return$endTime contains the last time step while the laser is still focussed the desired target in your TRA before the as a numerical value.
df$Return$profile contains a visualisation of your TRA identifying where the laser ablated through the carbonate shell as a ggplot object. This is only available if a profile was generated using profile = "TRUE".
endPoint(detectDf = foram72shot3, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca44", profile = "TRUE", timeUnits = "seconds") endPoint(detectDf = foram166shot7, dt = 8, smoothing = 7, timeCol = "Time", signalCol = "Ca44", profile = "FALSE", timeUnits = "seconds") endPoint(detectDf = foram174shot4, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca43", profile = "TRUE", timeUnits = "seconds") endPoint(detectDf = coral6, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Sr86", profile = "FALSE", timeUnits = "milliseconds")
endPoint(detectDf = foram72shot3, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca44", profile = "TRUE", timeUnits = "seconds") endPoint(detectDf = foram166shot7, dt = 8, smoothing = 7, timeCol = "Time", signalCol = "Ca44", profile = "FALSE", timeUnits = "seconds") endPoint(detectDf = foram174shot4, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Ca43", profile = "TRUE", timeUnits = "seconds") endPoint(detectDf = coral6, dt = 10, smoothing = 5, timeCol = "Time", signalCol = "Sr86", profile = "FALSE", timeUnits = "milliseconds")
The fifth from final chamber of Menardella exilis foraminifera 166, identified hereon as “foram166shot7”.
foram166shot7
foram166shot7
A data frame with 144 rows and 8 variables:
time stamp of each observation (in seconds)
raw data for 24Mg
raw data for 27Al
raw data for 43Ca
raw data for 44Ca
raw data for 55Mn
raw data for 65Cu
raw data for 88Sr
An antepenultimate chamber of Menardella exilis foraminifera 174, identified hereon as “foram174shot4”.
foram174shot4
foram174shot4
A data frame with 144 rows and 8 variables:
time stamp of each observation (in seconds)
raw data for 24Mg
raw data for 27Al
raw data for 43Ca
raw data for 44Ca
raw data for 55Mn
raw data for 65Cu
raw data for 88Sr
An antepenultimate chamber of Menardella exilis foraminifera 72, identified hereon as “foram72shot3”.
foram72shot3
foram72shot3
A data frame with 144 rows and 8 variables:
time stamp of each observation (in seconds)
raw data for 24Mg
raw data for 27Al
raw data for 43Ca
raw data for 44Ca
raw data for 55Mn
raw data for 65Cu
raw data for 88Sr