Creating PBM Objects

Two core classes, PBMExperiment and PBMDesign, are have been constructed for organizing and analyzing PBM data in R. The following set of functions can be used to construct both PBMExperiment and PBMDesign objects from GPR files or data already loaded in R. For more details, see class definitions below.

gpr2PBMExperiment()

Load raw PBM scan data as PBMExperiment

PBMExperiment()

Create a new PBMExperiment object

PBMDesign()

Create a new PBMDesign object

Sample Pre-Processing

Before any downstream inference can be performed, individual samples should be pre-processed. A single wrapper function, upbmPreprocess is provided for performing all standard pre-processing steps, as well as individual functions for handling the steps of background subtraction, Cy3 normalization, and within and across replicate normalization. (See Pre-Processing vignette for more details.)

upbmPreprocess()

PBM Preprocess

backgroundSubtract()

Background subtract intensities

cy3FitEmpirical()

Compute Cy3 scaling factors using emprical reference

cy3FitModel()

Compute Cy3 scaling factors using regression

cy3GenerateRef()

Generate Cy3 empirical reference

cy3Normalize()

Perform Cy3 normalization

spatiallyAdjust()

Perform spatial adjustment

normalizeWithinReplicates()

Normalize within replicates

normalizeAcrossReplicates()

Normalize across replicates

Probe/K-mer Summarization

Pre-processed and normalized samples can be aggregated across replicates to obtain probe-level and K-mer-level affinity estimates. Additionally, a simple summarization function is provided for computing K-mer summary statistics for individual samples in the absence of replicate data. (See Summarization vignette for more details.)

probeFit()

Fit probe models

kmerFit()

Fit k-mer probe set models

summarizeKmers()

Compute K-mer summary metrics from probe intensities

K-mer-Level Testing

Finally, K-mer-level affinity estimates can be used to perform various inference procedures both for individual conditions and for testing across conditions. Three functions to perform different itesting procedures are listed below. (See K-mer-Level Inference vignette for more details.)

kmerTestAffinity()

Test for k-mer preferential affinities

kmerTestContrast()

Test for k-mer differential affinities

kmerTestSpecificity()

Test for k-mer differential specificities

PBM Class Definitions

The package defines two new classes, PBMExperiment and PBMDesign which buildon existing Bioconductor infrastructure. (See Class Details vignette for more details.)

PBMExperiment-class

PBMExperiment class

PBMDesign-class

PBMDesign class

PBM Class Methods and Setters

The two PBM classes include special slots specifying probe filtering and trimming criteria. Functions are provided for accessing and applying these filtering and trimming procedures on both PBMExperiment and PBMDesign objects. These and additional slots can be accessed and modified using getter and setting functions.

pbmFilterProbes()

Filter PBMExperiment and PBMDesign objects

pbmTrimProbes()

Trim probe sequences

probeFilter() probeTrim() probeCols() `probeFilter<-`() `probeTrim<-`() `design<-`(<PBMDesign>,<data.frame>) design(<PBMDesign>)

PBM slot accessors and setters

`PBMDesign<-`()

Set design in PBMExperiment object

Helper Functions

The package also includes several helper functions for working with PBM data. This includes, most importantly, functions for extracting assay data stored in PBMExperiment objects as tidy tables (see Tidy Data vignette for more details).

tidy(<PBMExperiment>)

Tidy PBMExperiment object

tidy(<SummarizedExperiment>)

Tidy SummarizedExperiment object

mapKmers()

Map K-mer Motifs to PBM Probe Sequences

uniqueKmers()

Generate Unique K-mer Sequences