Description Usage Arguments Details Value Note Author(s) See Also Examples
This function allows a efficient recognition of the local maximums (peaks) in a given numeric vector.
1 2 3 4 5 6 7 8 9 10 11 | peakDetection(data, threshold = 0.25, chromosome = NULL, width = 1,
score = TRUE, min.cov = 2, mc.cores = 1)
## S4 method for signature 'list'
peakDetection(data, threshold = "25%", width = 1,
score = TRUE, min.cov = 2, mc.cores = 1)
## S4 method for signature 'numeric'
peakDetection(data, threshold = "25%",
chromosome = NULL, width = 1, score = TRUE, min.cov = 2,
mc.cores = 1)
|
data |
Input numeric values, or a list of them |
threshold |
Threshold value from which the peaks will be selected. Can
be given as a percentage string (i.e., |
chromosome |
Optionally specify the name of the chromosome for input data that doesn't specify it. |
width |
If a positive integer > 1 is given, the peaks are returned as a range of the given width centered in the local maximum. Useful for nucleosome calling from a coverage peak in the dyad. |
score |
If TRUE, the results will be scored using |
min.cov |
Minimum coverage that a peak needs in order to be considered as a nucleosome call. |
mc.cores |
The number of cores to use, i.e. at most how many child processes will be run simultaneously. Parallelization requires at least two cores. |
It's recommended to smooth the input with filterFFT
prior the detection.
The type of the return depends on the input parameters:
numeric
(or a list of them) if width==1 & score==FALSE
containing
the position of the peaks.
data.frame
(or list of them) if width==1 & score==TRUE
containing a
'peak' column with the position of the peak plus a 'score' column with
its score.
IRanges
(or IRangesList
) if width>1 & score==FALSE
containing the
ranges of the peaks.
GRanges
if width>1 & score==TRUE
containing the ranges of the
peaks and the assigned score.
If width
> 1, those ranges outside the range 1:length(data)
will
be skipped.
Oscar Flores oflores@mmb.pcb.ub.es
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # Generate a random peaks profile
reads <- syntheticNucMap(nuc.len=40, lin.len=130)$syn.reads
cover <- coverage.rpm(reads)
# Filter them
cover_fft <- filterFFT(cover)
# Detect and plot peaks (up a bit the threshold for accounting synthetic
# data)
peaks <- peakDetection(cover_fft, threshold="40%", score=TRUE)
plotPeaks(peaks, cover_fft, threshold="40%", start=10000, end=15000)
# Now use ranges version, which accounts for fuzziness when scoring
peaks <- peakDetection(cover_fft, threshold="40%", score=TRUE, width=147)
plotPeaks(peaks, cover_fft, threshold="40%", start=10000, end=15000)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.