Package 'methylumi'

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

Help Index


Handle Illumina methylation data

Description

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.

Details

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

Author(s)

Sean Davis <[email protected]>

See Also

Biobase


Data frame describing loci on the 27 and 450k arrays

Description

Data frame describing loci on the 27 and 450k arrays.

Usage

data(CpGs)

Examples

data(CpGs)
head(CpGs)

Estimate methylation M-value matrix

Description

Estimate the methylation M-value matrix from a 'MethyLumiM' or 'eSet' object, which includes methylated and unmethylated probe intensities.

Usage

estimateM(methyLumiM, returnType = c("ExpressionSet", "matrix"), offset = 100)

Arguments

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.

Details

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.

Value

A 'MethyLumiM' or matrix object of methylation M-values.

Author(s)

Pan Du

References

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'.


Extract the barcode and position information from a Sentrix ID

Description

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.

Usage

extractBarcodeAndPosition(sentrixids)

Arguments

sentrixids

A character vector of sentrix IDs that look like '1632405013_R001_C001'.

Value

A data.frame with five columns:

sentrix

the sentrix ID

row

the sentrix row as it appears in the ID, e.g. '"R001"'

column

the sentrix column as it appears in the ID, e.g. '"C001"'

rowNumber

numeric, the sentrix row

columnNumber

numeric, the sentrix column

Author(s)

Sean Davis <[email protected]>

See Also

[methylumiR()]

Examples

extractBarcodeAndPosition(c('12341234_R001_C001'))

Annotation-based filtering of features (CpG sites) in a MethyLumiSet or MethyLumiM object

Description

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.

Usage

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, ...)

Arguments

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 c(−500,300)c(-500, 300), where −500-500 is the distance to TSS from the left and 300 the distance from the right.

require.CpGisland

If 'TRUE', filter out features that are not in CpG islands.

...

Unused, but available for specializing methods.

Value

A list consisting of:

eset

The filtered 'MethyLumiSet' or 'MethyLumiM' object.

filter.log

A list giving details of how many probe sets were removed for each annotation-based filtering step performed.

Author(s)

Chao-Jen Wong [email protected]

References

R. Bourgon, R. Gentleman, W. Huber, Independent filtering increases power for detecting differentially expressed genes, PNAS, vol. 107, no. 21, pp. 9546-9551.

See Also

[genefilter::nsFilter()]


Return a data.frame of AssayData name substitutions

Description

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.

Usage

getAssayDataNameSubstitutions()

Details

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.

Value

A data.frame with two columns, regex and replacement.

Author(s)

Sean Davis <[email protected]>

Examples

getAssayDataNameSubstitutions()

convert multiple idats to matrices

Description

convert multiple idats to matrices

Usage

IDATsToMatrices(
  barcodes,
  fileExts = list(Cy3 = "Grn", Cy5 = "Red"),
  parallel = FALSE,
  idatPath = "."
)

Arguments

barcodes

character()

fileExts

character()

parallel

logical(1)

idatPath

character(1)


process a single IDAT (just the mean intensities)

Description

process a single IDAT (just the mean intensities)

Usage

IDATtoMatrix(x, fileExts = list(Cy3 = "Grn", Cy5 = "Red"), idatPath = ".")

Arguments

x

character(1)

fileExts

named list

idatPath

character(1)


Class "methylData", superclass for MethyLumiSet and MethyLumiM

Description

A superclass (virtual) for MethyLumiSet and MethyLumiM.

Objects from the Class

A virtual Class: No objects may be created from it.

Methods

diagnostics

signature(x = "methylData"): diagnostic plots of data

methylated.N

signature(object = "methylData"): accessor for assayData element of the same name

methylated.N<-

signature(object = "methylData", value = "matrix"): replace method for assayData element of the same name

plotNAs

signature(object = "methylData"): ...

pval.detect

signature(object = "methylData"): accessor for assayData element of the same name

pval.detect<-

signature(object = "methylData", value = "numeric"): replace method for assayData element of the same name

unmethylated.N

signature(object = "methylData"): accessor for assayData element of the same name

unmethylated.N<-

signature(object = "methylData", value = "matrix"): replace method for assayData element of the same name

Author(s)

Tim Triche, Jr.

See Also

MethyLumiSet,MethyLumiM

Examples

showClass("methylData")

methylumi accessors

Description

These functions serve as getters and setters for information in methylumi classes.

Usage

betas(object)
pvals(object)
methylated(object)
unmethylated(object)
getHistory(object)
QCdata(object)

Arguments

object

an object of class MethyLumi or a subclass

Details

See the methods definitions in MethyLumiSet and MethyLumiQC for details.

Author(s)

Sean Davis <[email protected]>

See Also

normalizeMethyLumiSet, MethyLumiSet, MethyLumiQC, eSet


The base class for storing Illumina Methylation data

Description

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.

Objects from the Class

The MethyLumi class is a virtual class and is not meant to be instantiated. Instead, one should instantiate a MethyLumiSet or a MethyLumiQC object.

Slots

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"

Extends

Class "eSet", directly. Class "VersionedBiobase", by class "eSet", distance 2. Class "Versioned", by class "eSet", distance 3.

Methods

pvals<-

signature(object = "MethyLumi", value = "matrix"): Set the assayData slot of the same name and stores the P-values from BeadStudio

pvals

signature(object = "MethyLumi"): Get the assayData slot of the same name

betas<-

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.

betas

signature(object = "MethyLumi"): Get the assayData slot of the same name

methylated<-

signature(object = "MethyLumi", value = "matrix"): Set the assayData slot that represents the Methylated single-channel signal

methylated

signature(object = "MethyLumi"): Get the assayData slot that represents the Methylated single-channel signal

unmethylated<-

signature(object = "MethyLumi", value = "matrix"): Set the assayData slot that represents the Unmethylated single-channel signal

unmethylated

signature(object = "MethyLumi"): Get the assayData slot that represents the Unmethylated single-channel signal

controlTypes

signature(object = "MethyLumi"

: Find the unique control type beeds in the QCdata slot.

qcplot

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.

summary

signature(object = "MethyLumi",...)

: summary method for MethyLumi objects.

Author(s)

Sean Davis <[email protected]>

See Also

methylumiR, MethyLumiSet, MethyLumiQC, eSet

Examples

## 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)

Strip excessive probe-level data from MethyLumiSets

Description

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.

Usage

stripBeadNs(object)

stripBeadSDs(object)

stripOOB(object)

stripMethyLumiSet(object)

Arguments

object

an object of class MethyLumi or a subclass.

Value

The object, with the corresponding assay data elements removed.

Author(s)

Tim Triche, Jr. <[email protected]>


methylumIDAT

Description

Read a directory of methylumi idat files and return a 'MethyLumiSet'.

Usage

methylumIDAT(
  barcodes = NULL,
  pdat = NULL,
  parallel = FALSE,
  n = FALSE,
  n.sd = FALSE,
  oob = TRUE,
  idatPath = getwd(),
  ...
)

Arguments

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.

Details

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.

Value

A 'MethyLumiSet' object.

Author(s)

Tim Triche, Jr.

See Also

The 'methylumi450k' vignette: 'vignette("methylumi450k", package="methylumi")'

Examples

## 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)

Generics defined in methylumi

Description

See the individual classes for details of methods.

Author(s)

Sean Davis, Pan Du, and Tim Triche, Jr.


Class "MethyLumiM": for Illumina Methylation microarray data using logRatios

Description

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 from the Class

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".

Slots

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

Extends

Class "ExpressionSet", directly. Class "eSet", by class "ExpressionSet", distance 2. Class "VersionedBiobase", by class "ExpressionSet", distance 3. Class "Versioned", by class "ExpressionSet", distance 4.

Methods

boxplot

signature(x = "MethyLumiM"): plot distribution of M-value

coerce

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.

getHistory

signature(object = "MethyLumiM"): access the operation history of MethyLumiM object.

initialize

signature(.Object = "MethyLumiM"): class initialization

methylated

signature(object = "MethyLumiM"): retrieve the data matrix measured by methylated probes

methylated<-

signature(object = "MethyLumiM"): set the data matrix measured by methylated probes

unmethylated

signature(object = "MethyLumiM"): retrieve the data matrix measured by unmethylated probes

unmethylated<-

signature(object = "MethyLumiM"): set the data matrix measured by unmethylated probes

methylated.N

signature(object = "MethyLumiM"): retrieve the data matrix keeping the number of beads of methylated probes

methylated.N<-

signature(object = "MethyLumiM"): set the data matrix keeping the number of beads of methylated probes

unmethylated.N

signature(object = "MethyLumiM"): retrieve the data matrix keeping the number of beads of unmethylated probes

unmethylated.N<-

signature(object = "MethyLumiM"): set the data matrix keeping the number of beads of unmethylated probes

detection

signature(object = "MethyLumiM"): retrieve detection data matrix in AssayData-class

detection<-

signature(object = "MethyLumiM"): set detection data matrix in AssayData-class

controlData

signature(object = "MethyLumiM"): retrieve the controlData in MethyLumiQC-class

controlData<-

signature(object = "MethyLumiM"): set controlData in MethyLumiQC-class

dataType

signature(object = "MethyLumiM"): retrieve the dataType, by default it is "M", it can also be "Beta" or "Intensity"

dataType<-

signature(object = "MethyLumiM"): set dataType in MethyLumiM-class, the value can be "M", "Beta" or "Intensity"

Author(s)

Pan DU

References

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'

See Also

MethyLumi-class and MethyLumiSet-class

Examples

showClass("MethyLumiM")

Class "MethyLumiQC" for holding Illumina methylation QC data

Description

This 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 from the Class

Objects can be created by calls of the form new("MethyLumiQC", assayData, phenoData, featureData, experimentData, annotation, betas).

Slots

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"

Extends

Class "MethyLumi", directly. Class "eSet", by class "MethyLumi", distance 2. Class "VersionedBiobase", by class "MethyLumi", distance 3. Class "Versioned", by class "MethyLumi", distance 4.

Methods

initialize

signature(.Object = "MethyLumiQC")

Cy3.N

signature(object = "MethyLumiQC"): ...

Cy3<-

signature(object = "MethyLumiQC", value = "matrix"): ...

Cy5.N

signature(object = "MethyLumiQC"): ...

Cy5<-

signature(object = "MethyLumiQC", value = "matrix"): ...

QCdata<-

signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...

combine

signature(x = "MethyLumiQC", y = "MethyLumiQC"): ...

controlData<-

signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...

controlTypes

signature(object = "MethyLumiQC"): determine the character vector of control types from the QCdata information

hist

signature(x = "MethyLumiQC"): ...

intensitiesByChannel

signature(object = "MethyLumiQC"): ...

methylated

signature(object = "MethyLumiQC"): ...

negctls.stderr

signature(object = "MethyLumiQC", channel = "character"): ...

negctls.stderr

signature(object = "MethyLumiQC", channel = "missing"): ...

negctls

signature(object = "MethyLumiQC", channel = "character"): ...

negctls

signature(object = "MethyLumiQC", channel = "missing"): ...

negnorm

signature(object = "MethyLumiQC", channel = "character"): ...

negnorm

signature(object = "MethyLumiQC", channel = "missing"): ...

normctls

signature(object = "MethyLumiQC"): ...

qcplot

signature(object = "MethyLumiQC", what, ...): QC plots of various controltypes

unmethylated

signature(object = "MethyLumiQC"): ...

Author(s)

Sean Davis <[email protected]>

See Also

methylumiR, MethyLumiSet, MethyLumi, eSet

Examples

showClass("MethyLumiQC")

Load data from an Illumina methylation platform

Description

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.

Usage

methylumiR(filename, qcfile = NULL, sampleDescriptions = NULL, sep = NULL, ...)

Arguments

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()].

Details

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.

Value

A [MethyLumiSet-class] object.

Author(s)

Sean Davis <[email protected]>

See Also

[MethyLumiSet-class], [MethyLumiQC-class]

Examples

## 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

Class "MethyLumiSet" for containing Illumina methylation data

Description

This 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 from the Class

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.

Slots

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

Extends

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.

Methods

[

signature(x = "MethyLumiSet"): subsetting, genes as rows, samples as columns

betas<-

signature(object = "MethyLumiSet", value = "matrix"): Set the assayData slot of the same name

betas

signature(object = "MethyLumiSet"): Get the assayData slot of the same name

boxplot

signature(x = "MethyLumiSet"): boxplot of all sample betas

combine

signature(x = "MethyLumiSet", y = "MethyLumiSet")

corplot

signature(x = "MethyLumiSet")

exprs

signature(object = "MethyLumiSet"): returns m-values

getHistory

signature(object = "MethyLumiSet"): returns a data.frame containing the history for this object

hist

signature(x = "MethyLumiSet"): histogram of the betas for the data

initialize

signature(.Object = "MethyLumiSet")

pairs

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.

plotSampleIntensities

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.

QCdata<-

signature(object = "MethyLumiSet", value = "MethyLumiQC"): assign QC data to the QC slot

QCdata

signature(object = "MethyLumiSet"): retrieve the QC data.

show

signature(object = "MethyLumiSet")

methylated<-

signature(object = "MethyLumiSet", value = "matrix"): Set the assayData slot associated with methylated intensity

methylated

signature(object = "MethyLumiSet"): Get the assayData slot associated with methylated intensity

unmethylated<-

signature(object = "MethyLumiSet", value = "matrix"): Set the assayData slot associated with unmethylated intensity

unmethylated

signature(object = "MethyLumiSet"): Get the assayData slot associated with unmethylated intensity

qcplot

signature(object = "MethyLumiSet", what, ...): QC plots of various controltypes

controlTypes

signature(object = "MethyLumiSet"): determine the character vector of control types from the QCdata information

Cy3.N

signature(object = "MethyLumiSet"): ...

Cy5.N

signature(object = "MethyLumiSet"): ...

combine27k450k

signature(x = "MethyLumiSet", y = "MethyLumiSet"): ...

controlData

signature(object = "MethyLumiSet"): ...

controlData<-

signature(object = "MethyLumiSet", value = "MethyLumiQC"): ...

featureFilter

signature(eset = "MethyLumiSet"): ...

intensities.IB

signature(x = "MethyLumiSet", channel = "character"): ...

intensities.IB

signature(x = "MethyLumiSet", channel = "missing"): ...

intensities.M

signature(x = "MethyLumiSet", channel = "character"): ...

intensities.M

signature(x = "MethyLumiSet", channel = "missing"): ...

intensities.OOB.allelic

signature(x = "MethyLumiSet", channel = "character", allele = "character"): ...

intensities.OOB.allelic

signature(x = "MethyLumiSet", channel = "missing", allele = "missing"): ...

intensities.OOB

signature(x = "MethyLumiSet", channel = "character"): ...

intensities.OOB

signature(x = "MethyLumiSet", channel = "missing"): ...

intensities.U

signature(x = "MethyLumiSet", channel = "character"): ...

intensities.U

signature(x = "MethyLumiSet", channel = "missing"): ...

intensitiesByChannel

signature(object = "MethyLumiSet"): ...

negctls.stderr

signature(object = "MethyLumiSet", channel = "character"): ...

negctls.stderr

signature(object = "MethyLumiSet", channel = "missing"): ...

negctls

signature(object = "MethyLumiSet", channel = "character"): ...

negctls

signature(object = "MethyLumiSet", channel = "missing"): ...

negnorm

signature(object = "MethyLumiSet", channel = "character"): ...

negnorm

signature(object = "MethyLumiSet", channel = "missing"): ...

normctls

signature(object = "MethyLumiSet"): ...

plotSampleIntensities

signature(x = "MethyLumiSet"): ...

probeNAs

signature(object = "MethyLumiSet"): ...

sampleNAs

signature(object = "MethyLumiSet"): ...

total.intensity

signature(object = "MethyLumiSet"): ...

varFilter

signature(eset = "MethyLumiSet"): ...

Author(s)

Sean Davis & Tim Triche, Jr.

See Also

methylumiR, normalizeMethyLumiSet, methylumIDAT, MethyLumiQC, eSet

Examples

showClass("MethyLumiSet")

Example SAM format Illumina methylation dataset

Description

This is an example [MethyLumiSet-class] object.

Usage

data(mldat)

Examples

data(mldat)

Normalize a MethyLumiSet, accounting for dye bias

Description

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.

Usage

normalizeMethyLumiSet(x, beta.cuts = c(0.2, 0.8), mapfun = c("atan", "ratio"))

Arguments

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.

Details

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.

Value

A new 'MethyLumiSet' that contains the corrected betas and the adjusted intensities.

Author(s)

Sean Davis <[email protected]>

Examples

## 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)

Plot the sample intensities

Description

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.

Usage

plotSampleIntensities(x,beta.cuts,s)

Arguments

x

An object of class MethyLumi or a subclass.

beta.cuts

Cutoffs for low and high beta values.

s

Sample number to plot.

Examples

data(mldat)
plotSampleIntensities(mldat, s = 1)

Methods for dealing with control data for Illumina methylation data

Description

The 'qcplot' function simply generates a plot of the control probe information for a given 'controlType'.

Usage

qcplot(object,controltype,...)
controlTypes(object,...)

Arguments

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.

Details

The descriptions of the various control types can be obtained from the Illumina methylation user's guides.

Author(s)

Sean Davis <[email protected]>

See Also

[MethyLumiSet-class], [MethyLumiQC-class]

Examples

data(mldat)
controlTypes(mldat)
qcplot(mldat, controlTypes(mldat)[3])

Total convenience function for processing IDATs like tcga

Description

Total convenience function for processing IDATs like tcga

Usage

tcgaPipeline(IDATs)

Arguments

IDATs

character() of idat files


Variation-based filtering of features (CpG sites) in a MethyLumiSet or MethyLumiM object

Description

The function 'varFilter' removes features exhibiting little variation across samples. Such non-specific filtering can be advantageous for downstream data analysis.

Usage

varFilter(eset, var.func=IQR, var.cutoff=0.5, filterByQuantile=TRUE, ...)

Arguments

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.

Details

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 tt-statistic, for example, is based on an empirical Bayes approach which models the conjugate prior of gene-level variance with an inverse of χ2\chi^2 distribution scaled by observed global variance. As the variance-based filtering removes the set of genes with low variance, the scaled inverse χ2\chi^2 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 pp-value will be overly optimistic (Bourgon 2010).

Value

A list consisting of:

eset

The filtered 'MethyLumiSet' or 'MethyLumiM' object.

filter.log

Shows how many low-variance features were removed.

Author(s)

Chao-Jen Wong [email protected]

References

R. Bourgon, R. Gentleman, W. Huber, Independent filtering increases power for detecting differentially expressed genes, PNAS, vol. 107, no. 21, pp. 9546-9551, 2010.

See Also

[genefilter::nsFilter()]

Examples

data(mldat)
  ## keep top 75 percent
  filt <- varFilter(mldat, var.cutoff=0.25)
  filt$filter.log
  dim(filt$eset)