#' Peak Asymmetry
#'
#' @rdname peakAsymmetry
#' @param object a SRM object
#' @return a `SRM` object
#'
#' @export
setMethod('peakAsymmetry', signature = 'SRM',
function(object) {
peakChromAsym <- list()
for (i in 1:nrow(object@peaks)) {
rawChrom <-
object@chroms %>% dplyr::filter(
sampleID == object@peaks$sampleID[i] &
filter == object@peaks$filter[i] &
rt >= object@peaks$rtmin[i] &
rt <= object@peaks$rtmax[i]
)
rtmax <-
max(rawChrom$rt[rawChrom$int == max(rawChrom$int)])
peak_front_10 <-
rawChrom$rt[rawChrom$rt < rtmax][which.min(abs(rawChrom$int[rawChrom$rt < rtmax] - max(rawChrom$int) * 0.1))]
if(length(peak_front_10) == 0){
peak_front_10 <- 0
}
peak_tail_10 <-
rawChrom$rt[rawChrom$rt > rtmax][which.min(abs(rawChrom$int[rawChrom$rt > rtmax] - max(rawChrom$int) * 0.1))]
if(length(peak_tail_10) == 0){
peak_tail_10 <- 0
}
A10 <- rtmax - peak_front_10
B10 <- peak_tail_10 - rtmax
Asym <- B10 / A10
peakChromAsym[[i]] <-
object@peaks[i,] %>% dplyr::mutate(PeakAsymm = Asym)
}
object@peaks <- peakChromAsym %>% dplyr::bind_rows()
return(object)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.