Skip to contents

Overview

In this tutorial we’ll learn how to read data from various SOMA objects. We will assume familiarity with SOMA objects, so it is recommended to go through the vignette("soma-objects") first.

A core feature of SOMA is the ability to read subsets of data from disk into memory as slices. SOMA uses Apache Arrow as an intermediate in-memory storage. From here, the slices can be further converted into native R objects, like data frames and matrices.

Example data

Load the bundled SOMAExperiment containing a subsetted version of the 10X genomics PBMC dataset provided by SeuratObject. This will return a SOMAExperiment object. This is a small dataset that easily fits into memory, but we’ll focus on operations that can easily scale to larger datasets as well.

experiment <- load_dataset("soma-exp-pbmc-small")

SOMA DataFrame

We’ll start with the obs dataframe. Simply calling the read()$concat() method will load all of the data in memory as an Arrow Table.

obs <- experiment$obs
obs$read()$concat()
## Table
## 80 rows x 9 columns
## $soma_joinid <int64 not null>
## $orig.ident <dictionary<values=string, indices=int8>>
## $nCount_RNA <double>
## $nFeature_RNA <int32>
## $RNA_snn_res.0.8 <dictionary<values=string, indices=int8>>
## $letter.idents <dictionary<values=string, indices=int8>>
## $groups <large_string>
## $RNA_snn_res.1 <dictionary<values=string, indices=int8>>
## $obs_id <large_string>

This is easily converted into a data.frame using Arrow’s methods:

obs$read()$concat()$to_data_frame()
##    soma_joinid    orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
## 1            0 SeuratProject         70           47               0
## 2            1 SeuratProject         85           52               0
## 3            2 SeuratProject         87           50               1
## 4            3 SeuratProject        127           56               0
## 5            4 SeuratProject        173           53               0
## 6            5 SeuratProject         70           48               0
## 7            6 SeuratProject         64           36               0
## 8            7 SeuratProject         72           45               0
## 9            8 SeuratProject         52           36               0
## 10           9 SeuratProject        100           41               0
## 11          10 SeuratProject         62           31               0
## 12          11 SeuratProject        191           61               0
## 13          12 SeuratProject        101           41               0
## 14          13 SeuratProject         51           26               0
## 15          14 SeuratProject         99           45               0
## 16          15 SeuratProject        168           44               0
## 17          16 SeuratProject         67           33               0
## 18          17 SeuratProject        135           45               0
## 19          18 SeuratProject         79           43               0
## 20          19 SeuratProject        109           41               0
## 21          20 SeuratProject        298           65               1
## 22          21 SeuratProject        406           74               1
## 23          22 SeuratProject        213           48               1
## 24          23 SeuratProject        231           49               1
## 25          24 SeuratProject        463           77               1
## 26          25 SeuratProject         87           42               1
## 27          26 SeuratProject        327           62               1
## 28          27 SeuratProject        224           50               1
## 29          28 SeuratProject        361           76               1
## 30          29 SeuratProject        353           80               1
## 31          30 SeuratProject        246           59               0
## 32          31 SeuratProject        115           51               0
## 33          32 SeuratProject        189           53               0
## 34          33 SeuratProject        187           61               0
## 35          34 SeuratProject        156           48               0
## 36          35 SeuratProject        164           47               0
## 37          36 SeuratProject        221           67               0
## 38          37 SeuratProject        151           59               0
## 39          38 SeuratProject        126           53               0
## 40          39 SeuratProject        316           65               0
## 41          40 SeuratProject        156           60               0
## 42          41 SeuratProject        139           61               0
## 43          42 SeuratProject        108           44               0
## 44          43 SeuratProject         41           32               0
## 45          44 SeuratProject        146           47               0
## 46          45 SeuratProject        104           40               0
## 47          46 SeuratProject        126           48               0
## 48          47 SeuratProject         94           55               0
## 49          48 SeuratProject        204           52               0
## 50          49 SeuratProject         99           45               0
## 51          50 SeuratProject        371           75               1
## 52          51 SeuratProject        387           83               1
## 53          52 SeuratProject        139           50               1
## 54          53 SeuratProject         99           42               1
## 55          54 SeuratProject        443           77               1
## 56          55 SeuratProject        417           75               0
## 57          56 SeuratProject        502           81               1
## 58          57 SeuratProject        324           76               1
## 59          58 SeuratProject        292           71               1
## 60          59 SeuratProject        443           81               0
## 61          60 SeuratProject        787           88               0
## 62          61 SeuratProject        612           69               1
## 63          62 SeuratProject        286           68               0
## 64          63 SeuratProject        462           86               1
## 65          64 SeuratProject        872           96               1
## 66          65 SeuratProject        709           94               1
## 67          66 SeuratProject        745           84               1
## 68          67 SeuratProject        328           72               1
## 69          68 SeuratProject        389           73               1
## 70          69 SeuratProject        754           83               0
## 71          70 SeuratProject        212           38               0
## 72          71 SeuratProject        172           29               0
## 73          72 SeuratProject        168           37               0
## 74          73 SeuratProject        210           33               0
## 75          74 SeuratProject        228           39               0
## 76          75 SeuratProject        527           47               0
## 77          76 SeuratProject        202           30               0
## 78          77 SeuratProject        157           29               0
## 79          78 SeuratProject        150           30               0
## 80          79 SeuratProject        233           76               1
##    letter.idents groups RNA_snn_res.1         obs_id
## 1              A     g2             0 ATGCCAGAACGACT
## 2              A     g1             0 CATGGCCTGTGCAT
## 3              B     g2             0 GAACCTGATGAACC
## 4              A     g2             0 TGACTGGATTCTCA
## 5              A     g2             0 AGTCAGACTGCACA
## 6              A     g1             0 TCTGATACACGTGT
## 7              A     g1             0 TGGTATCTAAACAG
## 8              A     g1             0 GCAGCTCTGTTTCT
## 9              A     g1             0 GATATAACACGCAT
## 10             A     g1             0 AATGTTGACAGTCA
## 11             A     g2             2 AGGTCATGAGTGTC
## 12             A     g1             2 AGAGATGATCTCGC
## 13             A     g2             2 GGGTAACTCTAGTG
## 14             A     g2             2 CATGAGACACGGGA
## 15             A     g2             2 TACGCCACTCCGAA
## 16             A     g1             2 CTAAACCTGTGCAT
## 17             A     g2             2 GTAAGCACTCATTC
## 18             A     g1             2 TTGGTACTGAATCC
## 19             A     g1             2 CATCATACGGAGCA
## 20             A     g2             2 TACATCACGCTAAC
## 21             B     g1             1 TTACCATGAATCGC
## 22             B     g1             1 ATAGGAGAAACAGA
## 23             B     g2             1 GCGCACGACTTTAC
## 24             B     g2             1 ACTCGCACGAAAGT
## 25             B     g1             1 ATTACCTGCCTTAT
## 26             B     g2             1 CCCAACTGCAATCG
## 27             B     g2             1 AAATTCGAATCACG
## 28             B     g2             1 CCATCCGATTCGCC
## 29             B     g2             1 TCCACTCTGAGCTT
## 30             B     g1             1 CATCAGGATGCACA
## 31             A     g1             0 CTAAACCTCTGACA
## 32             A     g1             2 GATAGAGAAGGGTG
## 33             A     g1             0 CTAACGGAACCGAT
## 34             A     g2             0 AGATATACCCGTAA
## 35             A     g1             0 TACTCTGAATCGAC
## 36             A     g1             0 GCGCATCTTGCTCC
## 37             A     g2             0 GTTGACGATATCGG
## 38             A     g1             0 ACAGGTACTGGTGT
## 39             A     g1             0 GGCATATGCTTATC
## 40             A     g2             0 CATTACACCAACTG
## 41             A     g1             0 TAGGGACTGAACTC
## 42             A     g2             2 GCTCCATGAGAAGT
## 43             A     g2             0 TACAATGATGCTAG
## 44             A     g2             0 CTTCATGACCGAAT
## 45             A     g1             2 CTGCCAACAGGAGC
## 46             A     g2             2 TTGCATTGAGCTAC
## 47             A     g1             0 AAGCAAGAGCTTAG
## 48             A     g2             0 CGGCACGAACTCAG
## 49             A     g1             0 GGTGGAGATTACTC
## 50             A     g2             0 GGCCGATGTACTCT
## 51             B     g1             1 CGTAGCCTGTATGC
## 52             B     g2             1 TGAGCTGAATGCTG
## 53             B     g2             2 CCTATAACGAGACG
## 54             B     g2             1 ATAAGTTGGTACGT
## 55             B     g1             1 AAGCGACTTTGACG
## 56             A     g1             1 ACCAGTGAATACCG
## 57             B     g1             1 ATTGCACTTGCTTT
## 58             B     g1             1 CTAGGTGATGGTTG
## 59             B     g2             1 GCACTAGACCTTTA
## 60             A     g1             0 CATGCGCTAGTCAC
## 61             A     g1             2 TTGAGGACTACGCA
## 62             B     g1             1 ATACCACTCTAAGC
## 63             A     g1             2 CATATAGACTAAGC
## 64             B     g1             1 TTTAGCTGTACTCT
## 65             B     g1             2 GACATTCTCCACCT
## 66             B     g2             1 ACGTGATGCCATGA
## 67             B     g2             1 ATTGTAGATTCCCG
## 68             B     g1             1 GATAGAGATCACGA
## 69             B     g1             1 AATGCGTGGACGGA
## 70             A     g1             2 GCGTAAACACGGTT
## 71             A     g2             0 ATTCAGCTCATTGG
## 72             A     g1             0 GGCATATGGGGAGT
## 73             A     g2             0 ATCATCTGACACCA
## 74             A     g2             0 GTCATACTTCGCCT
## 75             A     g1             0 TTACGTACGTTCAG
## 76             A     g1             0 GAGTTGTGGTAGCT
## 77             A     g2             0 GACGCTCTCTCTCG
## 78             A     g1             0 AGTCTTACTTCGGA
## 79             A     g2             0 GGAACACTTCAGAC
## 80             B     g1             1 CTTGATTGATCTTC

Slicing

Slices of data can be read by passing coordinates to the read() method. Before we do that, let’s take a look at the schema of obs:

obs$schema()
## Schema
## soma_joinid: int64 not null
## orig.ident: dictionary<values=string, indices=int8>
## nCount_RNA: double
## nFeature_RNA: int32
## RNA_snn_res.0.8: dictionary<values=string, indices=int8>
## letter.idents: dictionary<values=string, indices=int8>
## groups: large_string
## RNA_snn_res.1: dictionary<values=string, indices=int8>
## obs_id: large_string

With any SOMA object, you can only slice across an indexed column (a “dimension” in TileDB parlance). You can use dimnames() to retrieve the names of any SOMA object’s indexed dimensions:

obs$dimnames()
## [1] "soma_joinid"

In this case, there is a single dimension called soma_joinid. From the schema above we can see this contains integers.

Let’s look at a few ways to slice the dataframe.

Select a single row:

obs$read(coords = 0)$concat()
## Table
## 1 rows x 9 columns
## $soma_joinid <int64 not null>
## $orig.ident <dictionary<values=string, indices=int8>>
## $nCount_RNA <double>
## $nFeature_RNA <int32>
## $RNA_snn_res.0.8 <dictionary<values=string, indices=int8>>
## $letter.idents <dictionary<values=string, indices=int8>>
## $groups <large_string>
## $RNA_snn_res.1 <dictionary<values=string, indices=int8>>
## $obs_id <large_string>

Select multiple, non-contiguous rows:

obs$read(coords = c(0, 2))$concat()
## Table
## 2 rows x 9 columns
## $soma_joinid <int64 not null>
## $orig.ident <dictionary<values=string, indices=int8>>
## $nCount_RNA <double>
## $nFeature_RNA <int32>
## $RNA_snn_res.0.8 <dictionary<values=string, indices=int8>>
## $letter.idents <dictionary<values=string, indices=int8>>
## $groups <large_string>
## $RNA_snn_res.1 <dictionary<values=string, indices=int8>>
## $obs_id <large_string>

Select multiple, contiguous rows:

obs$read(coords = 0:4)$concat()
## Table
## 5 rows x 9 columns
## $soma_joinid <int64 not null>
## $orig.ident <dictionary<values=string, indices=int8>>
## $nCount_RNA <double>
## $nFeature_RNA <int32>
## $RNA_snn_res.0.8 <dictionary<values=string, indices=int8>>
## $letter.idents <dictionary<values=string, indices=int8>>
## $groups <large_string>
## $RNA_snn_res.1 <dictionary<values=string, indices=int8>>
## $obs_id <large_string>

Selecting columns

As TileDB is a columnar format, it is possible to select a subset of columns to read by using the column_names argument:

obs$read(coords = 0:4, column_names = c("obs_id", "groups"))$concat()
## Table
## 5 rows x 2 columns
## $obs_id <large_string>
## $groups <large_string>

Filtering

In addition to slicing by coordinates you can also apply filters to the data using the value_filter argument. These expressions are pushed down to the TileDB engine and efficiently applied to the data on disk. Here are a few examples.

Identify all cells in the "g1" group:

obs$read(value_filter = "groups == 'g1'")$concat()$to_data_frame()
##    soma_joinid    orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
## 1            1 SeuratProject         85           52               0
## 2            5 SeuratProject         70           48               0
## 3            6 SeuratProject         64           36               0
## 4            7 SeuratProject         72           45               0
## 5            8 SeuratProject         52           36               0
## 6            9 SeuratProject        100           41               0
## 7           11 SeuratProject        191           61               0
## 8           15 SeuratProject        168           44               0
## 9           17 SeuratProject        135           45               0
## 10          18 SeuratProject         79           43               0
## 11          20 SeuratProject        298           65               1
## 12          21 SeuratProject        406           74               1
## 13          24 SeuratProject        463           77               1
## 14          29 SeuratProject        353           80               1
## 15          30 SeuratProject        246           59               0
## 16          31 SeuratProject        115           51               0
## 17          32 SeuratProject        189           53               0
## 18          34 SeuratProject        156           48               0
## 19          35 SeuratProject        164           47               0
## 20          37 SeuratProject        151           59               0
## 21          38 SeuratProject        126           53               0
## 22          40 SeuratProject        156           60               0
## 23          44 SeuratProject        146           47               0
## 24          46 SeuratProject        126           48               0
## 25          48 SeuratProject        204           52               0
## 26          50 SeuratProject        371           75               1
## 27          54 SeuratProject        443           77               1
## 28          55 SeuratProject        417           75               0
## 29          56 SeuratProject        502           81               1
## 30          57 SeuratProject        324           76               1
## 31          59 SeuratProject        443           81               0
## 32          60 SeuratProject        787           88               0
## 33          61 SeuratProject        612           69               1
## 34          62 SeuratProject        286           68               0
## 35          63 SeuratProject        462           86               1
## 36          64 SeuratProject        872           96               1
## 37          67 SeuratProject        328           72               1
## 38          68 SeuratProject        389           73               1
## 39          69 SeuratProject        754           83               0
## 40          71 SeuratProject        172           29               0
## 41          74 SeuratProject        228           39               0
## 42          75 SeuratProject        527           47               0
## 43          77 SeuratProject        157           29               0
## 44          79 SeuratProject        233           76               1
##    letter.idents groups RNA_snn_res.1         obs_id
## 1              A     g1             0 CATGGCCTGTGCAT
## 2              A     g1             0 TCTGATACACGTGT
## 3              A     g1             0 TGGTATCTAAACAG
## 4              A     g1             0 GCAGCTCTGTTTCT
## 5              A     g1             0 GATATAACACGCAT
## 6              A     g1             0 AATGTTGACAGTCA
## 7              A     g1             2 AGAGATGATCTCGC
## 8              A     g1             2 CTAAACCTGTGCAT
## 9              A     g1             2 TTGGTACTGAATCC
## 10             A     g1             2 CATCATACGGAGCA
## 11             B     g1             1 TTACCATGAATCGC
## 12             B     g1             1 ATAGGAGAAACAGA
## 13             B     g1             1 ATTACCTGCCTTAT
## 14             B     g1             1 CATCAGGATGCACA
## 15             A     g1             0 CTAAACCTCTGACA
## 16             A     g1             2 GATAGAGAAGGGTG
## 17             A     g1             0 CTAACGGAACCGAT
## 18             A     g1             0 TACTCTGAATCGAC
## 19             A     g1             0 GCGCATCTTGCTCC
## 20             A     g1             0 ACAGGTACTGGTGT
## 21             A     g1             0 GGCATATGCTTATC
## 22             A     g1             0 TAGGGACTGAACTC
## 23             A     g1             2 CTGCCAACAGGAGC
## 24             A     g1             0 AAGCAAGAGCTTAG
## 25             A     g1             0 GGTGGAGATTACTC
## 26             B     g1             1 CGTAGCCTGTATGC
## 27             B     g1             1 AAGCGACTTTGACG
## 28             A     g1             1 ACCAGTGAATACCG
## 29             B     g1             1 ATTGCACTTGCTTT
## 30             B     g1             1 CTAGGTGATGGTTG
## 31             A     g1             0 CATGCGCTAGTCAC
## 32             A     g1             2 TTGAGGACTACGCA
## 33             B     g1             1 ATACCACTCTAAGC
## 34             A     g1             2 CATATAGACTAAGC
## 35             B     g1             1 TTTAGCTGTACTCT
## 36             B     g1             2 GACATTCTCCACCT
## 37             B     g1             1 GATAGAGATCACGA
## 38             B     g1             1 AATGCGTGGACGGA
## 39             A     g1             2 GCGTAAACACGGTT
## 40             A     g1             0 GGCATATGGGGAGT
## 41             A     g1             0 TTACGTACGTTCAG
## 42             A     g1             0 GAGTTGTGGTAGCT
## 43             A     g1             0 AGTCTTACTTCGGA
## 44             B     g1             1 CTTGATTGATCTTC

Identify all cells in the "g1" or "g2" group:

obs$read(value_filter = "groups == 'g1' | groups == 'g2'")$concat()$to_data_frame()
##    soma_joinid    orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
## 1            0 SeuratProject         70           47               0
## 2            1 SeuratProject         85           52               0
## 3            2 SeuratProject         87           50               1
## 4            3 SeuratProject        127           56               0
## 5            4 SeuratProject        173           53               0
## 6            5 SeuratProject         70           48               0
## 7            6 SeuratProject         64           36               0
## 8            7 SeuratProject         72           45               0
## 9            8 SeuratProject         52           36               0
## 10           9 SeuratProject        100           41               0
## 11          10 SeuratProject         62           31               0
## 12          11 SeuratProject        191           61               0
## 13          12 SeuratProject        101           41               0
## 14          13 SeuratProject         51           26               0
## 15          14 SeuratProject         99           45               0
## 16          15 SeuratProject        168           44               0
## 17          16 SeuratProject         67           33               0
## 18          17 SeuratProject        135           45               0
## 19          18 SeuratProject         79           43               0
## 20          19 SeuratProject        109           41               0
## 21          20 SeuratProject        298           65               1
## 22          21 SeuratProject        406           74               1
## 23          22 SeuratProject        213           48               1
## 24          23 SeuratProject        231           49               1
## 25          24 SeuratProject        463           77               1
## 26          25 SeuratProject         87           42               1
## 27          26 SeuratProject        327           62               1
## 28          27 SeuratProject        224           50               1
## 29          28 SeuratProject        361           76               1
## 30          29 SeuratProject        353           80               1
## 31          30 SeuratProject        246           59               0
## 32          31 SeuratProject        115           51               0
## 33          32 SeuratProject        189           53               0
## 34          33 SeuratProject        187           61               0
## 35          34 SeuratProject        156           48               0
## 36          35 SeuratProject        164           47               0
## 37          36 SeuratProject        221           67               0
## 38          37 SeuratProject        151           59               0
## 39          38 SeuratProject        126           53               0
## 40          39 SeuratProject        316           65               0
## 41          40 SeuratProject        156           60               0
## 42          41 SeuratProject        139           61               0
## 43          42 SeuratProject        108           44               0
## 44          43 SeuratProject         41           32               0
## 45          44 SeuratProject        146           47               0
## 46          45 SeuratProject        104           40               0
## 47          46 SeuratProject        126           48               0
## 48          47 SeuratProject         94           55               0
## 49          48 SeuratProject        204           52               0
## 50          49 SeuratProject         99           45               0
## 51          50 SeuratProject        371           75               1
## 52          51 SeuratProject        387           83               1
## 53          52 SeuratProject        139           50               1
## 54          53 SeuratProject         99           42               1
## 55          54 SeuratProject        443           77               1
## 56          55 SeuratProject        417           75               0
## 57          56 SeuratProject        502           81               1
## 58          57 SeuratProject        324           76               1
## 59          58 SeuratProject        292           71               1
## 60          59 SeuratProject        443           81               0
## 61          60 SeuratProject        787           88               0
## 62          61 SeuratProject        612           69               1
## 63          62 SeuratProject        286           68               0
## 64          63 SeuratProject        462           86               1
## 65          64 SeuratProject        872           96               1
## 66          65 SeuratProject        709           94               1
## 67          66 SeuratProject        745           84               1
## 68          67 SeuratProject        328           72               1
## 69          68 SeuratProject        389           73               1
## 70          69 SeuratProject        754           83               0
## 71          70 SeuratProject        212           38               0
## 72          71 SeuratProject        172           29               0
## 73          72 SeuratProject        168           37               0
## 74          73 SeuratProject        210           33               0
## 75          74 SeuratProject        228           39               0
## 76          75 SeuratProject        527           47               0
## 77          76 SeuratProject        202           30               0
## 78          77 SeuratProject        157           29               0
## 79          78 SeuratProject        150           30               0
## 80          79 SeuratProject        233           76               1
##    letter.idents groups RNA_snn_res.1         obs_id
## 1              A     g2             0 ATGCCAGAACGACT
## 2              A     g1             0 CATGGCCTGTGCAT
## 3              B     g2             0 GAACCTGATGAACC
## 4              A     g2             0 TGACTGGATTCTCA
## 5              A     g2             0 AGTCAGACTGCACA
## 6              A     g1             0 TCTGATACACGTGT
## 7              A     g1             0 TGGTATCTAAACAG
## 8              A     g1             0 GCAGCTCTGTTTCT
## 9              A     g1             0 GATATAACACGCAT
## 10             A     g1             0 AATGTTGACAGTCA
## 11             A     g2             2 AGGTCATGAGTGTC
## 12             A     g1             2 AGAGATGATCTCGC
## 13             A     g2             2 GGGTAACTCTAGTG
## 14             A     g2             2 CATGAGACACGGGA
## 15             A     g2             2 TACGCCACTCCGAA
## 16             A     g1             2 CTAAACCTGTGCAT
## 17             A     g2             2 GTAAGCACTCATTC
## 18             A     g1             2 TTGGTACTGAATCC
## 19             A     g1             2 CATCATACGGAGCA
## 20             A     g2             2 TACATCACGCTAAC
## 21             B     g1             1 TTACCATGAATCGC
## 22             B     g1             1 ATAGGAGAAACAGA
## 23             B     g2             1 GCGCACGACTTTAC
## 24             B     g2             1 ACTCGCACGAAAGT
## 25             B     g1             1 ATTACCTGCCTTAT
## 26             B     g2             1 CCCAACTGCAATCG
## 27             B     g2             1 AAATTCGAATCACG
## 28             B     g2             1 CCATCCGATTCGCC
## 29             B     g2             1 TCCACTCTGAGCTT
## 30             B     g1             1 CATCAGGATGCACA
## 31             A     g1             0 CTAAACCTCTGACA
## 32             A     g1             2 GATAGAGAAGGGTG
## 33             A     g1             0 CTAACGGAACCGAT
## 34             A     g2             0 AGATATACCCGTAA
## 35             A     g1             0 TACTCTGAATCGAC
## 36             A     g1             0 GCGCATCTTGCTCC
## 37             A     g2             0 GTTGACGATATCGG
## 38             A     g1             0 ACAGGTACTGGTGT
## 39             A     g1             0 GGCATATGCTTATC
## 40             A     g2             0 CATTACACCAACTG
## 41             A     g1             0 TAGGGACTGAACTC
## 42             A     g2             2 GCTCCATGAGAAGT
## 43             A     g2             0 TACAATGATGCTAG
## 44             A     g2             0 CTTCATGACCGAAT
## 45             A     g1             2 CTGCCAACAGGAGC
## 46             A     g2             2 TTGCATTGAGCTAC
## 47             A     g1             0 AAGCAAGAGCTTAG
## 48             A     g2             0 CGGCACGAACTCAG
## 49             A     g1             0 GGTGGAGATTACTC
## 50             A     g2             0 GGCCGATGTACTCT
## 51             B     g1             1 CGTAGCCTGTATGC
## 52             B     g2             1 TGAGCTGAATGCTG
## 53             B     g2             2 CCTATAACGAGACG
## 54             B     g2             1 ATAAGTTGGTACGT
## 55             B     g1             1 AAGCGACTTTGACG
## 56             A     g1             1 ACCAGTGAATACCG
## 57             B     g1             1 ATTGCACTTGCTTT
## 58             B     g1             1 CTAGGTGATGGTTG
## 59             B     g2             1 GCACTAGACCTTTA
## 60             A     g1             0 CATGCGCTAGTCAC
## 61             A     g1             2 TTGAGGACTACGCA
## 62             B     g1             1 ATACCACTCTAAGC
## 63             A     g1             2 CATATAGACTAAGC
## 64             B     g1             1 TTTAGCTGTACTCT
## 65             B     g1             2 GACATTCTCCACCT
## 66             B     g2             1 ACGTGATGCCATGA
## 67             B     g2             1 ATTGTAGATTCCCG
## 68             B     g1             1 GATAGAGATCACGA
## 69             B     g1             1 AATGCGTGGACGGA
## 70             A     g1             2 GCGTAAACACGGTT
## 71             A     g2             0 ATTCAGCTCATTGG
## 72             A     g1             0 GGCATATGGGGAGT
## 73             A     g2             0 ATCATCTGACACCA
## 74             A     g2             0 GTCATACTTCGCCT
## 75             A     g1             0 TTACGTACGTTCAG
## 76             A     g1             0 GAGTTGTGGTAGCT
## 77             A     g2             0 GACGCTCTCTCTCG
## 78             A     g1             0 AGTCTTACTTCGGA
## 79             A     g2             0 GGAACACTTCAGAC
## 80             B     g1             1 CTTGATTGATCTTC

Altenratively, you can use the %in% operator:

obs$read(value_filter = "groups %in% c('g1', 'g2')")$concat()$to_data_frame()
##    soma_joinid    orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
## 1            0 SeuratProject         70           47               0
## 2            1 SeuratProject         85           52               0
## 3            2 SeuratProject         87           50               1
## 4            3 SeuratProject        127           56               0
## 5            4 SeuratProject        173           53               0
## 6            5 SeuratProject         70           48               0
## 7            6 SeuratProject         64           36               0
## 8            7 SeuratProject         72           45               0
## 9            8 SeuratProject         52           36               0
## 10           9 SeuratProject        100           41               0
## 11          10 SeuratProject         62           31               0
## 12          11 SeuratProject        191           61               0
## 13          12 SeuratProject        101           41               0
## 14          13 SeuratProject         51           26               0
## 15          14 SeuratProject         99           45               0
## 16          15 SeuratProject        168           44               0
## 17          16 SeuratProject         67           33               0
## 18          17 SeuratProject        135           45               0
## 19          18 SeuratProject         79           43               0
## 20          19 SeuratProject        109           41               0
## 21          20 SeuratProject        298           65               1
## 22          21 SeuratProject        406           74               1
## 23          22 SeuratProject        213           48               1
## 24          23 SeuratProject        231           49               1
## 25          24 SeuratProject        463           77               1
## 26          25 SeuratProject         87           42               1
## 27          26 SeuratProject        327           62               1
## 28          27 SeuratProject        224           50               1
## 29          28 SeuratProject        361           76               1
## 30          29 SeuratProject        353           80               1
## 31          30 SeuratProject        246           59               0
## 32          31 SeuratProject        115           51               0
## 33          32 SeuratProject        189           53               0
## 34          33 SeuratProject        187           61               0
## 35          34 SeuratProject        156           48               0
## 36          35 SeuratProject        164           47               0
## 37          36 SeuratProject        221           67               0
## 38          37 SeuratProject        151           59               0
## 39          38 SeuratProject        126           53               0
## 40          39 SeuratProject        316           65               0
## 41          40 SeuratProject        156           60               0
## 42          41 SeuratProject        139           61               0
## 43          42 SeuratProject        108           44               0
## 44          43 SeuratProject         41           32               0
## 45          44 SeuratProject        146           47               0
## 46          45 SeuratProject        104           40               0
## 47          46 SeuratProject        126           48               0
## 48          47 SeuratProject         94           55               0
## 49          48 SeuratProject        204           52               0
## 50          49 SeuratProject         99           45               0
## 51          50 SeuratProject        371           75               1
## 52          51 SeuratProject        387           83               1
## 53          52 SeuratProject        139           50               1
## 54          53 SeuratProject         99           42               1
## 55          54 SeuratProject        443           77               1
## 56          55 SeuratProject        417           75               0
## 57          56 SeuratProject        502           81               1
## 58          57 SeuratProject        324           76               1
## 59          58 SeuratProject        292           71               1
## 60          59 SeuratProject        443           81               0
## 61          60 SeuratProject        787           88               0
## 62          61 SeuratProject        612           69               1
## 63          62 SeuratProject        286           68               0
## 64          63 SeuratProject        462           86               1
## 65          64 SeuratProject        872           96               1
## 66          65 SeuratProject        709           94               1
## 67          66 SeuratProject        745           84               1
## 68          67 SeuratProject        328           72               1
## 69          68 SeuratProject        389           73               1
## 70          69 SeuratProject        754           83               0
## 71          70 SeuratProject        212           38               0
## 72          71 SeuratProject        172           29               0
## 73          72 SeuratProject        168           37               0
## 74          73 SeuratProject        210           33               0
## 75          74 SeuratProject        228           39               0
## 76          75 SeuratProject        527           47               0
## 77          76 SeuratProject        202           30               0
## 78          77 SeuratProject        157           29               0
## 79          78 SeuratProject        150           30               0
## 80          79 SeuratProject        233           76               1
##    letter.idents groups RNA_snn_res.1         obs_id
## 1              A     g2             0 ATGCCAGAACGACT
## 2              A     g1             0 CATGGCCTGTGCAT
## 3              B     g2             0 GAACCTGATGAACC
## 4              A     g2             0 TGACTGGATTCTCA
## 5              A     g2             0 AGTCAGACTGCACA
## 6              A     g1             0 TCTGATACACGTGT
## 7              A     g1             0 TGGTATCTAAACAG
## 8              A     g1             0 GCAGCTCTGTTTCT
## 9              A     g1             0 GATATAACACGCAT
## 10             A     g1             0 AATGTTGACAGTCA
## 11             A     g2             2 AGGTCATGAGTGTC
## 12             A     g1             2 AGAGATGATCTCGC
## 13             A     g2             2 GGGTAACTCTAGTG
## 14             A     g2             2 CATGAGACACGGGA
## 15             A     g2             2 TACGCCACTCCGAA
## 16             A     g1             2 CTAAACCTGTGCAT
## 17             A     g2             2 GTAAGCACTCATTC
## 18             A     g1             2 TTGGTACTGAATCC
## 19             A     g1             2 CATCATACGGAGCA
## 20             A     g2             2 TACATCACGCTAAC
## 21             B     g1             1 TTACCATGAATCGC
## 22             B     g1             1 ATAGGAGAAACAGA
## 23             B     g2             1 GCGCACGACTTTAC
## 24             B     g2             1 ACTCGCACGAAAGT
## 25             B     g1             1 ATTACCTGCCTTAT
## 26             B     g2             1 CCCAACTGCAATCG
## 27             B     g2             1 AAATTCGAATCACG
## 28             B     g2             1 CCATCCGATTCGCC
## 29             B     g2             1 TCCACTCTGAGCTT
## 30             B     g1             1 CATCAGGATGCACA
## 31             A     g1             0 CTAAACCTCTGACA
## 32             A     g1             2 GATAGAGAAGGGTG
## 33             A     g1             0 CTAACGGAACCGAT
## 34             A     g2             0 AGATATACCCGTAA
## 35             A     g1             0 TACTCTGAATCGAC
## 36             A     g1             0 GCGCATCTTGCTCC
## 37             A     g2             0 GTTGACGATATCGG
## 38             A     g1             0 ACAGGTACTGGTGT
## 39             A     g1             0 GGCATATGCTTATC
## 40             A     g2             0 CATTACACCAACTG
## 41             A     g1             0 TAGGGACTGAACTC
## 42             A     g2             2 GCTCCATGAGAAGT
## 43             A     g2             0 TACAATGATGCTAG
## 44             A     g2             0 CTTCATGACCGAAT
## 45             A     g1             2 CTGCCAACAGGAGC
## 46             A     g2             2 TTGCATTGAGCTAC
## 47             A     g1             0 AAGCAAGAGCTTAG
## 48             A     g2             0 CGGCACGAACTCAG
## 49             A     g1             0 GGTGGAGATTACTC
## 50             A     g2             0 GGCCGATGTACTCT
## 51             B     g1             1 CGTAGCCTGTATGC
## 52             B     g2             1 TGAGCTGAATGCTG
## 53             B     g2             2 CCTATAACGAGACG
## 54             B     g2             1 ATAAGTTGGTACGT
## 55             B     g1             1 AAGCGACTTTGACG
## 56             A     g1             1 ACCAGTGAATACCG
## 57             B     g1             1 ATTGCACTTGCTTT
## 58             B     g1             1 CTAGGTGATGGTTG
## 59             B     g2             1 GCACTAGACCTTTA
## 60             A     g1             0 CATGCGCTAGTCAC
## 61             A     g1             2 TTGAGGACTACGCA
## 62             B     g1             1 ATACCACTCTAAGC
## 63             A     g1             2 CATATAGACTAAGC
## 64             B     g1             1 TTTAGCTGTACTCT
## 65             B     g1             2 GACATTCTCCACCT
## 66             B     g2             1 ACGTGATGCCATGA
## 67             B     g2             1 ATTGTAGATTCCCG
## 68             B     g1             1 GATAGAGATCACGA
## 69             B     g1             1 AATGCGTGGACGGA
## 70             A     g1             2 GCGTAAACACGGTT
## 71             A     g2             0 ATTCAGCTCATTGG
## 72             A     g1             0 GGCATATGGGGAGT
## 73             A     g2             0 ATCATCTGACACCA
## 74             A     g2             0 GTCATACTTCGCCT
## 75             A     g1             0 TTACGTACGTTCAG
## 76             A     g1             0 GAGTTGTGGTAGCT
## 77             A     g2             0 GACGCTCTCTCTCG
## 78             A     g1             0 AGTCTTACTTCGGA
## 79             A     g2             0 GGAACACTTCAGAC
## 80             B     g1             1 CTTGATTGATCTTC

Identify all cells in the "g1" group with more than more than 60 features:

obs$read(value_filter = "groups == 'g1' & nFeature_RNA > 60")$concat()$to_data_frame()
##    soma_joinid    orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
## 1           11 SeuratProject        191           61               0
## 2           20 SeuratProject        298           65               1
## 3           21 SeuratProject        406           74               1
## 4           24 SeuratProject        463           77               1
## 5           29 SeuratProject        353           80               1
## 6           50 SeuratProject        371           75               1
## 7           54 SeuratProject        443           77               1
## 8           55 SeuratProject        417           75               0
## 9           56 SeuratProject        502           81               1
## 10          57 SeuratProject        324           76               1
## 11          59 SeuratProject        443           81               0
## 12          60 SeuratProject        787           88               0
## 13          61 SeuratProject        612           69               1
## 14          62 SeuratProject        286           68               0
## 15          63 SeuratProject        462           86               1
## 16          64 SeuratProject        872           96               1
## 17          67 SeuratProject        328           72               1
## 18          68 SeuratProject        389           73               1
## 19          69 SeuratProject        754           83               0
## 20          79 SeuratProject        233           76               1
##    letter.idents groups RNA_snn_res.1         obs_id
## 1              A     g1             2 AGAGATGATCTCGC
## 2              B     g1             1 TTACCATGAATCGC
## 3              B     g1             1 ATAGGAGAAACAGA
## 4              B     g1             1 ATTACCTGCCTTAT
## 5              B     g1             1 CATCAGGATGCACA
## 6              B     g1             1 CGTAGCCTGTATGC
## 7              B     g1             1 AAGCGACTTTGACG
## 8              A     g1             1 ACCAGTGAATACCG
## 9              B     g1             1 ATTGCACTTGCTTT
## 10             B     g1             1 CTAGGTGATGGTTG
## 11             A     g1             0 CATGCGCTAGTCAC
## 12             A     g1             2 TTGAGGACTACGCA
## 13             B     g1             1 ATACCACTCTAAGC
## 14             A     g1             2 CATATAGACTAAGC
## 15             B     g1             1 TTTAGCTGTACTCT
## 16             B     g1             2 GACATTCTCCACCT
## 17             B     g1             1 GATAGAGATCACGA
## 18             B     g1             1 AATGCGTGGACGGA
## 19             A     g1             2 GCGTAAACACGGTT
## 20             B     g1             1 CTTGATTGATCTTC

SOMA SparseNDArray

For SOMASparseNDArray, let’s consider the X layer containing the "counts" data:

counts <- experiment$ms$get("RNA")$X$get("counts")
counts
## <SOMASparseNDArray>
##   uri: file:///tmp/RtmpIVSbZh/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:

counts$read()$tables()$concat()
## Table
## 4456 rows x 3 columns
## $soma_dim_0 <int64 not null>
## $soma_dim_1 <int64 not null>
## $soma_data <double not null>

Or as a $$`Matrix::sparseMatrix()`$$:

counts$read()$sparse_matrix()$concat()
## 80 x 230 sparse Matrix of class "dgTMatrix"
##                                                                                
##  [1,] . 1  .   . .  1 . .  3 . . 1 . . . . . . . . . .  1 . . . .  . . .  4 . .
##  [2,] . .  .   1 .  . . .  7 . . . . . . . . . . . . 1  1 . 2 . 1  . . .  4 3 1
##  [3,] . .  .   . .  . . . 11 . . 1 . . . . . . . . . .  . 1 . . .  . . .  4 2 .
##  [4,] . .  .   . .  . . . 13 . . 1 . . . . . . . . . .  6 . . . .  . . .  5 2 1
##  [5,] . .  .   1 .  . . .  3 . . . . . . . . . . . . .  . . . . .  . . .  4 3 .
##  [6,] . .  .   1 .  . . .  4 . . . . 1 . . . . . . . .  2 1 . . .  . . .  4 1 1
##  [7,] . .  .   . .  . . .  6 . . . . . . . . . . . . .  4 . . . .  . . .  3 1 1
##  [8,] . .  .   1 .  . . .  4 . . . . . . . . . . . . .  1 1 . . .  . . .  2 3 .
##  [9,] . .  .   . .  . . .  2 . . . . . . . . . . . . .  . . . . .  . . .  2 2 .
## [10,] . 1  .   . .  . . . 21 . . 1 . . . . . . . . . .  4 . 1 . .  . . .  2 1 1
## [11,] 2 2  .  14 3  1 3 .  2 . . . 1 . 3 . . . . 1 1 1  2 2 . 2 .  1 1 1  . . .
## [12,] 2 4  5  28 .  6 1 4  9 2 1 3 . 1 . 3 1 1 . . . .  . . 1 2 4  . . .  . . .
## [13,] 4 3  2  18 2  2 . 1  2 . 1 2 1 . 1 . . . . . 1 .  4 . 1 1 . 15 . .  . . .
## [14,] 4 3  2   7 4  2 . 1  4 1 . . . 1 . 1 2 . . . 1 .  1 . . . .  . 1 .  . . .
## [15,] 2 2  5  15 .  2 2 2  4 1 . 1 . . 1 . . 1 . . . 2  . 2 2 . 1  . . .  . . .
## [16,] 3 3  8  28 .  8 . 2  . 1 . 2 . 3 1 . 1 . 1 1 . .  . . 3 . 1  . . 1  . 2 .
## [17,] 3 1  1   7 3  2 2 1  3 . 1 2 1 . . . . . 2 1 . .  4 . . 1 .  . . 1  . . .
## [18,] 4 2  5  26 3  2 1 2  6 . 1 . 2 . . 1 . 1 1 1 . 2  2 . 1 . 1 23 1 .  . . .
## [19,] 2 2  5  10 3  1 1 .  5 1 . 1 2 1 . . 1 . . . 1 1  6 1 . 1 .  . . .  . . .
## [20,] 3 5 12  16 2  2 2 1  7 . 1 . . . . 2 . 3 1 . . .  2 1 1 1 .  . . 1  . . .
## [21,] . .  .   7 .  . 1 .  1 . . . . . . . . . . . . .  3 . . . .  . . .  . . .
## [22,] . .  .  22 .  3 . 1  . . . . . . . . . . . . . .  . . . . .  . . .  . 2 .
## [23,] . .  1   . .  . 1 .  . . . 1 1 . . . . . . . . .  . . . . .  . . .  . . .
## [24,] . .  .  10 .  . . 1  1 . . . . . . . . . . . . .  . 1 . . .  . . .  . . .
## [25,] 1 .  .   6 .  . . .  1 . . . 1 . . . . . . . . .  . . . . .  . . .  1 1 .
## [26,] . .  .   . .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [27,] . .  .   4 .  1 . .  . . . . . . . . . . . . . .  1 . . . .  . . .  . . .
## [28,] . .  1   3 .  . . .  . . . . . . . . . . . . . .  . 1 . . .  . . .  . . .
## [29,] . .  .   7 .  1 . 2  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [30,] . 1  .  13 .  . . .  1 . . . 1 . . . . . . . . .  . . 1 . .  . . .  . . .
## [31,] . 1  .   . .  . . .  1 . . . . . . . . . . . . 1  . . . . .  . . .  . 1 .
## [32,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . 1 . . .  . . .  7 . .
## [33,] . 2  .   . .  . . .  . . . . . . . . . . . . . .  . . . 1 .  . . .  . 1 .
## [34,] . .  .   . .  . . .  1 . . . . . . . . . . . . .  . 1 . . .  . . .  . 1 .
## [35,] . .  .   1 .  . . .  . . . 1 . . . . . . . . . .  . . . 1 .  . . .  . . .
## [36,] . .  .   . .  . . .  . . . 1 . 1 . . . . . . . .  1 . . . .  . . .  . . .
## [37,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  1 . .
## [38,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . 1 . .  . . .  . 2 .
## [39,] . .  .   . .  . . .  . . . . . 1 . . . . . . . .  4 . . . .  . . .  1 . .
## [40,] . .  .   . .  . . .  . . . . . . . . . . . . . .  . . . 1 .  . . .  . . .
## [41,] . .  .   . .  . . .  . . . . . . . . . . . . . .  7 . . . .  . . .  . 1 .
## [42,] . .  .   . .  . . .  1 . . . . . . . . . . . . .  1 . . . .  . . .  2 . .
## [43,] . .  .   . .  . . .  1 . . . . . . . . . . . . .  3 . . . .  . . .  3 . .
## [44,] . .  .   . .  . . .  1 . . . . . . . . . . . . 1  . . . . .  . . .  . . .
## [45,] . .  .   . .  . . .  7 . . 1 . . . . . . . . . .  6 1 1 . .  . . .  3 . .
## [46,] . .  .   1 .  . . .  1 . . . . . . . . . . . . .  1 . . 3 .  . . . 15 . .
## [47,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  1 1 .
## [48,] . .  .   1 .  . . .  1 . . . . 1 . . . . . . . .  1 . . . .  . . .  3 . .
## [49,] . .  .   . .  . . .  5 . . . . . . . . . . . . .  . . . . .  . . .  6 . .
## [50,] . .  .   . .  . . .  3 . . . . . . . . . . . . .  1 . . . .  . . .  4 1 .
## [51,] . 1  .  10 .  . . .  1 . . . . . 1 . . . . . . .  . 1 . . .  . . .  . . .
## [52,] . .  .  10 .  1 . .  2 . . . . . . . . . . . . .  1 . . . .  . . .  . 2 .
## [53,] . 1  .   4 .  1 . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [54,] . 1  .   1 .  . . 1  . . . . . . . . . . . . . .  1 . . . .  . . .  . . .
## [55,] . 2  .   6 .  2 . 1  1 . . 1 . . 1 . . . . . . 1  . . . . .  . . .  . . .
## [56,] . 2  .  28 .  . 1 .  1 . . . . . . . . . . . . 1  . . . . .  . . .  . 1 .
## [57,] . .  .  10 .  . . .  1 . . 1 . . . . . . . . . 1  . . . . .  . . .  . 1 .
## [58,] . .  .  13 .  1 . 1  1 . . . 1 . . . . . . . . 1  . 1 . . .  . . .  . . .
## [59,] . 3  .   5 .  1 1 .  2 . . . . . . . . . . . . .  1 . . . .  . . .  . . .
## [60,] . .  .   8 .  . . 1  1 . . . . . . . . . . . . .  2 . 1 . .  . . .  . . .
## [61,] . .  . 108 . 21 . 3  . . . 1 . . 1 . . . . . . 2 12 . . 1 .  . . .  . 1 .
## [62,] . .  .  93 . 21 . 2  1 . . . . . . . . . . . . .  3 . 2 . .  . . .  . 1 .
## [63,] . .  .  41 .  3 . 1  . . . . . . . . . . . . . .  1 . 1 1 .  . . .  . . .
## [64,] . 4  8  42 4  5 . 4  5 . . 3 . . . 1 . . . . 1 .  3 . 1 1 .  . . 2  . . .
## [65,] . 1  . 138 . 11 . 5  . . . 1 . . 1 . . . . . . .  . . . 1 .  . . .  . . .
## [66,] . .  .  77 . 11 . 2  . . . . . . . . . . . . . 1  1 . . . .  . . .  . 1 .
## [67,] . .  .  76 . 10 . 1  . . . . . . 1 . . . . . . .  2 . . . .  . . .  . . .
## [68,] 1 .  .  15 .  1 . 1  . . . . . . . . . . . . . .  . . . . .  . . .  . 1 .
## [69,] . .  1  19 .  2 . 1  1 . . . . . . . . . . . . .  . . . 1 1  . . .  . . .
## [70,] . .  . 104 . 11 . 5  4 . . 1 . . . . . . . . . .  2 . . . .  . . .  1 1 .
## [71,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [72,] . .  .   . .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [73,] . .  .   . .  . . .  1 . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [74,] . .  .   . .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [75,] . .  .   2 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [76,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . 1 . 1  . . .  . . .
## [77,] . .  .   1 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [78,] . .  .   . .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [79,] . .  .   2 .  . . .  . . . . . . . . . . . . . .  . . . . .  . . .  . . .
## [80,] . .  .   7 .  1 . .  . . . . 1 . . . . . . . . .  . . . 1 .  . . .  . . .
##                                                                               
##  [1,] 1  5 . 1  . 1 . . . 3 3 . 1 3 . 1 1 1 1  2 . 1 2 1 2 1  .  . .  . 1 .  .
##  [2,] .  2 . 1  1 1 5 2 2 2 3 . . 1 2 . . 2 .  . . 3 2 1 . .  .  . .  . . .  1
##  [3,] 2  1 1 .  1 . . 1 . 1 . . 1 2 1 . 2 . .  1 1 2 2 1 . .  .  . .  . 9 .  1
##  [4,] 2  2 . .  1 1 . 1 2 6 4 2 . 5 4 . . . .  1 2 3 3 1 2 1  .  . .  . 8 .  1
##  [5,] .  2 . . 36 . 2 . 1 5 2 . . 2 3 . 2 1 . 54 . 2 2 . . .  .  . .  1 1 .  3
##  [6,] 1  . 2 .  . . . 2 2 3 1 1 1 4 1 1 . . .  2 1 . 1 . . 1  .  . .  . . 1  .
##  [7,] .  1 3 1  . . 1 1 . 4 1 . . 3 3 1 . . .  1 2 . . . 2 1  .  . .  . 3 .  .
##  [8,] 1 12 2 1  . 1 1 . 2 . 2 1 1 2 4 1 . . 1  1 2 . . 1 1 .  .  . .  . 3 .  .
##  [9,] 2  . 3 1  . . . 1 3 1 1 . 1 3 2 . 1 . .  1 . 1 3 2 1 .  .  . .  . . .  .
## [10,] 1  9 . 1  . 1 1 . 1 6 1 . 1 . . . . . 1  3 1 . . . 1 .  .  . .  . 3 .  .
## [11,] .  . . .  . . . . 1 . . . . . . . . . .  1 . . . . . .  .  . .  . . .  .
## [12,] .  . . .  . . . . 1 1 1 . . 2 . . . . .  2 1 . 1 . . .  .  . .  . . .  .
## [13,] .  . 1 .  . . . . . . 1 . . 1 . . . . .  . . . . . . .  .  . .  . . 1  .
## [14,] .  . . .  . . . . . . . . . 1 . . . . .  1 . . . . . .  .  . .  2 . .  .
## [15,] .  1 . .  . . . . . . . . 1 5 . . . . .  . . 1 . . . .  1  . .  . . .  .
## [16,] .  . 1 .  . . . . . . . . 1 . . . . . .  . . 1 . . . .  1  . .  . . .  .
## [17,] .  . . .  . . . . . 2 1 . . . . . . . .  . . . . 1 . .  .  . .  . . .  2
## [18,] .  . . .  . . . . . . 3 . . 1 1 . . . .  . . . . . . .  1  . .  1 . 1  .
## [19,] .  1 . .  . . . . . 1 1 . 1 . 1 . . . .  . . 1 . . . .  .  1 1  . . .  .
## [20,] .  . 1 .  . . 1 . . . 1 . . . 1 . . . .  . . 1 . . . .  .  . .  . . .  .
## [21,] .  1 . .  . . . . . 1 . . . . 1 1 . . .  . . . . . . .  .  . .  2 . .  .
## [22,] .  . . .  . . . . . 2 . . . . . . . . .  2 . . . . . .  .  . .  1 . .  .
## [23,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [24,] .  . . .  . . . . . 2 . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [25,] .  . . .  . . . 1 . 1 3 . . 1 . . . . .  1 . 1 . 1 . .  1  . .  . . 1  .
## [26,] .  1 . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [27,] .  . . 1  . . . . . 1 . . . 1 . . . . .  . . . . 1 . .  .  . .  1 . .  .
## [28,] .  . . .  . . . . . . . . . 1 . . . . .  . . 1 . 1 . .  .  . .  . . .  .
## [29,] .  . . .  1 . . . 1 . . . . . . . . . .  . . . . . 1 .  1  . .  . . .  .
## [30,] .  1 1 .  . . . . . . 1 . . 1 . . 1 . .  3 . . . . . .  .  . .  1 . .  .
## [31,] .  2 . .  1 . . . . . . . 1 2 . . . . .  1 . . 3 . . .  1  1 . 35 . .  .
## [32,] 2  . . .  . . . . . . . . . 2 1 . . . .  . . . . . . .  .  3 . 14 2 .  .
## [33,] .  . . .  . . . . . . . . . . . . . . .  1 . . 1 . . .  .  2 . 12 . .  .
## [34,] .  . . .  . . . . . 2 . . . 2 1 . . . . 15 1 1 1 . 1 .  .  3 . 30 5 .  .
## [35,] .  . . .  1 . . . . 2 . . . . . . . . .  . . . 1 . . .  .  2 . 20 4 .  .
## [36,] .  . . .  . . . 1 . . . . . . . . 1 . .  . . . 3 . . .  .  4 . 27 . .  2
## [37,] .  . . .  . . . . . 1 . . . . . . 1 . .  . . 1 4 . 2 .  1  8 . 28 . .  .
## [38,] .  . . 1  . . . . . . . . . 1 . . . . .  . 1 . 2 . . .  1  6 . 10 . .  .
## [39,] .  . . .  . . . . . . . . . 3 1 . . . .  . . . 1 . . .  1  1 . 25 . .  1
## [40,] 2  . . .  . . . . . . . . 1 1 . . . . .  1 1 . 1 . . .  . 11 . 27 7 .  1
## [41,] .  . . .  . . . . . 2 2 . . 1 1 1 . . .  2 . . 2 . . .  .  1 1 31 8 .  .
## [42,] .  1 . .  . . . . . 1 2 . . . . . . . .  1 . . 1 . 1 .  1  4 . 22 5 1  1
## [43,] .  3 . .  . . . . . 4 . . . . 2 . . . .  3 1 1 4 . . .  1  1 2  7 5 .  1
## [44,] .  1 . .  . . . . . . 1 . . 1 . . . . .  1 . . . . . .  1  2 1  2 . .  2
## [45,] .  1 . .  . . . 1 . 4 . 1 . 2 1 . . . .  . . . 2 . . .  .  1 2  4 7 . 47
## [46,] .  1 . .  . . . . 1 4 . . . . 2 . . . .  1 . . . 2 . .  .  2 . 14 1 .  .
## [47,] 2  . . .  . . . . 1 . . . . 2 . . . . .  1 . . . . . .  1  2 . 16 6 1  1
## [48,] .  2 1 .  . . . 1 . . 1 . . 3 1 . . . .  1 . . . . . .  .  1 2  4 7 1  1
## [49,] .  . . .  2 . . . . . . . . . 5 . . . .  . . . . . . . 39  5 . 29 6 1  1
## [50,] .  2 1 .  . . . . . 2 . . . 1 2 . . . .  1 3 . 1 . 1 1  .  1 3  8 1 1  1
## [51,] .  . . 1  . . . 1 . . 1 . . . . 1 . . .  . . 1 . . 1 .  .  . .  5 . .  .
## [52,] .  . . .  . 1 . . . . 1 . . 2 . . 1 . .  1 . . . 1 1 .  .  . .  3 . .  2
## [53,] .  . . 1  . . . . . 1 . . . . . . . . .  . . . . . 1 .  .  . .  . . .  .
## [54,] .  . . .  . . . . . . 1 . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [55,] .  . 1 .  . . . . . . 1 . . 2 . . . . .  . . . . . . .  .  . .  . . .  .
## [56,] .  . . .  . . . . 2 2 . . 2 . . . . . .  1 . 1 . . . .  .  . .  . . .  .
## [57,] .  . . .  1 . . . 3 . . . . 1 . . 1 . .  . . . . . 1 .  1  . .  5 1 1  2
## [58,] .  . . .  . . . . . 1 . . . . . 1 . . .  3 . . . . . .  .  . .  . 1 .  .
## [59,] .  . . .  1 . . . . . . . . 2 . . . . .  1 . . . . . .  .  . .  . . .  1
## [60,] .  . . .  . . . . 1 1 1 . 1 1 . . . . .  . . 1 . . 1 .  2  . .  . . 1  .
## [61,] .  1 . .  1 . . 1 . 2 . 1 . 4 1 . . . .  . . . . . . .  3  . .  . . .  .
## [62,] .  1 . .  . . . . . . . . . . . 1 . . .  2 . 1 . 1 2 .  .  . .  1 . .  .
## [63,] .  1 . .  . . . . 1 . . . . . . . . . .  1 . 1 . . . .  .  1 .  . . .  .
## [64,] .  . . .  . . . . 1 5 2 . . 4 . . . . .  1 . . . . 2 .  2  . .  . . 1  .
## [65,] 2  1 . .  1 . . . 1 2 3 . . 2 . . . . .  3 1 4 . . . .  .  1 .  1 1 .  .
## [66,] 1  . . .  . . . . 1 2 1 . . 4 . . 1 . .  . . . . . 1 .  .  . .  3 . 1  1
## [67,] .  . . .  1 . . . . . . . . 1 . . . . .  1 . 2 . . . .  1  . .  . . .  .
## [68,] .  1 . .  . . . . 1 1 . . . . . . . . .  5 . . . . . .  .  . .  1 . .  .
## [69,] .  . . .  . . . . . 2 . . . . . . . . . 13 . . . . 1 .  .  1 .  . . .  .
## [70,] .  . . .  2 . . . . . . . . 1 1 . . . .  2 . . 1 . . .  .  . 1  1 . .  .
## [71,] .  . . .  . . . . . 1 . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [72,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [73,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  1
## [74,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [75,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [76,] .  1 . .  . . . . . 1 . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [77,] .  . . .  . . . . . . . . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [78,] .  . . .  . . . . . . 1 . . . . . . . .  . . . . . . .  .  . .  . . .  .
## [79,] .  . . .  . . . . . . . . . . 1 . . . .  . . . . . . .  .  . .  . . .  .
## [80,] .  . . .  . . . . 1 1 1 . . . . . . . .  . . . . . . 1  .  . .  . 1 .  .
##                                                                               
##  [1,] . .  . . . .  . . . . . 1 . . . 1  . . . . . .  .  .   1 .  1  . .  .  .
##  [2,] . 3  . . 2 .  2 . . 1 . 2 . . . .  . . . . . .  .  1   1 .  1  . .  .  .
##  [3,] . 2  . . 2 .  . . . . . 2 . . . .  . . . . 1 .  .  1   1 .  .  . .  1  .
##  [4,] . .  2 . 4 .  . . 1 . . . 1 . . .  . . . 1 . 1  .  .   . .  .  2 .  1  .
##  [5,] 1 1  . . 1 .  . 1 . . . . . . . .  . . . . 1 2  .  .   . .  .  . .  .  1
##  [6,] . 1  . . 1 .  . . . . . 1 1 . . .  . . . . . .  .  .   1 .  .  . .  .  .
##  [7,] . 2  1 . . .  . . . . . . . . . .  . . . . . .  .  .   . .  .  1 .  .  .
##  [8,] . .  . 1 . .  1 . . . . . 1 . . .  1 . . . . .  .  1   . .  .  . .  .  .
##  [9,] . .  . . . .  . . . . . 2 2 . 1 .  . . . . 1 .  .  .   1 .  1  1 .  .  .
## [10,] . 2  . . 6 .  2 . . . . 1 . . . .  . . . . . .  .  .   . .  .  . .  4  .
## [11,] . .  . . . .  . . . . . . . . . .  . 1 . . . 1  .  .   1 .  1  . .  .  .
## [12,] 1 .  . . 1 .  . 2 . . . . 2 . . 1  . . . . 1 1  .  .   4 .  .  . .  1  .
## [13,] . .  . . . .  . . . . . . 1 1 . .  . . . . . .  .  .   . .  .  . .  1  .
## [14,] . .  . . . .  . . . . . . . . . .  . . . . . .  .  .   1 .  .  . .  .  .
## [15,] . .  . . 1 .  . . . . . . 1 . . 1  . . . . . .  .  .   . .  .  . .  1  .
## [16,] . .  . 1 1 .  . . . . 1 . . . . .  . . . . . .  .  .   . .  .  . .  .  .
## [17,] . .  . . . .  . . . . . . . . . .  . . . . . .  .  .   . .  .  . .  .  .
## [18,] . .  . . 1 .  . . . . . . 1 . . .  . . . . . .  .  .   1 .  .  . .  .  .
## [19,] . .  . . . .  . . . . . . . . . .  . . . . . 1  .  .   1 .  .  . .  1  .
## [20,] . .  . . . .  . 1 . . . 2 1 . . .  . . . . . .  .  .   . .  .  . .  1  .
## [21,] 1 .  . . . .  . . . . . . 1 . . .  . . . . . 2 18 30  50 1 10 14 3  3  4
## [22,] . .  1 . . .  1 . 1 . . . . 1 . .  . . . . . .  5 12  29 2  6 13 2 13  7
## [23,] . .  . . . .  1 1 . . . . . . . .  . . . . . . 25 51  25 2  5  3 .  5  1
## [24,] . .  . . . .  1 . . . . . . . . .  . . . . . .  5 22  49 4  9 10 .  .  6
## [25,] . .  . . 3 .  1 . . . . . 1 . . .  . . . . . . 25 85  98 1  7 16 1 11  5
## [26,] . .  . . . .  . . . . . . . . . .  . . . . . .  6  3  11 .  1  4 .  .  1
## [27,] . .  . . 1 .  . . . . . . . 1 . .  . . . . . . 24 54  59 1  1 13 1  2  6
## [28,] . .  . . . .  . . . . . . . . . .  . . . . . . 40 55  28 1  2 12 .  3  4
## [29,] . .  . . 1 .  . . . . 1 1 . . . .  . . . . . . 16 35  34 3  8 19 1  5  5
## [30,] . .  1 . . .  . . . . . . 1 . . 1  . . . 1 . . 11 17  16 .  7 12 . 10  1
## [31,] 4 .  . . . .  . . . . . 1 . . . 1  . . . . . .  1  .   . .  .  3 .  .  .
## [32,] 4 1  2 . 2 .  . . . . . 1 . . . 1  . . 1 . . .  .  .   . .  .  . .  1  .
## [33,] 2 .  5 . . .  1 . . 1 . . . 1 . 1  . . 1 . . .  .  .   1 .  .  4 .  .  .
## [34,] 7 2 14 1 . .  1 . . . . 1 . . . .  . . 1 . . 2  .  1   . .  .  3 .  1  2
## [35,] 2 1  . . 1 .  . . . . . 1 . . 2 .  . . . . . 2  .  1   2 .  .  6 .  .  .
## [36,] 4 1 29 . . .  2 1 . . . . 1 . . .  . . . . . 1  1  .   . .  .  7 .  1  .
## [37,] 3 1  1 . 1 .  . . . . . . 1 . . .  . . . 2 . 1  .  1   . .  .  3 .  .  .
## [38,] 3 2  7 . . .  1 . . . . 1 1 . 3 .  . . . . . 1  .  .   1 .  1  4 .  .  .
## [39,] 2 1  5 . 1 .  1 . . . . . 2 . . .  . . . . . 1  .  .   . .  .  5 .  .  .
## [40,] 5 . 25 . 2 .  1 1 . . . 1 1 . 2 2  . . . . 1 .  .  .   . .  . 15 .  .  1
## [41,] 2 1  . 1 1 1  1 1 1 . . . 1 . . 1  1 . 1 . . 2  .  .   . .  .  2 .  5  .
## [42,] 3 1 14 . 2 .  . 2 . . 1 1 2 1 1 1  1 . . 1 . 1  .  .   1 .  .  . .  1  .
## [43,] 1 2 27 1 1 .  2 . . 3 . 3 1 . . .  1 1 . . 1 2  .  .   1 .  .  1 .  1  .
## [44,] 1 .  3 . 1 .  1 1 . . . . 1 1 . 1  . 1 . 1 1 .  .  .   . .  .  1 .  .  .
## [45,] . 1 13 . 1 1  . 1 1 1 . 1 1 . . 1  . 1 2 1 2 2  .  .   . .  .  . .  .  .
## [46,] 2 2 17 1 2 .  . 1 . 3 . . . 1 . 1  . 2 1 . . 1  .  .   . .  .  . .  .  .
## [47,] 8 1  7 . 4 .  1 . 1 3 . . 1 . 1 1  . . . . . .  .  .   . .  1  . .  1  .
## [48,] 4 1  3 1 1 .  1 1 . . 1 7 2 1 4 .  . . 1 1 . 1  .  .   1 .  .  . .  .  .
## [49,] 5 1 16 1 2 1 17 1 . . 1 . . 1 1 1  . . . 1 . 2  .  .   . .  .  . .  1  .
## [50,] 2 1 12 . 4 1  . . . . 2 1 2 . 1 . 13 . . . 1 .  .  .   . .  2  . .  .  .
## [51,] . .  3 . 2 .  . 1 . . . . . . . .  . . . . . .  2 20  41 . 13 11 .  2  6
## [52,] . .  1 . 1 .  . . . . . . 1 . . .  . . 1 . . 1  2  6   4 .  7 21 .  2  5
## [53,] . .  . . . .  1 . . . . . . . . .  . . . . . .  .  1   3 .  5  2 .  2  1
## [54,] . .  . . . .  . . . . . . . . . .  . . . . . .  4  .   3 .  1  5 .  .  1
## [55,] . .  . . 2 .  1 . . . . . . . . .  . . . . . .  3 10  14 .  4 21 .  2  6
## [56,] . .  . . . .  . . . . . . . . . .  . . 1 . . 2  .  4  17 1  3 13 .  1  4
## [57,] . 1  . . 3 .  1 . . . . . 1 . . .  . . . . . 1  1  8   7 .  1 16 .  1  3
## [58,] . .  . . 1 .  . . . . . . 1 . . .  . . . . . 1  1  6   6 .  1  9 .  1  2
## [59,] . .  . . 3 .  2 . . . . . . . . 2  . . . . . .  2  .   9 .  2 16 .  2  4
## [60,] . .  . . 1 .  . . . . . . 1 . . .  . . . . 1 1  .  .   6 .  . 17 .  9  5
## [61,] . .  . 2 . .  1 1 . . . . . 1 . 1  1 . . 1 1 1  .  .  76 .  .  2 .  2  1
## [62,] . .  1 . 2 .  . . . . . . . . . .  . . . . . .  2  .  20 .  .  8 .  2  3
## [63,] . .  . . 3 .  . . . . . 1 1 . . 1  . . . . . .  .  1  24 .  3  6 .  .  2
## [64,] . .  . . . .  1 1 . . . . 1 . . .  . . . . . .  2 10  79 2  1  9 1  1  5
## [65,] 1 .  1 1 1 .  1 2 . . . . . . . 1  . . 1 . . 1  1  .  53 2  2 11 .  1 14
## [66,] 1 .  1 . 3 .  . 2 . . . . . 1 . .  . . . . . 4  9 41  53 1  4 14 1  6 11
## [67,] . .  . . 2 .  . . . . . . 2 1 . .  . . . . 1 .  1 11  87 1  6 10 .  1  3
## [68,] . .  . . . .  1 . . . . . . . . .  . . . . . 1 23 32  76 1  1 10 .  3  4
## [69,] . .  . . 4 .  . . . . . . . . . .  . . . . . .  4 17  42 .  .  6 1  2  8
## [70,] 1 .  . . 2 .  . . . 1 . 2 . . . .  . . . . . 2  .  . 114 .  .  7 1  4  4
## [71,] . .  8 . . .  . . . . . . . . . .  . . . . . .  .  3   3 .  .  . .  .  .
## [72,] . .  5 . . .  . . . . . . . . . .  . . . . . .  1  .   1 .  .  . .  .  .
## [73,] . .  4 . . .  . . . . . . . . . 1  . . . . . .  .  .   1 .  .  . .  .  .
## [74,] . . 10 . . .  . . . . . . . . . .  . . . 1 . .  .  .   . .  .  . .  .  .
## [75,] . . 11 . . .  . . . . . . . . . .  . . . . . .  .  .   1 .  .  . .  .  .
## [76,] . . 30 . . .  . . . . . . . . . .  . . . . . .  1  .   . .  .  . .  .  .
## [77,] . .  8 . . .  . . . . . . . . . .  . . . . . .  .  .   . .  .  . .  .  .
## [78,] . .  5 . . .  . . . . . . . . . .  . . . . . .  .  .   . .  .  . .  .  .
## [79,] . .  9 . . .  . . . . . . . . . .  . . . . . .  .  .   . .  .  . .  .  .
## [80,] . .  2 . . .  . . . . . . . . . .  . . . . . .  2  7  22 .  . 14 .  6  2
##                                                                               
##  [1,]  1  . . .  1 . . . .  1 .  . .  . .  . . . . . 1  .  . . . .   .  . .  .
##  [2,]  1  . . .  . . . . .  . .  1 .  . .  1 1 1 . . .  .  . . . .   .  . .  .
##  [3,]  .  . . .  1 . . 1 .  . .  . .  . .  . . . . . .  .  . . 1 .   .  . .  .
##  [4,]  .  . . .  2 . . . .  . .  . 1  . .  . . . . . .  .  . . . .   .  1 .  .
##  [5,]  1  1 . .  1 . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . 1  .
##  [6,]  2  1 . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
##  [7,]  .  1 . .  . . . . .  . .  . .  1 .  . . . . . .  .  . . . 1   .  . .  1
##  [8,]  1  . . .  . . . . .  . .  . .  . .  . . . . . 1  .  . . . .   .  . .  .
##  [9,]  1  . . .  . . . . .  . .  . 1  . .  . . . . . .  .  . . . .   .  . .  .
## [10,]  1  1 . .  . . . . .  . .  . .  . .  1 . . . . .  .  . . . .   .  . .  .
## [11,]  1  . . .  . . . . .  . .  . .  . .  . . . . . .  3  . . . .   4  . .  1
## [12,]  .  1 . .  . . . 1 .  . .  . 1  . .  . . . . . .  8  . . 1 .  10  4 .  4
## [13,]  1  . . .  . . . . 1  . .  . .  . .  . . . . . .  2  . . . .   4  4 .  3
## [14,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  2  . . . .   4  1 .  .
## [15,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  5  . . . .   8  . .  4
## [16,]  .  1 . .  . . . . .  . .  . .  . .  . . . . . .  9  . . 4 .  23  8 .  8
## [17,]  1  1 . .  . . . 1 .  . .  . .  . .  . . . . . .  .  . . 1 .   7  1 .  1
## [18,]  2  . . .  . . . . .  . .  . .  . .  . . . . . .  5  . . 1 .   .  5 .  2
## [19,]  .  . 1 .  . . . . .  . .  . .  . .  . . . . . .  1  . . . .   4  . .  2
## [20,]  2  . . .  . . . . .  . .  . .  . .  . . . . . .  5  . . 1 .   6  1 .  4
## [21,] 15  1 . .  2 1 . 1 1  2 1  3 5 12 .  2 . . . 1 5  .  . . . .   .  1 .  .
## [22,]  9  2 . 1 14 1 1 3 1 27 1  4 1  6 .  . 4 . 1 . 3 13  . . 4 .  18  5 1  8
## [23,]  1  6 1 . 10 1 . 1 .  . .  2 .  2 1  . . . 1 . .  2  . . 1 .   1  . .  1
## [24,]  5  . . 4  8 . . 2 1  1 2  1 .  1 1  1 4 . . . .  1  . . 1 .   2  . .  1
## [25,]  7 36 2 1 11 1 1 . 1  1 1  1 1  6 2 14 4 1 . 1 3  .  . . . .   .  . 2  .
## [26,]  3  1 1 1  4 1 . 1 1  1 .  . 1  . 2  1 1 1 . 1 .  1  . . . .   3  . .  .
## [27,]  4  5 4 7  6 1 1 . .  . 1  . .  . 1  2 3 3 . 1 1  .  . . . .   .  . .  .
## [28,]  4  . 1 1  7 1 2 1 .  . .  2 .  . 3  . . 2 2 . 5  .  . . . .   1  . 1  .
## [29,] 11  3 1 1 22 . . 1 2  1 2 15 2  5 .  1 2 1 . . .  7  . . 1 .   7  . 1  4
## [30,]  7  5 . 2 37 . 1 3 1  1 1  2 1  2 1  2 . . 5 . 4  6  . . 2 .   7  1 .  1
## [31,]  .  1 . .  3 . . . .  . .  . .  . .  . . . . . .  .  . . . .   2  . .  .
## [32,]  .  . . .  4 . . . .  . .  . .  . .  . . . . . .  1  . . . .   4  . .  1
## [33,]  1  . . .  9 . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [34,]  .  . . .  6 . . 1 .  . .  . .  . .  . . . . . .  2  . . . .   .  . .  .
## [35,]  .  . . .  1 . . . .  . .  . .  . .  . . . . . 1  .  . . 1 .   .  . .  .
## [36,]  .  . . .  3 . . . .  . .  . .  . .  . 1 . . . .  .  . . . .   .  . .  .
## [37,]  1  1 . 1 14 . . . .  . .  . .  . .  . . . . . 1  1  . . . .   .  . .  .
## [38,]  .  1 . .  2 . . . .  1 .  . .  . .  . . . . . 1  .  . . . .   .  . .  .
## [39,]  .  1 . .  1 . . . .  . .  . .  . .  . . . . . 2  .  . . . .   .  . .  .
## [40,]  4  . . .  4 . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [41,]  1  1 . .  1 . . . .  . .  . .  . .  . . . . . .  .  1 . . .   .  . .  .
## [42,]  1  1 . .  3 . . . .  . .  1 .  . .  . . . . . .  .  . . . .   4  1 .  .
## [43,]  .  . . .  . . . 1 .  . .  . .  1 .  . . . . . .  .  . . . .   .  . .  .
## [44,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [45,]  1  2 . .  . . . . .  . .  . .  . .  . . . . . .  1  . . . .   1  . .  .
## [46,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  3  . . . .   2  . .  1
## [47,]  .  1 . .  1 . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [48,]  .  . . .  . . . 1 .  . .  . .  . .  . 1 . . . .  .  . . . .   .  . .  .
## [49,]  .  . . 1  1 . . . .  . .  . .  . .  . . . . . 1  1  . . . .   .  . .  .
## [50,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [51,]  8  2 1 4  5 . . . .  1 .  4 .  3 .  3 2 . 1 1 . 12  . . 1 .   8  . .  4
## [52,]  8  4 . . 12 . . . .  1 1  5 .  . .  2 2 . . . 2  4  . . . .   3  2 .  5
## [53,]  7  . . 1  4 . . . .  1 1  2 .  . 1  . . . . . .  2  . . . .   5  . .  .
## [54,]  3  1 . .  2 . . . .  . .  . .  . .  1 . . . . 1  1  . . . .   2  . 1  .
## [55,] 10  2 . 1 16 2 1 2 .  3 1  . 1  . .  3 4 2 1 . 1  5  . . . .   3  . .  3
## [56,] 15  3 . . 10 . . 2 .  6 2  5 .  . .  1 2 . 1 . 3  5  . . 4 .   7  1 .  3
## [57,] 18  6 . 3  6 1 . 5 1  1 1  2 .  . .  1 . 1 . . 1  7  . . . .   6  1 1  6
## [58,] 19  4 . .  2 . . 1 .  2 1  3 1  . .  . 2 2 . . 3 14  . . . .   5  2 1  3
## [59,]  4  2 . . 12 2 . 2 .  2 .  2 3  . .  1 1 . 1 . .  5  . . . .   9  . 2  6
## [60,] 17  5 . 2 16 1 1 . .  4 .  3 1  . .  1 . . 2 . 2 11  . . . .   4  . 2  2
## [61,]  5  1 . 1  8 . . 1 .  2 .  . 2  3 4  3 . . . . . 75 16 . 6 3 102 25 2 11
## [62,]  3  . . 1 13 . . . .  2 .  . 1 10 1  1 5 . . . 4 52  1 5 6 3  78 39 2 26
## [63,]  1  . . . 21 . . 1 1  2 .  . 1  1 .  . 1 1 2 . . 11  2 2 5 1  23  5 .  5
## [64,]  5  4 . 2  9 . . . .  2 .  . .  2 7  2 . 1 . . 2 19  4 4 4 3  25  2 1  2
## [65,]  .  2 . . 20 . . . 2  . .  1 3  3 7  2 6 . 1 . 6 54  8 2 6 .  69 16 1 31
## [66,]  3  5 . 2 10 2 . . 1  . .  2 1  4 .  3 2 1 . . 2 23  5 3 5 1  24  6 1 21
## [67,]  6 10 . 2 23 1 . 1 .  3 .  . 1  4 2  3 7 . . . 5 45  8 6 6 3  43 11 6 21
## [68,]  2  6 . 1  5 . . . 1  1 1  . 1  1 1  1 2 1 . . 1 10  4 4 5 .   8  3 3  2
## [69,]  .  4 . . 28 . . . .  . .  . 1  3 2  4 2 . . . . 23  7 2 3 1  10  4 5  3
## [70,]  3  2 . . 13 . . . .  2 .  . 1  6 .  3 . . . . . 37  . 1 5 2  50  9 1 10
## [71,]  1  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   1  . .  .
## [72,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [73,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [74,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [75,]  .  . . 1  1 . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [76,]  .  2 . .  . . . . 1  . .  . .  . .  . 1 . . . .  .  . . . .   .  . .  .
## [77,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [78,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [79,]  .  . . .  . . . . .  . .  . .  . .  . . . . . .  .  . . . .   .  . .  .
## [80,]  3  3 . 1 10 . . . .  . .  3 1  3 1  2 1 1 . . 4  5  . 1 1 .   5  . .  1
##                                                                              
##  [1,]  .   . .  . . .  .  1  . .  .  .  . .  .  2 .  .  2  .  .  .  .  . .  .
##  [2,]  .   . .  . . .  .  1  . .  .  .  . 1  .  . .  .  .  .  .  .  1  . .  .
##  [3,]  .   . .  . . .  1  1  . .  1  .  . .  .  1 .  .  1  2  .  2  .  1 .  1
##  [4,]  .   . .  . . .  .  1  3 .  .  .  . .  .  2 .  3  .  .  1  1  .  1 .  .
##  [5,]  .   . .  1 . .  1  2  . .  1  .  1 .  .  3 .  2  .  3  1  .  .  . .  .
##  [6,]  .   1 .  . . .  .  .  . .  1  .  1 .  .  2 .  1  .  2  .  1  1  . .  .
##  [7,]  .   . .  . . .  .  .  . .  .  .  . .  .  2 .  .  2  .  .  .  1  . .  .
##  [8,]  .   . .  . . .  .  1  . .  .  .  . .  .  1 .  .  1  .  1  .  1  . .  .
##  [9,]  .   . .  . . .  .  .  1 .  .  .  . .  1  . .  .  .  .  .  .  1  . .  .
## [10,]  .   . .  . . .  .  2  . .  .  .  1 .  .  3 1  .  .  .  1  .  2  . .  .
## [11,]  2   . .  . . .  .  .  . 1  .  .  . .  .  . .  .  .  .  .  .  .  . .  .
## [12,] 10   . .  . 2 .  .  1  . 1  .  .  1 .  .  . .  .  .  .  .  1  1  . .  .
## [13,]  6   . .  . . .  .  .  1 .  .  .  1 .  .  1 .  .  .  .  2  1  .  . .  .
## [14,]  1   . .  . . .  .  .  . 1  .  .  . .  .  . .  .  .  .  .  .  .  . .  .
## [15,]  5   . .  . 1 .  .  .  2 .  1  .  . .  .  . .  .  1  2  1  1  2  . .  .
## [16,] 16   . .  . . .  3  2  . .  .  .  1 .  .  2 .  .  .  .  .  .  5  . 1  .
## [17,]  5   . .  . 1 .  .  .  . .  .  .  . .  .  4 .  .  .  .  .  .  .  . .  .
## [18,] 11   . .  . 1 .  1  .  . 2  .  .  . .  .  . .  .  .  .  1  .  .  . .  .
## [19,]  5   1 .  . . .  .  .  . 1  .  .  . .  .  . .  1  .  .  1  .  .  . .  .
## [20,]  8   1 .  . . .  .  .  . 1  1  .  . .  .  1 .  .  1  .  .  .  .  . .  .
## [21,]  2  13 4  . . .  2  .  . .  .  .  1 4  .  . .  3  5  6  1  .  4  3 6  1
## [22,] 12  28 .  . 2 .  3  .  . .  1  .  3 1  7  . .  6  7  5  .  1 15  . 4  5
## [23,]  1  15 .  1 . .  1  1  . .  .  .  . 1  1  . .  1  6  1  .  1  8  . .  .
## [24,]  5  11 .  . . .  6  .  1 .  .  .  3 .  1  . .  4  5  5  1  .  5  . 2  .
## [25,]  1  13 .  . . .  5  2  2 2  .  .  1 1  1  . .  8  4  3  2  .  4  3 .  .
## [26,]  .   7 1  . . .  1  .  . .  .  .  1 .  .  . .  3  3  2  .  .  2  . .  2
## [27,]  3  37 .  . . .  3  .  1 .  .  .  1 5  2  . .  5  1  1  .  .  8  1 1  4
## [28,]  .   5 .  . . .  1  1  1 .  .  .  . 1  .  . .  .  2  1  1  .  2  1 .  1
## [29,]  5  20 2  1 . .  4  2  1 1  .  .  2 .  2  3 .  7 10  6  2  2 11  1 3  2
## [30,]  3  18 3  . . .  2  1  . .  .  .  3 2  1  3 . 13 12  4  .  . 18  1 3  7
## [31,]  .   1 .  . . .  1  3  . .  .  .  1 .  .  1 .  .  1  .  2  1  3  . .  .
## [32,]  2   . .  . . .  2  .  . .  .  1  . .  .  4 .  .  .  1  .  .  .  1 .  .
## [33,]  .   . .  . . .  .  1  1 .  .  .  . .  .  5 .  .  .  2  1  1  .  . .  .
## [34,]  1   . .  . . .  1  .  1 .  .  .  4 .  .  1 .  .  .  .  1  .  .  . .  .
## [35,]  .   . .  . . .  2  3  1 .  .  .  1 .  1  1 .  .  .  1  .  .  .  . .  .
## [36,]  .   . .  . . .  .  .  . .  .  .  . .  .  . .  1  .  .  1  .  .  . .  .
## [37,]  .   1 .  . . .  1  .  1 .  .  .  4 .  .  1 .  .  .  1  .  .  1  . 1  .
## [38,]  .   1 .  . . .  2  1  1 .  .  .  1 .  .  . .  .  .  1  1  .  .  . .  .
## [39,]  1   . .  . . .  .  .  1 .  .  .  . .  .  . .  .  .  .  .  1  1  . .  .
## [40,]  .   . .  1 . .  1  3  1 .  .  .  1 .  .  . .  .  .  .  2  1  1  . .  .
## [41,]  .   . .  . . .  2  1  . .  .  1  . .  .  . .  .  .  3  .  1  .  1 .  .
## [42,]  .   . .  . 1 .  .  1  . .  1  .  . .  .  . .  .  .  1  1  1  1  . .  .
## [43,]  .   . .  1 . .  .  .  . .  .  .  1 .  .  . .  .  .  .  1  .  3  1 .  .
## [44,]  .   . .  . . .  .  .  . .  .  .  . .  .  2 .  .  .  .  .  .  .  . .  .
## [45,]  .   . .  . . .  .  .  . .  .  .  . .  .  . .  .  2  1  .  1  .  . .  .
## [46,]  3   . .  . . .  .  .  . .  .  .  . .  .  1 .  .  .  .  1  1  .  . .  .
## [47,]  .   . .  . . .  .  2  . .  .  .  1 .  .  . .  .  .  .  2  .  .  1 .  .
## [48,]  .   1 .  . . .  .  1  . .  1  .  1 .  .  1 .  .  .  1  2  .  .  . .  .
## [49,]  .   . .  . . .  1  1  . .  .  .  . .  .  3 .  .  .  2  1  1  2  . .  .
## [50,]  .   . .  . . .  .  1  . .  .  .  2 .  .  . .  .  .  1  1  .  1  . .  .
## [51,]  8  16 .  . . .  4  3  1 .  .  .  9 2  2  3 . 15  7  8  2  . 21  2 2  5
## [52,]  4  32 .  . . .  1  3  1 .  .  .  3 .  1  1 . 17 12  8  2  1 25  3 1  3
## [53,]  .   7 .  . . .  2  .  . .  .  .  1 1  3  . .  8  7  6  1  .  6 16 1  4
## [54,]  .   9 .  . . .  .  1  1 .  .  .  . 1  .  . . 11  6  2  .  . 10  . 1  1
## [55,]  7  11 .  . . .  1  2  . .  .  .  4 2  .  . . 18 32  9 50  3 26  1 3 11
## [56,]  7  17 .  . . .  5  2  . .  1  .  2 3  1  1 . 13 33  9  1  3 26 11 4  9
## [57,] 13  33 .  2 1 .  .  .  . .  .  .  3 .  1  . . 36 12 10  1  1 16  3 5  2
## [58,]  6  10 .  1 2 .  .  1  2 2  .  .  2 1  .  . . 17 19  8  1 27 15  5 5  5
## [59,]  6  15 1  . . .  1  2  3 .  .  .  . 1  3  1 . 12 18  5  3  1 11  4 3  7
## [60,]  4  25 .  . . .  1  .  . .  .  .  6 3  2  1 . 27 29 10  1  1 22  6 6 10
## [61,] 50  61 1  . 7 2  9  1  4 2  .  2  5 6  4  3 . 12  6  1  5  . 10  8 1  .
## [62,] 53  31 8  1 9 5  4  .  3 .  .  .  1 1  .  1 4  7  7  2  .  .  5  1 1 12
## [63,] 10  25 .  1 1 .  5  1  . 3  .  .  5 .  2  . 1  7  1  1  .  .  5  1 .  2
## [64,]  9  14 3 33 . .  7  2  1 2  1  .  1 2  .  2 .  4  3  6  .  . 16  . 3  1
## [65,] 68  58 1  . 6 3  2  1  . 3  1  . 22 5  1 64 1  8 11  6  2  .  2  . .  3
## [66,] 36 112 2  . 1 3  5  .  1 1  .  . 10 4 39  2 . 10  7  4  5  .  3  . 1  4
## [67,] 49  37 3  . 4 . 12  1 38 2 21  .  9 8  1  3 .  4  9  4  4  2 16  1 .  4
## [68,]  3  18 6  . 1 .  7  1  . .  .  1  1 2  3  1 1  2  4  2  .  2  3  1 .  .
## [69,]  9  29 1  1 . . 10  3  . 1  1 32  3 4  5  1 .  6  1  2  1  1  4  1 .  .
## [70,] 26 125 .  3 5 1 18 43  1 8  .  .  3 5  1  1 .  6  4  7  3  2  5  2 1  1
## [71,]  .   5 .  . . .  .  .  . 1  .  .  . .  .  . .  .  .  .  .  .  3  . .  .
## [72,]  .   1 .  . . .  .  .  . .  .  .  . 1  .  . .  .  .  .  .  .  4  . .  .
## [73,]  .   . 1  . . .  .  .  1 .  .  .  . .  .  . .  .  .  1  .  .  2  . .  .
## [74,]  .   . .  . . .  .  .  . .  .  .  . .  .  . .  .  .  1  .  .  6  . .  .
## [75,]  .   5 .  . . .  1  .  . .  .  .  . .  .  . .  .  1  1  .  .  3  . .  .
## [76,]  .   1 .  . . .  .  .  2 .  .  .  . .  .  . .  .  .  .  .  . 17  . .  .
## [77,]  .   3 .  . . .  .  .  . .  .  .  . .  .  . .  .  .  .  .  .  3  . .  .
## [78,]  .   . .  . . .  .  .  . .  .  .  . .  .  . .  .  .  .  .  .  6  . .  .
## [79,]  .   . .  . . .  .  .  . .  .  .  . .  .  . .  .  .  .  .  .  4  . .  .
## [80,]  4  16 5  . . .  4  3  2 .  .  .  4 .  1  . .  7  5  1  1  1  3  . 2  1
##                                                                              
##  [1,]  . .  2  . .  3 1 . . . .  . . . . . 1 .  .  .  .  .  .  .  . . .  .  .
##  [2,]  . .  .  . .  . . . . . .  . . . . . 1 .  .  .  .  .  .  .  . . .  .  .
##  [3,]  . .  1  1 .  3 . . . . .  4 . . 1 . . .  1  .  1  .  .  .  . . .  .  .
##  [4,]  . .  2  . .  3 . . 1 . .  2 1 . . 1 . .  .  1  .  1  .  .  . . .  .  .
##  [5,]  1 .  1  . .  1 . . . . .  1 . . . 1 . .  .  1  .  1  1  .  . . .  .  .
##  [6,]  . .  .  . .  3 . . . . .  2 . . . . . .  .  .  .  1  .  .  . . .  .  .
##  [7,]  . .  .  . .  3 . . . . .  . . . . . . .  1  .  .  .  .  .  . . .  .  .
##  [8,]  1 .  1  . .  1 . . . . .  1 . . . . . .  .  .  .  1  1  .  . . .  .  .
##  [9,]  . .  1  . .  . . . . . .  1 . . . . . .  1  .  .  .  .  .  . . .  .  .
## [10,]  . .  .  . .  3 . . . . .  3 . . . . . .  .  .  .  1  .  .  . . .  .  .
## [11,]  . .  .  . .  . . . . . .  . . . . . . .  .  .  .  .  .  .  . . .  .  .
## [12,]  1 .  1  . 1  1 . . 2 . .  2 . . . . . .  .  1  1  1  .  .  . . .  .  .
## [13,]  . .  .  . .  2 . . . . .  . . . . . . .  .  .  .  1  .  .  . . .  .  .
## [14,]  . .  .  . .  . . . . . .  . . . . . . 1  .  1  .  .  .  .  . . .  .  .
## [15,]  . .  .  . .  1 . . . . .  . . . . . . .  .  .  .  1  .  .  . . .  .  .
## [16,]  . .  .  1 .  . . . . . .  1 . . . 1 . .  .  .  .  .  .  .  . . .  .  .
## [17,]  . .  .  . .  . . . . . .  . . . . . . .  .  .  .  1  .  .  . . .  .  .
## [18,]  . .  .  . .  . . . . . .  1 . . 1 . . .  .  .  .  .  1  .  . . .  .  .
## [19,]  . .  .  . .  2 . . . . .  . . . . . . .  .  1  .  .  .  .  . . .  .  .
## [20,]  . .  .  . .  3 . . . . .  . . . . . . .  .  .  .  .  .  .  . . .  .  .
## [21,]  1 .  2  6 .  6 . . . 1 .  6 1 . . . 2 1  .  .  .  4  .  .  . 1 .  .  .
## [22,]  1 . 10  3 1  4 2 . . 1 1 15 1 2 . 1 1 .  .  1  .  5  .  .  . . .  .  .
## [23,]  . .  4  4 .  . . . . . .  2 . 4 . . 1 .  .  1  .  3  .  .  . . .  .  .
## [24,]  . .  2  6 .  . . . . . .  4 . . . . 1 .  .  .  .  5  .  .  . . .  .  .
## [25,]  . .  2  1 1  1 . 1 2 . .  7 . . . . 1 .  .  .  1 12  1  .  . . .  .  .
## [26,]  . .  2  2 .  1 . . . . .  3 . . . . 1 .  .  .  .  1  .  .  . . .  .  .
## [27,]  . .  1  4 .  . . . . . 1  6 . 3 . . 1 .  .  1  . 15  1  .  . . .  .  .
## [28,]  . .  6  4 .  1 . 2 . 1 .  . . . . . . 1  .  .  .  2  .  .  . . .  .  .
## [29,]  . 1  5  9 .  3 1 . . 1 3  4 . 1 2 . . .  .  .  .  3  .  .  . . .  .  .
## [30,]  1 .  6  8 .  6 . 2 . . . 20 . 3 1 1 2 .  .  1  .  1  .  .  . 2 1  .  .
## [31,]  6 .  6  8 .  8 . . . . .  . . . . 2 . .  .  .  .  .  2  .  . . .  .  .
## [32,]  2 .  .  . .  2 . . . . .  1 . 1 . . 2 .  .  .  .  1  1  .  . . .  .  .
## [33,]  2 .  .  3 .  3 . . . . .  1 . . . . 1 .  1  .  .  .  .  .  . . .  .  .
## [34,]  1 .  .  1 .  5 . . . . .  . 1 . . 1 . .  .  .  .  .  .  .  . . .  .  .
## [35,]  . .  .  2 .  2 . . . . .  . 1 . . . . .  .  .  .  .  .  .  . . .  .  .
## [36,]  1 .  .  5 .  1 . . . . .  . . . . 1 . .  .  .  .  .  .  .  . 1 .  .  .
## [37,]  2 .  1  6 1  5 . . . . .  1 . . . 3 . .  1  .  .  2  1  .  . . .  .  .
## [38,]  1 .  1  6 .  1 . . . . .  . . . . 1 . .  .  .  .  .  1  .  . . .  .  .
## [39,]  2 .  .  1 1  3 . . . . .  . . . . 1 . .  .  .  .  1  1  .  . . .  .  .
## [40,]  6 .  .  6 .  2 . . . . .  . . . . 2 . .  3  .  .  .  .  .  . . .  .  .
## [41,]  2 .  1  3 .  7 . . . . .  1 . . . . . .  .  .  .  .  .  .  . . .  .  .
## [42,]  . .  .  . .  4 . . . . .  2 . . . . . .  1  .  .  .  .  .  . . .  .  .
## [43,]  . .  .  . .  2 . . . . .  . . . . . . .  .  .  .  .  .  .  . . .  .  .
## [44,]  . .  .  . .  2 . . . . .  . . . . . . .  .  1  .  1  .  .  . . .  .  .
## [45,]  . .  1  . .  5 1 . . . .  5 . . . . . .  .  .  .  1  .  .  . . .  .  .
## [46,]  . .  1  . .  1 . . . . .  1 . . . . 1 .  .  .  .  .  .  .  . . .  .  .
## [47,]  1 .  .  . .  1 . . . . .  . . . . 1 1 .  .  .  .  1  .  .  . . .  .  .
## [48,]  . .  1  . .  4 . . . . .  . . . . 1 . .  .  .  .  2  .  .  . . .  .  .
## [49,]  . .  .  . .  1 . . . . .  2 . . . . . .  1  .  .  .  .  .  . . .  .  .
## [50,]  . .  .  . .  2 1 . . . .  . . . . . . .  .  .  .  .  .  .  . . .  .  .
## [51,]  . 1 17 12 .  5 . 3 . 2 1  9 2 6 . 1 2 1  .  .  .  5  2  .  . . .  .  .
## [52,]  5 1 13 12 2 10 2 3 5 4 2 20 3 4 5 6 2 . 26  .  .  3  .  .  . . .  .  .
## [53,]  1 3  1  2 1  1 2 . 1 2 .  9 . 1 . . . 1  .  1  .  .  .  .  . . .  .  .
## [54,]  2 .  2  4 .  4 1 1 . 1 1  3 . . . 1 2 .  .  1  .  .  .  .  . . .  .  .
## [55,] 14 .  9 35 3 17 1 2 2 1 .  6 6 4 4 1 2 1  2  2  .  1  .  .  . . .  .  .
## [56,]  4 1 12 16 4  8 . 1 4 3 3  9 . 3 . 2 1 6  2 25  .  1  .  .  . . .  .  .
## [57,] 18 1 14 24 1 33 3 6 3 . 1 91 . . 5 7 . 4  1  .  .  .  .  .  . . .  .  .
## [58,]  9 .  8  9 2  8 1 1 1 1 2 11 3 4 2 2 6 1  .  1  .  1  .  .  . . .  .  .
## [59,]  5 1  7  9 1 14 1 5 . . 3 18 . 2 1 6 3 .  .  .  .  1  .  .  . . .  .  .
## [60,] 11 1 13 30 1 19 2 6 2 . 5 18 3 8 4 3 6 2  1  .  .  2  1  .  . . .  .  .
## [61,]  . .  5  8 .  4 . 6 . . . 18 . . . 2 1 .  .  .  .  6  1  .  . . .  .  .
## [62,]  . .  4  8 .  7 . . . . 1  2 . . . . . 1  .  .  .  7  .  .  . . .  .  .
## [63,]  . .  5  3 .  4 . 3 1 . .  9 1 . . 1 . 1  .  .  .  2  .  1  . . .  .  .
## [64,]  . .  3  3 .  3 . 1 . 1 . 11 1 . . . 1 .  1  .  .  6  .  .  . . .  .  .
## [65,]  . . 11 13 .  2 . 1 . . 1 12 . 1 . 2 2 .  1  .  . 24  1  .  . . .  .  .
## [66,]  . .  9  8 1  2 2 3 . . 1 11 1 1 . . 1 .  1  .  . 16  2  .  . 2 .  .  .
## [67,]  1 .  9  7 .  . 1 3 . . .  7 . . . . . 1  1  .  . 28  1  .  . . .  .  .
## [68,]  . .  4  5 .  1 . . . . .  5 1 . . . 1 1  .  .  .  3  .  .  . . .  .  .
## [69,]  1 .  5  8 .  6 1 1 1 . 1  4 1 . . . . .  1  1  .  6  1  .  . . .  .  .
## [70,]  . .  2  3 2  4 . 4 1 . 4 25 1 1 . . 1 2  .  .  .  3  1  .  1 . .  .  .
## [71,]  . .  .  . .  . . . . . .  1 . . . . . .  .  . 43 18  4 14 11 1 8  6 14
## [72,]  . .  .  . .  . . . . . .  2 . . . . . .  .  . 41  8  4 11  3 5 3  5  5
## [73,]  . .  .  . .  . . . . . .  . . . . . . .  .  . 36 12  2 14 13 3 2  9  8
## [74,]  . .  .  1 .  . . . . . .  3 . . . . . .  .  . 55 18  2 18  8 3 2 10 11
## [75,]  . .  .  . .  1 . . . . .  . . 1 . . . .  .  . 58 18  2 23  8 2 3  7 15
## [76,]  . .  .  . .  1 . . . . .  2 . . . . . .  .  . 54 28 15 62 29 7 9 23  6
## [77,]  . .  .  . .  . . . . . .  3 . . . . . .  .  . 66 11  2  9  3 3 3 12  4
## [78,]  . .  .  1 .  . . . . . .  . . 1 . 1 . .  .  . 34 13  1 14  6 1 3  6  3
## [79,]  . .  .  . .  . . . . . .  4 . 1 . . . .  .  . 30 16  3  6  5 1 4 11  5
## [80,]  . .  1  4 .  1 . 1 . . 1  7 . 1 . . . 1  1  .  6  9  2  .  2 2 2  1  2
##                                                                              
##  [1,]  .  .  . .  1  . .  .  1 . . .  . . . . .  .  1  .  .  .  .  . . . .  .
##  [2,]  .  1  . 1  .  . .  1  2 . . .  . . . . .  .  .  .  .  .  .  . . . .  1
##  [3,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
##  [4,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  1  .  .  1 . . .  .
##  [5,]  .  .  . .  .  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
##  [6,]  .  .  . .  1  . .  .  . . 1 .  . . . . .  .  .  .  .  .  .  . . . .  .
##  [7,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  1  .  1  . . . .  .
##  [8,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
##  [9,]  .  1  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [10,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  1  .  .  . . . .  .
## [11,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [12,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  . 29  .  .  . . . .  .
## [13,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . 1 . .  .
## [14,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [15,]  .  .  . .  1  . 1  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [16,]  .  .  . .  1  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [17,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [18,]  1  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [19,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [20,]  .  .  . .  .  . 1  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [21,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  1  .  . . . 1  .
## [22,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [23,]  .  .  . .  .  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [24,]  .  .  . .  .  3 .  .  3 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [25,]  .  .  . .  .  . .  .  5 . . .  . . . . .  .  .  .  1  1  .  . . . .  .
## [26,]  .  1  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [27,]  .  .  . .  .  . .  .  2 . . .  . . . . 1  .  .  .  .  .  .  . 1 . .  .
## [28,]  .  .  . 1  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [29,]  .  1  . 1  .  . .  .  3 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [30,]  .  .  . .  .  . .  .  2 . . .  . 1 . . 1  .  .  .  1  .  .  . . . .  .
## [31,]  .  .  . 1  .  . .  .  . . . 1  . . . . .  .  .  .  . 27  2 35 5 7 5 14
## [32,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  2  5  . 3 . 3  1
## [33,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  1  3 15 9 1 1  4
## [34,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  . 10  4  3 2 1 .  9
## [35,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  8 10 29 6 . 3  7
## [36,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  5  8 11 3 1 1 10
## [37,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  2 10 12 22 6 5 1 10
## [38,]  .  .  . 1  .  . .  .  . . . .  . . . . .  .  .  .  .  7 10 15 8 4 2  2
## [39,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  4  3 18 2 1 1  4
## [40,]  .  .  . .  .  . 1  .  2 . . .  . . . . .  .  .  .  1 11 13 18 5 1 1  7
## [41,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  1  3  1 10 4 . 3  6
## [42,]  .  .  . 1  .  . .  .  . . . .  . . . . 1  .  .  .  .  .  8  . 1 . . 13
## [43,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  2  . . . .  .
## [44,]  .  .  . 1  .  . .  .  . . . .  . . . . .  .  .  .  .  .  1  3 . . .  .
## [45,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [46,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . 2 . .  .
## [47,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  6  .  4 9 . .  6
## [48,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  3  1 . . .  .
## [49,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  1  2  3  3 3 . .  5
## [50,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  2  . . . .  3
## [51,]  .  .  . 1  1  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [52,]  .  .  . 1  .  . 1  .  2 . . .  . . . . .  .  .  .  1  1  .  . . . .  .
## [53,]  .  1  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [54,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . 1 . .  .
## [55,]  .  .  . 1  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [56,]  .  .  . .  .  . .  .  2 . . .  . . . . 1  .  .  .  .  .  .  . . . .  .
## [57,]  .  1  . .  1  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  1 . . .  .
## [58,]  .  .  . .  .  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [59,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  1  . . . .  1
## [60,]  .  2  . 2  .  . .  .  2 . . .  . . . . .  .  .  .  2  .  .  1 . . .  .
## [61,]  .  1  . .  .  . 1  .  1 . . .  . . . . .  .  .  .  1  .  .  . . . .  .
## [62,]  .  1  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [63,]  .  .  . .  .  . .  .  . . . .  . . . . .  .  .  .  .  .  .  1 . . .  1
## [64,]  .  .  . 2  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [65,]  .  1  . .  2  . .  .  3 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [66,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [67,]  .  .  . 1  1  . .  .  3 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [68,]  .  .  . .  .  . .  .  1 . . .  1 . . . .  .  .  .  .  .  .  . . . .  .
## [69,]  .  .  . .  .  . .  .  1 . . .  . . . . .  .  .  .  .  .  .  . . . .  .
## [70,]  .  .  . 1  .  . .  .  2 . . .  . . . . .  .  .  .  .  .  .  1 1 . .  .
## [71,]  5  8  1 2  3  6 3  4  2 3 4 4  3 5 4 . 5  2  1  .  .  .  .  . . . .  .
## [72,]  3  2  3 5  .  4 3  3  . . 1 1  1 1 . . 4  .  .  . 41  .  .  . . . .  .
## [73,]  5  .  3 4  1  4 2  5  1 2 2 .  4 4 3 3 1  4  1  6  .  .  .  . . . .  .
## [74,]  5 12  2 4  2  3 3  2  2 7 . 4  1 2 4 1 4  .  .  1  .  .  .  . . . .  .
## [75,]  2  8  3 1  1  4 2 14  1 4 2 2  3 4 8 1 .  .  .  .  2  .  .  . . . .  1
## [76,] 42  7 11 6 14  3 9 32 10 . 3 6  8 1 1 2 . 20 25 26  1  .  .  . . . .  .
## [77,]  2  3  6 .  2  4 .  2 37 1 1 2  . 4 2 1 1  2  .  1  .  .  .  . . . .  .
## [78,]  1  2  5 4  . 20 .  .  . 3 2 2 13 1 . 2 .  2  3  .  1  .  .  . . . .  .
## [79,]  2  6  3 .  4  5 1  8  2 5 4 .  2 . . 3 .  1  1  .  1  .  .  . . . .  .
## [80,]  1  .  . 1  1  . .  .  3 2 . .  . . 1 . .  .  1  1  1  .  .  . . . .  .
##                                                   
##  [1,]  . 1 .  . . . .  . . . . . 1 . . 1  . 1 .  .
##  [2,]  . . 1  . . . .  1 . . 1 1 . . . .  . . 1  .
##  [3,]  . 1 .  . . . .  . . . . 1 . . . .  . . .  .
##  [4,]  . 1 .  . . . .  . . . . . . . . 3  . . .  .
##  [5,]  . 2 1  . . . .  . . . . 2 1 . . .  . . .  .
##  [6,]  . . 1  . . . .  . . . 1 1 . . . 1  . . .  .
##  [7,]  . . .  . . . .  . . . . . . . . 1  . 1 .  .
##  [8,]  . 1 .  . . . .  . . . . . 1 . . .  . . .  .
##  [9,]  . . .  . . . .  . . . . . . . . 1  . . .  .
## [10,]  . . .  . . . .  . . . 1 . . . . .  . . .  .
## [11,]  . . .  . . . .  . . . . . 1 . . .  . . .  .
## [12,]  . 1 .  . . . .  . . . . . . . . 2  . . .  .
## [13,]  . . .  . . . .  . . 1 1 . . . . .  . . .  .
## [14,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [15,]  . 1 .  . . . .  . . . 1 . . . . 1  . . .  .
## [16,]  . . .  . . . .  1 . . . . 2 . . .  . . .  .
## [17,]  . . .  . . . .  . . . . . 1 . . .  . . .  .
## [18,]  . . .  . . . .  . 1 . . . . . . .  . . .  .
## [19,]  . . .  . . . .  1 . . 1 . 1 . . .  . . .  .
## [20,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [21,]  . 1 .  . . . .  . . . . . . . . .  . . .  .
## [22,]  . . .  . . . .  . . . 2 . . . . .  . . .  .
## [23,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [24,]  . . .  . . . .  . . . . . . . . .  1 . .  .
## [25,]  . . .  . . . .  . . . . . . . . .  . . 1  .
## [26,]  . . .  . . . .  . . . . . . . . .  1 . .  .
## [27,]  . . .  . 1 . .  1 . . . . . . . 1  . . .  .
## [28,]  . . .  . . . .  1 . . 1 . 1 . . .  . . .  .
## [29,]  . . .  . 1 . 1  1 . . . . . . . .  . . .  .
## [30,]  . . .  . . . .  . . . . 1 . . . .  2 . .  .
## [31,]  . 1 .  . 4 2 1  1 1 3 2 3 3 . 4 7  1 . 3  .
## [32,]  3 1 4  1 . 1 .  1 . . 2 1 . 1 1 3  . . 5  .
## [33,]  5 2 2  1 . 1 1  1 . 4 1 1 2 3 . 2 58 1 1  .
## [34,]  7 2 1  1 3 1 1  1 . . 1 3 1 2 1 .  . 2 3  .
## [35,]  1 4 1  . . . .  1 2 1 1 . 1 . . 1  . 1 . 10
## [36,]  . 1 2  . 1 . 1  . 1 2 1 2 3 . . 3  1 3 .  .
## [37,]  3 . 3  1 7 1 2  1 1 3 3 2 1 . 4 3  . 2 1  .
## [38,]  1 2 2  . 4 . 2  . 1 . . . 2 . 2 5  2 1 2  1
## [39,]  . 1 2  1 . 1 1  1 . 1 3 1 1 1 1 .  1 2 .  .
## [40,]  2 3 6 51 3 1 . 25 3 . 1 1 2 2 2 1  . 1 2  1
## [41,]  6 1 2  . 1 1 1  1 . . . 2 . . . .  . . 3  .
## [42,]  . . 1  . . . .  . . . 1 1 2 1 1 2  1 1 .  .
## [43,]  . . .  . . . 1  . . . 2 . . . . 1  . . .  .
## [44,]  . . .  . . . .  . . . . . . . . 1  . 1 .  .
## [45,]  . . 1  1 . . .  . . . . . . . . .  . . .  .
## [46,]  . . .  . . . .  . . . 1 . . . . 2  . . .  .
## [47,] 10 1 3  . . . .  . . . . 1 . . . 2  1 1 3  .
## [48,]  . 1 2  . . . .  . 1 . . . 1 . . .  . 2 1  .
## [49,]  9 . .  . . . 1  . . . . 1 . 1 . 1  . . 3  .
## [50,]  . . 1  . . . .  . . . . . . . 1 1  . 1 .  .
## [51,]  . . .  . 1 . .  2 . . . . . . . .  . . .  .
## [52,]  . . .  . . . .  . . 1 . . . . . .  1 1 .  .
## [53,]  . . .  . . . .  1 . . . . . . . .  . . .  .
## [54,]  . . .  . 1 . .  . . . . . . . . .  . . .  .
## [55,]  . . .  . . 1 .  . . . . . 1 . . 2  2 . .  .
## [56,]  . . .  . . . .  3 . . . . . . . .  . . .  .
## [57,]  . . .  . . . .  2 . . . . . . . .  1 . .  .
## [58,]  . . .  . . . .  1 . . . . . . . .  . . .  .
## [59,]  . . .  . 1 . .  . . . . . . . . .  . . .  .
## [60,]  . . .  . 1 . .  . . . . . . . . .  . 3 .  .
## [61,]  . 1 1  . . . .  1 . . . . . . 1 .  2 . 1  .
## [62,]  . . .  . . . .  . . . . . . . . 1  . . 1  .
## [63,]  . . .  . . . .  1 . . . . . . . .  . . .  .
## [64,]  . 1 .  . 1 . .  1 . . . . . . . .  . . .  .
## [65,]  . . .  . 3 . .  1 . . 1 . 1 . . 2  4 . .  .
## [66,]  . . .  . 2 . .  2 . . 1 . 1 . . 1  2 . .  .
## [67,]  . 2 .  . . . .  4 . . . . . . 1 1  1 1 .  .
## [68,]  . . .  . . . .  1 . . . . . . . .  . . 1  .
## [69,]  . . .  . 1 . .  . . . . . 1 . . .  3 . .  .
## [70,]  . . .  . . . .  . . . 1 . . . . .  1 . .  .
## [71,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [72,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [73,]  . . .  . . . .  . . . . . . . . 1  . . .  .
## [74,]  . . .  . . . .  . . . . . . . 2 .  . . .  .
## [75,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [76,]  . . .  1 . . .  1 . . . . . . . 1  . 1 .  .
## [77,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [78,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [79,]  . . .  . . . .  . . . . . . . . .  . . .  .
## [80,]  . . .  . . . .  . . . 1 . . . . .  . . .  .

Slicing

Just as with a SOMADataFrame, we can also retrieve subsets of the data from a SOMASparseNDArray that can fit in memory.

Unlike SOMADataFrames, SOMASparseNDArrays are always indexed using a zero-based offset integer on each dimension, named soma_dim_N. Therefore, if the array is N-dimensional, the read() method can accept a list of length N that specifies how to slice the array.

SOMASparseNDArray dimensions are always named soma_dim_N where N is the dimension number. As before you could use schema() or dimnames() to retrieve the dimension names.

counts$schema()
## Schema
## soma_dim_0: int64 not null
## soma_dim_1: int64 not null
## soma_data: double not null

For example, here’s how to fetch the first 5 rows of the matrix:

counts$read(coords = list(soma_dim_0 = 0:4))$tables()$concat()
## Table
## 258 rows x 3 columns
## $soma_dim_0 <int64 not null>
## $soma_dim_1 <int64 not null>
## $soma_data <double not null>