Update documentation some more
[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 genes (columns) by cells (rows)}
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, chunk.size, overwrite)}}{
40     Add a data layer to this loom file, must be the same dimensions as \code{/matrix}
41     \describe{
42       \item{\code{layer}}{A named list of matrices to be added as layers}
43       \item{\code{chunk.size}}{Number of rows from each layer to stream at once, defaults to 1000}
44       \item{\code{overwrite}}{If a layer already exists, overwrite with new data, defaults to FALSE}
45     }
46   }
47   \item{\code{add.attribute(attribute, MARGIN, overwrite)}}{
48     Add extra information to this loom file.
49     \describe{
50       \item{\code{attribute}}{A named list where the first dimmension of each element as long as one dimension of \code{/matrix}}
51       \item{\code{MARGIN}}{Either 1 for genes or 2 for cells}
52       \item{\code{overwrite}}{Can overwrite existing attributes?}
53     }
54   }
55   \item{\code{add.row.attribute(attribute), add.col.attribute(attribute)}}{
56     Add row or column attributes
57   }
58   \item{\code{batch.scan(chunk.size, MARGIN, index.use, dataset.use, force.reset)}, \code{batch.next(return.data)}}{
59     Scan a dataset in the loom file from \code{index.use[1]} to \code{index.use[2]}, iterating by \code{chunk.size}.
60     \code{dataset.use} can be the name, not \code{group/name}, unless the name is present in multiple groups.
61     Pass \code{MARGIN = 1} to iterate on genes or \code{MARGIN = 2} to iterate on cells for 'matrix' or any dataset in 'layers'.
62     To force reevaluation of the iterator object, pass \code{force.reset = TRUE}.
63     \code{MARGIN} does not need to be set for datasets in 'row_attrs' or 'col_attrs'.
64     \code{chunk.size} defaults to \code{self$chunksize}, \code{MARGIN} defaults to 2,
65     \code{index.use} defaults to \code{1:self$shape[MARGIN]}, \code{dataset.use} defaults to 'matrix'
66   }
67   \item{\code{apply(name, FUN, MARGIN, chunk.size, dataset.use, overwrite, display.progress, ...)}}{
68     Apply a function over a dataset within the loom file, stores the results in the loom file.
69     \code{name} must be the full name of the dataset ('group/name').
70     \code{apply} will always use the entire dataset specified in \code{dataset.use}
71     \describe{
72       \item{\code{name}}{Name of dataset to store results to}
73       \item{\code{FUN}}{Function to apply}
74       \item{\code{MARGIN}}{Iterate over genes (1) or cells (2)}
75       \item{\code{chunk.size}}{Size to chunk \code{MARGIN} by}
76       \item{\code{dataset.use}}{Name of dataset to use}
77       \item{\code{overwrite}}{Overite \code{name} if already exists}
78       \item{\code{display.progress}}{Display progress}
79       \item{\code{...}}{Extra parameters to pass to \code{FUN}}
80     }
81   }
82   \item{\code{map(FUN, MARGIN, chunk.size, index.use, dataset.use, display.progress, expected, ...)}}{
83     Map a function onto a dataset within the loom file, returns the result into R.
84     The result will default to the shape of the dataset used; to change pass either 'vector' or 'matrix' to \code{expected}.
85   }
86   \item{\code{add.cells(matrix.data, attributes.data = NULL, layers.data = NULL, display.progress = TRUE)}}{
87     Add m2 cells to a loom file.
88     \describe{
89       \item{\code{matrix.data}}{a list of m2 cells where each entry is a vector of length n (num genes, \code{self$shape[1]})}
90       \item{\code{attributes.data}}{a list where each entry is named for one of the datasets in \code{self[['col_attrs']]}; each entry is a vector of length m2.}
91       \item{\code{layers.data}}{a list where each entry is named for one of the datasets in \code{self[['layers']]}; each entry is an n-by-m2 matrix where n is the number of genes in this loom file and m2 is the number of cells being added.}
92       \item{\code{display.progress}}{display progress}
93     }
94   }
95 }
96 }
97
98 \seealso{
99 \code{\link{hdf5r::H5File}}
100 }
101 \keyword{datasets}