bef44ccc61a0673a7b86712ea95f871e6bff583d
[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.graph(a, b, w, name, MARGIN, overwrite)}, \code{add.graph.matrix(mat, name, MARGIN, overwrite)}}{
40     Add a graph to the loom object; can add either in coorindate format (\code{add.graph}) or matrix format (\code{add.graph.matrix}).
41     Stores graph in coordinate format as \code{[row, col]_graphs/name/a} (row indices),
42     \code{[row, col]_graphs/name/b} (column indices), and \code{[row, col]_graphs/name/w} (values)
43     \describe{
44       \item{\code{a}}{Integer vector of row indices for graph, must be the same lengths as \code{b} and \code{w}}
45       \item{\code{b}}{Integer vector of column indices for graph, must be the same lengths as \code{a} and \code{w}}
46       \item{\code{w}}{Numeric vector of values for graph, must be the same lengths as \code{a} and \code{b}}
47       \item{\code{mat}}{Graph provided as a matrix (sparse or dense) or data.frame}
48       \item{\code{name}}{Name to store graph, will end up being \code{col_graphs/name} or \code{row_graphs/name}, depending on \code{MARGIN}}
49       \item{\code{MARGIN}}{Store the graph in \code{row_graphs} (1) or \code{col_graphs} (2), defaults to 2}
50       \item{\code{overwrite}}{Can overwrite existing graph?}
51     }
52   }
53   \item{\code{add.layer(layer, chunk.size, overwrite)}}{
54     Add a data layer to this loom file, must be the same dimensions as \code{/matrix}
55     \describe{
56       \item{\code{layer}}{A named list of matrices to be added as layers}
57       \item{\code{chunk.size}}{Number of rows from each layer to stream at once, defaults to 1000}
58       \item{\code{overwrite}}{If a layer already exists, overwrite with new data, defaults to FALSE}
59     }
60   }
61   \item{\code{add.attribute(attribute, MARGIN, overwrite)}}{
62     Add extra information to this loom file.
63     \describe{
64       \item{\code{attribute}}{A named list where the first dimmension of each element as long as one dimension of \code{/matrix}}
65       \item{\code{MARGIN}}{Either 1 for genes or 2 for cells}
66       \item{\code{overwrite}}{Can overwrite existing attributes?}
67     }
68   }
69   \item{\code{add.row.attribute(attribute), add.col.attribute(attribute)}}{
70     Add row or column attributes
71   }
72   \item{\code{get.graph(name, MARGIN)}}{
73     Get a graph as a sparse matrix
74     \describe{
75       \item{\code{name}}{Name of the graph, can be either the basename or full name of the grpah}
76       \item{\code{MARGIN}}{
77         Load the graph from \code{row_graphs} (1) or \code{col_graphs} (2), defaults to 2.
78         Ignored if full path to graph is passed to \code{name}
79       }
80     }
81   }
82   \item{\code{batch.scan(chunk.size, MARGIN, index.use, dataset.use, force.reset)}, \code{batch.next(return.data)}}{
83     Scan a dataset in the loom file from \code{index.use[1]} to \code{index.use[2]}, iterating by \code{chunk.size}.
84     \describe{
85       \item{\code{chunk.size}}{Size to chunk \code{MARGIN} by, defaults to \code{self$chunksize}}
86       \item{\code{MARGIN}}{Iterate over genes (1) or cells (2), defaults to 2}
87       \item{\code{index.use}}{Which specific values of \code{dataset.use} to use, defaults to \code{1:self$shape[MARGIN]} (all values)}
88       \item{\code{dataset.use}}{Name of dataset to use, can be the name, not \code{group/name}, unless the name is present in multiple groups}
89       \item{\code{force.reset}}{Force a reset of the internal iterator}
90     }
91   }
92   \item{\code{apply(name, FUN, MARGIN, chunk.size, dataset.use, overwrite, display.progress, ...)}}{
93     Apply a function over a dataset within the loom file, stores the results in the loom file. Will not make multidimensional attributes.
94     \describe{
95       \item{\code{name}}{Full name ('group/name')of dataset to store results to}
96       \item{\code{FUN}}{Function to apply}
97       \item{\code{MARGIN}}{Iterate over genes (1) or cells (2), defaults to 2}
98       \item{\code{index.use}}{Which specific values of \code{dataset.use} to use, defaults to \code{1:self$shape[MARGIN]} (all values)}
99       \item{\code{chunk.size}}{Size to chunk \code{MARGIN} by, defaults to \code{self$chunksize}}
100       \item{\code{dataset.use}}{Name of dataset to use}
101       \item{\code{overwrite}}{Overite \code{name} if already exists}
102       \item{\code{display.progress}}{Display progress}
103       \item{\code{...}}{Extra parameters to pass to \code{FUN}}
104     }
105   }
106   \item{\code{map(FUN, MARGIN, chunk.size, index.use, dataset.use, display.progress, expected, ...)}}{
107     Map a function onto a dataset within the loom file, returns the result into R.
108     The result will default to the shape of the dataset used; to change pass either 'vector' or 'matrix' to \code{expected}.
109     \describe{
110       \item{\code{FUN}}{}
111       \item{\code{MARGIN}}{Iterate over genes (1) or cells (2), defaults to 2}
112       \item{\code{chunk.size}}{Size to chunk \code{MARGIN} by, defaults to \code{self$chunksize}}
113       \item{\code{index.use}}{Which specific values of \code{dataset.use} to use, defaults to \code{1:self$shape[MARGIN]} (all values)}
114       \item{\code{dataset.use}}{Name of dataset to use}
115       \item{\code{display.progress}}{Display progress}
116       \item{\code{expected}}{Class of expected result ('matrix' or 'vector'), defaults to class of \code{dataset.use}}
117     }
118   }
119   \item{\code{add.cells(matrix.data, attributes.data = NULL, layers.data = NULL, display.progress = TRUE)}}{
120     Add m2 cells to a loom file.
121     \describe{
122       \item{\code{matrix.data}}{a list of m2 cells where each entry is a vector of length n (num genes, \code{self$shape[1]})}
123       \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.}
124       \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.}
125       \item{\code{display.progress}}{display progress}
126     }
127   }
128 }
129 }
130
131 \seealso{
132 \code{\link{hdf5r::H5File}}
133 }
134 \keyword{datasets}