diff --git a/pkgdown.yml b/pkgdown.yml
index c2f52efc81..81c0b9abdc 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -6,4 +6,4 @@ articles:
soma-objects: soma-objects.html
soma-reading: soma-reading.html
UsingPlatformConfig: UsingPlatformConfig.html
-last_built: 2024-10-05T00:34Z
+last_built: 2024-10-07T22:31Z
diff --git a/reference/BlockwiseReadIterBase.html b/reference/BlockwiseReadIterBase.html
index eb39f132b5..c7361a1daa 100644
--- a/reference/BlockwiseReadIterBase.html
+++ b/reference/BlockwiseReadIterBase.html
@@ -39,7 +39,7 @@
diff --git a/reference/BlockwiseSparseReadIter.html b/reference/BlockwiseSparseReadIter.html
index 308a3f1b82..a724babad3 100644
--- a/reference/BlockwiseSparseReadIter.html
+++ b/reference/BlockwiseSparseReadIter.html
@@ -41,7 +41,7 @@
diff --git a/reference/BlockwiseTableReadIter.html b/reference/BlockwiseTableReadIter.html
index 842a90a274..fa760b2c73 100644
--- a/reference/BlockwiseTableReadIter.html
+++ b/reference/BlockwiseTableReadIter.html
@@ -41,7 +41,7 @@
diff --git a/reference/ConfigList.html b/reference/ConfigList.html
index b5a8d19f82..3bd1e311ac 100644
--- a/reference/ConfigList.html
+++ b/reference/ConfigList.html
@@ -45,7 +45,7 @@
diff --git a/reference/CoordsStrider.html b/reference/CoordsStrider.html
index ebd05fecca..24798b08ba 100644
--- a/reference/CoordsStrider.html
+++ b/reference/CoordsStrider.html
@@ -43,7 +43,7 @@
diff --git a/reference/EphemeralCollection.html b/reference/EphemeralCollection.html
index a35eebc500..1acece7b8f 100644
--- a/reference/EphemeralCollection.html
+++ b/reference/EphemeralCollection.html
@@ -39,7 +39,7 @@
diff --git a/reference/EphemeralCollectionBase.html b/reference/EphemeralCollectionBase.html
index 46668e2d55..633f126efa 100644
--- a/reference/EphemeralCollectionBase.html
+++ b/reference/EphemeralCollectionBase.html
@@ -39,7 +39,7 @@
diff --git a/reference/EphemeralExperiment.html b/reference/EphemeralExperiment.html
index dd929ed492..8a7b5f6e90 100644
--- a/reference/EphemeralExperiment.html
+++ b/reference/EphemeralExperiment.html
@@ -39,7 +39,7 @@
diff --git a/reference/EphemeralMeasurement.html b/reference/EphemeralMeasurement.html
index 0408ab935e..a2a412b349 100644
--- a/reference/EphemeralMeasurement.html
+++ b/reference/EphemeralMeasurement.html
@@ -39,7 +39,7 @@
diff --git a/reference/IntIndexer.html b/reference/IntIndexer.html
index 102add44be..b9a0061822 100644
--- a/reference/IntIndexer.html
+++ b/reference/IntIndexer.html
@@ -39,7 +39,7 @@
diff --git a/reference/MappingBase.html b/reference/MappingBase.html
index c6c6992472..592e390503 100644
--- a/reference/MappingBase.html
+++ b/reference/MappingBase.html
@@ -43,7 +43,7 @@
diff --git a/reference/PlatformConfig.html b/reference/PlatformConfig.html
index 2590351b01..7b98b602b3 100644
--- a/reference/PlatformConfig.html
+++ b/reference/PlatformConfig.html
@@ -47,7 +47,7 @@
diff --git a/reference/ReadIter.html b/reference/ReadIter.html
index 4a6f24faf3..175b80fe51 100644
--- a/reference/ReadIter.html
+++ b/reference/ReadIter.html
@@ -41,7 +41,7 @@
diff --git a/reference/SOMAArrayBase.html b/reference/SOMAArrayBase.html
index 8bdfec998e..4ad3ca4022 100644
--- a/reference/SOMAArrayBase.html
+++ b/reference/SOMAArrayBase.html
@@ -41,7 +41,7 @@
diff --git a/reference/SOMAAxisIndexer.html b/reference/SOMAAxisIndexer.html
index 26c6e44f21..5a2e1d96b8 100644
--- a/reference/SOMAAxisIndexer.html
+++ b/reference/SOMAAxisIndexer.html
@@ -45,7 +45,7 @@
diff --git a/reference/SOMAAxisQuery.html b/reference/SOMAAxisQuery.html
index 61c5a16dac..f6d4228384 100644
--- a/reference/SOMAAxisQuery.html
+++ b/reference/SOMAAxisQuery.html
@@ -61,7 +61,7 @@
diff --git a/reference/SOMAAxisQueryResult.html b/reference/SOMAAxisQueryResult.html
index 4a05e82959..a08cd9219c 100644
--- a/reference/SOMAAxisQueryResult.html
+++ b/reference/SOMAAxisQueryResult.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMACollection.html b/reference/SOMACollection.html
index 3eeed68b12..8ef1de7eef 100644
--- a/reference/SOMACollection.html
+++ b/reference/SOMACollection.html
@@ -45,7 +45,7 @@
diff --git a/reference/SOMACollectionBase.html b/reference/SOMACollectionBase.html
index 3ab19a8a1c..e46e4a53f4 100644
--- a/reference/SOMACollectionBase.html
+++ b/reference/SOMACollectionBase.html
@@ -41,7 +41,7 @@
diff --git a/reference/SOMACollectionCreate.html b/reference/SOMACollectionCreate.html
index cf6dc21de5..53b5a6fe3a 100644
--- a/reference/SOMACollectionCreate.html
+++ b/reference/SOMACollectionCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMACollectionOpen.html b/reference/SOMACollectionOpen.html
index e08d731f7f..612111b03b 100644
--- a/reference/SOMACollectionOpen.html
+++ b/reference/SOMACollectionOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMAContextBase.html b/reference/SOMAContextBase.html
index 45fd29d76d..c7892414db 100644
--- a/reference/SOMAContextBase.html
+++ b/reference/SOMAContextBase.html
@@ -43,7 +43,7 @@
diff --git a/reference/SOMADataFrame.html b/reference/SOMADataFrame.html
index d41f828e76..baf4cc60ef 100644
--- a/reference/SOMADataFrame.html
+++ b/reference/SOMADataFrame.html
@@ -45,7 +45,7 @@
diff --git a/reference/SOMADataFrameCreate.html b/reference/SOMADataFrameCreate.html
index c5e93d159b..fd2c52c8aa 100644
--- a/reference/SOMADataFrameCreate.html
+++ b/reference/SOMADataFrameCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMADataFrameOpen.html b/reference/SOMADataFrameOpen.html
index 7a3301b4b0..eaf0f0ba37 100644
--- a/reference/SOMADataFrameOpen.html
+++ b/reference/SOMADataFrameOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMADenseNDArray.html b/reference/SOMADenseNDArray.html
index e5ded22405..ba22d7217b 100644
--- a/reference/SOMADenseNDArray.html
+++ b/reference/SOMADenseNDArray.html
@@ -69,7 +69,7 @@
diff --git a/reference/SOMADenseNDArrayCreate.html b/reference/SOMADenseNDArrayCreate.html
index 8ced31ab8d..ac75c52198 100644
--- a/reference/SOMADenseNDArrayCreate.html
+++ b/reference/SOMADenseNDArrayCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMADenseNDArrayOpen.html b/reference/SOMADenseNDArrayOpen.html
index 896769d135..f7aa202db2 100644
--- a/reference/SOMADenseNDArrayOpen.html
+++ b/reference/SOMADenseNDArrayOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMAExperiment.html b/reference/SOMAExperiment.html
index 31eed27402..0ea07e5d90 100644
--- a/reference/SOMAExperiment.html
+++ b/reference/SOMAExperiment.html
@@ -45,7 +45,7 @@
diff --git a/reference/SOMAExperimentAxisQuery.html b/reference/SOMAExperimentAxisQuery.html
index 737cd1a56c..ff320b36fe 100644
--- a/reference/SOMAExperimentAxisQuery.html
+++ b/reference/SOMAExperimentAxisQuery.html
@@ -83,7 +83,7 @@
diff --git a/reference/SOMAExperimentCreate.html b/reference/SOMAExperimentCreate.html
index 481b9ba480..c9c94a5f97 100644
--- a/reference/SOMAExperimentCreate.html
+++ b/reference/SOMAExperimentCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMAExperimentOpen.html b/reference/SOMAExperimentOpen.html
index 6487f421cb..69fe3eeb95 100644
--- a/reference/SOMAExperimentOpen.html
+++ b/reference/SOMAExperimentOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMAMeasurement.html b/reference/SOMAMeasurement.html
index dc37261b01..b920c32277 100644
--- a/reference/SOMAMeasurement.html
+++ b/reference/SOMAMeasurement.html
@@ -45,7 +45,7 @@
diff --git a/reference/SOMAMeasurementCreate.html b/reference/SOMAMeasurementCreate.html
index 0e0578aea3..d0fecf68d3 100644
--- a/reference/SOMAMeasurementCreate.html
+++ b/reference/SOMAMeasurementCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMAMeasurementOpen.html b/reference/SOMAMeasurementOpen.html
index 4796c048eb..c027460cd7 100644
--- a/reference/SOMAMeasurementOpen.html
+++ b/reference/SOMAMeasurementOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMANDArrayBase.html b/reference/SOMANDArrayBase.html
index 2aca156dc1..9118dc31de 100644
--- a/reference/SOMANDArrayBase.html
+++ b/reference/SOMANDArrayBase.html
@@ -41,7 +41,7 @@
diff --git a/reference/SOMAOpen.html b/reference/SOMAOpen.html
index 9e33c3c217..51e96a3d95 100644
--- a/reference/SOMAOpen.html
+++ b/reference/SOMAOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMASparseNDArray.html b/reference/SOMASparseNDArray.html
index 3e7749456d..1968eee6f8 100644
--- a/reference/SOMASparseNDArray.html
+++ b/reference/SOMASparseNDArray.html
@@ -71,7 +71,7 @@
diff --git a/reference/SOMASparseNDArrayBlockwiseRead.html b/reference/SOMASparseNDArrayBlockwiseRead.html
index f9eb780f6f..8acc8c01bd 100644
--- a/reference/SOMASparseNDArrayBlockwiseRead.html
+++ b/reference/SOMASparseNDArrayBlockwiseRead.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMASparseNDArrayCreate.html b/reference/SOMASparseNDArrayCreate.html
index 8717f12e18..0fd2677333 100644
--- a/reference/SOMASparseNDArrayCreate.html
+++ b/reference/SOMASparseNDArrayCreate.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMASparseNDArrayOpen.html b/reference/SOMASparseNDArrayOpen.html
index 964dbe03ed..5a44bf0d00 100644
--- a/reference/SOMASparseNDArrayOpen.html
+++ b/reference/SOMASparseNDArrayOpen.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMASparseNDArrayRead.html b/reference/SOMASparseNDArrayRead.html
index dc7ec3c3b1..0bde8386fb 100644
--- a/reference/SOMASparseNDArrayRead.html
+++ b/reference/SOMASparseNDArrayRead.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMASparseNDArrayReadBase.html b/reference/SOMASparseNDArrayReadBase.html
index 59a33dfbf0..55e432d156 100644
--- a/reference/SOMASparseNDArrayReadBase.html
+++ b/reference/SOMASparseNDArrayReadBase.html
@@ -39,7 +39,7 @@
diff --git a/reference/SOMATileDBContext.html b/reference/SOMATileDBContext.html
index 78948bf0e8..d66eda5e3b 100644
--- a/reference/SOMATileDBContext.html
+++ b/reference/SOMATileDBContext.html
@@ -39,7 +39,7 @@
diff --git a/reference/ScalarMap.html b/reference/ScalarMap.html
index 735fb27937..117e922e09 100644
--- a/reference/ScalarMap.html
+++ b/reference/ScalarMap.html
@@ -43,7 +43,7 @@
diff --git a/reference/SparseReadIter.html b/reference/SparseReadIter.html
index ce48849007..066a58d6bb 100644
--- a/reference/SparseReadIter.html
+++ b/reference/SparseReadIter.html
@@ -43,7 +43,7 @@
diff --git a/reference/TableReadIter.html b/reference/TableReadIter.html
index 987857680a..a96d7268bd 100644
--- a/reference/TableReadIter.html
+++ b/reference/TableReadIter.html
@@ -43,7 +43,7 @@
diff --git a/reference/TileDBArray.html b/reference/TileDBArray.html
index e849df8298..91265ce088 100644
--- a/reference/TileDBArray.html
+++ b/reference/TileDBArray.html
@@ -41,7 +41,7 @@
diff --git a/reference/TileDBCreateOptions.html b/reference/TileDBCreateOptions.html
index c9a2de1eb3..2be56b7674 100644
--- a/reference/TileDBCreateOptions.html
+++ b/reference/TileDBCreateOptions.html
@@ -45,7 +45,7 @@
diff --git a/reference/TileDBGroup.html b/reference/TileDBGroup.html
index 55d2fe1022..161e465f3f 100644
--- a/reference/TileDBGroup.html
+++ b/reference/TileDBGroup.html
@@ -39,7 +39,7 @@
diff --git a/reference/TileDBObject.html b/reference/TileDBObject.html
index 7e4562e3ea..e216752d02 100644
--- a/reference/TileDBObject.html
+++ b/reference/TileDBObject.html
@@ -41,7 +41,7 @@
diff --git a/reference/delete_metadata.html b/reference/delete_metadata.html
index 1404fb975d..026ec6e14f 100644
--- a/reference/delete_metadata.html
+++ b/reference/delete_metadata.html
@@ -39,7 +39,7 @@
diff --git a/reference/example-datasets.html b/reference/example-datasets.html
index 78645d52da..193a85ebd5 100644
--- a/reference/example-datasets.html
+++ b/reference/example-datasets.html
@@ -47,7 +47,7 @@
diff --git a/reference/get_all_metadata.html b/reference/get_all_metadata.html
index 165b34e45a..9eb6a33ef6 100644
--- a/reference/get_all_metadata.html
+++ b/reference/get_all_metadata.html
@@ -41,7 +41,7 @@
diff --git a/reference/get_metadata.html b/reference/get_metadata.html
index 016d901574..efd95e1776 100644
--- a/reference/get_metadata.html
+++ b/reference/get_metadata.html
@@ -39,7 +39,7 @@
diff --git a/reference/get_metadata_num.html b/reference/get_metadata_num.html
index 58ebfddc2e..f692289763 100644
--- a/reference/get_metadata_num.html
+++ b/reference/get_metadata_num.html
@@ -39,7 +39,7 @@
diff --git a/reference/has_metadata.html b/reference/has_metadata.html
index ad8cbb5c07..7d7d0ed412 100644
--- a/reference/has_metadata.html
+++ b/reference/has_metadata.html
@@ -39,7 +39,7 @@
diff --git a/reference/matrixZeroBasedView.html b/reference/matrixZeroBasedView.html
index 1c71c48087..a1f562ba37 100644
--- a/reference/matrixZeroBasedView.html
+++ b/reference/matrixZeroBasedView.html
@@ -41,7 +41,7 @@
diff --git a/reference/set_log_level.html b/reference/set_log_level.html
index 95be1a5183..fc7f4908e0 100644
--- a/reference/set_log_level.html
+++ b/reference/set_log_level.html
@@ -39,7 +39,7 @@
diff --git a/reference/set_metadata.html b/reference/set_metadata.html
index 0f5c1ef3b9..2f963e6354 100644
--- a/reference/set_metadata.html
+++ b/reference/set_metadata.html
@@ -39,7 +39,7 @@
diff --git a/reference/show_package_versions.html b/reference/show_package_versions.html
index 2765317cca..1a0f5b6a61 100644
--- a/reference/show_package_versions.html
+++ b/reference/show_package_versions.html
@@ -41,7 +41,7 @@
diff --git a/reference/soma_context.html b/reference/soma_context.html
index c0fb7b1256..d1fe54ac12 100644
--- a/reference/soma_context.html
+++ b/reference/soma_context.html
@@ -39,7 +39,7 @@
diff --git a/reference/tiledbsoma_stats.html b/reference/tiledbsoma_stats.html
index 2b46ad55f9..60514b6600 100644
--- a/reference/tiledbsoma_stats.html
+++ b/reference/tiledbsoma_stats.html
@@ -41,7 +41,7 @@
diff --git a/reference/write_soma.Seurat.html b/reference/write_soma.Seurat.html
index de9f74b2bc..3141f4f366 100644
--- a/reference/write_soma.Seurat.html
+++ b/reference/write_soma.Seurat.html
@@ -39,7 +39,7 @@
diff --git a/reference/write_soma.SingleCellExperiment.html b/reference/write_soma.SingleCellExperiment.html
index 7a1f7b804e..4fca993039 100644
--- a/reference/write_soma.SingleCellExperiment.html
+++ b/reference/write_soma.SingleCellExperiment.html
@@ -41,7 +41,7 @@
diff --git a/reference/write_soma.SummarizedExperiment.html b/reference/write_soma.SummarizedExperiment.html
index bac183b695..161d2fab12 100644
--- a/reference/write_soma.SummarizedExperiment.html
+++ b/reference/write_soma.SummarizedExperiment.html
@@ -41,7 +41,7 @@
diff --git a/reference/write_soma.html b/reference/write_soma.html
index 3dfc67567e..03f6f7b3a9 100644
--- a/reference/write_soma.html
+++ b/reference/write_soma.html
@@ -43,7 +43,7 @@
diff --git a/reference/write_soma_objects.html b/reference/write_soma_objects.html
index 85ac8e4503..be02afb40e 100644
--- a/reference/write_soma_objects.html
+++ b/reference/write_soma_objects.html
@@ -39,7 +39,7 @@
diff --git a/reference/write_soma_seurat_sub.html b/reference/write_soma_seurat_sub.html
index 8b9f598625..a8de759b4e 100644
--- a/reference/write_soma_seurat_sub.html
+++ b/reference/write_soma_seurat_sub.html
@@ -39,7 +39,7 @@
diff --git a/search.json b/search.json
index 49741974dc..35017d98ff 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"/articles/UsingPlatformConfig.html","id":"advanced-schema-configuration","dir":"Articles","previous_headings":"","what":"Advanced schema configuration","title":"Using PlatformConfig","text":"Default schema-level TileDB parameters set useful users. particular needs use-cases, though, can use PlatformConfig options override default schema parameters. can passed SOMADataFrameCreate, SOMASparseNDArrayCreate, et al. Coming soon: advice connect from_seurat.","code":"platform_config <- PlatformConfig$new() platform_config$set('tiledb', 'create', 'dataframe_dim_zstd_level', 8) platform_config$set('tiledb', 'create', 'sparse_nd_array_dim_zstd_level', 9) platform_config$set('tiledb', 'create', 'tile_order', 'ROW_MAJOR') platform_config$set('tiledb', 'create', 'cell_order', 'ROW_MAJOR') platform_config$set('tiledb', 'create', 'dims', list( soma_dim_0 = list(filters = list(list(name=\"ZSTD\", COMPRESSION_LEVEL=9)), tile=100000), soma_dim_1 = list(filters = list(list(name=\"ZSTD\", COMPRESSION_LEVEL=9)), tile=100000), )) platform_config$set('tiledb', 'create', 'attrs', list( soma_data_a = list(filters = list(\"RLE\")) )) tdco <- TileDBCreateOptions$new(platform_config)"},{"path":"/articles/soma-experiment-queries.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Querying a SOMA experiment","text":"notebook, ’ll take quick look query SOMAExperiment using SOMAExperimentAxisQuery class. allows easy selection data SOMAMeasurement filtering annotations stored axis data frame (.e., obs var).","code":"library(tiledbsoma)"},{"path":"/articles/soma-experiment-queries.html","id":"example-data","dir":"Articles","previous_headings":"","what":"Example data","title":"Querying a SOMA experiment","text":"Load bundled SOMAExperiment containing subsetted version 10X genomics PBMC dataset provided SeuratObject. return SOMAExperiment object.","code":"experiment <- load_dataset(\"soma-exp-pbmc-small\") experiment #> #> uri: /tmp/RtmphpRy8I/soma-exp-pbmc-small"},{"path":"/articles/soma-experiment-queries.html","id":"querying-basics","dir":"Articles","previous_headings":"","what":"Querying basics","title":"Querying a SOMA experiment","text":"perform query ’ll need initialize new SOMAExperimentAxisQuery object, specifying SOMAExperiment SOMAMeasurement within experiment want query. can see current experiment contains single measurement: \"RNA\". use larger (smaller) buffer sizes: Alternatively, can environment export TILEDB_SOMA_INIT_BUFFER_BYTES=2147483648 loading data. Now can construct query object. ’s created, can use query object inspect, select, extract filtered data experiment. example, can use n_obs n_vars determine number observations variables passed filtering criteria. Since didn’t specify filtering criteria, numbers match full size experiment. Number observations: Number variables: can also extract data component experiment. ’ll read obs data frame query using obs() returns iterator arrow::Table. iterator useful data large load memory allowing stream data chunks. applies var() well. load data memory can concatenate chunks iterator shown . reminder arrow:Table can easily cast tibble Alternatively, can use iterator, retrieves data chunks smaller soma.init_buffer_bytes context field. can use iterator’s method $read_next() load chunk memory. example full obs table relatively small fits one chunk. bigger SOMADataFrame can check iteration finished checking logical $read_complete(). demonstrate creating new iterator. can also access expression via X(). Similarly obs() var(), X() intended iteration, case access two different iterators, thus X() returns reader gives access iterator arrow::Table one Matrix::sparse_matrix. Let’s take look Arrow Table iterator: obs example data small enough fit one chunk. bigger data can user iterator$read_complete() check status iteration iterator$concat() concatenate rest chunks. iterator Matrix::sparse_matrix works way. Keep mind matrix format dgTMatrix memory-efficient format type can easily iterated. importantly, resulting object “view” full matrix original shape indexes data corresponding query coordinates filters (see section ).","code":"experiment$ms #> #> uri: file:///tmp/RtmphpRy8I/soma-exp-pbmc-small/ms ctx <- SOMATileDBContext$new(c(soma.init_buffer_bytes=as.character(2 * 1024**3))) experiment <- SOMAExperimentOpen(experiment$uri, tiledbsoma_ctx = ctx) query <- SOMAExperimentAxisQuery$new( experiment = experiment, measurement_name = \"RNA\" ) query$n_obs #> [1] 80 query$n_vars #> [1] 230 iterator <- query$obs() obs <- iterator$concat() obs #> Table #> 80 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id obs$to_data_frame() #> # A tibble: 80 × 9 #> soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents #> #> 1 0 SeuratProj… 70 47 0 A #> 2 1 SeuratProj… 85 52 0 A #> 3 2 SeuratProj… 87 50 1 B #> 4 3 SeuratProj… 127 56 0 A #> 5 4 SeuratProj… 173 53 0 A #> 6 5 SeuratProj… 70 48 0 A #> 7 6 SeuratProj… 64 36 0 A #> 8 7 SeuratProj… 72 45 0 A #> 9 8 SeuratProj… 52 36 0 A #> 10 9 SeuratProj… 100 41 0 A #> # ℹ 70 more rows #> # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id iterator <- query$obs() iterator$read_next() #> Table #> 80 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id iterator <- experiment$obs$read() iterator$read_complete() #> [1] FALSE iterator$read_next() #> Table #> 80 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id iterator$read_complete() #> [1] TRUE reader <- query$X(layer_name = \"counts\") table_irerator <- reader$tables() table_irerator$read_next() #> Table #> 4456 rows x 3 columns #> $soma_dim_0 #> $soma_dim_1 #> $soma_data reader <- query$X(layer_name = \"counts\") iterator <- reader$sparse_matrix() str(iterator$read_next()) #> Formal class 'dgTMatrix' [package \"Matrix\"] with 6 slots #> ..@ i : int [1:4456] 0 0 0 0 0 0 0 0 0 0 ... #> ..@ j : int [1:4456] 1 5 8 11 22 30 33 34 36 38 ... #> ..@ Dim : int [1:2] 80 230 #> ..@ Dimnames:List of 2 #> .. ..$ : NULL #> .. ..$ : NULL #> ..@ x : num [1:4456] 1 1 3 1 1 4 1 5 1 1 ... #> ..@ factors : list()"},{"path":"/articles/soma-experiment-queries.html","id":"adding-filters","dir":"Articles","previous_headings":"","what":"Adding filters","title":"Querying a SOMA experiment","text":"Adding filters requires creating SOMAAxisQuery object allows define coordinates, value filters, axis. ’ll create query obs slices first 40 rows, filters subset based nCount_RNA column. apply filter ’ll pass new SOMAExperimentAxisQuery object. Let’s see many observations query identified. , can load obs data frame memory now includes filtered observations. well X matrix two different formats: arrow::Table Matrix::sparse_matrix dgTMatrix format. re-indexed re-shaped sparse matrix see section .","code":"obs_query <- SOMAAxisQuery$new( coords = list(soma_joinid = 0:39), value_filter = \"nCount_RNA > 100\" ) query <- SOMAExperimentAxisQuery$new( experiment = experiment, measurement_name = \"RNA\", obs_query = obs_query ) query$n_obs #> [1] 26 obs <- query$obs(column_names = c(\"obs_id\", \"nCount_RNA\"))$concat() obs$to_data_frame() #> # A tibble: 26 × 2 #> obs_id nCount_RNA #> #> 1 TGACTGGATTCTCA 127 #> 2 AGTCAGACTGCACA 173 #> 3 AGAGATGATCTCGC 191 #> 4 GGGTAACTCTAGTG 101 #> 5 CTAAACCTGTGCAT 168 #> 6 TTGGTACTGAATCC 135 #> 7 TACATCACGCTAAC 109 #> 8 TTACCATGAATCGC 298 #> 9 ATAGGAGAAACAGA 406 #> 10 GCGCACGACTTTAC 213 #> # ℹ 16 more rows query$X(\"counts\")$tables()$concat() #> Table #> 1485 rows x 3 columns #> $soma_dim_0 #> $soma_dim_1 #> $soma_data str(query$X(\"counts\")$sparse_matrix()$concat()) #> Formal class 'dgTMatrix' [package \"Matrix\"] with 6 slots #> ..@ i : int [1:1485] 3 3 3 3 3 3 3 3 3 3 ... #> ..@ j : int [1:1485] 8 11 22 30 31 32 33 34 37 38 ... #> ..@ Dim : int [1:2] 80 230 #> ..@ Dimnames:List of 2 #> .. ..$ : NULL #> .. ..$ : NULL #> ..@ x : num [1:1485] 13 1 6 5 2 1 2 2 1 1 ... #> ..@ factors : list()"},{"path":"/articles/soma-experiment-queries.html","id":"export-to-an-annotated-re-indexed-sparse-matrix","dir":"Articles","previous_headings":"","what":"Export to an annotated re-indexed sparse matrix","title":"Querying a SOMA experiment","text":"component queried SOMAExperiment can exported [sparse matrix][Matrix::sparseMatrix-class] using to_sparse_matrix() method. example, let’s create sparse matrix filtered expression data. ’ll create new query returns smaller subset data make output easier read. indicate want access \"counts\" layer \"X\" collection. default, dimensions named using soma_joinid values unique observation variable. However, dimension names can come column obs var arrays uniquely identifies record. expression matrix makes sense name dimensions using cell barcodes gene names, stored obs_id var_id columns, respectively. can use method SOMAExperiment’s collections. Let’s access t-SNE coordinates stored obsm collection’s X_tsne layer, populating row names cell barcodes.","code":"query <- SOMAExperimentAxisQuery$new( experiment = experiment, measurement_name = \"RNA\", obs_query = SOMAAxisQuery$new(coords = 0:9), var_query = SOMAAxisQuery$new(coords = 0:9) ) query$to_sparse_matrix( collection = \"X\", layer = \"counts\" ) #> 10 x 10 sparse Matrix of class \"dgTMatrix\" #> [[ suppressing 10 column names '0', '1', '2' ... ]] #> #> 0 . 1 . . . 1 . . 3 . #> 1 . . . 1 . . . . 7 . #> 2 . . . . . . . . 11 . #> 3 . . . . . . . . 13 . #> 4 . . . 1 . . . . 3 . #> 5 . . . 1 . . . . 4 . #> 6 . . . . . . . . 6 . #> 7 . . . 1 . . . . 4 . #> 8 . . . . . . . . 2 . #> 9 . 1 . . . . . . 21 . query$to_sparse_matrix( collection = \"X\", layer = \"counts\", obs_index = \"obs_id\", var_index = \"var_id\" ) #> 10 x 10 sparse Matrix of class \"dgTMatrix\" #> [[ suppressing 10 column names 'MS4A1', 'CD79B', 'CD79A' ... ]] #> #> ATGCCAGAACGACT . 1 . . . 1 . . 3 . #> CATGGCCTGTGCAT . . . 1 . . . . 7 . #> GAACCTGATGAACC . . . . . . . . 11 . #> TGACTGGATTCTCA . . . . . . . . 13 . #> AGTCAGACTGCACA . . . 1 . . . . 3 . #> TCTGATACACGTGT . . . 1 . . . . 4 . #> TGGTATCTAAACAG . . . . . . . . 6 . #> GCAGCTCTGTTTCT . . . 1 . . . . 4 . #> GATATAACACGCAT . . . . . . . . 2 . #> AATGTTGACAGTCA . 1 . . . . . . 21 . query$to_sparse_matrix( collection = \"obsm\", layer = \"X_tsne\", obs_index = \"obs_id\" ) #> 10 x 2 sparse Matrix of class \"dgTMatrix\" #> 0 1 #> ATGCCAGAACGACT 0.8675977 -8.1007483 #> CATGGCCTGTGCAT -7.3925306 -8.7717451 #> GAACCTGATGAACC -28.2064258 0.2410102 #> TGACTGGATTCTCA 16.3480689 -11.1633255 #> AGTCAGACTGCACA 1.9113998 -11.1929311 #> TCTGATACACGTGT 3.1475998 -9.9369312 #> TGGTATCTAAACAG 17.8526863 -9.8978901 #> GCAGCTCTGTTTCT -6.4912187 -8.3874434 #> GATATAACACGCAT 1.3305297 -9.6807936 #> AATGTTGACAGTCA 16.9642732 -9.4295980"},{"path":"/articles/soma-experiment-queries.html","id":"export-to-seurat","dir":"Articles","previous_headings":"","what":"Export to Seurat","title":"Querying a SOMA experiment","text":"query object also contains methods loading results Seurat object (Seurat’s component classes). to_sparse_matrix() method, can specify obs_index var_index use naming dimensions resulting object.","code":"query <- SOMAExperimentAxisQuery$new( experiment = experiment, measurement_name = \"RNA\" ) query$to_seurat( X_layers = c(counts = \"counts\", data = \"data\"), obs_index = \"obs_id\", var_index = \"var_id\" ) #> An object of class Seurat #> 230 features across 80 samples within 1 assay #> Active assay: RNA (230 features, 0 variable features) #> 2 layers present: counts, data #> 2 dimensional reductions calculated: pca, tsne"},{"path":"/articles/soma-objects.html","id":"example-data","dir":"Articles","previous_headings":"","what":"Example data","title":"SOMA objects overview","text":"Extract bundled SOMAExperiment containing subsetted version 10X genomics PBMC dataset provided SeuratObject. return file path extracted dataset.","code":"uri <- extract_dataset(\"soma-exp-pbmc-small\") uri #> [1] \"/tmp/RtmpqbBhLf/soma-exp-pbmc-small\""},{"path":"/articles/soma-objects.html","id":"somaexperiment","dir":"Articles","previous_headings":"","what":"SOMAExperiment","title":"SOMA objects overview","text":"SOMAExperiment class represents top-level container experiments include one measurements across set observations (e.g., cells biospecimens). always contains least two objects: obs: SOMADataFrame containing primary annotations observations. ms: SOMACollection individual measurements (.e., modalities). Open SOMAExperiment using file path inspect object: Note opening SOMAExperiment (SOMA object) returns pointer object disk. data actually read memory ’s requested. important full experiment may large fit memory. pre-defined fields within experiment can accessed using $ operator. example, access ms field: returns SOMACollection measurements. ’ll take closer look later. access obs field containing observation annotations:","code":"experiment <- SOMAExperimentOpen(uri) experiment #> #> uri: /tmp/RtmpqbBhLf/soma-exp-pbmc-small experiment$ms #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/ms experiment$obs #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/obs #> dimensions: soma_joinid #> attributes: orig.ident, nCount_RNA, nFeature_RNA, RNA_snn_res.0.8, letter.idents, groups,..."},{"path":"/articles/soma-objects.html","id":"somadataframe","dir":"Articles","previous_headings":"","what":"SOMADataFrame","title":"SOMA objects overview","text":"obs field contains SOMADataFrame, multi-column table user-defined schema. schema expressed Arrow Schema, defines column names value types. example, let’s inspect schema obs: Note soma_joinid field exists every SOMADataFrame acts join key objects dataset. , SOMA object accessed, pointer returned data read memory. load data memory, call read()$concat(), returns Arrow Table easily converted data frame appending $to_data_frame(). amount data can read determined soma.init_buffer_bytes configuration parameter, , default, set 16MB column. requested data larger value error thrown. system memory, can increase parameter larger value read data . Alternatively, can use iterated reader, retrieves data chunks smaller soma.init_buffer_bytes parameter. result list Arrow Tables. can also select subset rows SOMADataFrame using coords argument. retrieve required subset disk memory. example, select first 10 rows: NOTE: coords argument 0-based. TileDB columnar format, can also select subset columns: Finally, can use value_filter retrieve subset rows match certain condition. course, can combine arguments together get data need.","code":"experiment$obs$schema() #> Schema #> soma_joinid: int64 not null #> orig.ident: large_string #> nCount_RNA: double #> nFeature_RNA: int32 #> RNA_snn_res.0.8: large_string #> letter.idents: large_string #> groups: large_string #> RNA_snn_res.1: large_string #> obs_id: large_string experiment$obs$read()$concat() #> Table #> 80 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id iterator <- experiment$obs$read() iterator$read_next() #> Table #> 80 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id experiment$obs$read(coords = 0:9)$concat() #> Table #> 10 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id experiment$obs$read(0:9, column_names = c(\"obs_id\", \"nCount_RNA\"))$concat() #> Table #> 10 rows x 2 columns #> $obs_id #> $nCount_RNA experiment$obs$read(value_filter = \"nCount_RNA > 100\")$concat() #> Table #> 62 rows x 9 columns #> $soma_joinid #> $orig.ident #> $nCount_RNA #> $nFeature_RNA #> $RNA_snn_res.0.8 #> $letter.idents #> $groups #> $RNA_snn_res.1 #> $obs_id "},{"path":"/articles/soma-objects.html","id":"somacollection","dir":"Articles","previous_headings":"","what":"SOMACollection","title":"SOMA objects overview","text":"SOMACollection persistent container named SOMA objects, stored mapping string keys SOMA object values. analogous named list R. ms member SOMAExperiment implemented SOMACollection. Let’s take look: case, one member: RNA, SOMAMeasurement. specific measurement can accessed name get() method:","code":"experiment$ms #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/ms experiment$ms$get(\"RNA\") #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/ms/RNA"},{"path":"/articles/soma-objects.html","id":"somameasurement","dir":"Articles","previous_headings":"","what":"SOMAMeasurement","title":"SOMA objects overview","text":"SOMAMeasurement unimodal container particular data type (case, RNA). contains following pre-defined fields: var: SOMADataFrame containing primary annotatinos variables (.e., features genes). X: SOMACollection 2D matrices containing feature measurements across observations. matrix within X referred layer. obsm/varm: SOMACollection 2D matrices containing derived results observations/features. Typically used store dimensionality reduction results. obsp/varp: SOMACollection 2D pairwise matrices containing derived results observations/features. Typically used store graphs pairwise relationships.","code":""},{"path":"/articles/soma-objects.html","id":"somasparsendarray","dir":"Articles","previous_headings":"","what":"SOMASparseNDArray","title":"SOMA objects overview","text":"matrix-like data structures contained within SOMAMeasurement’s pre-defined fields represented SOMASparseNDArray objects. SOMASparseNDArray sparse, N-dimensional array, offset (zero-based) integer indexing dimension, user-defined schema, includes: element type, expressed Arrow type, indicating type data contained within array, shape array, .e., number dimensions length dimension. disk, sparse array encodes non-zero records. Elements explicitly stored assumed zeros. Let’s take look X data matrices within RNA measurement: collection contains 3 layers corresponding raw, normalized, scaled slots original Seurat object. X layers can accessed using get(): returns SOMASparseNDArray. , can inspect array’s schema: see two dimensions (soma_dim_0 soma_dim_1) soma_data attribute type double. Let’s look shape: can get number non-zero elements calling nnz(): Let’s load data sparse matrix memory: Note: reading full matrix memory subsetting first 5 rows 10 columns truncate output. uses zero-based underlying representation access accesses one-based view sparse matrix functionality package Matrix imposes . Similarly SOMADataFrames, read() method can define coordinates slice obtain subset matrix disk:","code":"X <- experiment$ms$get(\"RNA\")$X X #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/ms/RNA/X X_data <- X$get(\"data\") X_data #> #> uri: file:///tmp/RtmpqbBhLf/soma-exp-pbmc-small/ms/RNA/X/data #> dimensions: soma_dim_0, soma_dim_1 #> attributes: soma_data X_data$schema() #> Schema #> soma_dim_0: int64 not null #> soma_dim_1: int64 not null #> soma_data: double not null X_data$shape() #> integer64 #> [1] 80 230 X_data$nnz() #> [1] 4456 X_data$read()$sparse_matrix()$concat()[1:5, 1:10] #> 5 x 10 sparse Matrix of class \"dgTMatrix\" #> #> [1,] . 4.968821 . . . 4.968821 . . 6.062788 . #> [2,] . . . 4.776153 . . . . 6.714813 . #> [3,] . . . . . . . . 7.143118 . #> [4,] . . . . . . . . 6.932079 . #> [5,] . . . 4.074201 . . . . 5.161411 . X_data$read(coords = list(soma_dim_0 = 0:4, soma_dim_1 = 0:9))$sparse_matrix()$concat() #> 80 x 230 sparse Matrix of class \"dgTMatrix\" #> #> [1,] . 4.968821 . . . 4.968821 . . 6.062788 . . . . . . . . . . . . . . #> [2,] . . . 4.776153 . . . . 6.714813 . . . . . . . . . . . . . . #> [3,] . . . . . . . . 7.143118 . . . . . . . . . . . . . . #> [4,] . . . . . . . . 6.932079 . . . . . . . . . . . . . . #> [5,] . . . 4.074201 . . . . 5.161411 . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #> #> [1,] . . . . . . . . . . . . . . . . . . . . . . #> [2,] . . . . . . . . . . . . . . . . . . . . . . #> [3,] . . . . . . . . . . . . . . . . . . . . . . #> [4,] . . . . . . . . . . . . . . . . . . . . . . #> [5,] . . . . . . . . . . . . . . . . . . . . . . #> [6,] . . . . . . . . . . . . . . . . . . . . . . #> [7,] . . . . . . . . . . . . . . . . . . . . . . #> [8,] . . . . . . . . . . . . . . . . . . . . . . #> [9,] . . . . . . . . . . . . . . . . . . . . . . #> [10,] . . . . . . . . . . . . . . . . . . . . . . #> [11,] . . . . . . . . . . . . . . . . . . . . . . #> [12,] . . . . . . . . . . . . . . . . . . . . . . #> [13,] . . . . . . . . . . . . . . . . . . . . . . #> [14,] . . . . . . . . . . . . . . . . . . . . . . #> [15,] . . . . . . . . . . . . . . . . . . . . . . #> [16,] . . . . . . . . . . . . . . . . . . . . . . #> [17,] . . . . . . . . . . . . . . . . . . . . . . #> [18,] . . . . . . . . . . . . . . . . . . . . . . #> [19,] . . . . . . . . . . . . . . . . . . . . . . #> [20,] . . . . . . . . . . . . . . . . . . . . . . #> [21,] . . . . . . . . . . . . . . . . . . . . . . #> [22,] . . . . . . . . . . . . . . . . . . . . . . #> [23,] . . . . . . . . . . . . . . . . . . . . . . #> [24,] . . . . . . . . . . . . . . . . . . . . . . #> [25,] . . . . . . . . . . . . . . . . . . . . . . #> [26,] . . . . . . . . . . . . . . . . . . . . . . #> [27,] . . . . . . . . . . . . . . . . . . . . . . #> [28,] . . . . . . . . . . . . . . . . . . . . . . #> [29,] . . . . . . . . . . . . . . . . . . . . . . #> [30,] . . . . . . . . . . . . . . . . . . . . . . #> [31,] . . . . . . . . . . . . . . . . . . . . . . #> [32,] . . . . . . . . . . . . . . . . . . . . . . #> [33,] . . . . . . . . . . . . . . . . . . . . . . #> [34,] . . . . . . . . . . . . . . . . . . . . . . #> [35,] . . . . . . . . . . . . . . . . . . . . . . #> [36,] . . . . . . . . . . . . . . . . . . . . . . #> [37,] . . . . . . . . . . . . . . . . . . . . . . #> [38,] . . . . . . . . . . . . . . . . . . . . . . #> [39,] . . . . . . . . . . . . . . . . . . . . . . #> [40,] . . . . . . . . . . . . . . . . . . . . . . #> [41,] . . . . . . . . . . . . . . . . . . . . . . #> [42,] . . . . . . . . . . . . . . . . . . . . . . #> [43,] . . . . . . . . . . . . . . . . . . . . . . #> [44,] . . . . . . . . . . . . . . . . . . . . . . #> [45,] . . . . . . . . . . . . . . . . . . . . . . #> [46,] . . . . . . . . . . . . . . . . . . . . . . #> [47,] . . . . . . . . . . . . . . . . . . . . . . #> [48,] . . . . . . . . . . . . . . . . . . . . . . #> [49,] . . . . . . . . . . . . . . . . . . . . . . #> [50,] . . . . . . . . . . . . . . . . . . . . . . #> [51,] . . . . . . . . . . . . . . . . . . . . . . #> [52,] . . . . . . . . . . . . . . . . . . . . . . #> [53,] . . . . . . . . . . . . . . . . . . . . . . #> [54,] . . . . . . . . . . . . . . . . . . . . . . #> [55,] . . . . . . . . . . . . . . . . . . . . . . #> [56,] . . . . . . . . . . . . . . . . . . . . . . #> [57,] . . . . . . . . . . . . . . . . . . . . . . #> [58,] . . . . . . . . . . . . . . . . . . . . . . #> [59,] . . . . . . . . . . . . . . . . . . . . . . #> [60,] . . . . . . . . . . . . . . . . . . . . . . #> [61,] . . . . . . . . . . . . . . . . . . . . . . #> [62,] . . . . . . . . . . . . . . . . . . . . . . #> [63,] . . . . . . . . . . . . . . . . . . . . . . #> [64,] . . . . . . . . . . . . . . . . . . . . . . #> [65,] . . . . . . . . . . . . . . . . . . . . . . #> [66,] . . . . . . . . . . . . . . . . . . . . . . #> [67,] . . . . . . . . . . . . . . . . . . . . . . #> [68,] . . . . . . . . . . . . . . . . . . . . . . #> [69,] . . . . . . . . . . . . . . . . . . . . . . #> [70,] . . . . . . . . . . . . . . . . . . . . . . #> [71,] . . . . . . . . . . . . . . . . . . . . . . #> [72,] . . . . . . . . . . . . . . . . . . . . . . #> [73,] . . . . . . . . . . . . . . . . . . . . . . #> [74,] . . . . . . . . . . . . . . . . . . . . . . #> [75,] . . . . . . . . . . . . . . . . . . . . . . #> [76,] . . . . . . . . . . . . . . . . . . . . . . #> [77,] . . . . . . . . . . . . . . . . . . . . . . #> [78,] . . . . . . . . . . . . . . . . . . . . . . #> [79,] . . . . . . . . . . . . . . . . . . . . . . #> [80,] . . . . . . . . . . . . . . . . . . . . . ."},{"path":"/articles/soma-reading.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Reading from SOMA objects","text":"tutorial ’ll learn read data various SOMA objects. assume familiarity SOMA objects, recommended go vignette(\"soma-objects\") first. core feature SOMA ability read subsets data disk memory slices. SOMA uses Apache Arrow intermediate -memory storage. , slices can converted native R objects, like data frames matrices.","code":"library(tiledbsoma)"},{"path":"/articles/soma-reading.html","id":"example-data","dir":"Articles","previous_headings":"","what":"Example data","title":"Reading from SOMA objects","text":"Load bundled SOMAExperiment containing subsetted version 10X genomics PBMC dataset provided SeuratObject. return SOMAExperiment object. small dataset easily fits memory, ’ll focus operations can easily scale larger datasets well.","code":"experiment <- load_dataset(\"soma-exp-pbmc-small\")"},{"path":"/articles/soma-reading.html","id":"soma-dataframe","dir":"Articles","previous_headings":"","what":"SOMA DataFrame","title":"Reading from SOMA objects","text":"’ll start obs dataframe. Simply calling read()$concat() method load data memory Arrow Table. easily converted data.frame using Arrow’s methods:","code":"obs <- experiment$obs obs$read()$concat() ## Table ## 80 rows x 9 columns ## $soma_joinid ## $orig.ident ## $nCount_RNA ## $nFeature_RNA ## $RNA_snn_res.0.8 ## $letter.idents ## $groups ## $RNA_snn_res.1 ## $obs_id obs$read()$concat()$to_data_frame() ## # A tibble: 80 × 9 ## soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents ## ## 1 0 SeuratProj… 70 47 0 A ## 2 1 SeuratProj… 85 52 0 A ## 3 2 SeuratProj… 87 50 1 B ## 4 3 SeuratProj… 127 56 0 A ## 5 4 SeuratProj… 173 53 0 A ## 6 5 SeuratProj… 70 48 0 A ## 7 6 SeuratProj… 64 36 0 A ## 8 7 SeuratProj… 72 45 0 A ## 9 8 SeuratProj… 52 36 0 A ## 10 9 SeuratProj… 100 41 0 A ## # ℹ 70 more rows ## # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id "},{"path":"/articles/soma-reading.html","id":"slicing","dir":"Articles","previous_headings":"SOMA DataFrame","what":"Slicing","title":"Reading from SOMA objects","text":"Slices data can read passing coordinates read() method. , let’s take look schema obs: SOMA object, can slice across indexed column (“dimension” TileDB parlance). can use dimnames() retrieve names SOMA object’s indexed dimensions: case, single dimension called soma_joinid. schema can see contains integers. Let’s look ways slice dataframe. Select single row: Select multiple, non-contiguous rows: Select multiple, contiguous rows:","code":"obs$schema() ## Schema ## soma_joinid: int64 not null ## orig.ident: large_string ## nCount_RNA: double ## nFeature_RNA: int32 ## RNA_snn_res.0.8: large_string ## letter.idents: large_string ## groups: large_string ## RNA_snn_res.1: large_string ## obs_id: large_string obs$dimnames() ## [1] \"soma_joinid\" obs$read(coords = 0)$concat() ## Table ## 1 rows x 9 columns ## $soma_joinid ## $orig.ident ## $nCount_RNA ## $nFeature_RNA ## $RNA_snn_res.0.8 ## $letter.idents ## $groups ## $RNA_snn_res.1 ## $obs_id obs$read(coords = c(0, 2))$concat() ## Table ## 2 rows x 9 columns ## $soma_joinid ## $orig.ident ## $nCount_RNA ## $nFeature_RNA ## $RNA_snn_res.0.8 ## $letter.idents ## $groups ## $RNA_snn_res.1 ## $obs_id obs$read(coords = 0:4)$concat() ## Table ## 5 rows x 9 columns ## $soma_joinid ## $orig.ident ## $nCount_RNA ## $nFeature_RNA ## $RNA_snn_res.0.8 ## $letter.idents ## $groups ## $RNA_snn_res.1 ## $obs_id "},{"path":"/articles/soma-reading.html","id":"selecting-columns","dir":"Articles","previous_headings":"SOMA DataFrame","what":"Selecting columns","title":"Reading from SOMA objects","text":"TileDB columnar format, possible select subset columns read using column_names argument:","code":"obs$read(coords = 0:4, column_names = c(\"obs_id\", \"groups\"))$concat() ## Table ## 5 rows x 2 columns ## $obs_id ## $groups "},{"path":"/articles/soma-reading.html","id":"filtering","dir":"Articles","previous_headings":"SOMA DataFrame","what":"Filtering","title":"Reading from SOMA objects","text":"addition slicing coordinates can also apply filters data using value_filter argument. expressions pushed TileDB engine efficiently applied data disk. examples. Identify cells \"g1\" group: Identify cells \"g1\" \"g2\" group: Altenratively, can use %% operator: Identify cells \"g1\" group 60 features:","code":"obs$read(value_filter = \"groups == 'g1'\")$concat()$to_data_frame() ## # A tibble: 44 × 9 ## soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents ## ## 1 1 SeuratProj… 85 52 0 A ## 2 5 SeuratProj… 70 48 0 A ## 3 6 SeuratProj… 64 36 0 A ## 4 7 SeuratProj… 72 45 0 A ## 5 8 SeuratProj… 52 36 0 A ## 6 9 SeuratProj… 100 41 0 A ## 7 11 SeuratProj… 191 61 0 A ## 8 15 SeuratProj… 168 44 0 A ## 9 17 SeuratProj… 135 45 0 A ## 10 18 SeuratProj… 79 43 0 A ## # ℹ 34 more rows ## # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id obs$read(value_filter = \"groups == 'g1' | groups == 'g2'\")$concat()$to_data_frame() ## # A tibble: 80 × 9 ## soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents ## ## 1 0 SeuratProj… 70 47 0 A ## 2 1 SeuratProj… 85 52 0 A ## 3 2 SeuratProj… 87 50 1 B ## 4 3 SeuratProj… 127 56 0 A ## 5 4 SeuratProj… 173 53 0 A ## 6 5 SeuratProj… 70 48 0 A ## 7 6 SeuratProj… 64 36 0 A ## 8 7 SeuratProj… 72 45 0 A ## 9 8 SeuratProj… 52 36 0 A ## 10 9 SeuratProj… 100 41 0 A ## # ℹ 70 more rows ## # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id obs$read(value_filter = \"groups %in% c('g1', 'g2')\")$concat()$to_data_frame() ## # A tibble: 80 × 9 ## soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents ## ## 1 0 SeuratProj… 70 47 0 A ## 2 1 SeuratProj… 85 52 0 A ## 3 2 SeuratProj… 87 50 1 B ## 4 3 SeuratProj… 127 56 0 A ## 5 4 SeuratProj… 173 53 0 A ## 6 5 SeuratProj… 70 48 0 A ## 7 6 SeuratProj… 64 36 0 A ## 8 7 SeuratProj… 72 45 0 A ## 9 8 SeuratProj… 52 36 0 A ## 10 9 SeuratProj… 100 41 0 A ## # ℹ 70 more rows ## # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id obs$read(value_filter = \"groups == 'g1' & nFeature_RNA > 60\")$concat()$to_data_frame() ## # A tibble: 20 × 9 ## soma_joinid orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents ## ## 1 11 SeuratProj… 191 61 0 A ## 2 20 SeuratProj… 298 65 1 B ## 3 21 SeuratProj… 406 74 1 B ## 4 24 SeuratProj… 463 77 1 B ## 5 29 SeuratProj… 353 80 1 B ## 6 50 SeuratProj… 371 75 1 B ## 7 54 SeuratProj… 443 77 1 B ## 8 55 SeuratProj… 417 75 0 A ## 9 56 SeuratProj… 502 81 1 B ## 10 57 SeuratProj… 324 76 1 B ## 11 59 SeuratProj… 443 81 0 A ## 12 60 SeuratProj… 787 88 0 A ## 13 61 SeuratProj… 612 69 1 B ## 14 62 SeuratProj… 286 68 0 A ## 15 63 SeuratProj… 462 86 1 B ## 16 64 SeuratProj… 872 96 1 B ## 17 67 SeuratProj… 328 72 1 B ## 18 68 SeuratProj… 389 73 1 B ## 19 69 SeuratProj… 754 83 0 A ## 20 79 SeuratProj… 233 76 1 B ## # ℹ 3 more variables: groups , RNA_snn_res.1 , obs_id "},{"path":"/articles/soma-reading.html","id":"soma-sparsendarray","dir":"Articles","previous_headings":"","what":"SOMA SparseNDArray","title":"Reading from SOMA objects","text":"SOMASparseNDArray, let’s consider X layer containing \"counts\" data: Similar SOMADataFrame, can load data memory Arrow Table: [Matrix::sparseMatrix()]:","code":"counts <- experiment$ms$get(\"RNA\")$X$get(\"counts\") counts ##