cytoSet-class {rflowcyt} | R Documentation |
This class is a container for a set of
cytoFrame
objects
Objects can be created using the function
readCytoSet
or via
new('cytoSet,
frames = ...., # environment with cytoFrames
phenoData = .... # object of class phenoData
colnames = .... # object of class character
)
frames
:environment
containing one or more cytoFrame
objects.phenoData
:phenoData
. Each row
corresponds to one of the cytoFrames in the frames
slot.
It is mandatory that the pData has column named name
colnames
:character
object with the
(common) column names of all the data matrices in the cytoFrames.x
is cytoSet
, then x[i]
returns a cytoSet
object, and x[[i]]
a cytoFrame
object. The semantics is similar to the behavior of the subsetting
operators for lists.colnames
slot.phenoData
slot.
The bulk of the data in a cytoSet
object is stored in an
environment
, and is therefore not
automatically copied when the cytoSet
object is copied. If
x
is an object of class cytoSet
, then the code
y <- xwill create a an object
y
that contains
copies of the phenoData
and
administrative data in x
, but refers to the same
environment with the actual fluorescence data. See below for how to
create proper copies.
The reason for this is performance. The pass-by-value semantics of
function calls in R
can result in numerous copies of the same
data object being made in the course of a series of nested function
calls. If the data object is large, this can result in a considerable
cost of memory and performance. cytoSet
objects are intended to
contain experimental data in the order of hundreds of Megabytes,
which can effectively be treated as read-only: typical tasks
are the extraction of subsets and the calculation of summary statistics.
This is afforded by the design of the cytoSet
class: an object of that class contains a phenoData
slot,
some administrative information, and a reference to an
environment with the fluorescence data; when it is copied, only the
reference is copied, but not the potentially large set of fluorescence
data themselves.
However, note that subsetting operations, such as
y <- x[i]do create proper copies, including a copy of the appropriate part of the fluorescence data, as it should be expected. Thus, to make a proper copy of a
cytoSet
x
, use
y <- x[seq(along=x)]
Wolfgang Huber http://www.ebi.ac.uk/huber
if (require(prada)) { cset<-readCytoSet(path=system.file("extdata", package="prada"), pattern="[A-Z][0-9][0-9]$") cset pData(cset) cset[[1]] cset[["fas-Bcl2-plate323-04-04.A02"]] cset["fas-Bcl2-plate323-04-04.A02"] cset[1:3] cset[[1]] <- exprs(cset[[1]])[1:100, ] plot(cset[[2]]) } if (require(rfcdmin) && require(prada)) { ##obtaining the location of the fcs files in the data pathFiles<-system.file("bccrc", package="rfcdmin") drugFiles<-dir(pathFiles) ## reading in the FCS files drugData<-readCytoSet(path=system.file("bccrc", package="rfcdmin"),pattern="[A-Z][0-9][0-9]$") }