my.clean.lipid <- function(qvec){
qvec <- qvec;
# first remove A/B
qvec <- gsub("/A", "", qvec, fixed = TRUE)
qvec <- gsub("_A", "", qvec, fixed = TRUE)
qvec <- gsub("/B", "", qvec, fixed = TRUE)
qvec <- gsub("_B", "", qvec, fixed = TRUE)
dash <- paste(c("-1", "-2", "_1", "_2", "_3", "_4", "_5"), collapse = "|")
qvec <- gsub(dash, "", qvec)
# second remove any RT and adduct info
load_stringr()
rt.pat <- paste0(c("@", "\\[M"), collapse = "|")
at.inx <- str_detect(qvec, rt.pat)
if(sum(at.inx) > 0){
qvec[at.inx] <- gsub("[;].*", "", qvec[at.inx], fixed = TRUE)
}
# third remove everything inside + including square brackets
square.pattern <- paste0(c("\\[", "\\]"), collapse = "|")
square.inx <- str_detect(qvec, square.pattern)
if(sum(square.inx)>0){
qvec <- gsub("\\[.*?\\]", "", qvec, fixed = TRUE)
}
# fourth remove ending parentheses with (Z, Z...)
qvec <- trimws(gsub("\\(Z|,Z\\)-|,Z|n-|\\(Z\\)-", "", qvec))
# fifth remove plus sign
qvec <-trimws(gsub("^\\+", "", qvec))
# sixth remove parantheses containing OH or C
qvec <- trimws(gsub("\\h*\\([^)]*\\b(?:OH||C)\\b[^)]*\\)", "", qvec))
# seventh remove nega/posi
qvec <-trimws(gsub("-nega", "", qvec))
qvec <-trimws(gsub("-posi", "", qvec))
qvec <-trimws(gsub("-neg", "", qvec))
qvec <-trimws(gsub("-pos", "", qvec))
qvec <-trimws(gsub("_nega", "", qvec))
qvec <-trimws(gsub("_posi", "", qvec))
qvec <-trimws(gsub("_neg", "", qvec))
qvec <-trimws(gsub("_pos", "", qvec))
# fix up non-standard acronyms
coq.inx <- str_detect(qvec, "Co\\(Q")
if(sum(coq.inx) > 0){
qvec[coq.inx] <- trimws(gsub("[()]", " ", gsub("Co", "Coenzyme", qvec[coq.inx], fixed = TRUE)))
}
acca.inx <- str_detect(qvec, "AcCa")
if(sum(acca.inx) > 0){
qvec[acca.inx] <- trimws(gsub("[()]", " ", gsub("AcCa", "CAR", qvec[acca.inx], fixed = TRUE)))
}
ac.inx <- str_detect(qvec, "AC\\(")
if(sum(ac.inx) > 0){
qvec[ac.inx] <- trimws(gsub("[()]", " ", gsub("AC", "CAR", qvec[ac.inx], fixed = TRUE)))
}
a.dash.inx <- str_detect(qvec, "\\(a-")
if(sum(a.dash.inx) > 0){
qvec[a.dash.inx] <- trimws(gsub("[()]", " ", gsub("a-", "", qvec[a.dash.inx], fixed = TRUE)))
}
pa.inx <- str_detect(qvec, fixed("Plasmanyl-", ignore_case=TRUE))
if(sum(pa.inx) > 0){
qvec[pa.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[pa.inx], fixed("Plasmanyl-", ignore_case=TRUE), "")))
}
pe.inx <- str_detect(qvec, fixed("Plasmenyl-", ignore_case=TRUE))
if(sum(pe.inx) > 0){
qvec[pe.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[pe.inx], fixed("Plasmenyl-", ignore_case=TRUE), "")))
}
foura.inx <- str_detect(qvec, fixed("aaaa-", ignore_case=TRUE))
if(sum(foura.inx) > 0){
qvec[foura.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[foura.inx], fixed("aaaa-", ignore_case=TRUE), "")))
}
twoa.inx <- str_detect(qvec, fixed("aaaa-", ignore_case=TRUE))
if(sum(twoa.inx) > 0){
qvec[twoa.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[twoa.inx], fixed("aa-", ignore_case=TRUE), "")))
}
phy.inx <- str_detect(qvec, fixed("Phytocer", ignore_case=TRUE))
if(sum(phy.inx) > 0){
qvec[phy.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[phy.inx], fixed("Phytocer", ignore_case=TRUE), "Cer")))
}
dec.inx <- str_detect(qvec, fixed("deoxy-Cer", ignore_case=TRUE))
if(sum(dec.inx) > 0){
qvec[dec.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[dec.inx], fixed("deoxy-Cer", ignore_case=TRUE), "1-DeoxyCer")))
}
hex.inx <- str_detect(qvec, fixed("Hex-Cer", ignore_case=TRUE))
if(sum(hex.inx) > 0){
qvec[hex.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[hex.inx], fixed("Hex-Cer", ignore_case=TRUE), "HexCer")))
}
cerp.inx <- str_detect(qvec, fixed("CerP", ignore_case=TRUE))
if(sum(cerp.inx) > 0){
qvec[cerp.inx] <- trimws(gsub(";O2", "", gsub("[()]", " ", str_replace(qvec[cerp.inx], " ", " d"))))
}
lpc.inx <- str_detect(qvec, fixed("LPC", ignore_case=TRUE))
if(sum(lpc.inx) > 0){
qvec[lpc.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[lpc.inx], fixed("LPC", ignore_case=TRUE), "LysoPC")))
}
lpe.inx <- str_detect(qvec, fixed("LPE", ignore_case=TRUE))
if(sum(lpe.inx) > 0){
qvec[lpe.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[lpe.inx], fixed("LPE", ignore_case=TRUE), "LysoPE")))
}
dg.inx <- str_detect(qvec, fixed("Diglyceride ", ignore_case=TRUE))
if(sum(dg.inx) > 0){
qvec[dg.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[dg.inx], fixed("Diglyceride ", ignore_case=TRUE), "DG")))
}
tg.inx <- str_detect(qvec, fixed("Triglyceride ", ignore_case=TRUE))
if(sum(tg.inx) > 0){
qvec[tg.inx] <- trimws(gsub("[()]", " ", str_replace(qvec[tg.inx], fixed("Triglyceride ", ignore_case=TRUE), "TG")))
}
# last replace . _ ; to slash if no instances of slash in qvec
slash.inx <- str_detect(qvec, "/")
if(sum(slash.inx) == 0){
period.inx <- str_detect(qvec, "[.]")
under.inx <- str_detect(qvec, "[_]")
semi.inx <- str_detect(qvec, "[;]")
if(sum(period.inx) > 0){
qvec <- gsub(".", "/", qvec, fixed = TRUE)
}
if(sum(under.inx) > 0){
qvec <- gsub("_", "/", qvec, fixed = TRUE)
}
if(sum(semi.inx) > 0){
qvec <- lapply(seq_along(qvec), function(i) {
change <- semi.inx[i]
lipid <- qvec[i]
if(change & nchar(lipid) > 25){
lipid <- gsub(".*[;]", "", lipid, fixed = TRUE)
}else{
lipid <- gsub(";", "/", lipid, fixed = TRUE)
}
lipid
} )
qvec <- unlist(qvec)
}
}
return(trimws(qvec))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.