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.

## TileDB Core version '2.26' used by TileDB-R package, but TileDB-SOMA uses '2.27'

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()
## # A tibble: 80 × 9
##    soma_joinid orig.ident  nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents
##          <int> <fct>            <dbl>        <int> <fct>           <fct>        
##  1           0 SeuratProj…         70           47 0               A            
##  2           1 SeuratProj…         85           52 0               A            
##  3           2 SeuratProj…         87           50 1               B            
##  4           3 SeuratProj…        127           56 0               A            
##  5           4 SeuratProj…        173           53 0               A            
##  6           5 SeuratProj…         70           48 0               A            
##  7           6 SeuratProj…         64           36 0               A            
##  8           7 SeuratProj…         72           45 0               A            
##  9           8 SeuratProj…         52           36 0               A            
## 10           9 SeuratProj…        100           41 0               A            
## # ℹ 70 more rows
## # ℹ 3 more variables: groups <chr>, RNA_snn_res.1 <fct>, obs_id <chr>

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()
## # A tibble: 44 × 9
##    soma_joinid orig.ident  nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents
##          <int> <fct>            <dbl>        <int> <fct>           <fct>        
##  1           1 SeuratProj…         85           52 0               A            
##  2           5 SeuratProj…         70           48 0               A            
##  3           6 SeuratProj…         64           36 0               A            
##  4           7 SeuratProj…         72           45 0               A            
##  5           8 SeuratProj…         52           36 0               A            
##  6           9 SeuratProj…        100           41 0               A            
##  7          11 SeuratProj…        191           61 0               A            
##  8          15 SeuratProj…        168           44 0               A            
##  9          17 SeuratProj…        135           45 0               A            
## 10          18 SeuratProj…         79           43 0               A            
## # ℹ 34 more rows
## # ℹ 3 more variables: groups <chr>, RNA_snn_res.1 <fct>, obs_id <chr>

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

obs$read(value_filter = "groups == 'g1' | groups == 'g2'")$concat()$to_data_frame()
## # A tibble: 80 × 9
##    soma_joinid orig.ident  nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents
##          <int> <fct>            <dbl>        <int> <fct>           <fct>        
##  1           0 SeuratProj…         70           47 0               A            
##  2           1 SeuratProj…         85           52 0               A            
##  3           2 SeuratProj…         87           50 1               B            
##  4           3 SeuratProj…        127           56 0               A            
##  5           4 SeuratProj…        173           53 0               A            
##  6           5 SeuratProj…         70           48 0               A            
##  7           6 SeuratProj…         64           36 0               A            
##  8           7 SeuratProj…         72           45 0               A            
##  9           8 SeuratProj…         52           36 0               A            
## 10           9 SeuratProj…        100           41 0               A            
## # ℹ 70 more rows
## # ℹ 3 more variables: groups <chr>, RNA_snn_res.1 <fct>, obs_id <chr>

Altenratively, you can use the %in% operator:

obs$read(value_filter = "groups %in% c('g1', 'g2')")$concat()$to_data_frame()
## # A tibble: 80 × 9
##    soma_joinid orig.ident  nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents
##          <int> <fct>            <dbl>        <int> <fct>           <fct>        
##  1           0 SeuratProj…         70           47 0               A            
##  2           1 SeuratProj…         85           52 0               A            
##  3           2 SeuratProj…         87           50 1               B            
##  4           3 SeuratProj…        127           56 0               A            
##  5           4 SeuratProj…        173           53 0               A            
##  6           5 SeuratProj…         70           48 0               A            
##  7           6 SeuratProj…         64           36 0               A            
##  8           7 SeuratProj…         72           45 0               A            
##  9           8 SeuratProj…         52           36 0               A            
## 10           9 SeuratProj…        100           41 0               A            
## # ℹ 70 more rows
## # ℹ 3 more variables: groups <chr>, RNA_snn_res.1 <fct>, obs_id <chr>

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()
## # A tibble: 20 × 9
##    soma_joinid orig.ident  nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents
##          <int> <fct>            <dbl>        <int> <fct>           <fct>        
##  1          11 SeuratProj…        191           61 0               A            
##  2          20 SeuratProj…        298           65 1               B            
##  3          21 SeuratProj…        406           74 1               B            
##  4          24 SeuratProj…        463           77 1               B            
##  5          29 SeuratProj…        353           80 1               B            
##  6          50 SeuratProj…        371           75 1               B            
##  7          54 SeuratProj…        443           77 1               B            
##  8          55 SeuratProj…        417           75 0               A            
##  9          56 SeuratProj…        502           81 1               B            
## 10          57 SeuratProj…        324           76 1               B            
## 11          59 SeuratProj…        443           81 0               A            
## 12          60 SeuratProj…        787           88 0               A            
## 13          61 SeuratProj…        612           69 1               B            
## 14          62 SeuratProj…        286           68 0               A            
## 15          63 SeuratProj…        462           86 1               B            
## 16          64 SeuratProj…        872           96 1               B            
## 17          67 SeuratProj…        328           72 1               B            
## 18          68 SeuratProj…        389           73 1               B            
## 19          69 SeuratProj…        754           83 0               A            
## 20          79 SeuratProj…        233           76 1               B            
## # ℹ 3 more variables: groups <chr>, RNA_snn_res.1 <fct>, obs_id <chr>

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/RtmpyPpbTG/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>