Title: | 'TileDB' Stack of Matrices, Annotated ('SOMA') |
---|---|
Description: | Interface for working with 'TileDB'-based Stack of Matrices, Annotated ('SOMA'): an open data model for representing annotated matrices, like those commonly used for single cell data analysis. It is documented at <https://github.com/single-cell-data>; a formal specification available is at <https://github.com/single-cell-data/SOMA/blob/main/abstract_specification.md>. |
Authors: | Aaron Wolen [cre, aut] , Dirk Eddelbuettel [aut] , Paul Hoffman [aut] , John Kerl [aut], TileDB, Inc. [cph, fnd] |
Maintainer: | Aaron Wolen <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.15.2 |
Built: | 2024-12-20 20:33:03 UTC |
Source: | https://github.com/single-cell-data/TileDB-SOMA |
An R6 mapping type for configuring various “parameters”.
Essentially, serves as a nested map where the inner map is a
ScalarMap
:
{<param>: {<key>: <value>}}
tiledbsoma::MappingBase
-> ConfigList
get()
ConfigList$get(param, key = NULL, default = quote(expr = ))
param
Outer key or “parameter” to fetch
key
Inner key to fetch; pass NULL
to return the
map for param
default
Default value to fetch if key
is not found;
defaults to NULL
The value of key
for param
in the map, or
default
if key
is not found
set()
ConfigList$set(param, key, value)
param
Outer key or “parameter” to set
key
Inner key to set
value
Value to add for key
, or NULL
to remove
the entry for key
; optionally provide only param
and value
as a ScalarMap
to update param
with the keys and
values from value
\[chainable\] Invisibly returns self
with value
added for key
in param
setv()
ConfigList$setv(...)
...
Ignored
Nothing; setv()
is disabled for ConfigList
objects
clone()
The objects of this class are cloneable with this method.
ConfigList$clone(deep = FALSE)
deep
Whether to make a deep clone.
Delete metadata for given key
delete_metadata(uri, key, is_array, ctxxp)
delete_metadata(uri, key, is_array, ctxxp)
uri |
The array URI |
key |
The array metadata key |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
Access example SOMA objects bundled with the tiledbsoma package.
Use list_datasets()
to list the available datasets and load_dataset()
to
load a dataset into memory using the appropriate SOMA class. The
extract_dataset()
method returns the path to the extracted dataset without
loading it into memory.
list_datasets() extract_dataset(name, dir = tempdir()) load_dataset(name, dir = tempdir(), tiledbsoma_ctx = NULL)
list_datasets() extract_dataset(name, dir = tempdir()) load_dataset(name, dir = tempdir(), tiledbsoma_ctx = NULL)
name |
The name of the dataset. |
dir |
The directory where the dataset will be extracted to (default:
|
tiledbsoma_ctx |
Optional TileDB ‘Context’ object, defaults to |
The SOMA objects are stored as tar.gz
files in the package's extdata
directory. Calling load_dataset()
extracts the tar.gz
file to the
specified dir
, inspects its metadata to determine the appropriate SOMA
class to instantiate, and returns the SOMA object.
list_datasets()
returns a character vector of the available datasets.
extract_dataset()
returns the path to the extracted dataset.
load_dataset()
returns a SOMA object.
soma_pbmc_small <- load_dataset("soma-exp-pbmc-small")
soma_pbmc_small <- load_dataset("soma-exp-pbmc-small")
This function currently supports metadata as either a string or an 'int64' (or 'int32'). It will error if a different datatype is encountered.
get_all_metadata(uri, is_array, ctxxp)
get_all_metadata(uri, is_array, ctxxp)
uri |
The array URI |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
Read metadata (as a string)
get_metadata(uri, key, is_array, ctxxp)
get_metadata(uri, key, is_array, ctxxp)
uri |
The array URI |
key |
The array metadata key |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
Get nnumber of metadata items
get_metadata_num(uri, is_array, ctxxp)
get_metadata_num(uri, is_array, ctxxp)
uri |
The array URI |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
Check for metadata given key
has_metadata(uri, key, is_array, ctxxp)
has_metadata(uri, key, is_array, ctxxp)
uri |
The array URI |
key |
The array metadata key |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
A re-indexer for unique integer indices
new()
Create a new re-indexer
IntIndexer$new(data)
data
Integer keys used to build the index (hash) table
get_indexer()
Get the underlying indices for the target data
IntIndexer$get_indexer(target, nomatch_na = FALSE)
target
Data to re-index
nomatch_na
Set non-matches to NA
instead of -1
A vector of 64-bit integers with target
re-indexed
clone()
The objects of this class are cloneable with this method.
IntIndexer$clone(deep = FALSE)
deep
Whether to make a deep clone.
matrixZeroBasedView
is a class that allows elemental
matrix access using zero-based indeces.
new()
Initialize (lifecycle: maturing)
matrixZeroBasedView$new(x)
x
matrix or Matrix::sparseMatrix or Matrix::Matrix
take()
Zero-based matrix element access
matrixZeroBasedView$take(i = NULL, j = NULL)
i
Row index (zero-based).
j
Column index (zero-based).
The specified matrix slice as another matrixZeroBasedView
dim()
dim
matrixZeroBasedView$dim()
The dimensions of the matrix.
nrow()
nrow
matrixZeroBasedView$nrow()
Matrix row count.
ncol()
ncol
matrixZeroBasedView$ncol()
Matrix column count.
get_one_based_matrix()
Get the one-based R matrix with its original class
matrixZeroBasedView$get_one_based_matrix()
One-based matrix
sum()
Perform arithmetic sum between this matrixZeroBasedView and another matrixZeroBasedView.
matrixZeroBasedView$sum(x)
x
the matrixZeroBasedView to sum.
The result of the sum as a matrixZeroBasedView.
print()
matrixZeroBasedView$print()
clone()
The objects of this class are cloneable with this method.
matrixZeroBasedView$clone(deep = FALSE)
deep
Whether to make a deep clone.
An R6 mapping type for configuring various “parameters” for multiple
“platforms”, essentially serves a multi-nested map where the inner
map is a ScalarMap
contained within a ConfigList
(middle map):
{platform: {param: {key: value}}}
tiledbsoma::MappingBase
-> PlatformConfig
platforms()
PlatformConfig$platforms()
The names of the “platforms” (outer keys)
params()
PlatformConfig$params(platform = NULL)
platform
The “platform” to pull parameter names
(middle keys)
for; pass TRUE
to return all possible parameter names
The parameter names (middle keys) for platform
get()
PlatformConfig$get( platform, param = NULL, key = NULL, default = quote(expr = ) )
platform
The name of the “platform” (outer key) to fetch
param
The name of the “paramters” of platform
to fetch; if NULL
, returns the
configuration for platform
key
The “key” (inner key) for param
in
platform
to fetch; if NULL
and param
is passed,
returns the map for param
in platform
default
Default value to fetch if key
is not found;
defaults to null
The value of key
for param
in platform
in the
map, or default
if key
is not found
get_params()
PlatformConfig$get_params(platform)
platform
The name of the “platform” (outer key) to fetch
The ConfigList
for platform
set()
PlatformConfig$set(platform, param, key, value)
platform
The name of the “platform” (outer key) to set
param
Name of the “parameter” (middle key) in
platform
to set
key
Inner key to set
value
Value to add for key
, or NULL
to remove the
entry for key
; optionally provide only platfomr
,
param
, and value
as a ScalarMap
to
update param
for platform
with the keys and values
from value
\[chainable\] Invisibly returns self
with value
added for key
in param
for platform
setv()
PlatformConfig$setv(...)
...
Ignored
Nothing; setv()
is disabled for
PlatformConfig
objects
clone()
The objects of this class are cloneable with this method.
PlatformConfig$clone(deep = FALSE)
deep
Whether to make a deep clone.
Set the logging level for the R package and underlying C++ library
set_log_level(level)
set_log_level(level)
level |
A character value with logging level understood by ‘spdlog’ such as “trace”, “debug”, “info”, or “warn”. |
Nothing is returned as the function is invoked for the side-effect.
Set metadata (as a string)
set_metadata(uri, key, valuesxp, type, is_array, ctxxp, tsvec = NULL)
set_metadata(uri, key, valuesxp, type, is_array, ctxxp, tsvec = NULL)
uri |
The array URI |
key |
The array metadata key |
valuesxp |
The metadata value |
type |
The datatype |
is_array |
A boolean to indicate array or group |
ctxxp |
An external pointer to the SOMAContext wrapper |
tsvec |
An optional two-element datetime vector |
Print version information for tiledb (R package), libtiledbsoma, and TileDB embedded, suitable for assisting with bug reports.
show_package_versions()
show_package_versions()
Create and cache a SOMA Context Object
soma_context(config)
soma_context(config)
config |
A named character vector with ‘key’ and ‘value’ pairs defining the configuration setting |
An external pointer object containing a shared pointer instance of SOMAContext
cfgvec <- as.vector(tiledb::tiledb_config()) # TileDB Config in vector form sctx <- soma_context(cfgvec)
cfgvec <- as.vector(tiledb::tiledb_config()) # TileDB Config in vector form sctx <- soma_context(cfgvec)
Construct a single-axis query object with a combination of
coordinates and/or value filters for use with SOMAExperimentAxisQuery
.
(lifecycle: maturing)
Per dimension, the SOMAAxisQuery
can have value of:
None (i.e., coords = NULL
and value_filter = NULL
) - read all values
Coordinates - a set of coordinates on the axis dataframe index, expressed
in any type or format supported by SOMADataFrame
's read()
method.
A SOMA value_filter
across columns in the axis dataframe, expressed as
string
Or, a combination of coordinates and value filter.
coords
The coordinates for the query.
value_filter
The value filter for the query.
new()
Create a new SOMAAxisQuery
object.
SOMAAxisQuery$new(value_filter = NULL, coords = NULL)
value_filter
Optional string containing a logical expression that is used to filter the returned values.
coords
Optional indices specifying the rows to read: either a vector of the appropriate type or a named list of vectors corresponding to each dimension.
clone()
The objects of this class are cloneable with this method.
SOMAAxisQuery$clone(deep = FALSE)
deep
Whether to make a deep clone.
tiledb::parse_query_condition()
for more information about valid
value filters.
SOMAExperiment
Axis Query ResultAccess SOMAExperimentAxisQuery
results.
obs
arrow::Table
containing obs
query slice.
var
arrow::Table
containing var
query slice.
measurement_name
.
X_layers
named list of arrow::Table
s for each X
layer.
new()
Create a new SOMAAxisQueryResult
object.
SOMAAxisQueryResult$new(obs, var, X_layers)
obs, var
arrow::Table
containing obs
or var
query slice.
X_layers
named list of arrow::Table
s, one for each X
layer.
clone()
The objects of this class are cloneable with this method.
SOMAAxisQueryResult$clone(deep = FALSE)
deep
Whether to make a deep clone.
Contains a key-value mapping where the keys are string names and
the values are any SOMA-defined foundational or composed type, including
SOMACollection
, SOMADataFrame
, SOMADenseNDArray
,
SOMASparseNDArray
, or SOMAExperiment
. (lifecycle: maturing)
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBGroup
-> tiledbsoma::SOMACollectionBase
-> SOMACollection
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBGroup$close()
tiledbsoma::TileDBGroup$get_metadata()
tiledbsoma::TileDBGroup$length()
tiledbsoma::TileDBGroup$names()
tiledbsoma::TileDBGroup$open()
tiledbsoma::TileDBGroup$print()
tiledbsoma::TileDBGroup$remove()
tiledbsoma::TileDBGroup$set_metadata()
tiledbsoma::TileDBGroup$to_data_frame()
tiledbsoma::TileDBGroup$to_list()
tiledbsoma::SOMACollectionBase$add_new_collection()
tiledbsoma::SOMACollectionBase$add_new_dataframe()
tiledbsoma::SOMACollectionBase$add_new_dense_ndarray()
tiledbsoma::SOMACollectionBase$add_new_sparse_ndarray()
tiledbsoma::SOMACollectionBase$create()
tiledbsoma::SOMACollectionBase$get()
tiledbsoma::SOMACollectionBase$initialize()
tiledbsoma::SOMACollectionBase$set()
clone()
The objects of this class are cloneable with this method.
SOMACollection$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMADataFrame for writing, (lifecycle: maturing)
SOMACollectionCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMACollectionCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
ingest_mode |
Ingestion mode when creating the TileDB object; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMACollection for reading, (lifecycle: maturing)
SOMACollectionOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMACollectionOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
SOMADataFrame
is a multi-column table that must contain a column
called soma_joinid
of type int64
, which contains a unique value for each
row and is intended to act as a join key for other objects, such as
SOMASparseNDArray
. (lifecycle: maturing)
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBArray
-> tiledbsoma::SOMAArrayBase
-> SOMADataFrame
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$initialize()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBArray$attributes()
tiledbsoma::TileDBArray$attrnames()
tiledbsoma::TileDBArray$close()
tiledbsoma::TileDBArray$colnames()
tiledbsoma::TileDBArray$dimensions()
tiledbsoma::TileDBArray$dimnames()
tiledbsoma::TileDBArray$get_metadata()
tiledbsoma::TileDBArray$index_column_names()
tiledbsoma::TileDBArray$ndim()
tiledbsoma::TileDBArray$non_empty_domain()
tiledbsoma::TileDBArray$open()
tiledbsoma::TileDBArray$print()
tiledbsoma::TileDBArray$schema()
tiledbsoma::TileDBArray$set_metadata()
tiledbsoma::TileDBArray$tiledb_array()
tiledbsoma::TileDBArray$tiledb_schema()
tiledbsoma::TileDBArray$used_shape()
create()
Create (lifecycle: maturing)
SOMADataFrame$create( schema, index_column_names = c("soma_joinid"), domain = NULL, platform_config = NULL, internal_use_only = NULL )
schema
an arrow::schema
.
index_column_names
A vector of column names to use as user-defined index columns. All named columns must exist in the schema, and at least one index column name is required.
domain
An optional list specifying the domain of each
index column. Each slot in the list must have its name being the name
of an index column, and its value being be a length-two vector
consisting of the minimum and maximum values storable in the index
column. For example, if there is a single int64-valued index column
soma_joinid
, then domain
might be list(soma_joinid=c(100, 200))
to indicate that values between 100 and 200, inclusive, can be stored
in that column. If provided, this sequence must have the same length
as index_column_names
, and the index-column domain will be as
specified. If omitted entirely, or if NULL
in a given dimension, the
corresponding index-column domain will use an empty range, and data writes
after that will fail with "A range was set outside of the current domain".
Unless you have a particular reason not to, you should always provide the
desired domain
at create time: this is an optional but strongly
recommended parameter. See also change_domain
which allows you to
expand the domain after create.
platform_config
A platform configuration object
internal_use_only
Character value to signal this is a 'permitted' call,
as create()
is considered internal and should not be called directly.
write()
Write (lifecycle: maturing)
SOMADataFrame$write(values)
values
An arrow::Table
or arrow::RecordBatch
containing all columns, including any index columns. The
schema for values
must match the schema for the SOMADataFrame
.
read()
Read (lifecycle: maturing) Read a user-defined subset of data, addressed by the dataframe indexing column, and optionally filtered.
SOMADataFrame$read( coords = NULL, column_names = NULL, value_filter = NULL, result_order = "auto", iterated = FALSE, log_level = "auto" )
coords
Optional named list of indices specifying the rows to read; each (named) list element corresponds to a dimension of the same name.
column_names
Optional character vector of column names to return.
value_filter
Optional string containing a logical expression that is used
to filter the returned values. See tiledb::parse_query_condition
for
more information.
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
iterated
Option boolean indicated whether data is read in call (when
FALSE
, the default value) or in several iterated steps.
log_level
Optional logging level with default value of "warn"
.
arrow::Table or TableReadIter
update()
Update (lifecycle: maturing)
SOMADataFrame$update(values, row_index_name = NULL)
values
A data.frame
, arrow::Table
, or
arrow::RecordBatch
.
row_index_name
An optional scalar character. If provided, and if
the values
argument is a data.frame
with row names, then the row
names will be extracted and added as a new column to the data.frame
prior to performing the update. The name of this new column will be set
to the value specified by row_index_name
.
Update the existing SOMADataFrame
to add or remove columns based on the
input:
columns present in the current the SOMADataFrame
but absent from the
new values
will be dropped
columns absent in current SOMADataFrame
but present in the new
values
will be added
any columns present in both will be left alone, with the exception that
if values
has a different type for the column, the entire update
will fail because attribute types cannot be changed.
Furthermore, values
must contain the same number of rows as the current
SOMADataFrame
.
shape()
Retrieve the shape; as SOMADataFrames
are shapeless,
simply raises an error
SOMADataFrame$shape()
None, instead a .NotYetImplemented()
error is raised
maxshape()
Retrieve the maxshape; as SOMADataFrames
are shapeless,
simply raises an error
SOMADataFrame$maxshape()
None, instead a .NotYetImplemented()
error is raised
domain()
Returns a named list of minimum/maximum pairs, one per index
column, currently storable on each index column of the dataframe. These
can be resized up to maxdomain
.
(lifecycle: maturing)
SOMADataFrame$domain()
Named list of minimum/maximum values.
maxdomain()
Returns a named list of minimum/maximum pairs, one per index column, which are the limits up to which the dataframe can have its domain resized. (lifecycle: maturing)
SOMADataFrame$maxdomain()
Named list of minimum/maximum values.
tiledbsoma_has_upgraded_domain()
Returns TRUE if the array has the upgraded resizeable domain
feature from TileDB-SOMA 1.15: the array was created with this support,
or it has had upgrade_domain
applied to it.
(lifecycle: maturing)
SOMADataFrame$tiledbsoma_has_upgraded_domain()
Logical
tiledbsoma_resize_soma_joinid_shape()
Increases the shape of the dataframe on the soma_joinid
index column, if it indeed is an index column, leaving all other index
columns as-is. If the soma_joinid
is not an index column, no change is
made. This is a special case of upgrade_domain
(WIP for 1.15), but
simpler to keystroke, and handles the most common case for dataframe
domain expansion. Raises an error if the dataframe doesn't already have a
domain: in that case please call tiledbsoma_upgrade_domain
(WIP for
1.15).
SOMADataFrame$tiledbsoma_resize_soma_joinid_shape(new_shape)
new_shape
An integer, greater than or equal to 1 + the
soma_joinid
domain slot.
No return value
tiledbsoma_upgrade_domain()
Allows you to set the domain of a SOMADataFrame
, when the
SOMADataFrame
does not have a domain set yet. The argument must be a
tuple of pairs of low/high values for the desired domain, one pair per
index column. For string index columns, you must offer the low/high pair
as ("", "")
, or as NULL
. If check_only
is True
, returns
whether the operation would succeed if attempted, and a reason why it
would not. The domain being requested must be contained within what
maxdomain
returns.
SOMADataFrame$tiledbsoma_upgrade_domain(new_domain)
new_domain
A named list, keyed by index-column name, with values being two-element vectors containing the desired lower and upper bounds for the domain.
No return value
change_domain()
Allows you to set the domain of a SOMADataFrame
, when the
SOMADataFrame
already has a domain set yet. The argument must be a
tuple of pairs of low/high values for the desired domain, one pair per
index column. For string index columns, you must offer the low/high pair
as ("", "")
, or as NULL
. If check_only
is True
, returns
whether the operation would succeed if attempted, and a reason why it
would not. The return value from domain
must be contained within
the requested new_domain
, and the requested new_domain
must be
contained within the return value from maxdomain
. (lifecycle: maturing)
SOMADataFrame$change_domain(new_domain)
new_domain
A named list, keyed by index-column name, with values being two-element vectors containing the desired lower and upper bounds for the domain.
No return value
clone()
The objects of this class are cloneable with this method.
SOMADataFrame$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMADataFrame for writing, (lifecycle: maturing)
SOMADataFrameCreate( uri, schema, index_column_names = c("soma_joinid"), domain = NULL, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL, soma_context = NULL )
SOMADataFrameCreate( uri, schema, index_column_names = c("soma_joinid"), domain = NULL, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL, soma_context = NULL )
uri |
URI for the TileDB object |
schema |
Arrow schema argument for the SOMA dataframe |
index_column_names |
A vector of column names to use as user-defined index columns; all named columns must exist in the schema, and at least one index column name is required |
domain |
An optional list of 2-element vectors specifying the domain of each index
column. Each vector should be a pair consisting of the minimum and maximum values storable in
the index column. For example, if there is a single int64-valued index column, then |
ingest_mode |
Ingestion mode when creating the TileDB object; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMADataFrame for reading, (lifecycle: maturing)
SOMADataFrameOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL, soma_context = NULL )
SOMADataFrameOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL, soma_context = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
SOMADenseNDArray
is a dense, N-dimensional array of primitive
type, with
offset (zero-based) int64
integer indexing on each dimension with domain
[0, maxInt64)
. The SOMADenseNDArray
has a user-defined schema, which
includes:
type: A primitive
type, expressed as an Arrow type (e.g., int64
,
float32
, etc), indicating the type of data contained within the array.
shape: The shape of the array, i.e., number and length of each
dimension. This is a soft limit which can be increased using resize
,
up to the maxshape
.
maxshape: The hard limit up to which shape
may be increased using
resize
.
All dimensions must have a positive, non-zero length, and there must be 1 or more dimensions.
The default "fill" value for SOMADenseNDArray
is the zero or null value of
the array type (e.g., Arrow.float32 defaults to 0.0).
The write
method is currently limited to writing from 2-d matrices.
(lifecycle: maturing)
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBArray
-> tiledbsoma::SOMAArrayBase
-> tiledbsoma::SOMANDArrayBase
-> SOMADenseNDArray
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$initialize()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBArray$attributes()
tiledbsoma::TileDBArray$attrnames()
tiledbsoma::TileDBArray$close()
tiledbsoma::TileDBArray$colnames()
tiledbsoma::TileDBArray$dimensions()
tiledbsoma::TileDBArray$dimnames()
tiledbsoma::TileDBArray$get_metadata()
tiledbsoma::TileDBArray$index_column_names()
tiledbsoma::TileDBArray$maxshape()
tiledbsoma::TileDBArray$ndim()
tiledbsoma::TileDBArray$non_empty_domain()
tiledbsoma::TileDBArray$open()
tiledbsoma::TileDBArray$print()
tiledbsoma::TileDBArray$schema()
tiledbsoma::TileDBArray$set_metadata()
tiledbsoma::TileDBArray$shape()
tiledbsoma::TileDBArray$tiledb_array()
tiledbsoma::TileDBArray$tiledb_schema()
tiledbsoma::TileDBArray$used_shape()
tiledbsoma::SOMANDArrayBase$create()
tiledbsoma::SOMANDArrayBase$resize()
tiledbsoma::SOMANDArrayBase$set_data_type()
tiledbsoma::SOMANDArrayBase$tiledbsoma_has_upgraded_shape()
tiledbsoma::SOMANDArrayBase$tiledbsoma_upgrade_shape()
read_arrow_table()
Read as an 'arrow::Table' (lifecycle: maturing)
SOMADenseNDArray$read_arrow_table( coords = NULL, result_order = "auto", log_level = "auto" )
coords
Optional list
of integer vectors, one for each dimension, with a
length equal to the number of values to read. If NULL
, all values are
read. List elements can be named when specifying a subset of dimensions.
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
log_level
Optional logging level with default value of "warn"
.
An arrow::Table
.
read_dense_matrix()
Read as a dense matrix (lifecycle: maturing)
SOMADenseNDArray$read_dense_matrix( coords = NULL, result_order = "ROW_MAJOR", log_level = "warn" )
coords
Optional list
of integer vectors, one for each dimension, with a
length equal to the number of values to read. If NULL
, all values are
read. List elements can be named when specifying a subset of dimensions.
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
log_level
Optional logging level with default value of "warn"
.
A matrix
object
write()
Write matrix data to the array. (lifecycle: maturing)
More general write methods for higher-dimensional array could be added.
SOMADenseNDArray$write(values, coords = NULL)
values
A matrix
. Character dimension names are ignored because
SOMANDArray
's use integer indexing.
coords
A list
of integer vectors, one for each dimension, with a
length equal to the number of values to write. If NULL
, the default,
the values are taken from the row and column names of values
.
clone()
The objects of this class are cloneable with this method.
SOMADenseNDArray$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMADenseNDArray for writing, (lifecycle: maturing)
SOMADenseNDArrayCreate( uri, type, shape, platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMADenseNDArrayCreate( uri, type, shape, platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
type |
An Arrow type defining the type of each element in the array. |
shape |
A vector of integers defining the shape of the array. |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMADenseNDArray for reading, (lifecycle: maturing)
SOMADenseNDArrayOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMADenseNDArrayOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
SOMAExperiment
is a specialized SOMACollection
,
representing one or more modes of measurement across a single collection of
cells (aka a "multimodal dataset") with pre-defined fields: obs
and ms
(see Active Bindings below for details). (lifecycle: maturing)
The SOMAExperiment
class provides a number of type-specific methods for
adding new a object to the collection, such as add_new_sparse_ndarray()
and
add_new_dataframe()
. These methods will create the new object and add it as
member of the SOMAExperiment
. The new object will always inherit the parent
context (see SOMATileDBContext
) and, by default, its platform
configuration (see PlatformConfig
). However, the user can override the
default platform configuration by passing a custom configuration to the
platform_config
argument.
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBGroup
-> tiledbsoma::SOMACollectionBase
-> SOMAExperiment
obs
a SOMADataFrame
containing primary annotations on the
observation axis. The contents of the soma_joinid
column define the
observation index domain, obs_id
. All observations for the
SOMAExperiment
must be defined in this dataframe.
ms
a SOMACollection
of named SOMAMeasurement
s.
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBGroup$close()
tiledbsoma::TileDBGroup$get_metadata()
tiledbsoma::TileDBGroup$length()
tiledbsoma::TileDBGroup$names()
tiledbsoma::TileDBGroup$open()
tiledbsoma::TileDBGroup$print()
tiledbsoma::TileDBGroup$remove()
tiledbsoma::TileDBGroup$set_metadata()
tiledbsoma::TileDBGroup$to_data_frame()
tiledbsoma::TileDBGroup$to_list()
tiledbsoma::SOMACollectionBase$add_new_collection()
tiledbsoma::SOMACollectionBase$add_new_dataframe()
tiledbsoma::SOMACollectionBase$add_new_dense_ndarray()
tiledbsoma::SOMACollectionBase$add_new_sparse_ndarray()
tiledbsoma::SOMACollectionBase$create()
tiledbsoma::SOMACollectionBase$get()
tiledbsoma::SOMACollectionBase$initialize()
tiledbsoma::SOMACollectionBase$set()
axis_query()
Subset and extract data from a SOMAMeasurement
by
querying the obs
/var
axes.
SOMAExperiment$axis_query(measurement_name, obs_query = NULL, var_query = NULL)
measurement_name
The name of the measurement to query.
obs_query, var_query
An SOMAAxisQuery
object for the obs/var
axis.
A SOMAExperimentAxisQuery
object.
update_obs()
Update the obs SOMADataFrame
to add or remove columns.
See SOMADataFrame$update()
for details.
SOMAExperiment$update_obs(values, row_index_name = NULL)
values
A data.frame
, arrow::Table
, or
arrow::RecordBatch
.
row_index_name
An optional scalar character. If provided, and if
the values
argument is a data.frame
with row names, then the row
names will be extracted and added as a new column to the data.frame
prior to performing the update. The name of this new column will be set
to the value specified by row_index_name
.
update_var()
Update the var SOMADataFrame
to add or remove columns.
See SOMADataFrame$update()
for details.
SOMAExperiment$update_var(values, measurement_name, row_index_name = NULL)
values
A data.frame
, arrow::Table
, or
arrow::RecordBatch
.
measurement_name
The name of the SOMAMeasurement
whose var
will be updated.
row_index_name
An optional scalar character. If provided, and if
the values
argument is a data.frame
with row names, then the row
names will be extracted and added as a new column to the data.frame
prior to performing the update. The name of this new column will be set
to the value specified by row_index_name
.
clone()
The objects of this class are cloneable with this method.
SOMAExperiment$clone(deep = FALSE)
deep
Whether to make a deep clone.
SOMAExperiment
Axis QueryPerform an axis-based query against a SOMAExperiment
.
SOMAExperimentAxisQuery
allows easy selection and extraction of data from a
single SOMAMeasurement
in a SOMAExperiment
, by obs
/var
(axis)
coordinates and/or value filter. The primary use for this class is slicing
SOMAExperiment
X
layers by obs
or var
value and/or coordinates.
(lifecycle: maturing)
Slicing on SOMASparseNDArray
X
matrices is supported;
slicing on SOMADenseNDArray
is not supported at this time.
SOMAExperimentAxisQuery
query class assumes it can store the full result of
both axis dataframe queries in memory, and only provides incremental access
to the underlying X NDArray. Accessors such as n_obs
and n_vars
codify
this in the class.
experiment
The parent SOMAExperiment
object.
indexer
The SOMAAxisIndexer
object.
obs_query
The obs
SOMAAxisQuery
object.
var_query
The var
SOMAAxisQuery
object.
n_obs
The number of obs
axis query results.
n_vars
The number of var
axis query results.
obs_df
The obs
SOMADataFrame
object.
var_df
The var
SOMADataFrame
object for the specified
measurement_name
.
ms
The SOMAMeasurement
object for the specified
measurement_name
.
new()
Create a new SOMAExperimentAxisQuery
object.
SOMAExperimentAxisQuery$new( experiment, measurement_name, obs_query = NULL, var_query = NULL )
experiment
A SOMAExperiment
object.
measurement_name
The name of the measurement to query.
obs_query, var_query
An SOMAAxisQuery
object for the obs/var
axis.
obs()
Retrieve obs TableReadIter
SOMAExperimentAxisQuery$obs(column_names = NULL)
column_names
A character vector of column names to retrieve
var()
Retrieve var arrow::Table
SOMAExperimentAxisQuery$var(column_names = NULL)
column_names
A character vector of column names to retrieve
obs_joinids()
Retrieve soma_joinids
as an arrow::Array
for obs
.
SOMAExperimentAxisQuery$obs_joinids()
var_joinids()
Retrieve soma_joinids
as an arrow::Array
for var
.
SOMAExperimentAxisQuery$var_joinids()
X()
Retrieves an X
layer as a SOMASparseNDArrayRead
SOMAExperimentAxisQuery$X(layer_name)
layer_name
The name of the layer to retrieve.
obsm()
Retrieves an obsm
layer as a SOMASparseNDArrayRead
SOMAExperimentAxisQuery$obsm(layer_name)
layer_name
The name of the layer to retrieve
varm()
Retrieves a varm
layer as a SOMASparseNDArrayRead
SOMAExperimentAxisQuery$varm(layer_name)
layer_name
The name of the layer to retrieve
obsp()
Retrieves an obsp
layer as a SOMASparseNDArrayRead
SOMAExperimentAxisQuery$obsp(layer_name)
layer_name
The name of the layer to retrieve
varp()
Retrieves a varp
layer as a SOMASparseNDArrayRead
SOMAExperimentAxisQuery$varp(layer_name)
layer_name
The name of the layer to retrieve
read()
Reads the entire query result as a list of
arrow::Table
s. This is a low-level routine intended to be used by
loaders for other in-core formats, such as Seurat
, which can be created
from the resulting Tables.
SOMAExperimentAxisQuery$read( X_layers = NULL, obs_column_names = NULL, var_column_names = NULL )
X_layers
The name(s) of the X
layer(s) to read and return.
obs_column_names, var_column_names
Specify which column names in
var
and obs
dataframes to read and return.
to_sparse_matrix()
Retrieve a collection layer as a sparse matrix with named dimensions.
Load any layer from the X
, obsm
, varm
, obsp
, or varp
collections as a sparse matrix.
By default the matrix dimensions are named using the soma_joinid
values
in the specified layer's dimensions (e.g., soma_dim_0
). However,
dimensions can be named using values from any obs
or var
column that
uniquely identifies each record by specifying the obs_index
and
var_index
arguments.
For layers in obsm
or varm
, the column axis (the axis not
indexed by “obs
” or “var
”) is set to the
range of values present in “soma_dim_1
”; this ensures
that gaps in this axis are preserved (eg. when a query for
“obs
” that results in selecting entries that are all zero
for a given PC)
SOMAExperimentAxisQuery$to_sparse_matrix( collection, layer_name, obs_index = NULL, var_index = NULL )
collection
The SOMACollection
containing the layer of
interest, either: "X"
, "obsm"
, "varm"
, "obsp"
, or "varp"
.
layer_name
Name of the layer to retrieve from the collection
.
obs_index, var_index
Name of the column in obs
or var
(var_index
) containing values that should be used as dimension labels
in the resulting matrix. Whether the values are used as row or column
labels depends on the selected collection
:
Collection | obs_index |
var_index |
X |
row names | column names |
obsm |
row names | ignored |
varm |
ignored | row names |
obsp |
row and column names | ignored |
varp |
ignored | row and column names |
to_seurat()
Loads the query as a Seurat
object
SOMAExperimentAxisQuery$to_seurat( X_layers = c(counts = "counts", data = "logcounts"), obs_index = NULL, var_index = NULL, obs_column_names = NULL, var_column_names = NULL, obsm_layers = NULL, varm_layers = NULL, obsp_layers = NULL, drop_levels = FALSE )
X_layers
A named character of X layers to add to the Seurat assay where the names are the names of Seurat slots and the values are the names of layers within X
; names should be one of:
“counts
” to add the layer as counts
“data
” to add the layer as data
“scale.data
” to add the layer as scale.data
At least one of “counts
” or “data
” is required
obs_index
Name of column in obs
to add as cell names; uses paste0("cell", obs_joinids())
by default
var_index
Name of column in var
to add as feature names; uses paste0("feature", var_joinids())
by default
obs_column_names
Names of columns in obs
to add as cell-level meta data; by default, loads all columns
var_column_names
Names of columns in var
to add as feature-level meta data; by default, loads all columns
obsm_layers
Names of arrays in obsm
to add as the cell embeddings; pass FALSE
to suppress loading in any dimensional reductions; by default, loads all dimensional reduction information
varm_layers
Named vector of arrays in varm
to load in as the feature loadings; names must be names of arrays in obsm
(eg. varm_layers = c(X_pca = "PCs")
); pass FALSE
to suppress loading in any feature loadings; will try to determine varm_layers
from obsm_layers
obsp_layers
Names of arrays in obsp
to load in as Graphs
; by default, loads all graphs
drop_levels
Drop unused levels from obs
and var
factor columns
A Seurat
object
to_seurat_assay()
Loads the query as a Seurat Assay
SOMAExperimentAxisQuery$to_seurat_assay( X_layers = c(counts = "counts", data = "logcounts"), obs_index = NULL, var_index = NULL, var_column_names = NULL, drop_levels = FALSE )
X_layers
A named character of X layers to add to the Seurat assay where the names are the names of Seurat slots and the values are the names of layers within X
; names should be one of:
“counts
” to add the layer as counts
“data
” to add the layer as data
“scale.data
” to add the layer as scale.data
At least one of “counts
” or “data
” is required
obs_index
Name of column in obs
to add as cell names; uses paste0("cell", obs_joinids())
by default
var_index
Name of column in var
to add as feature names; uses paste0("feature", var_joinids())
by default
var_column_names
Names of columns in var
to add as feature-level meta data; by default, loads all columns
drop_levels
Drop unused levels from var
factor columns
An Assay
object
to_seurat_reduction()
Loads the query as a Seurat dimensional reduction
SOMAExperimentAxisQuery$to_seurat_reduction( obsm_layer, varm_layer = NULL, obs_index = NULL, var_index = NULL )
obsm_layer
Name of array in obsm
to load as the
cell embeddings
varm_layer
Name of the array in varm
to load as the
feature loadings; by default, will try to determine varm_layer
from obsm_layer
obs_index
Name of column in obs
to add as cell names; uses paste0("cell", obs_joinids())
by default
var_index
Name of column in var
to add as feature names; uses paste0("feature", var_joinids())
by default
A DimReduc
object
to_seurat_graph()
Loads the query as a Seurat graph
SOMAExperimentAxisQuery$to_seurat_graph(obsp_layer, obs_index = NULL)
obsp_layer
Name of array in obsp
to load as the graph
obs_index
Name of column in obs
to add as cell names; uses paste0("cell", obs_joinids())
by default
A Graph
object
to_single_cell_experiment()
Loads the query as a
SingleCellExperiment
object
SOMAExperimentAxisQuery$to_single_cell_experiment( X_layers = NULL, obs_index = NULL, var_index = NULL, obs_column_names = NULL, var_column_names = NULL, obsm_layers = NULL, obsp_layers = NULL, varp_layers = NULL, drop_levels = FALSE )
X_layers
A character vector of X layers to add as assays in the main experiment; may optionally be named to set the name of the resulting assay (eg. X_layers = c(counts = "raw")
will load in X layer “raw
” as assay “counts
”); by default, loads in all X layers
obs_index
Name of column in obs
to add as cell names; uses paste0("cell", obs_joinids())
by default
var_index
Name of column in var
to add as feature names; uses paste0("feature", var_joinids())
by default
obs_column_names
Names of columns in obs
to add as colData
; by default, loads all columns
var_column_names
Names of columns in var
to add as rowData
; by default, loads all columns
obsm_layers
Names of arrays in obsm
to add as the reduced dimensions; pass FALSE
to suppress loading in any reduced dimensions; by default, loads all reduced dimensions
obsp_layers
Names of arrays in obsp
to load in as SelfHits
; by default, loads all graphs
varp_layers
Names of arrays in varp
to load in as SelfHits
; by default, loads all networks
drop_levels
Drop unused levels from obs
and var
factor columns
A SingleCellExperiment
object
clone()
The objects of this class are cloneable with this method.
SOMAExperimentAxisQuery$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMADataFrame for writing, (lifecycle: maturing)
SOMAExperimentCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMAExperimentCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
ingest_mode |
Ingestion mode when creating the TileDB object; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMAExperiment for reading, (lifecycle: maturing)
SOMAExperimentOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMAExperimentOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
A SOMAMeasurement
is a sub-element of a SOMAExperiment
,
and is otherwise a specialized SOMACollection
with pre-defined fields:
X
, var
, obsm
/varm
, and obsp
/varp
(see Active Bindings below for
details). (lifecycle: maturing)
The SOMAMeasurement
class provides a number of type-specific methods for
adding new a object to the collection, such as add_new_sparse_ndarray()
and
add_new_dataframe()
. These methods will create the new object and add it as
member of the SOMAMeasurement
. The new object will always inherit the parent
context (see SOMATileDBContext
) and, by default, its platform
configuration (see PlatformConfig
). However, the user can override the
default platform configuration by passing a custom configuration to the
platform_config
argument.
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBGroup
-> tiledbsoma::SOMACollectionBase
-> SOMAMeasurement
var
a SOMADataFrame
containing primary annotations on the
variable axis, for variables in this measurement (i.e., annotates columns
of X
). The contents of the soma_joinid
column define the variable
index domain, var_id
. All variables for this measurement must be
defined in this dataframe.
X
a SOMACollection
of SOMASparseNDArray
s, each contains
measured feature values indexed by [obsid, varid]
.
obsm
a SOMACollection
of SOMADenseNDArray
s containing
annotations on the observation axis. Each array is indexed by obsid
and
has the same shape as obs
.
obsp
a SOMACollection
of SOMASparseNDArray
s containing
pairwise annotations on the observation axis and indexed with [obsid_1, obsid_2]
.
varm
a SOMACollection
of SOMADenseNDArray
s containing
annotations on the variable axis. Each array is indexed by varid
and
has the same shape as var
.
varp
a SOMACollection
of SOMASparseNDArray
s containing
pairwise annotations on the variable axis and indexed with [varid_1, varid_2]
.
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBGroup$close()
tiledbsoma::TileDBGroup$get_metadata()
tiledbsoma::TileDBGroup$length()
tiledbsoma::TileDBGroup$names()
tiledbsoma::TileDBGroup$open()
tiledbsoma::TileDBGroup$print()
tiledbsoma::TileDBGroup$remove()
tiledbsoma::TileDBGroup$set_metadata()
tiledbsoma::TileDBGroup$to_data_frame()
tiledbsoma::TileDBGroup$to_list()
tiledbsoma::SOMACollectionBase$add_new_collection()
tiledbsoma::SOMACollectionBase$add_new_dataframe()
tiledbsoma::SOMACollectionBase$add_new_dense_ndarray()
tiledbsoma::SOMACollectionBase$add_new_sparse_ndarray()
tiledbsoma::SOMACollectionBase$create()
tiledbsoma::SOMACollectionBase$get()
tiledbsoma::SOMACollectionBase$initialize()
tiledbsoma::SOMACollectionBase$set()
clone()
The objects of this class are cloneable with this method.
SOMAMeasurement$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMAMeasurement for writing, (lifecycle: maturing)
SOMAMeasurementCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMAMeasurementCreate( uri, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
ingest_mode |
Ingestion mode when creating the TileDB object; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMAMeasurement for reading, (lifecycle: maturing)
SOMAMeasurementOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMAMeasurementOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
Utility function to open the corresponding SOMA Object given a URI, (lifecycle: maturing)
SOMAOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMAOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) with TileDB timestamp. For SOMACollections, all accessed members inherit the collection opening timestamp, and in READ mode the collection timestamp defaults to the time of opening. |
SOMASparseNDArray
is a sparse, N-dimensional array with offset
(zero-based) integer indexing on each dimension. The SOMASparseNDArray
has
a user-defined schema, which includes:
type: A primitive
type, expressed as an Arrow type (e.g., int64
,
float32
, etc), indicating the type of data contained within the array.
shape: The shape of the array, i.e., number and length of each
dimension. This is a soft limit which can be increased using resize
,
up to the maxshape
.
maxshape: The hard limit up to which shape
may be increased using
resize
.
All dimensions must have a positive, non-zero length.
Note - on TileDB this is an sparse array with N
int64 dimensions of
domain [0, maxInt64), and a single attribute.
As duplicate index values are not allowed, index values already present in the object are overwritten and new index values are added. (lifecycle: maturing)
tiledbsoma::TileDBObject
-> tiledbsoma::TileDBArray
-> tiledbsoma::SOMAArrayBase
-> tiledbsoma::SOMANDArrayBase
-> SOMASparseNDArray
tiledbsoma::TileDBObject$class()
tiledbsoma::TileDBObject$exists()
tiledbsoma::TileDBObject$initialize()
tiledbsoma::TileDBObject$is_open()
tiledbsoma::TileDBObject$mode()
tiledbsoma::TileDBObject$reopen()
tiledbsoma::TileDBArray$attributes()
tiledbsoma::TileDBArray$attrnames()
tiledbsoma::TileDBArray$close()
tiledbsoma::TileDBArray$colnames()
tiledbsoma::TileDBArray$dimensions()
tiledbsoma::TileDBArray$dimnames()
tiledbsoma::TileDBArray$get_metadata()
tiledbsoma::TileDBArray$index_column_names()
tiledbsoma::TileDBArray$maxshape()
tiledbsoma::TileDBArray$ndim()
tiledbsoma::TileDBArray$non_empty_domain()
tiledbsoma::TileDBArray$open()
tiledbsoma::TileDBArray$print()
tiledbsoma::TileDBArray$schema()
tiledbsoma::TileDBArray$set_metadata()
tiledbsoma::TileDBArray$shape()
tiledbsoma::TileDBArray$tiledb_array()
tiledbsoma::TileDBArray$tiledb_schema()
tiledbsoma::TileDBArray$used_shape()
tiledbsoma::SOMANDArrayBase$create()
tiledbsoma::SOMANDArrayBase$resize()
tiledbsoma::SOMANDArrayBase$set_data_type()
tiledbsoma::SOMANDArrayBase$tiledbsoma_has_upgraded_shape()
tiledbsoma::SOMANDArrayBase$tiledbsoma_upgrade_shape()
read()
Reads a user-defined slice of the SOMASparseNDArray
SOMASparseNDArray$read( coords = NULL, result_order = "auto", log_level = "auto" )
coords
Optional list
of integer vectors, one for each dimension, with a
length equal to the number of values to read. If NULL
, all values are
read. List elements can be named when specifying a subset of dimensions.
result_order
Optional order of read results. This can be one of either
"ROW_MAJOR,
"COL_MAJOR", or
"auto"' (default).
log_level
Optional logging level with default value of "warn"
.
iterated
Option boolean indicated whether data is read in call (when
FALSE
, the default value) or in several iterated steps.
write()
Write matrix-like data to the array. (lifecycle: maturing)
SOMASparseNDArray$write(values, bbox = NULL)
values
Any matrix
-like object coercible to a
TsparseMatrix
. Character dimension
names are ignored because SOMANDArray
's use integer indexing.
bbox
A vector of integers describing the upper bounds of each
dimension of values
. Generally should be NULL
.
Invisibly returns self
nnz()
Retrieve number of non-zero elements (lifecycle: maturing)
SOMASparseNDArray$nnz()
A scalar with the number of non-zero elements
.write_coordinates()
Write a COO table to the array
SOMASparseNDArray$.write_coordinates(values)
values
A data.frame
or Arrow::Table
with data in COO format; must be named with the dimension and attribute
labels of the array
Invisibly returns self
clone()
The objects of this class are cloneable with this method.
SOMASparseNDArray$clone(deep = FALSE)
deep
Whether to make a deep clone.
Factory function to create a SOMASparseNDArray for writing, (lifecycle: maturing)
SOMASparseNDArrayCreate( uri, type, shape, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMASparseNDArrayCreate( uri, type, shape, ingest_mode = c("write", "resume"), platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
type |
An Arrow type defining the type of each element in the array. |
shape |
A vector of integers defining the shape of the array. |
ingest_mode |
Ingestion mode when creating the TileDB object; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp |
Factory function to open a SOMASparseNDArray for reading, (lifecycle: maturing)
SOMASparseNDArrayOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
SOMASparseNDArrayOpen( uri, mode = "READ", platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL )
uri |
URI for the TileDB object |
mode |
One of |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional SOMATileDBContext |
tiledb_timestamp |
Optional Datetime (POSIXct) for TileDB timestamp. In READ mode, defaults to the current time. If non-NULL, then all members accessed through the collection object inherit the timestamp. |
Context map for TileDB-backed SOMA objects
tiledbsoma::MappingBase
-> tiledbsoma::ScalarMap
-> tiledbsoma::SOMAContextBase
-> SOMATileDBContext
new()
SOMATileDBContext$new(config = NULL, cached = TRUE)
config
...
cached
Force new creation
An instantiated SOMATileDBContext
object
keys()
SOMATileDBContext$keys()
The keys of the map
items()
SOMATileDBContext$items()
Return the items of the map as a list
length()
SOMATileDBContext$length()
The number of items in the map
get()
SOMATileDBContext$get(key, default = quote(expr = ))
key
Key to fetch
default
Default value to fetch if key
is not found;
defaults to NULL
The value of key
in the map, or default
if
key
is not found
set()
SOMATileDBContext$set(key, value)
key
Key to set
value
Value to add for key
, or NULL
to remove
the entry for key
[chainable] Invisibly returns self
with
value
added as key
to_tiledb_context()
SOMATileDBContext$to_tiledb_context()
A tiledb_ctx
object, dynamically
constructed. Most useful for the constructor of this class.
context()
SOMATileDBContext$context()
A tiledb_ctx
object, which is
a stored (and long-lived) result from to_tiledb_context
.
clone()
The objects of this class are cloneable with this method.
SOMATileDBContext$clone(deep = FALSE)
deep
Whether to make a deep clone.
SparseReadIter
is a class that allows for iteration over
a reads on SOMASparseNDArray.
Iteration chunks are retrieved as 0-based Views matrixZeroBasedView of Matrix::sparseMatrix.
tiledbsoma::ReadIter
-> SparseReadIter
new()
Create (lifecycle: maturing)
SparseReadIter$new(sr, shape, zero_based = FALSE)
sr
Soma reader pointer
shape
Shape of the full matrix
zero_based
Logical, if TRUE will make iterator for Matrix::dgTMatrix-class otherwise matrixZeroBasedView.
concat()
Concatenate remainder of iterator.
SparseReadIter$concat()
matrixZeroBasedView of Matrix::sparseMatrix
clone()
The objects of this class are cloneable with this method.
SparseReadIter$clone(deep = FALSE)
deep
Whether to make a deep clone.
TableReadIter
is a class that allows for iteration over
a reads on SOMASparseNDArray and SOMADataFrame.
Iteration chunks are retrieved as arrow::Table
tiledbsoma::ReadIter
-> TableReadIter
concat()
Concatenate remainder of iterator.
TableReadIter$concat()
arrow::Table
clone()
The objects of this class are cloneable with this method.
TableReadIter$clone(deep = FALSE)
deep
Whether to make a deep clone.
Base class to implement shared functionality across the TileDBArray and TileDBGroup classes. (lifecycle: maturing)
platform_config
Platform configuration
tiledbsoma_ctx
SOMATileDBContext
tiledb_timestamp
Time that object was opened at
uri
The URI of the TileDB object.
.tiledb_timestamp_range
Time range for libtiledbsoma
new()
Create a new TileDB object. (lifecycle: maturing)
TileDBObject$new( uri, platform_config = NULL, tiledbsoma_ctx = NULL, tiledb_timestamp = NULL, internal_use_only = NULL, soma_context = NULL )
uri
URI for the TileDB object
platform_config
Optional platform configuration
tiledbsoma_ctx
Optional SOMATileDBContext
tiledb_timestamp
Optional Datetime (POSIXct) with TileDB timestamp
internal_use_only
Character value to signal this is a 'permitted' call,
as new()
is considered internal and should not be called directly.
class()
Print the name of the R6 class.
TileDBObject$class()
is_open()
Determine if the object is open for reading or writing
TileDBObject$is_open()
TRUE
if the object is open, otherwise FALSE
mode()
Get the mode of the object
TileDBObject$mode()
If the object is closed, returns “CLOSED
”;
otherwise returns the mode (eg. “READ
”) of the object
reopen()
Close and reopen the TileDB object in a new mode
TileDBObject$reopen(mode, tiledb_timestamp = NULL)
mode
New mode to open the object in; choose from:
“READ
”
“WRITE
”
tiledb_timestamp
Optional Datetime (POSIXct) with TileDB timestamp
Invisibly returns self
opened in mode
print()
Print-friendly representation of the object.
TileDBObject$print()
exists()
Check if the object exists. (lifecycle: maturing)
TileDBObject$exists()
TRUE`` if the object exists,
FALSE' otherwise.
clone()
The objects of this class are cloneable with this method.
TileDBObject$clone(deep = FALSE)
deep
Whether to make a deep clone.
Creates a 'tiledbsoma_query_condition' object
tiledbsoma_empty_query_condition(somactx)
tiledbsoma_empty_query_condition(somactx)
somactx |
(optional) A TileDB Ctx object; if not supplied the default context object is retrieved |
A 'tiledbsoma_query_condition' object
An S4 class for a TileDB QueryCondition object
ptr
An external pointer to the underlying implementation
init
A logical variable tracking if the query condition object has been initialized
These functions expose the TileDB Core functionality for performance measurements and statistics.
tiledbsoma_stats_enable() tiledbsoma_stats_disable() tiledbsoma_stats_reset() tiledbsoma_stats_dump() tiledbsoma_stats_show()
tiledbsoma_stats_enable() tiledbsoma_stats_disable() tiledbsoma_stats_reset() tiledbsoma_stats_dump() tiledbsoma_stats_show()
tiledbsoma_stats_enable()
/tiledbsoma_stats_disable()
: Enable and
disable TileDB's internal statistics.
tiledbsoma_stats_reset()
: Reset all statistics to 0.
tiledbsoma_stats_dump()
: Dump all statistics to a JSON string.
tiledbsoma_stats_show()
: Print all statistics to the console.
Convert R objects to their appropriate SOMA counterpart
function and methods can be written for it to provide a high-level
R SOMA interface
write_soma(x, uri, ..., platform_config = NULL, tiledbsoma_ctx = NULL)
write_soma(x, uri, ..., platform_config = NULL, tiledbsoma_ctx = NULL)
x |
An object |
uri |
URI for resulting SOMA object |
... |
Arguments passed to other methods |
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional |
The URI to the resulting SOMAExperiment
generated from
the data contained in x
Seurat
object to a SOMAWrite a Seurat
object to a SOMA
## S3 method for class 'Seurat' write_soma( x, uri, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
## S3 method for class 'Seurat' write_soma( x, uri, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
x |
A |
uri |
URI for resulting SOMA object |
... |
Arguments passed to other methods |
ingest_mode |
Ingestion mode when creating the SOMA; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional |
The URI to the resulting SOMAExperiment
generated from
the data contained in x
Cell-level metadata is written out as a
data frame called “obs
” at
the experiment
level
Assays
Seurat Assay
objects are written out as
individual measurements:
the “data
” matrix is written out as a
sparse array called
“data
” within the “X
” group
the “counts
” matrix, if not
empty, is written out as a
sparse array called
“counts
” within the “X
” group
the “scale.data
” matrix, if not
empty, is written out as a
sparse array called
“scale_data
” within the “X
” group
feature-level metadata is written out as a
data frame called “var
”
Expression matrices are transposed (cells as rows) prior to writing. All
other slots, including results from extended assays (eg. SCTAssay
,
ChromatinAssay
) are lost
Assays
Seurat v5 Assayss
are written
out as individualmeasurements:
the layer matrices are written out as
sparse arrays within the
“X
” group
feature-level metadata is written out as a
data frame called “var
”
Expression matrices are transposed (cells as rows) prior to writing. All
other slots, including results from extended assays (eg. SCTAssay
,
ChromatinAssay
) are lost
The following bits of metadata are written in various parts of the measurement
“soma_ecosystem_seurat_assay_version
”: written at the
measurement level; indicates the Seurat assay version.
Set to “v5
”
“soma_ecosystem_seurat_v5_default_layers
”: written at
the “X
” group level; indicates the
default layers
“soma_ecosystem_seurat_v5_ragged
”: written at the
“X/<layer>
” array level; with a value of
“ragged
”, indicates whether or not the layer is ragged
“soma_r_type_hint
”: written at the
“X/<layer>
” array level; indicates the R class and
defining package (for S4 classes) of the original layer
DimReducs
Seurat DimReduc
objects are written out
to the “obsm
” and “varm
” groups of a
measurement:
cell embeddings are written out as a
sparse matrix in the
“obsm
” group
feature loadings, if not empty,
are written out as a sparse matrix in
the “varm
” groups; loadings are padded with NAs
to include all features
Dimensional reduction names are translated to AnnData-style names (eg.
“pca
” becomes X_pca
for embeddings and
“PCs
” for loadings). All other slots, including projected
feature loadings and jackstraw information, are lost
Graphs
Seurat Graph
objects are
written out as sparse matrices
to the “obsp
” group of a
measurement
SeuratCommands
Seurat command logs are written out
as data frames to the
“seurat_commands
” group of a
collection
SingleCellExperiment
object to a SOMAWrite a SingleCellExperiment
object to a SOMA
## S3 method for class 'SingleCellExperiment' write_soma( x, uri, ms_name = NULL, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
## S3 method for class 'SingleCellExperiment' write_soma( x, uri, ms_name = NULL, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
x |
An object |
uri |
URI for resulting SOMA object |
ms_name |
Name for resulting measurement; defaults to
|
... |
Arguments passed to other methods |
ingest_mode |
Ingestion mode when creating the SOMA; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional |
The URI to the resulting SOMAExperiment
generated from
the data contained in x
Reduced dimensions are written out as
sparse matrices within the obsm
group
of measurement
names ms_name
Column-wise relationship matrices are written out as
sparse matrices within the obsp
group
of measurement
names ms_name
Row-wise relationship matrices are written out as
sparse matrices within the varp
group
of measurement
names ms_name
colData
colData
is written out as a
data frame called “obs
” at
the experiment
level
Each assay matrix is written out as a
sparse matrix within the X
group of
measurement
names ms_name
. Names
for assay matrices within X
are taken from the
assay names. Assay matrices are
transposed (samples as rows) prior to writing
rowData
rowData
is written out as a
data frame called “var
” at
the measurement
level
SummarizedExperiment
object to a SOMAWrite a SummarizedExperiment
object to a SOMA
## S3 method for class 'SummarizedExperiment' write_soma( x, uri, ms_name, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
## S3 method for class 'SummarizedExperiment' write_soma( x, uri, ms_name, ..., ingest_mode = "write", platform_config = NULL, tiledbsoma_ctx = NULL )
x |
An object |
uri |
URI for resulting SOMA object |
ms_name |
Name for resulting measurement |
... |
Arguments passed to other methods |
ingest_mode |
Ingestion mode when creating the SOMA; choose from:
|
platform_config |
Optional platform configuration |
tiledbsoma_ctx |
Optional |
The URI to the resulting SOMAExperiment
generated from
the data contained in x
colData
colData
is written out as a
data frame called “obs
” at
the experiment
level
Each assay matrix is written out as a
sparse matrix within the X
group of
measurement
names ms_name
. Names
for assay matrices within X
are taken from the
assay names. Assay matrices are
transposed (samples as rows) prior to writing
rowData
rowData
is written out as a
data frame called “var
” at
the measurement
level