b4128e06f71989b79c2a375f34710676e4e092a0
[loomr.git] / man / loom-class.Rd
1 % Generated by roxygen2: do not edit by hand
2 % Please edit documentation in R/loom.R
3 \docType{class}
4 \name{loom-class}
5 \alias{loom-class}
6 \alias{loom}
7 \title{A class for loom files}
8 \format{An \code{\link{R6::R6Class}} object}
9 \usage{
10 loom
11 }
12 \value{
13 Object of \code{\link{R6::R6Class}} to generate \code{loom} objects
14 }
15 \description{
16 A class for loom files
17 }
18 \section{Fields}{
19
20 \describe{
21 \item{\code{version}}{Version of loomR object was created under}
22
23 \item{\code{shape}}{Shape of \code{/matrix} in columns (cells) by rows (genes)}
24
25 \item{\code{chunksize}}{Chunks set for this dataset in columns (cells) by rows (genes)}
26
27 \item{\code{matrix}}{The main data matrix, stored as columns (cells) by rows (genes)}
28
29 \item{\code{layers}}{Additional data matricies, the same shape as \code{/matrix}}
30
31 \item{\code{col.attrs}}{Extra information about cells}
32
33 \item{\code{row.attrs}}{Extra information about genes}
34 }}
35
36 \section{Methods}{
37
38 \describe{
39   \item{\code{add.layer(layer, overwrite)}}{Add a data layer to this loom file, must be the same dimensions as \code{/matrix}}
40   \item{\code{add.attribute(attribute, MARGIN, overwrite)}}{
41     Add extra information to this loom file where
42     \code{attribute} is a named list where each element is a vector that is as long as one dimension of \code{/matrix},
43     \code{MARGIN} is either 1 for genes or 2 for cells, and
44     \code{overwrite} tells us whether we can overwrite existing attributes or not
45   }
46   \item{\code{add.row.attribute(attribute)}}{A wrapper for \code{add.attribute(attribute, MARGIN = 1)}}
47   \item{\code{add.col.attribute(attribute)}}{A wrapper for \code{add.attribute(attribute, MARGIN = 2)}}
48   \item{\code{add.meta.data(meta.data)}}{A wrapper for \code{add.attribute(attribute, MARGIN = 2)}}
49   \item{\code{batch.scan(chunk.size, MARGIN, index.use, dataset.use, force.reset)}, \code{batch.next(return.data)}}{
50     Scan a dataset in the loom file from \code{index.use[1]} to \code{index.use[2]}, iterating by \code{chunk.size}.
51     \code{dataset.use} can be the name, not \code{group/name}, unless the name is present in multiple groups.
52     Pass \code{MARGIN = 1} to iterate on genes or \code{MARGIN = 2} to iterate on cells for 'matrix' or any dataset in 'layers'.
53     To force reevaluation of the iterator object, pass \code{force.reset = TRUE}.
54     \code{MARGIN} does not need to be set for datasets in 'row_attrs' or 'col_attrs'.
55     \code{chunk.size} defaults to \code{self$chunksize}, \code{MARGIN} defaults to 2,
56     \code{index.use} defaults to \code{1:self$shape[MARGIN]}, \code{dataset.use} defaults to 'matrix'
57   }
58   \item{\code{apply(name, FUN, MARGIN, chunk.size, dataset.use, overwrite, display.progress, ...)}}{
59     Apply a function over a dataset within the loom file, stores the results in the loom file.
60     \code{name} must be the full name of the dataset ('group/name').
61     \code{apply} will always use the entire dataset specified in \code{dataset.use}
62   }
63   \item{\code{map(FUN, MARGIN, chunk.size, index.use, dataset.use, display.progress, expected, ...)}}{
64     Map a function onto a dataset within the loom file, returns the result into R.
65     The result will default to the shape of the dataset used; to change pass either 'vector' or 'matrix' to \code{expected}.
66   }
67 }
68 }
69
70 \seealso{
71 \code{\link{hdf5r::H5File}}
72 }
73 \keyword{datasets}