LipidMS (version 0.1.0)

idPIneg: Phosphoinositols (PI) annotation for ESI-

Description

PI identification based on fragmentation patterns for LC-MS/MS AIF data acquired in negative mode.

Usage

idPIneg(MS1, MSMS1, MSMS2 = data.frame(), ppm_precursor = 5,
  ppm_products = 10, rttol = 3, rt = c(min(MS1$RT), max(MS1$RT)),
  adducts = c("M-H"), clfrags = c(241.0115, 223.0008, 259.0219, 297.0375),
  clrequired = c(F, F, F, F), ftype = c("F", "F", "F", "F"),
  chainfrags_sn1 = c("lysopi_M-H", "lysopa_M-H"),
  chainfrags_sn2 = c("fa_M-H"), intrules = c("lysopi_sn1/lysopi_sn1",
  "lysopa_sn1/lysopa_sn1"), rates = c("3/1", "3/1"), intrequired = c(F, F),
  dbs = list(pidb = LipidMS::pidb, lysopidb = LipidMS::lysopidb, lysopadb =
  LipidMS::lysopadb, fadb = LipidMS::fadb, adductsTable =
  LipidMS::adductsTable))

Arguments

MS1

data frame cointaining all peaks from the full MS function. It must have three columns: m.z, RT (in seconds) and int (intensity).

MSMS1

data frame cointaining all peaks from the low energy function. It must have three columns: m.z, RT and int.

MSMS2

data frame cointaining all peaks from the high energy function if it is the case. It must have three columns: m.z, RT and int. Optional.

ppm_precursor

mass tolerance for precursor ions. By default, 5 ppm.

ppm_products

mass tolerance for product ions. By default, 10 ppm.

rttol

total rt window for coelution between precursor and product ions. By default, 3 seconds.

rt

rt range where the function will look for candidates. By default, it will search within all RT range in MS1.

adducts

expected adducts for PI in ESI-. Adducts allowed can be modified in adductsTable (dbs argument).

clfrags

vector containing the expected fragments for a given lipid class. See checkClass for details.

clrequired

logical vector indicating if each class fragment is required or not. If any of them is required, at least one of them must be present within the coeluting fragments. See checkClass for details.

ftype

character vector indicating the type of fragments in clfrags. It can be: "F" (fragment), "NL" (neutral loss) or "BB" (building block). See checkClass for details.

chainfrags_sn1

character vector containing the fragmentation rules for the chain fragments in sn1 position. See chainFrags for details.

chainfrags_sn2

character vector containing the fragmentation rules for the chain fragments in sn2 position. See chainFrags for details. If empty, it will be estimated based on the difference between precursors and sn1 chains.

intrules

character vector specifying the fragments to compare. See checkIntensityRules.

rates

character vector with the expected rates between fragments given as a string (i.e. "3/1"). See checkIntensityRules.

intrequired

logical vector indicating if any of the rules is required. If not, at least one must be verified to confirm the structure.

dbs

list of data bases required for the annotation. By default, dbs contains the required data frames based on the default fragmentation rules. If these rules are modified, dbs may need to be changed. If data bases have been customized using createLipidDB, they also have to be modified here.

Value

List with PI annotations (results) and some additional information (class fragments and chain fragments).

Details

idPIneg function involves 5 steps. 1) FullMS-based identification of candidate PI as M-H. 2) Search of PI class fragments: 241.0115, 223.0008, 259.0219 and 297.0375 coeluting with the precursor ion. 3) Search of specific fragments that inform about chain composition at sn1 (lysoPI as M-H resulting from the loss of the FA chain at sn2 or lysoPA as M-H if it also losses the head group) and sn2 (FA chain as M-H). 4) Look for possible chains structure based on the combination of chain fragments. 5) Check intensity rules to confirm chains position. In this case, lysoPI or lysoPA from sn1 is at least 3 times more intense than lysoPI or lysoPA from sn2.

Results data frame shows: ID, class of lipid, CDB (total number of carbons and double bounds), FA composition (specific chains composition if it has been confirmed), mz, RT (in seconds), I (intensity, which comes directly from de input), Adducts, ppm (m.z error), confidenceLevel (Subclass, FA level, where chains are known but not their positions, or FA position level).

Examples

Run this code
# NOT RUN {
idPIneg(MS1 = LipidMS::mix_neg_fullMS, MSMS1 = LipidMS::mix_neg_Ce20,
MSMS2 = LipidMS::mix_neg_Ce40)

idPIneg(MS1 = LipidMS::serum_neg_fullMS, MSMS1 = LipidMS::serum_neg_Ce20,
MSMS2 = LipidMS::serum_neg_Ce40)

# }

Run the code above in your browser using DataCamp Workspace