filterPeak {mosaics} | R Documentation

## Filter out potentially false positive peaks

### Description

Filter out potentially false positive peaks from `MosaicsPeak` class object, which is a peak calling result.

### Usage

    filterPeak( object, ... )
    ## S4 method for signature 'MosaicsPeak'
    filterPeak( object,
    	minSummitQuantile=0.01, minRead=10, FC=50, minSignal = 20, minLen = 200,
    	normC=NA, parallel=FALSE, nCore=8 )

### Arguments

`object` | Object of class `MosaicsPeak`, a peak list object obtained using either functions `mosaicsPeak` or `mosaicsPeakHMM`.
`minSummitQuantile` | Parameter for the filtering step #1. Peaks are filtered out if signal strengths at summits < `minSummitQuantile` quantile of signal strengths at summits across all the peak regions.
`minRead` | Parameter for the filtering step #1. Peaks are filtered out if the number of reads in the peak region < `minRead`.
`FC` | Parameter for the filtering step #1. Peaks are filtered out if the improvement of ChIP over matched control < `FC`.
`minSignal` | Parameter for the filtering step #2. Peaks are filtered out if signal strengths at summits <= `minSignal`.
`minLen` | Parameter for the filtering step #2. Peaks are filtered out if their lengths <= `minLen`.
`normC` | Normalizing constant. If not provided, `normC` is estimated as ratio of sequencing depth of ChIP over matched control samples.
`parallel` | Utilize multiple CPUs for parallel computing using `"parallel"` package? Possible values are `TRUE` (utilize multiple CPUs) or `FALSE` (do not utilize multiple CPUs). Default is `FALSE` (do not utilize multiple CPUs).
`nCore` | Number of CPUs when parallel computing is utilized.
`...` | Other parameters to be passed through to generic `filterPeak`.

### Details

`filterPeak` filters out potentially false positive peaks, based on signal strengths and peak lengths. While `filterPeak` can be applied to a peak list object obtained using either functions `mosaicsPeak` or `mosaicsPeakHMM`, `filterPeak` is developed and tested mainly for peak lists from MOSAiCS-HMM model (i.e., from function `mosaicsPeakHMM`). Note that `extractReads` should be run first because `filterPeak` is used.

### Value

Construct `MosaicsPeak` class object.

### Author(s)

Dongjun Chung, Pei Fen Kuan, Rene Welch, Sunduz Keles

### References

Kuan, PF, D Chung, G Pan, JA Thomson, R Stewart, and S Keles (2011), "A Statistical Framework for the Analysis of ChIP-Seq Data", Journal of the American Statistical Association, Vol. 106, pp. 891-903.

Chung, D, Zhang Q, and Keles S (2014), "MOSAiCS-HMM: A model-based approach for detecting regions of histone modifications from ChIP-seq data", Datta S and Nettleton D (eds.), Statistical Analysis of Next Generation Sequencing Data, Springer.

### See Also

`mosaicsPeak`, `mosaicsPeakHMM`, `extractReads`, `findSummit`, `adjustBoundary`, `MosaicsPeak`.

### Examples

    ## Not run:
    library(mosaicsExample)

    constructBins( infile=system.file( file.path("extdata","wgEncodeBroadHistoneGm12878H3k4me3StdAlnRep1_chr22_sorted.bam"), package="mosaicsExample"),
        fileFormat="bam", outfileLoc="./",
        byChr=FALSE, useChrfile=FALSE, chrfile=NULL, excludeChr=NULL,
        PET=FALSE, fragLen=200, binSize=200, capping=0 )
    constructBins( infile=system.file( file.path("extdata","wgEncodeBroadHistoneGm12878ControlStdAlnRep1_chr22_sorted.bam"), package="mosaicsExample"),
        fileFormat="bam", outfileLoc="./",
        byChr=FALSE, useChrfile=FALSE, chrfile=NULL, excludeChr=NULL,
        PET=FALSE, fragLen=200, binSize=200, capping=0 )

    binHM <- readBins( type=c("chip","input"),
        fileName=c( "./wgEncodeBroadHistoneGm12878H3k4me3StdAlnRep1_chr22_sorted.bam_fragL200_bin200.txt",
        "./wgEncodeBroadHistoneGm12878ControlStdAlnRep1_chr22_sorted.bam_fragL200_bin200.txt" ) )
    fitHM <- mosaicsFit( binHM, analysisType="IO", bgEst="rMOM" )
    hmmHM <- mosaicsFitHMM( fitHM, signalModel = "2S",
      init="mosaics", init.FDR = 0.05, parallel=TRUE, nCore=8 )
    peakHM <- mosaicsPeakHMM( hmmHM, FDR = 0.05, decoding="posterior",
      thres=10, parallel=TRUE, nCore=8 )

    peakHM <- extractReads( peakHM,
      chipFile=system.file( file.path("extdata","wgEncodeBroadHistoneGm12878H3k4me3StdAlnRep1_chr22_sorted.bam"), package="mosaicsExample"),
      chipFileFormat="bam", chipPET=FALSE, chipFragLen=200,
      controlFile=system.file( file.path("extdata","wgEncodeBroadHistoneGm12878ControlStdAlnRep1_chr22_sorted.bam"), package="mosaicsExample"),
      controlFileFormat="bam", controlPET=FALSE, controlFragLen=200, parallel=TRUE, nCore=8 )
    peakHM <- findSummit( peakHM, parallel=TRUE, nCore=8 )
    peakHM <- adjustBoundary( peakHM, parallel=TRUE, nCore=8 )
    peakHM <- filterPeak( peakHM, parallel=TRUE, nCore=8 )

    ## End(Not run)

[Package mosaics version 2.18.0 Index]