IsoSpecify
is a wrapper around Rinterface
that calls the C++ implementation of the IsoSpec algorithm. Given a molecular formula, it will calculate the smallest set of infinitely resolved peaks (isotopologues) that jointly is p
probable, where p
is provided by the user.
IsoSpecify(molecule, stopCondition, isotopes = NULL,
showCounts = FALSE, trim = TRUE, algo = 0, step = 0.25)
A named integer vector, e.g. c(C=2,H=6,O=1)
, containing the chemical formula of the substance of interest.
A numeric value between 0 and 1.
A named list of isotopic information required for IsoSpec. The names must be valid element symbols, see isotopicData
for examples. Each enlisted object should be a data.frame
containing columns element
(specifying the symbol of the element), mass
(specifying the mass of the isotope), abundance
(specyfying the assumed frequency of finding that isotope).
Logical. If TRUE
, then we output matrix contains additionally counts of isotopes for each isotopologue.
Logical. If FALSE
, then we output matrix contains additionally isotopologues that otherwise would get trimmed in order to find the smalles possible p-set. Therefore, switching to FALSE
results in a slightly larger set then the optimal p-set.
An integer: 0 - use standard IsoSpec algoritm,
where stopCondition
specifies the probability of the optimal p-set,
1 - use a version of algorithm that uses priority queue. Slower than 0, but does not require sorting.
2 - use a threshold version of the algorithm, where stopCondition
specifies the height of the pruned peaks.
3 - for the threshold version of IsoSpec with stopCondition
being
the percentage of the highest peak below which isotopologues get pruned.
The percent of the the percentile of isotopologues in the current isolayer, specyfying the cutoff for the next isolayer. It has been optimised and better not change the default value.
A numeric matrix containing the masses, the logarithms of probability, and, optionally, counts of isotopologues. Attention: this matrix does not have to be sorted. Sorting it would also compromise the linear complexity of our algorithm.
# NOT RUN {
library(IsoSpecR)
res <- IsoSpecify( molecule = c(C=10,H=22,O=1), stopCondition = .9999 )
print(res)
# }
Run the code above in your browser using DataLab