diff --git a/404.html b/404.html index c35230ac97..d73210ea6a 100644 --- a/404.html +++ b/404.html @@ -24,7 +24,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/LICENSE-text.html b/LICENSE-text.html index cc0755aa3f..0bda084c2b 100644 --- a/LICENSE-text.html +++ b/LICENSE-text.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/articles/UsingPlatformConfig.html b/articles/UsingPlatformConfig.html index 8d26201caa..8eac236e4f 100644 --- a/articles/UsingPlatformConfig.html +++ b/articles/UsingPlatformConfig.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/articles/index.html b/articles/index.html index cc5802e06b..8076d8cfd8 100644 --- a/articles/index.html +++ b/articles/index.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/articles/soma-experiment-queries.html b/articles/soma-experiment-queries.html index 217c6d14e0..8cc4296bcd 100644 --- a/articles/soma-experiment-queries.html +++ b/articles/soma-experiment-queries.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -100,7 +100,7 @@ Example dataexperiment <- load_dataset("soma-exp-pbmc-small") experiment #> <SOMAExperiment> -#> uri: /tmp/RtmpEx4fcP/soma-exp-pbmc-small +#> uri: /tmp/RtmpNLpVQS/soma-exp-pbmc-small #> arrays: obs #> groups: ms @@ -112,7 +112,7 @@ Querying basics experiment$ms #> <SOMACollection> -#> uri: file:///tmp/RtmpEx4fcP/soma-exp-pbmc-small/ms +#> uri: file:///tmp/RtmpNLpVQS/soma-exp-pbmc-small/ms #> groups: RNA To use larger (or smaller) buffer sizes: diff --git a/articles/soma-objects.html b/articles/soma-objects.html index db6223e3b9..4e829df300 100644 --- a/articles/soma-objects.html +++ b/articles/soma-objects.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -95,7 +95,7 @@ Example data uri <- extract_dataset("soma-exp-pbmc-small") uri -#> [1] "/tmp/RtmpBGJcN2/soma-exp-pbmc-small" +#> [1] "/tmp/RtmpYxRyMn/soma-exp-pbmc-small" @@ -113,7 +113,7 @@ experiment <- SOMAExperimentOpen(uri) experiment #> <SOMAExperiment> -#> uri: /tmp/RtmpBGJcN2/soma-exp-pbmc-small +#> uri: /tmp/RtmpYxRyMn/soma-exp-pbmc-small #> arrays: obs #> groups: ms Note that opening a SOMAExperiment (or any SOMA object) only returns a pointer to the object on disk. No data is actually read into memory until it’s requested. This is important as the full experiment may be too large to fit in memory. @@ -121,14 +121,14 @@ experiment$ms #> <SOMACollection> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms #> groups: RNA This returns the SOMACollection of measurements. We’ll take a closer look at this later. To access the obs field containing the observation annotations: experiment$obs #> <SOMADataFrame> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/obs +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/obs #> dimensions: soma_joinid #> attributes: orig.ident, nCount_RNA, nFeature_RNA, RNA_snn_res.0.8, letter.idents, groups,... @@ -228,13 +228,13 @@ experiment$ms #> <SOMACollection> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms #> groups: RNA In this case, we have one member: RNA, which is a SOMAMeasurement. A specific measurement can be accessed by name with the get() method: experiment$ms$get("RNA") #> <SOMAMeasurement> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms/RNA #> arrays: var #> groups: obsm, obsp, varm, X @@ -269,7 +269,7 @@ SOMASparseNDArrayX <- experiment$ms$get("RNA")$X X #> <SOMACollection> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA/X +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms/RNA/X #> arrays: counts, data, scale_data This collection contains 3 layers corresponding to the raw, normalized, and scaled slots from the original Seurat object. Any of these X layers can be accessed using get(): @@ -277,7 +277,7 @@ SOMASparseNDArrayX_data <- X$get("data") X_data #> <SOMASparseNDArray> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA/X/data +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms/RNA/X/data #> dimensions: soma_dim_0, soma_dim_1 #> attributes: soma_data This returns a SOMASparseNDArray. As we did before, we can inspect the array’s schema: diff --git a/articles/soma-reading.html b/articles/soma-reading.html index da70335910..06f5a80b8f 100644 --- a/articles/soma-reading.html +++ b/articles/soma-reading.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -307,7 +307,7 @@ SOMA SparseNDArraycounts <- experiment$ms$get("RNA")$X$get("counts") counts ## <SOMASparseNDArray> -## uri: file:///tmp/Rtmp62d4sU/soma-exp-pbmc-small/ms/RNA/X/counts +## uri: file:///tmp/RtmpyyUTYu/soma-exp-pbmc-small/ms/RNA/X/counts ## dimensions: soma_dim_0, soma_dim_1 ## attributes: soma_data Similar to SOMADataFrame, we can load the data into memory as an Arrow Table: diff --git a/authors.html b/authors.html index ea1ccdc430..9b8a6f0baa 100644 --- a/authors.html +++ b/authors.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -86,13 +86,13 @@ Citation Wolen A, Eddelbuettel D, Hoffman P, Kerl J (2024). tiledbsoma: 'TileDB' Stack of Matrices, Annotated ('SOMA'). -R package version 1.12.1, https://github.com/single-cell-data/TileDB-SOMA. +R package version 1.12.2, https://github.com/single-cell-data/TileDB-SOMA. @Manual{, title = {tiledbsoma: 'TileDB' Stack of Matrices, Annotated ('SOMA')}, author = {Aaron Wolen and Dirk Eddelbuettel and Paul Hoffman and John Kerl}, year = {2024}, - note = {R package version 1.12.1}, + note = {R package version 1.12.2}, url = {https://github.com/single-cell-data/TileDB-SOMA}, } diff --git a/index.html b/index.html index 918bb712cf..57546fbd04 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/news/index.html b/news/index.html index fd7c1f4536..ab380ba3fb 100644 --- a/news/index.html +++ b/news/index.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -56,6 +56,12 @@ SOMA Configuration Source: NEWS.md + +tiledbsoma 1.12.2 + +Changes +No R changes; only an update for Python + tiledbsoma 1.12.1 diff --git a/pkgdown.yml b/pkgdown.yml index 3717b6e34c..927729bf20 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -6,5 +6,5 @@ articles: soma-objects: soma-objects.html soma-reading: soma-reading.html UsingPlatformConfig: UsingPlatformConfig.html -last_built: 2024-06-23T19:49Z +last_built: 2024-07-04T18:16Z diff --git a/reference/BlockwiseReadIterBase.html b/reference/BlockwiseReadIterBase.html index 89032a374e..8b4d54b796 100644 --- a/reference/BlockwiseReadIterBase.html +++ b/reference/BlockwiseReadIterBase.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/BlockwiseSparseReadIter.html b/reference/BlockwiseSparseReadIter.html index 109733203c..08eaddb91e 100644 --- a/reference/BlockwiseSparseReadIter.html +++ b/reference/BlockwiseSparseReadIter.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/BlockwiseTableReadIter.html b/reference/BlockwiseTableReadIter.html index 6bde5c8280..15852f9e29 100644 --- a/reference/BlockwiseTableReadIter.html +++ b/reference/BlockwiseTableReadIter.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/ConfigList.html b/reference/ConfigList.html index 7085b765a6..a36edfefe7 100644 --- a/reference/ConfigList.html +++ b/reference/ConfigList.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/CoordsStrider.html b/reference/CoordsStrider.html index 479024e714..ac3a2723a1 100644 --- a/reference/CoordsStrider.html +++ b/reference/CoordsStrider.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/EphemeralCollection.html b/reference/EphemeralCollection.html index ebe5d7ef7b..41885558dd 100644 --- a/reference/EphemeralCollection.html +++ b/reference/EphemeralCollection.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/EphemeralCollectionBase.html b/reference/EphemeralCollectionBase.html index e92084adac..2e78aef08c 100644 --- a/reference/EphemeralCollectionBase.html +++ b/reference/EphemeralCollectionBase.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/EphemeralExperiment.html b/reference/EphemeralExperiment.html index f98b382683..b59bbe2053 100644 --- a/reference/EphemeralExperiment.html +++ b/reference/EphemeralExperiment.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/EphemeralMeasurement.html b/reference/EphemeralMeasurement.html index f1f90cdebd..af6f559d73 100644 --- a/reference/EphemeralMeasurement.html +++ b/reference/EphemeralMeasurement.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/IntIndexer.html b/reference/IntIndexer.html index 68de491e75..4c8b4d508a 100644 --- a/reference/IntIndexer.html +++ b/reference/IntIndexer.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/MappingBase.html b/reference/MappingBase.html index 9ee49ee37b..3f226c28a8 100644 --- a/reference/MappingBase.html +++ b/reference/MappingBase.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/PlatformConfig.html b/reference/PlatformConfig.html index 93df0b5ffa..1bd34bd9ca 100644 --- a/reference/PlatformConfig.html +++ b/reference/PlatformConfig.html @@ -18,7 +18,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/ReadIter.html b/reference/ReadIter.html index b7397f5a51..c879afb9e4 100644 --- a/reference/ReadIter.html +++ b/reference/ReadIter.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAArrayBase.html b/reference/SOMAArrayBase.html index 24798ab7c4..71045cbfcf 100644 --- a/reference/SOMAArrayBase.html +++ b/reference/SOMAArrayBase.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAAxisIndexer.html b/reference/SOMAAxisIndexer.html index 5f3b761dd6..09abe2dbf2 100644 --- a/reference/SOMAAxisIndexer.html +++ b/reference/SOMAAxisIndexer.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAAxisQuery.html b/reference/SOMAAxisQuery.html index dc7b4c2162..02a25cf61c 100644 --- a/reference/SOMAAxisQuery.html +++ b/reference/SOMAAxisQuery.html @@ -32,7 +32,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAAxisQueryResult.html b/reference/SOMAAxisQueryResult.html index 355f42d519..917a54d0a9 100644 --- a/reference/SOMAAxisQueryResult.html +++ b/reference/SOMAAxisQueryResult.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMACollection.html b/reference/SOMACollection.html index cb8301862c..dc7498a01c 100644 --- a/reference/SOMACollection.html +++ b/reference/SOMACollection.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMACollectionBase.html b/reference/SOMACollectionBase.html index cd9efa603d..49d9dfc6ee 100644 --- a/reference/SOMACollectionBase.html +++ b/reference/SOMACollectionBase.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMACollectionCreate.html b/reference/SOMACollectionCreate.html index 3fa3974557..863e6ea9ec 100644 --- a/reference/SOMACollectionCreate.html +++ b/reference/SOMACollectionCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMACollectionOpen.html b/reference/SOMACollectionOpen.html index ce91d44f4a..f1a4210788 100644 --- a/reference/SOMACollectionOpen.html +++ b/reference/SOMACollectionOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAContextBase.html b/reference/SOMAContextBase.html index 0718dd3d14..5587cd1e0b 100644 --- a/reference/SOMAContextBase.html +++ b/reference/SOMAContextBase.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADataFrame.html b/reference/SOMADataFrame.html index 265b253526..a81069c194 100644 --- a/reference/SOMADataFrame.html +++ b/reference/SOMADataFrame.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADataFrameCreate.html b/reference/SOMADataFrameCreate.html index a92046badb..66da496a80 100644 --- a/reference/SOMADataFrameCreate.html +++ b/reference/SOMADataFrameCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADataFrameOpen.html b/reference/SOMADataFrameOpen.html index 17b3c5f2f2..004352fe30 100644 --- a/reference/SOMADataFrameOpen.html +++ b/reference/SOMADataFrameOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADenseNDArray.html b/reference/SOMADenseNDArray.html index 734222e32a..7b77b8bf4f 100644 --- a/reference/SOMADenseNDArray.html +++ b/reference/SOMADenseNDArray.html @@ -40,7 +40,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADenseNDArrayCreate.html b/reference/SOMADenseNDArrayCreate.html index d7f97fc65e..cced4f98bc 100644 --- a/reference/SOMADenseNDArrayCreate.html +++ b/reference/SOMADenseNDArrayCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMADenseNDArrayOpen.html b/reference/SOMADenseNDArrayOpen.html index 9459066a4a..713978c027 100644 --- a/reference/SOMADenseNDArrayOpen.html +++ b/reference/SOMADenseNDArrayOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAExperiment.html b/reference/SOMAExperiment.html index e41708e123..45c71d7173 100644 --- a/reference/SOMAExperiment.html +++ b/reference/SOMAExperiment.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAExperimentAxisQuery.html b/reference/SOMAExperimentAxisQuery.html index 8aeb37e9ec..734dfe18af 100644 --- a/reference/SOMAExperimentAxisQuery.html +++ b/reference/SOMAExperimentAxisQuery.html @@ -54,7 +54,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAExperimentCreate.html b/reference/SOMAExperimentCreate.html index 9d3fe54fbc..510c676f75 100644 --- a/reference/SOMAExperimentCreate.html +++ b/reference/SOMAExperimentCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAExperimentOpen.html b/reference/SOMAExperimentOpen.html index ccd46fc466..6bbc3d3b22 100644 --- a/reference/SOMAExperimentOpen.html +++ b/reference/SOMAExperimentOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAMeasurement.html b/reference/SOMAMeasurement.html index b5f15ba9e2..d8c08d601f 100644 --- a/reference/SOMAMeasurement.html +++ b/reference/SOMAMeasurement.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAMeasurementCreate.html b/reference/SOMAMeasurementCreate.html index 4c088cb2bd..2938e7c662 100644 --- a/reference/SOMAMeasurementCreate.html +++ b/reference/SOMAMeasurementCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAMeasurementOpen.html b/reference/SOMAMeasurementOpen.html index 20a63d1451..e22cddb755 100644 --- a/reference/SOMAMeasurementOpen.html +++ b/reference/SOMAMeasurementOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMANDArrayBase.html b/reference/SOMANDArrayBase.html index de6bae46f5..800f54afdc 100644 --- a/reference/SOMANDArrayBase.html +++ b/reference/SOMANDArrayBase.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMAOpen.html b/reference/SOMAOpen.html index e5f1ec3f7f..e521acacb2 100644 --- a/reference/SOMAOpen.html +++ b/reference/SOMAOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArray.html b/reference/SOMASparseNDArray.html index 7406a68b31..854f779c24 100644 --- a/reference/SOMASparseNDArray.html +++ b/reference/SOMASparseNDArray.html @@ -42,7 +42,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArrayBlockwiseRead.html b/reference/SOMASparseNDArrayBlockwiseRead.html index 7d709b8060..8ce8dc4647 100644 --- a/reference/SOMASparseNDArrayBlockwiseRead.html +++ b/reference/SOMASparseNDArrayBlockwiseRead.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArrayCreate.html b/reference/SOMASparseNDArrayCreate.html index 8832e11d92..4166aae3e3 100644 --- a/reference/SOMASparseNDArrayCreate.html +++ b/reference/SOMASparseNDArrayCreate.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArrayOpen.html b/reference/SOMASparseNDArrayOpen.html index 9eecaeb80c..827f319708 100644 --- a/reference/SOMASparseNDArrayOpen.html +++ b/reference/SOMASparseNDArrayOpen.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArrayRead.html b/reference/SOMASparseNDArrayRead.html index 479af0e2c5..5fb969d5aa 100644 --- a/reference/SOMASparseNDArrayRead.html +++ b/reference/SOMASparseNDArrayRead.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMASparseNDArrayReadBase.html b/reference/SOMASparseNDArrayReadBase.html index 9b1d9de5e6..4db62808bb 100644 --- a/reference/SOMASparseNDArrayReadBase.html +++ b/reference/SOMASparseNDArrayReadBase.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SOMATileDBContext.html b/reference/SOMATileDBContext.html index a1803e40bf..e160eef514 100644 --- a/reference/SOMATileDBContext.html +++ b/reference/SOMATileDBContext.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/ScalarMap.html b/reference/ScalarMap.html index 60d81f9f3a..5693acd1c7 100644 --- a/reference/ScalarMap.html +++ b/reference/ScalarMap.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/SparseReadIter.html b/reference/SparseReadIter.html index 52d7994adf..bfff5ab9db 100644 --- a/reference/SparseReadIter.html +++ b/reference/SparseReadIter.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/TableReadIter.html b/reference/TableReadIter.html index a2442345bf..6aa1422081 100644 --- a/reference/TableReadIter.html +++ b/reference/TableReadIter.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/TileDBArray.html b/reference/TileDBArray.html index 2bdc0bd72d..4ed73ba3ac 100644 --- a/reference/TileDBArray.html +++ b/reference/TileDBArray.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/TileDBCreateOptions.html b/reference/TileDBCreateOptions.html index 5a01e5f420..840ee8db24 100644 --- a/reference/TileDBCreateOptions.html +++ b/reference/TileDBCreateOptions.html @@ -16,7 +16,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/TileDBGroup.html b/reference/TileDBGroup.html index 87f411429b..ab0609d900 100644 --- a/reference/TileDBGroup.html +++ b/reference/TileDBGroup.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/TileDBObject.html b/reference/TileDBObject.html index 53505e8b91..50bd1d7375 100644 --- a/reference/TileDBObject.html +++ b/reference/TileDBObject.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/example-datasets.html b/reference/example-datasets.html index 9f350782f5..3421d0b6ff 100644 --- a/reference/example-datasets.html +++ b/reference/example-datasets.html @@ -18,7 +18,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/index.html b/reference/index.html index 2adb335686..64ae55b83d 100644 --- a/reference/index.html +++ b/reference/index.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/matrixZeroBasedView.html b/reference/matrixZeroBasedView.html index b0e276cfc3..7c8e595848 100644 --- a/reference/matrixZeroBasedView.html +++ b/reference/matrixZeroBasedView.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/set_log_level.html b/reference/set_log_level.html index 62e4e3228f..1209d3a0d8 100644 --- a/reference/set_log_level.html +++ b/reference/set_log_level.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/show_package_versions.html b/reference/show_package_versions.html index d3c2a925c8..07b7742cb4 100644 --- a/reference/show_package_versions.html +++ b/reference/show_package_versions.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/tiledbsoma_stats.html b/reference/tiledbsoma_stats.html index 60f9eb36bc..ec1340aefd 100644 --- a/reference/tiledbsoma_stats.html +++ b/reference/tiledbsoma_stats.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma.Seurat.html b/reference/write_soma.Seurat.html index 0703e1c4cc..9f56bbc1b1 100644 --- a/reference/write_soma.Seurat.html +++ b/reference/write_soma.Seurat.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma.SingleCellExperiment.html b/reference/write_soma.SingleCellExperiment.html index c579935d5b..4e926a93d0 100644 --- a/reference/write_soma.SingleCellExperiment.html +++ b/reference/write_soma.SingleCellExperiment.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma.SummarizedExperiment.html b/reference/write_soma.SummarizedExperiment.html index e19ee4a921..072229f35a 100644 --- a/reference/write_soma.SummarizedExperiment.html +++ b/reference/write_soma.SummarizedExperiment.html @@ -12,7 +12,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma.html b/reference/write_soma.html index 4a3562da79..1a44dc2a57 100644 --- a/reference/write_soma.html +++ b/reference/write_soma.html @@ -14,7 +14,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma_objects.html b/reference/write_soma_objects.html index e305d37bca..5e128fe60a 100644 --- a/reference/write_soma_objects.html +++ b/reference/write_soma_objects.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/reference/write_soma_seurat_sub.html b/reference/write_soma_seurat_sub.html index aceb9b1af0..5b67faaba8 100644 --- a/reference/write_soma_seurat_sub.html +++ b/reference/write_soma_seurat_sub.html @@ -10,7 +10,7 @@ tiledbsoma - 1.12.1 + 1.12.2 diff --git a/search.json b/search.json index 297ead602e..468419d8b4 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/RtmpEx4fcP/soma-exp-pbmc-small #> arrays: obs #> groups: ms"},{"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/RtmpEx4fcP/soma-exp-pbmc-small/ms #> groups: RNA 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: tsne, pca"},{"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/RtmpBGJcN2/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/RtmpBGJcN2/soma-exp-pbmc-small #> arrays: obs #> groups: ms experiment$ms #> #> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms #> groups: RNA experiment$obs #> #> uri: file:///tmp/RtmpBGJcN2/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: string #> nCount_RNA: double #> nFeature_RNA: int32 #> RNA_snn_res.0.8: string #> letter.idents: string #> groups: string #> RNA_snn_res.1: string #> obs_id: 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/RtmpBGJcN2/soma-exp-pbmc-small/ms #> groups: RNA experiment$ms$get(\"RNA\") #> #> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA #> arrays: var #> groups: obsm, obsp, varm, X"},{"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/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA/X #> arrays: counts, data, scale_data X_data <- X$get(\"data\") X_data #> #> uri: file:///tmp/RtmpBGJcN2/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: string ## nCount_RNA: double ## nFeature_RNA: int32 ## RNA_snn_res.0.8: string ## letter.idents: string ## groups: string ## RNA_snn_res.1: string ## obs_id: 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
experiment$ms #> <SOMACollection> -#> uri: file:///tmp/RtmpEx4fcP/soma-exp-pbmc-small/ms +#> uri: file:///tmp/RtmpNLpVQS/soma-exp-pbmc-small/ms #> groups: RNA
To use larger (or smaller) buffer sizes:
diff --git a/articles/soma-objects.html b/articles/soma-objects.html index db6223e3b9..4e829df300 100644 --- a/articles/soma-objects.html +++ b/articles/soma-objects.html @@ -26,7 +26,7 @@ tiledbsoma - 1.12.1 + 1.12.2 @@ -95,7 +95,7 @@ Example data uri <- extract_dataset("soma-exp-pbmc-small") uri -#> [1] "/tmp/RtmpBGJcN2/soma-exp-pbmc-small"
uri <- extract_dataset("soma-exp-pbmc-small") uri -#> [1] "/tmp/RtmpBGJcN2/soma-exp-pbmc-small"
experiment <- SOMAExperimentOpen(uri) experiment #> <SOMAExperiment> -#> uri: /tmp/RtmpBGJcN2/soma-exp-pbmc-small +#> uri: /tmp/RtmpYxRyMn/soma-exp-pbmc-small #> arrays: obs #> groups: ms
Note that opening a SOMAExperiment (or any SOMA object) only returns a pointer to the object on disk. No data is actually read into memory until it’s requested. This is important as the full experiment may be too large to fit in memory.
SOMAExperiment
experiment$ms #> <SOMACollection> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms #> groups: RNA
This returns the SOMACollection of measurements. We’ll take a closer look at this later.
SOMACollection
To access the obs field containing the observation annotations:
obs
experiment$obs #> <SOMADataFrame> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/obs +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/obs #> dimensions: soma_joinid #> attributes: orig.ident, nCount_RNA, nFeature_RNA, RNA_snn_res.0.8, letter.idents, groups,...
In this case, we have one member: RNA, which is a SOMAMeasurement. A specific measurement can be accessed by name with the get() method:
RNA
SOMAMeasurement
get()
experiment$ms$get("RNA") #> <SOMAMeasurement> -#> uri: file:///tmp/RtmpBGJcN2/soma-exp-pbmc-small/ms/RNA +#> uri: file:///tmp/RtmpYxRyMn/soma-exp-pbmc-small/ms/RNA #> arrays: var #> groups: obsm, obsp, varm, X
This collection contains 3 layers corresponding to the raw, normalized, and scaled slots from the original Seurat object.
Any of these X layers can be accessed using get():
X
This returns a SOMASparseNDArray. As we did before, we can inspect the array’s schema:
SOMASparseNDArray
## <SOMASparseNDArray> -## uri: file:///tmp/Rtmp62d4sU/soma-exp-pbmc-small/ms/RNA/X/counts +## uri: file:///tmp/RtmpyyUTYu/soma-exp-pbmc-small/ms/RNA/X/counts ## dimensions: soma_dim_0, soma_dim_1 ## attributes: soma_data
Similar to SOMADataFrame, we can load the data into memory as an Arrow Table:
SOMADataFrame
Wolen A, Eddelbuettel D, Hoffman P, Kerl J (2024). tiledbsoma: 'TileDB' Stack of Matrices, Annotated ('SOMA'). -R package version 1.12.1, https://github.com/single-cell-data/TileDB-SOMA. +R package version 1.12.2, https://github.com/single-cell-data/TileDB-SOMA.
@Manual{, title = {tiledbsoma: 'TileDB' Stack of Matrices, Annotated ('SOMA')}, author = {Aaron Wolen and Dirk Eddelbuettel and Paul Hoffman and John Kerl}, year = {2024}, - note = {R package version 1.12.1}, + note = {R package version 1.12.2}, url = {https://github.com/single-cell-data/TileDB-SOMA}, }
NEWS.md