| Title: | Handle Illumina methylation data |
|---|---|
| Description: | This package provides classes for holding and manipulating Illumina methylation data. Based on eSet, it can contain MIAME information, sample information, feature information, and multiple matrices of data. An "intelligent" import function, methylumiR can read the Illumina text files and create a MethyLumiSet. methylumIDAT can directly read raw IDAT files from HumanMethylation27 and HumanMethylation450 microarrays. Normalization, background correction, and quality control features for GoldenGate, Infinium, and Infinium HD arrays are also included. |
| Authors: | Sean Davis, Pan Du, Sven Bilke, Tim Triche, Jr., Moiz Bootwalla |
| Maintainer: | Sean Davis <[email protected]> |
| License: | GPL-2 |
| Version: | 2.59.3 |
| Built: | 2026-10-13 13:31:34 UTC |
| Source: | https://github.com/bioc/methylumi |
This package contains a class structure for handling methylation data from Illumina as well as utility functions for loading the data from files generated by Illumina. Normalization that attempts to correct for dye bias is also included.
Important data classes include: [MethyLumiSet-class] and [MethyLumiQC-class], both of which are subsets of the [MethyLumi-class] class, which is a subset of the 'eSet' class.
A worked example of the use of the package can be found by typing 'openVignette()'.
A full listing of the available documentation can be obtained by typing 'help.start()' and selecting 'methylumi' from the 'Packages' link, or by typing 'library(help="methylumi")'.
If you use the 'methylumIDAT' function or its out-of-band preprocessing mechanisms in your work, a citation to the paper "Low-level processing of Illumina Infinium DNA methylation beadarrays" by TJ Triche, DJ Weisenberger, D Van Den Berg, KD Siegmund, and PW Laird, Nucleic Acids Research, 2013, would be appreciated.
| Package: | methylumi |
| Type: | Package |
| License: | GPL |
Sean Davis <[email protected]>
Data frame describing loci on the 27 and 450k arrays.
data(CpGs)data(CpGs)
data(CpGs) head(CpGs)data(CpGs) head(CpGs)
Estimate the methylation M-value matrix from a 'MethyLumiM' or 'eSet' object, which includes methylated and unmethylated probe intensities.
estimateM(methyLumiM, returnType = c("ExpressionSet", "matrix"), offset = 100)estimateM(methyLumiM, returnType = c("ExpressionSet", "matrix"), offset = 100)
methyLumiM |
A [MethyLumiM-class] or 'eSet' object, which includes methylated and unmethylated probe intensities. |
returnType |
Determines whether to return an 'ExpressionSet' ('MethyLumiM' in this case) or a matrix object. |
offset |
Offset added to the methylated and unmethylated probe intensities when estimating the M-value. |
The M-value is the log2 ratio between the Illumina methylated and unmethylated probe intensities. As variations of small intensities can cause big changes in the ratio estimation, an offset is added to the methylated and unmethylated probe intensities when estimating the M-value.
Please check the lumi package for more details of the 'estimateM' function.
A 'MethyLumiM' or matrix object of methylation M-values.
Pan Du
Du, P., Zhang, X, Huang, C.C., Jafari, N., Kibbe, W.A., Hou, L., and Lin, S.M. (2010) 'Comparison of Beta-value and M-value methods for quantifying methylation levels by microarray analysis'.
The sentrix IDs from an Illumina sentrix array contain positional information that might be useful. This function simply extracts that information from the ID itself.
extractBarcodeAndPosition(sentrixids)extractBarcodeAndPosition(sentrixids)
sentrixids |
A character vector of sentrix IDs that look like '1632405013_R001_C001'. |
A data.frame with five columns:
the sentrix ID
the sentrix row as it appears in the ID, e.g. '"R001"'
the sentrix column as it appears in the ID, e.g. '"C001"'
numeric, the sentrix row
numeric, the sentrix column
Sean Davis <[email protected]>
[methylumiR()]
extractBarcodeAndPosition(c('12341234_R001_C001'))extractBarcodeAndPosition(c('12341234_R001_C001'))
Features with insufficient annotation carry little value for subsequent data analysis. The function 'featureFilter' provides options for filtering features (CpG sites) from a 'MethyLumiSet' (or 'MethyLumiM') object based on available annotation data.
featureFilter(eset, require.entrez=FALSE, require.GOBP=FALSE, require.GOCC=FALSE, require.GOMF=FALSE, exclude.ChrX=FALSE, require.closeToTSS=FALSE, range.DistToTSS=c(-500, 300), require.CpGisland=FALSE, ...)featureFilter(eset, require.entrez=FALSE, require.GOBP=FALSE, require.GOCC=FALSE, require.GOMF=FALSE, exclude.ChrX=FALSE, require.closeToTSS=FALSE, range.DistToTSS=c(-500, 300), require.CpGisland=FALSE, ...)
eset |
A 'MethyLumiSet' or 'MethyLumiM' object. |
require.entrez |
If 'TRUE', filter out features without an Entrez Gene ID annotation. |
require.GOBP, require.GOCC, require.GOMF
|
If 'TRUE', filter out features whose target genes are not annotated to at least one GO term in the BP, CC and MF ontology, respectively. |
exclude.ChrX |
If 'TRUE', filter out features on chromosome X to avoid gender effects. |
require.closeToTSS |
If 'TRUE', filter out features that are not close to a transcription start site (TSS). Features without an annotation of distance to TSS will also be removed. Can only be used for the GoldenGate platform. |
range.DistToTSS |
Ignored if 'require.closeToTSS' is 'FALSE'. A numeric
vector of length 2 indicating the range of tolerable distance from the
transcription start site (TSS) in basepairs. Features whose distance to TSS
falls outside this range will be removed. The default is
|
require.CpGisland |
If 'TRUE', filter out features that are not in CpG islands. |
... |
Unused, but available for specializing methods. |
A list consisting of:
The filtered 'MethyLumiSet' or 'MethyLumiM' object.
A list giving details of how many probe sets were removed for each annotation-based filtering step performed.
Chao-Jen Wong [email protected]
R. Bourgon, R. Gentleman, W. Huber, Independent filtering increases power for detecting differentially expressed genes, PNAS, vol. 107, no. 21, pp. 9546-9551.
[genefilter::nsFilter()]
The Illumina methylation platforms use two distinct technologies, the "goldengate" platform and the "infinium" platform. Each uses different file formats as well as different assay chemistry. To make the downstream data handling more straightforward and uniform between the two, a simple mapping from the column names in the output files of the Illumina software converts Red/Green or Cy5/Cy3 to unmethylated/methylated. This function returns that mapping.
getAssayDataNameSubstitutions()getAssayDataNameSubstitutions()
A file in the 'extdata' directory called 'substitutions.txt' contains two columns. The function loads this file and uses the first column as a match against column names in the data file (with the "sample part" removed). If matched, the second column gives the replacement.
A data.frame with two columns, regex and replacement.
Sean Davis <[email protected]>
getAssayDataNameSubstitutions()getAssayDataNameSubstitutions()
convert multiple idats to matrices
IDATsToMatrices( barcodes, fileExts = list(Cy3 = "Grn", Cy5 = "Red"), parallel = FALSE, idatPath = "." )IDATsToMatrices( barcodes, fileExts = list(Cy3 = "Grn", Cy5 = "Red"), parallel = FALSE, idatPath = "." )
barcodes |
character() |
fileExts |
character() |
parallel |
logical(1) |
idatPath |
character(1) |
process a single IDAT (just the mean intensities)
IDATtoMatrix(x, fileExts = list(Cy3 = "Grn", Cy5 = "Red"), idatPath = ".")IDATtoMatrix(x, fileExts = list(Cy3 = "Grn", Cy5 = "Red"), idatPath = ".")
x |
character(1) |
fileExts |
named list |
idatPath |
character(1) |
"methylData", superclass for MethyLumiSet and MethyLumiMA superclass (virtual) for MethyLumiSet and MethyLumiM.
A virtual Class: No objects may be created from it.
signature(x = "methylData"): diagnostic
plots of data
signature(object = "methylData"):
accessor for assayData element of the same name
signature(object = "methylData", value =
"matrix"):
replace method for assayData element of the same name
signature(object = "methylData"): ...
signature(object = "methylData"):
accessor for assayData element of the same name
signature(object = "methylData", value =
"numeric"):
replace method for assayData element of the same name
signature(object = "methylData"):
accessor for assayData element of the same name
signature(object = "methylData", value
= "matrix"):
replace method for assayData element of the same name
Tim Triche, Jr.
showClass("methylData")showClass("methylData")
These functions serve as getters and setters for information in methylumi classes.
betas(object) pvals(object) methylated(object) unmethylated(object) getHistory(object) QCdata(object)betas(object) pvals(object) methylated(object) unmethylated(object) getHistory(object) QCdata(object)
object |
an object of class MethyLumi or a subclass |
See the methods definitions in MethyLumiSet and MethyLumiQC for details.
Sean Davis <[email protected]>
normalizeMethyLumiSet,
MethyLumiSet, MethyLumiQC,
eSet
This class inherits from eSet from the Biobase package and
is used as a base class for the other two methylumi classes,
MethyLumiSet and MethyLumiQC.
The MethyLumi class is a virtual class and is not meant to be instantiated. Instead, one should instantiate a MethyLumiSet or a MethyLumiQC object.
assayData:Object of class "AssayData"
phenoData:Object of class "AnnotatedDataFrame"
featureData:Object of class
"AnnotatedDataFrame" that will hold the annotation columns
from the Beadstudio output, if they are available.
experimentData:Object of class "MIAME"
annotation:Object of class "character"; note
that this slot is not currently used, but may be used in the
future to store the character name of the annotation package, if available.
.__classVersion__:Object of class "Versions"
Class "eSet", directly.
Class "VersionedBiobase", by class "eSet", distance 2.
Class "Versioned", by class "eSet", distance 3.
signature(object = "MethyLumi", value = "matrix"): Set the assayData slot of the same name and stores the P-values from BeadStudio
signature(object = "MethyLumi"): Get the assayData slot of the same name
signature(object = "MethyLumi", value = "matrix"): Set the assayData slot of the same name and represents the methylation values for the samples, analogous to exprs() in gene expression data.
signature(object = "MethyLumi"): Get the assayData slot of the same name
signature(object = "MethyLumi", value = "matrix"): Set the assayData slot that represents the Methylated single-channel signal
signature(object = "MethyLumi"): Get the assayData slot that represents the Methylated single-channel signal
signature(object = "MethyLumi", value = "matrix"): Set the assayData slot that represents the Unmethylated single-channel signal
signature(object = "MethyLumi"): Get the assayData slot that represents the Unmethylated single-channel signal
signature(object = "MethyLumi"
: Find the unique control type beeds in the QCdata slot.
signature(object = "MethyLumi",what,...): Plot of QC data. This plot can be useful for diagnosing the problems associated with specific samples or arrays. The value for "what" is one of the control types (which can be found by using controlTypes() on the object.
signature(object = "MethyLumi",...)
: summary method for MethyLumi objects.
Sean Davis <[email protected]>
methylumiR,
MethyLumiSet, MethyLumiQC,
eSet
## The class structure showClass("MethyLumi") ## read in some data ## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"),sep="\t",header=TRUE) ## Perform the actual data reading ## This is an example of reading data from a ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package='methylumi'), qcfile=system.file('extdata/exampledata.controls.txt', package="methylumi"), sampleDescriptions=samps) mldat ## Get history information getHistory(mldat) ## Get QC data, which is another eSet-derived object QCdata(mldat)## The class structure showClass("MethyLumi") ## read in some data ## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"),sep="\t",header=TRUE) ## Perform the actual data reading ## This is an example of reading data from a ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package='methylumi'), qcfile=system.file('extdata/exampledata.controls.txt', package="methylumi"), sampleDescriptions=samps) mldat ## Get history information getHistory(mldat) ## Get QC data, which is another eSet-derived object QCdata(mldat)
450k datasets with probe-level standard errors, out-of-band intensities and bead numbers can become huge. These functions help to manage their growth in memory, at least until preprocessing and QC is completed, whereupon the summary data can be exported to a RangedData-based object of some sort for integration.
stripBeadNs(object) stripBeadSDs(object) stripOOB(object) stripMethyLumiSet(object)stripBeadNs(object) stripBeadSDs(object) stripOOB(object) stripMethyLumiSet(object)
object |
an object of class MethyLumi or a subclass. |
The object, with the corresponding assay data elements removed.
Tim Triche, Jr. <[email protected]>
Read a directory of methylumi idat files and return a 'MethyLumiSet'.
methylumIDAT( barcodes = NULL, pdat = NULL, parallel = FALSE, n = FALSE, n.sd = FALSE, oob = TRUE, idatPath = getwd(), ... )methylumIDAT( barcodes = NULL, pdat = NULL, parallel = FALSE, n = FALSE, n.sd = FALSE, oob = TRUE, idatPath = getwd(), ... )
barcodes |
A vector of barcodes to read. Either this argument or 'pdat' must be specified. |
pdat |
A data.frame describing the samples. A special column named "barcodes" can be used to specify the barcodes to be read. |
parallel |
If TRUE, an attempt will be made to process using multiple cores on a multicore machine. |
n |
Keep the bead numbers? (Default: no) |
n.sd |
Keep the bead-level SD? (Default: no) |
oob |
Keep the out-of-band (OOB) or opposite-channel signals? (Default: yes) |
idatPath |
The path to the directory containing the idat files. |
... |
Additional arguments to be passed to sub-functions. |
Read a set of .idat files and return a 'MethyLumiSet' object. If you use this function to any significant degree in your analysis, we would appreciate your citing the paper describing it, "Low-level processing of Illumina Infinium DNA methylation beadarrays", TJ Triche, DJ Weisenberger, D Van Den Berg, KD Siegmund, and PW Laird, Nucleic Acids Research, 2013.
A 'MethyLumiSet' object.
Tim Triche, Jr.
The 'methylumi450k' vignette: 'vignette("methylumi450k", package="methylumi")'
## Not run: if(require('IlluminaHumanMethylation450k.db')) { barcodes <- c('6005486014_R04C02', '6005486023_R05C01') lumi450k <- methylumIDAT(barcodes,idatPath=system.file('extdata/idat',package='methylumi')) # no normalization done sampleNames(lumi450k) <- c('TCGA1','TCGA2') show(lumi450k) } ## End(Not run)## Not run: if(require('IlluminaHumanMethylation450k.db')) { barcodes <- c('6005486014_R04C02', '6005486023_R05C01') lumi450k <- methylumIDAT(barcodes,idatPath=system.file('extdata/idat',package='methylumi')) # no normalization done sampleNames(lumi450k) <- c('TCGA1','TCGA2') show(lumi450k) } ## End(Not run)
See the individual classes for details of methods.
Sean Davis, Pan Du, and Tim Triche, Jr.
MethyLumiM is a class inherited from ExpressionSet-class. It is designed for Illumina Methylation microarray data. The exprs dataMatrix included in the assayData slot of MethyLumiM object includes a matrix of M-values, which is the log2 ratio of methylated and unmethylated probe intensities. The MethyLumiM class include a boxplot function uniquely designed for two-mode histogram data. It also include a coerce function to map from MethyLumi-class, MethyLumiSet-class or other eSet-class inherited object to MethyLumiM class object.
Objects can be created by calls of the form new("MethyLumiM", exprs, methylated, unmethylated, detection, methylated.N, unmethylated.N, ..., assayData).
The "exprs" is a matrix of M-values, which is the log2 ratio of methylated and unmethylated probe intensities; "methylated" and "unmethylated" are intensity matrix measured by methylated and unmethylalted probes of Illumina Infinium methylation microarray; "detection" is the detection p-value outputted by Illumina GenomeStudio software; "methylated.N" and "unmethylated.N" are bead numbers for methylated and unmethylalted probes. "exprs", "methylated" and "unmethylated" information are required for MethyLumiM class. When creating a new MethyLumiM object, the information of "exprs", "methylated", "unmethylated" and "detection" can also be provided directly through "assayData".
history:Object of class "data.frame" recording the operation history of the LumiBatch object.
controlData:Object of class "MethyLumiQC" to keep the QC probe measurement information.
dataType:The type of data stored in the "exprs" data matrix in "assayData". It can be "M" (M-value), "Beta" (Beta-value") or "Intensity" (Intensity of CpG-site)
assayData:Object of class "AssayData", which includes "exprs", "methylated", "unmethylated", "detection", "methylated.N" and "unmethylated.N" data matrix
phenoData:Object of class "AnnotatedDataFrame", See eSet-class
featureData:Object of class "AnnotatedDataFrame", See eSet-class
experimentData:Object of class "MIAME", See eSet-class
annotation:Object of class "character", See eSet-class
protocolData:Object of class "AnnotatedDataFrame", See eSet-class
.__classVersion__:Object of class "Versions", See eSet-class
Class "ExpressionSet", directly.
Class "eSet", by class "ExpressionSet", distance 2.
Class "VersionedBiobase", by class "ExpressionSet", distance 3.
Class "Versioned", by class "ExpressionSet", distance 4.
signature(x = "MethyLumiM"): plot distribution of M-value
signature(from = "eSet", to = "MethyLumiM"): map from MethyLumi-class, MethyLumiSet-class or other eSet-class inherited object to MethyLumiM class object. MethyLumiM object will only keep "exprs", "methylated", "unmethylated" and "detection" data matrix in the assayData.
signature(object = "MethyLumiM"): access the operation history of MethyLumiM object.
signature(.Object = "MethyLumiM"): class initialization
signature(object = "MethyLumiM"): retrieve the data matrix measured by methylated probes
signature(object = "MethyLumiM"): set the data matrix measured by methylated probes
signature(object = "MethyLumiM"): retrieve the data matrix measured by unmethylated probes
signature(object = "MethyLumiM"): set the data matrix measured by unmethylated probes
signature(object = "MethyLumiM"): retrieve the data matrix keeping the number of beads of methylated probes
signature(object = "MethyLumiM"): set the data matrix keeping the number of beads of methylated probes
signature(object = "MethyLumiM"): retrieve the data matrix keeping the number of beads of unmethylated probes
signature(object = "MethyLumiM"): set the data matrix keeping the number of beads of unmethylated probes
signature(object = "MethyLumiM"): retrieve detection data matrix in AssayData-class
signature(object = "MethyLumiM"): set detection data matrix in AssayData-class
signature(object = "MethyLumiM"): retrieve the controlData in MethyLumiQC-class
signature(object = "MethyLumiM"): set controlData in MethyLumiQC-class
signature(object = "MethyLumiM"): retrieve the dataType, by default it is "M", it can also be "Beta" or "Intensity"
signature(object = "MethyLumiM"): set dataType in MethyLumiM-class, the value can be "M", "Beta" or "Intensity"
Pan DU
1. Du, P., Zhang, X, Huang, C.C., Jafari, N., Kibbe, W.A., Hou, L., and Lin, S.M., (2010) 'Comparison of Beta-value and M-value methods for quantifying methylation levels by microarray analysis'
MethyLumi-class and MethyLumiSet-class
showClass("MethyLumiM")showClass("MethyLumiM")
"MethyLumiQC" for holding Illumina methylation QC dataThis class inherits from the MethyLumi class (and therefore, from eSet in Biobase) and is designed to hold QC data from Illumina Beadstudio output. These data can be potentially useful when determining the cause for quality problems.
Objects can be created by calls of the form new("MethyLumiQC", assayData, phenoData, featureData, experimentData, annotation, betas).
assayData:Object of class "AssayData"
phenoData:Object of class "AnnotatedDataFrame"
featureData:Object of class
"AnnotatedDataFrame" containing the annotation columns from
the Illumina Beadstudio output. In particular, the names of the
probes describe the types of control probes.
experimentData:Object of class "MIAME"
annotation:Object of class "character", not
currently used
.__classVersion__:Object of class "Versions"
Class "MethyLumi", directly.
Class "eSet", by class "MethyLumi", distance 2.
Class "VersionedBiobase", by class "MethyLumi", distance 3.
Class "Versioned", by class "MethyLumi", distance 4.
signature(.Object = "MethyLumiQC")
signature(object = "MethyLumiQC"): ...
signature(object = "MethyLumiQC", value = "matrix"): ...
signature(object = "MethyLumiQC"): ...
signature(object = "MethyLumiQC", value = "matrix"): ...
signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...
signature(x = "MethyLumiQC", y = "MethyLumiQC"): ...
signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...
signature(object = "MethyLumiQC"):
determine the character vector of control types from the QCdata information
signature(x = "MethyLumiQC"): ...
signature(object = "MethyLumiQC"): ...
signature(object = "MethyLumiQC"): ...
signature(object = "MethyLumiQC", channel = "character"): ...
signature(object = "MethyLumiQC", channel = "missing"): ...
signature(object = "MethyLumiQC", channel = "character"): ...
signature(object = "MethyLumiQC", channel = "missing"): ...
signature(object = "MethyLumiQC", channel = "character"): ...
signature(object = "MethyLumiQC", channel = "missing"): ...
signature(object = "MethyLumiQC"): ...
signature(object = "MethyLumiQC", what, ...):
QC plots of various controltypes
signature(object = "MethyLumiQC"): ...
Sean Davis <[email protected]>
methylumiR, MethyLumiSet,
MethyLumi, eSet
showClass("MethyLumiQC")showClass("MethyLumiQC")
This function is useful for loading Illumina methylation data into a [MethyLumiSet-class] object. Sample information can be supplied and will then be incorporated into the resulting phenoData slot.
methylumiR(filename, qcfile = NULL, sampleDescriptions = NULL, sep = NULL, ...)methylumiR(filename, qcfile = NULL, sampleDescriptions = NULL, sep = NULL, ...)
filename |
A filename of the excel-like file from BeadStudio. |
qcfile |
A filename of the excel-like QC file from BeadStudio. |
sampleDescriptions |
A data.frame that contains at least one column, SampleID (case insensitive). This column MUST match the part of the column headers before the '.Avg_Beta', etc. Also, if a column called SampleLabel (case insensitive) is present, it is used for sample labels, IF that column contains unique identifiers. |
sep |
Separator used in the BeadStudio (or GenomeStudio) output file. If 'NULL', the function estimates it automatically. |
... |
Passed into [utils::read.delim()]. |
Autodetects the file format, reads the data, makes substitutions of assayData element names for the various formats so that the method accessors will work, maps 'sampleDescriptions' appropriately, and returns a 'MethyLumiSet' object.
A [MethyLumiSet-class] object.
Sean Davis <[email protected]>
[MethyLumiSet-class], [MethyLumiQC-class]
## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"), sep = "\t", header = TRUE) ## Perform the actual data reading ## This is an example of reading data from an ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package = 'methylumi'), qcfile = system.file('extdata/exampledata.controls.txt', package = "methylumi"), sampleDescriptions = samps) mldat## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"), sep = "\t", header = TRUE) ## Perform the actual data reading ## This is an example of reading data from an ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package = 'methylumi'), qcfile = system.file('extdata/exampledata.controls.txt', package = "methylumi"), sampleDescriptions = samps) mldat
"MethyLumiSet" for containing Illumina methylation dataThis class inherits from the MethyLumi class (and therefore, from eSet in Biobase) and is designed to hold both the intensities and the calculated betas, as well as pvalues if present.
Objects can be created by calls of the form new("MethyLumiSet", assayData, phenoData, featureData, experimentData, annotation, betas). An object of this type is the main storage class for methylation data from Illumina. Subsetting, etc., works as normal (rows represent genes, columns represent samples). There is also a rudimentary history tracking system that is modeled after that from the lumi package.
QC:Object of class "QCDataOrNULL", containing
either the MethyLumiQC object or NULL
history:Object of class "data.frame",
containing a running history of transforms to the data contained herein
assayData:Object of class AssayData
phenoData:Object of class AnnotatedDataFrame
featureData:Object of class
AnnotatedDataFrame, containing the annotation columns from the Illumina Beadstudio output
experimentData:Object of class MIAME
annotation:Object of class "character", not
currently used
.__classVersion__:Object of class "Versions"
protocolData:Object of class
"AnnotatedDataFrame" that contains protocol information,
including scan date if available
Class "MethyLumi", directly.
Class "methylData", directly.
Class "eSet", by class "MethyLumi", distance 2.
Class "VersionedBiobase", by class "MethyLumi", distance 3.
Class "Versioned", by class "MethyLumi", distance 4.
signature(x = "MethyLumiSet"): subsetting, genes as rows, samples as columns
signature(object = "MethyLumiSet", value = "matrix"): Set the assayData slot of the same name
signature(object = "MethyLumiSet"): Get the assayData slot of the same name
signature(x = "MethyLumiSet"): boxplot of all
sample betas
signature(x = "MethyLumiSet", y = "MethyLumiSet")
signature(x = "MethyLumiSet")
signature(object = "MethyLumiSet"): returns m-values
signature(object = "MethyLumiSet"): returns
a data.frame containing the history for this object
signature(x = "MethyLumiSet"): histogram of the
betas for the data
signature(.Object = "MethyLumiSet")
signature(x = "MethyLumiSet"): pairs plot of the
betas for the object. Note that pairs plots of more than a few samples are not very useful.
signature(x = "MethyLumiSet"):
The intensities as output by the Beadstudio software often show a
considerable amount of dye bias. This method shows a graphical
example of this dye bias. In short, for each of the Cy3 and Cy5
channels, a cutoff in beta is used to calculate which Cy3 and Cy5
values should be plotted at high-methylation and low-methylation
status. Any offset between Cy3 and Cy5 when plotted in this way
likely represents dye bias and will lead to biases in the estimate
of beta.
signature(object = "MethyLumiSet", value =
"MethyLumiQC"): assign QC data to the QC slot
signature(object = "MethyLumiSet"): retrieve
the QC data.
signature(object = "MethyLumiSet")
signature(object = "MethyLumiSet", value =
"matrix"): Set the assayData slot associated with methylated intensity
signature(object = "MethyLumiSet"): Get the assayData slot associated with methylated intensity
signature(object = "MethyLumiSet", value = "matrix"): Set the assayData slot associated with unmethylated intensity
signature(object = "MethyLumiSet"): Get the assayData slot associated with unmethylated intensity
signature(object = "MethyLumiSet", what, ...):
QC plots of various controltypes
signature(object = "MethyLumiSet"):
determine the character vector of control types from the QCdata
information
signature(object = "MethyLumiSet"): ...
signature(object = "MethyLumiSet"): ...
signature(x = "MethyLumiSet", y = "MethyLumiSet"): ...
signature(object = "MethyLumiSet"): ...
signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...
signature(eset = "MethyLumiSet"): ...
signature(x = "MethyLumiSet", channel = "character"): ...
signature(x = "MethyLumiSet", channel = "missing"): ...
signature(x = "MethyLumiSet", channel = "character"): ...
signature(x = "MethyLumiSet", channel = "missing"): ...
signature(x = "MethyLumiSet", channel = "character", allele = "character"): ...
signature(x = "MethyLumiSet", channel = "missing", allele = "missing"): ...
signature(x = "MethyLumiSet", channel = "character"): ...
signature(x = "MethyLumiSet", channel = "missing"): ...
signature(x = "MethyLumiSet", channel = "character"): ...
signature(x = "MethyLumiSet", channel = "missing"): ...
signature(object = "MethyLumiSet"): ...
signature(object = "MethyLumiSet", channel = "character"): ...
signature(object = "MethyLumiSet", channel = "missing"): ...
signature(object = "MethyLumiSet", channel = "character"): ...
signature(object = "MethyLumiSet", channel = "missing"): ...
signature(object = "MethyLumiSet", channel = "character"): ...
signature(object = "MethyLumiSet", channel = "missing"): ...
signature(object = "MethyLumiSet"): ...
signature(x = "MethyLumiSet"): ...
signature(object = "MethyLumiSet"): ...
signature(object = "MethyLumiSet"): ...
signature(object = "MethyLumiSet"): ...
signature(eset = "MethyLumiSet"): ...
Sean Davis & Tim Triche, Jr.
methylumiR, normalizeMethyLumiSet,
methylumIDAT, MethyLumiQC,
eSet
showClass("MethyLumiSet")showClass("MethyLumiSet")
This is an example [MethyLumiSet-class] object.
data(mldat)data(mldat)
data(mldat)data(mldat)
The Illumina GoldenGate methylation platform uses two colors, one to represent the unmethylated state and the other to represent the methylated state. This function corrects that dye bias and recalculates the betas based on the corrected intensities.
normalizeMethyLumiSet(x, beta.cuts = c(0.2, 0.8), mapfun = c("atan", "ratio"))normalizeMethyLumiSet(x, beta.cuts = c(0.2, 0.8), mapfun = c("atan", "ratio"))
x |
A MethyLumiSet object. |
beta.cuts |
Two numeric values with the first less than the second and between 0 and 1, representing the beta cutoffs that will be used when determining the median intensities to which to correct. See details below. |
mapfun |
Either '"atan"' or '"ratio"'. See details below. |
For HumanMethylation27 data, the function does nothing.
For HumanMethylation450 data, the function delegates to 'normalizeViaControls()' the task of scaling red and green intensities against a reference array (chip) which uses the closest-to-equal chip (i.e. 'which.min(abs(R.G.ratio - 1))').
The code to do this is based on code from the 'minfi' package and uses the built-in red and green normalization control probes on the hm450 arrays to scale the channels of the samples, so that a consistent degree of dye bias is maintained for Infinium II probes across an experiment or set of experiments.
For HumanMethylation450 data, the function delegates to 'normalizeViaControls()' the task of scaling red and green intensities against a reference array (chip) which defaults to the first chip in a set. The code to do this is based on code from the 'minfi' package and uses the built-in normalization controls to scale the channels of the samples, so that a consistent degree of dye bias is maintained for Infinium II probes across an experiment or set of experiments. The remainder of the documentation below is specific to GoldenGate data.
The Illumina GoldenGate methylation platform uses two colors, one to represent the unmethylated state and the other to represent the methylated state. This function corrects that dye bias and recalculates the betas based on the corrected intensities.
As a first step, the medians for each of Cy3 and Cy5 are calculated at high and low betas, representing the (nearly) fully methylated state and the (nearly) fully unmethylated states. Values of Cy3 and Cy5 that are negative are set to zero for this process. Then, the Cy5 medians are adjusted to match those of the Cy3 channel, thereby correcting the dye bias.
To map the new intensities back to betas, one of two map functions can be used. The default is the 'atan(Cy3/Cy5)'. The ratio maps using the function '(Cy3/Cy3+Cy5)'. The differences should be very small, but we feel that the atan map function is probably the mathematically appropriate way of doing this.
A new 'MethyLumiSet' that contains the corrected betas and the adjusted intensities.
Sean Davis <[email protected]>
## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"), sep = "\t", header = TRUE) ## Perform the actual data reading ## This is an example of reading data from an ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package = 'methylumi'), qcfile = system.file('extdata/exampledata.controls.txt', package = "methylumi"), sampleDescriptions = samps) mldatnorm <- normalizeMethyLumiSet(mldat)## Read in sample information samps <- read.table(system.file("extdata/samples.txt", package = "methylumi"), sep = "\t", header = TRUE) ## Perform the actual data reading ## This is an example of reading data from an ## Sentrix Array format file (actually two files, ## one for data and one for QC probes) mldat <- methylumiR(system.file('extdata/exampledata.samples.txt', package = 'methylumi'), qcfile = system.file('extdata/exampledata.controls.txt', package = "methylumi"), sampleDescriptions = samps) mldatnorm <- normalizeMethyLumiSet(mldat)
The Illumina methylation platforms all show a significant dye bias. The 'plotSampleIntensities' method shows the density plots for the two channels, allowing direct visualization of the effect.
plotSampleIntensities(x,beta.cuts,s)plotSampleIntensities(x,beta.cuts,s)
x |
An object of class MethyLumi or a subclass. |
beta.cuts |
Cutoffs for low and high beta values. |
s |
Sample number to plot. |
data(mldat) plotSampleIntensities(mldat, s = 1)data(mldat) plotSampleIntensities(mldat, s = 1)
The 'qcplot' function simply generates a plot of the control probe information for a given 'controlType'.
qcplot(object,controltype,...) controlTypes(object,...)qcplot(object,controltype,...) controlTypes(object,...)
object |
An object of class [MethyLumiSet-class] or [MethyLumiQC-class]. |
controltype |
A single character value representing the bead type to plot from the quality control data. The available types are accessible via the 'controlTypes' method. |
... |
Passed to the plot function. |
The descriptions of the various control types can be obtained from the Illumina methylation user's guides.
Sean Davis <[email protected]>
[MethyLumiSet-class], [MethyLumiQC-class]
data(mldat) controlTypes(mldat) qcplot(mldat, controlTypes(mldat)[3])data(mldat) controlTypes(mldat) qcplot(mldat, controlTypes(mldat)[3])
Total convenience function for processing IDATs like tcga
tcgaPipeline(IDATs)tcgaPipeline(IDATs)
IDATs |
character() of idat files |
The function 'varFilter' removes features exhibiting little variation across samples. Such non-specific filtering can be advantageous for downstream data analysis.
varFilter(eset, var.func=IQR, var.cutoff=0.5, filterByQuantile=TRUE, ...)varFilter(eset, var.func=IQR, var.cutoff=0.5, filterByQuantile=TRUE, ...)
eset |
A 'MethyLumiSet' or 'MethyLumiM' object. |
var.func |
The function used as the per-feature filtering statistic. |
var.cutoff |
A numeric value indicating the cutoff value for variation. If 'filterByQuantile' is 'TRUE', features whose value of 'var.func' is less than the 'var.cutoff'-quantile of all 'var.func' values will be removed. If 'FALSE', features whose values are less than 'var.cutoff' will be removed. |
filterByQuantile |
A logical indicating whether 'var.cutoff' is to be interpreted as a quantile of all 'var.func' values (the default), or as an absolute value. |
... |
Unused, but available for specializing methods. |
This function is a counterpart of the functions 'nsFilter' and 'varFilter' available from the 'genefilter' package. See R. Bourgon et al. (2010) and [genefilter::nsFilter()] for detail.
It is proven that non-specific filtering, for which the criterion does not
depend on sample class, can increase the number of discoveries.
Inappropriate choice of test statistics, however, might have an adverse
effect. ‘limma'’s moderated -statistic, for example, is based on an
empirical Bayes approach which models the conjugate prior of gene-level
variance with an inverse of distribution scaled by observed
global variance. As the variance-based filtering removes the set of genes
with low variance, the scaled inverse no longer provides a good
fit to the data passing the filter, causing the 'limma' algorithm to produce
a posterior degree-of-freedom of infinity (Bourgon 2010). This leads to two
consequences: (i) the gene-level variance estimate will be ignored, and (ii)
the -value will be overly optimistic (Bourgon 2010).
A list consisting of:
The filtered 'MethyLumiSet' or 'MethyLumiM' object.
Shows how many low-variance features were removed.
Chao-Jen Wong [email protected]
R. Bourgon, R. Gentleman, W. Huber, Independent filtering increases power for detecting differentially expressed genes, PNAS, vol. 107, no. 21, pp. 9546-9551, 2010.
[genefilter::nsFilter()]
data(mldat) ## keep top 75 percent filt <- varFilter(mldat, var.cutoff=0.25) filt$filter.log dim(filt$eset)data(mldat) ## keep top 75 percent filt <- varFilter(mldat, var.cutoff=0.25) filt$filter.log dim(filt$eset)