read.FCS {flowCore} | R Documentation |
Check validity and Read Data File Standard for Flow Cytometry
isFCSfile(files) read.FCS(filename, transformation="linearize", which.lines=NULL, alter.names=FALSE, column.pattern=NULL, invert.pattern = FALSE, decades=0, ncdf = FALSE, min.limit=NULL, truncate_max_range = TRUE, dataset=NULL, emptyValue=TRUE, channel_alias = NULL, ...)
files |
A vector of filenames |
filename |
Character of length 1: filename |
transformation |
An character string that defines the type of
transformation. Valid values are |
which.lines |
Numeric vector to specify the indices of the lines
to be read. If NULL all the records are read, if of length 1, a
random sample of the size indicated by |
alter.names |
boolean indicating whether or not we should rename
the columns to valid R names using |
column.pattern |
An optional regular expression defining parameters we should keep when loading the file. The default is NULL. |
invert.pattern |
logical. By default, |
decades |
When scaling is activated, the number of decades to use for the output. |
ncdf |
Deprecated. Please use 'ncdfFlow' package for cdf based storage. |
min.limit |
The minimum value in the data range that is
allowed. Some instruments produce extreme artifactual values. The
positive data range for each parameter is completely defined by the
measurement range of the instrument and all larger values are set to
this threshold. The lower data boundary is not that well defined,
since compensation might shift some values below the original
measurement range of the instrument. The default value of |
truncate_max_range |
logical type. Default is TRUE. can be optionally turned off to avoid truncating the extreme positive value to the instrument measurement range .i.e.'$PnR'. |
dataset |
The FCS file specification allows for multiple data
segments in a single file. Since the output of |
emptyValue |
boolean indicating whether or not we allow empty value for keyword values in TEXT segment. It affects how the double delimiters are treated. IF TRUE, The double delimiters are parsed as a pair of start and end single delimiter for an empty value. Otherwise, double delimiters are parsed one part of string as the keyword value. default is TRUE. |
channel_alias |
a data.frame used to provide the alias of the channels to standardize and solve the discrepancy across FCS files.It is expected to contain 'alias' and 'channels' column. Each row/entry specifies the common alias name for a collection of channels (comma separated). See examples for details. |
... |
ignore.text.offset: whether to ignore the keyword values in TEXT segment when they don't agree with the HEADER. Default is FALSE, which throws the error when such discrepancy is found. User can turn it on to ignore TEXT segment when he is sure of the accuracy of HEADER so that the file still can be read. |
The function isFCSfile
determines whether its arguments are
valid FCS files.
The function read.FCS
works with the output of the FACS machine
software from a number of vendors (FCS 2.0, FCS 3.0 and List Mode Data
LMD). However, the FCS 3.0 standard includes some options that are not
yet implemented in this function. If you need extensions, please let
me know. The output of the function is an object of class
flowFrame
.
For specifications of FCS 3.0 see http://www.isac-net.org and
the file ../doc/fcs3.html in the doc
directory of the
package.
The which.lines
arguments allow you to read a subset of the record as you might not want to read the thousands of
events recorded in the FCS file. It is mainly used when there is not enough memory to read one single FCS (which probably will not happen).
It will probably take more time than reading the entire FCS (due to the multiple disk IO).
isFCSfile
returns a logical vector.
read.FCS
returns an object of class
flowFrame
that contains the
data in the exprs
slot, the parameters monitored in the
parameters
slot and the keywords and value saved in the header
of the FCS file.
F. Hahne, N.Le Meur
## a sample file fcsFile <- system.file("extdata", "0877408774.B08", package="flowCore") ## read file and linearize values samp <- read.FCS(fcsFile, transformation="linearize") exprs(samp[1:3,]) description(samp)[3:6] class(samp) ## Only read in lines 2 to 5 subset <- read.FCS(fcsFile, which.lines=2:5, transformation="linearize") exprs(subset) ## Read in a random sample of 100 lines subset <- read.FCS(fcsFile, which.lines=100, transformation="linearize") nrow(subset) #manually supply the alias vs channel options mapping as a data.frame map <- data.frame(alias = c("A", "B") , channels = c("FL2", "FL4") ) fr <- read.FCS(fcsFile, channel_alias = map) fr