Learn R Programming

MMDiff (version 1.8.0)

getNormFactors: Determine Normalisation factors

Description

Determine normalisation factors for a specified set of samples. Potentially only a subset of the peaks can be used to determine normalisation factors. The determined factors can be accessed with DBA$MD$NormFactors. Normalised total counts are additionally computed and stored at DBA$MD$NormTotalCounts.

Usage

getNormFactors(DBA, method = "DESeq", SampleIDs = NULL, Usefiltered = TRUE, PeakIDs = NULL, overWrite = FALSE)

Arguments

DBA
DBA object after running getPeakProfiles.
method
currently only the DESeq normalisation method is implemented [1].
SampleIDs
State which samples should be normalised; if NULL all are used.
Usefiltered
If TRUE, only peaks that have passed the filter to detect Outliers are used. findOutlier() must be run first, otherwise all peaks are used
PeakIDs
Specify a subset of peaks to be used to determine normalisation factors; If NULL all peaks are used.
overWrite
If TRUE, previous computed NormFactors and NormTotalCounts are overwritten

Value

NormTotalCounts appended to MD. Note, that if you call getNormFactors several times with different parameters, you can have more than one set of normalisation factors appended. However, NormTotalCounts will be overwritten unless specified otherwise.

References

[1] Anders S. and Huber W. (2010). Differential expression analysis for sequence count data Genome Biology, 11 (10): R106

See Also

getPeakProfiles, plotPeak, findOutliers

Examples

Run this code

# load DBA objects with peak profiles 

data(Cfp1Profiles)
Cfp1Norm <- getNormFactors(Cfp1Profiles)
Cfp1Norm$MD$NormFactors

# compare total counts before and after normalisation:
boxplot(Cfp1Norm$MD$RawTotalCounts[,1:3], ylim=c(0,2000))
boxplot(Cfp1Norm$MD$NormTotalCounts[,1:3], ylim=c(0,2000))

# compare individual peak profiles before and after normalisation,
# using plotPeak, e.g.:

plotPeak(Cfp1Norm, Peak.id=20, NormMethod = NULL)

plotPeak(Cfp1Norm, Peak.id=20, NormMethod = 'DESeq')




# You can also specify a subset of samples which should be normalised, e.g:

SampleIDs <- c("WT.AB2", "Null.AB2")
Cfp1Norm2 <- getNormFactors(Cfp1Profiles, SampleIDs=SampleIDs)

# Or you can specify a subset of peaks which should be used to determine
# the normalisation factors. For example run findOutliers:

Cfp1 <- findOutliers(Cfp1Profiles, range=5)
PeakIDs <- Cfp1$MD$Filter$FiltPeakIds
Cfp1Norm3 <- getNormFactors(Cfp1, PeakIDs = PeakIDs)

Run the code above in your browser using DataLab