add ability to extract a dataframe of multiple row_attr or col_attr elements
[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{get.attribute.df(attribute.layer, attribute.names, row.names, col.names)}}{
50     Extract a data.frame of \code{attribute.names} from an \code{attribute.layer} ("row" - row_attrs or "col" - col_attrs).
51     Returns a data.frame into memory with \code{attribute.names} as the columns.
52     Removes rows that are entirely composed of NA values.
53   }
54   \item{\code{batch.scan(chunk.size, MARGIN, index.use, dataset.use, force.reset)}, \code{batch.next(return.data)}}{
55     Scan a dataset in the loom file from \code{index.use[1]} to \code{index.use[2]}, iterating by \code{chunk.size}.
56     \code{dataset.use} can be the name, not \code{group/name}, unless the name is present in multiple groups.
57     Pass \code{MARGIN = 1} to iterate on genes or \code{MARGIN = 2} to iterate on cells for 'matrix' or any dataset in 'layers'.
58     To force reevaluation of the iterator object, pass \code{force.reset = TRUE}.
59     \code{MARGIN} does not need to be set for datasets in 'row_attrs' or 'col_attrs'.
60     \code{chunk.size} defaults to \code{self$chunksize}, \code{MARGIN} defaults to 2,
61     \code{index.use} defaults to \code{1:self$shape[MARGIN]}, \code{dataset.use} defaults to 'matrix'
62   }
63   \item{\code{apply(name, FUN, MARGIN, chunk.size, dataset.use, overwrite, display.progress, ...)}}{
64     Apply a function over a dataset within the loom file, stores the results in the loom file.
65     \code{name} must be the full name of the dataset ('group/name').
66     \code{apply} will always use the entire dataset specified in \code{dataset.use}
67   }
68   \item{\code{map(FUN, MARGIN, chunk.size, index.use, dataset.use, display.progress, expected, ...)}}{
69     Map a function onto a dataset within the loom file, returns the result into R.
70     The result will default to the shape of the dataset used; to change pass either 'vector' or 'matrix' to \code{expected}.
71   }
72 }
73 }
74
75 \seealso{
76 \code{\link{hdf5r::H5File}}
77 }
78 \keyword{datasets}