Dear CAMERA/XCMS users/developers,
I was wondering if anybody has tried successfully to modify CAMERA to detect any other isotopes (other than 13C)?
A previous post (2011) was suggested that an update might allow for better accommodation of Cl and Br atoms but I am not sure what development followed:
http://metabolomics-forum.com/viewtopic ... c52e9#p491
I thought that one simplistic approach could be to just create a custom isotopeMatrix with the mass differences for another type of isotope e.g. Sulphur 34. Then run the findIsotopes( method with the C12/C13 filter option as FALSE. However, this give quite strange results (see below)
Does anybody have any suggestions?
Steps to create updated isotopeMatrix
mass = 1.9958 # mass difference for S34 isotope
tolerance = 0.001
mzmin = mass - tolerance
mzmax = mass + tolerance
isotopeMatrix <- matrix(NA, 8, 4);
colnames(isotopeMatrix) <- c("mzmin", "mzmax", "intmin", "intmax")
isotopeMatrix[1, ] <- c(mzmin , mzmax, 1.0, 150)
isotopeMatrix[2, ] <- c(mzmin, mzmax, 0.01, 200)
isotopeMatrix[3, ] <- c(mzmin, mzmax, 0.001, 200)
isotopeMatrix[4, ] <- c(mzmin, mzmax, 0.0001, 200)
isotopeMatrix[5, ] <- c(mzmin, mzmax, 0.00001, 200)
isotopeMatrix[6, ] <- c(mzmin, mzmax, 0.000001, 200)
isotopeMatrix[7, ] <- c(mzmin, mzmax, 0.0000001, 200)
isotopeMatrix[8, ] <- c(mzmin, mzmax, 0.00000001, 200)
CAMERA steps performed
an2 <- xsAnnotate(xset)
an2 <- groupFWHM(an2, perfwhm=0.6)
an2 <- groupCorr(an2, cor_eic_th=0.75, pval = 0.05)
an2 <- findIsotopes(an2,filter = FALSE, isotopeMatrix = isotopeMatrix )
pl2 <- getPeaklist(an2)
Results
EXAMPLE 1: Seems to get the Sulphur differences fine for single charged isotopes
mz isotopes pcgroup
317.1463202 [1005][M]+ 8
319.1357339 [1005][M+1]+ 8
Difference: 1.9893236889
EXAMPLE 2: But still get C13 differences (1.003)
mz isotopes pcgroup
102.0915787 [1][M]2+ 196
103.0949139 [1][M+1]2+ 196
Difference: 1.003335129 (I think for the double charges this should be half as well.... which confuses me even more...)