Main function for data filtering

repFilter(
  .data,
  .method = "by.clonotype",
  .query = list(CDR3.aa = exclude("partial", "out_of_frame")),
  .match = "exact"
)

Arguments

.data

The data to be processed. Must be the list of 2 elements: a data table and a metadata table.

.method

Method of filtering. Implemented methods: by.meta, by.repertoire (by.rep), by.clonotype (by.cl) Default value: 'by.clonotype'.

.query

Filtering query. It's a named list of filters that will be applied to data. Possible values for names in this list are dependent on filter methods: - by.meta: filters by metadata. Names in the named list are metadata column headers. - by.repertoire: filters by the number of clonotypes or total number of clones in sample. Possible names in the named list are "n_clonotypes" and "n_clones". - by.clonotype: filters by data in all samples. Names in the named list are data column headers. Elements of the named list for each of the filters are filtering options. Possible values for filtering options: - include("STR1", "STR2", ...): keeps only rows with matching values. Available for methods: "by.meta", "by.clonotype". - exclude("STR1", "STR2", ...): removes rows with matching values. Available for methods: "by.meta", "by.clonotype". - lessthan(value): keeps rows/samples with numeric values less than specified. Available for methods: "by.meta", "by.repertoire", "by.clonotype". - morethan(value): keeps rows/samples with numeric values more than specified. Available for methods: "by.meta", "by.repertoire", "by.clonotype". - interval(from, to): keeps rows/samples with numeric values that fits in this interval. from is inclusive, to is exclusive. Available for methods: "by.meta", "by.repertoire", "by.clonotype". Default value: 'list(CDR3.aa = exclude("partial", "out_of_frame"))'.

.match

Matching method for "include" and "exclude" options in query. Possible values: - exact: matches only the exact specified string; - startswith: matches all strings starting with the specified substring; - substring: matches all strings containing the specified substring. Default value: 'exact'.

Examples

data(immdata)

# Select samples with status "MS"
repFilter(immdata, "by.meta", list(Status = include("MS")))
#> $data
#> $data$MS1
#> # A tibble: 5,405 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    539    0.0634  TGTGCCAGC… CASSLQ… TRBV7… TRBD2  TRBJ2…    14      18    26
#>  2    320    0.0376  TGTGCCAGC… CASSVY… TRBV9  TRBD1  TRBJ2…    13      20    22
#>  3    204    0.024   TGCAGTACC… CSTEED… TRBV2… TRBD1  TRBJ2…     5      14    19
#>  4    151    0.0178  TGCAGCGTT… CSVELR… TRBV2… TRBD1  TRBJ2…    11      16    19
#>  5     98    0.0115  TGTGCCAGC… CASSLG… TRBV5… TRBD1  TRBJ2…    15      16    22
#>  6     81    0.00953 TGCAGTGCT… CSARDL… TRBV2… TRBD2  TRBJ2…    13      15    20
#>  7     76    0.00894 TGTGCCAGC… CASSFE… TRBV7… TRBD1  TRBJ2…    13      16    22
#>  8     62    0.00729 TGCAGCTAT… CSYRTG… TRBV2… TRBD1  TRBJ2…     5      10    20
#>  9     60    0.00706 TGTGCCAGC… CASSLG… TRBV28 TRBD1  TRBJ2…    14      26    31
#> 10     38    0.00447 TGTGCCAGC… CASSLY… TRBV7… TRBD2  TRBJ2…    14      17    19
#> # ℹ 5,395 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS2
#> # A tibble: 7,145 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     97    0.0114  TGTGCCAGC… CASSTR… TRBV28 TRBD1  TRBJ2…    10      15    20
#>  2     77    0.00906 TGCAGCGTT… CSVEGG… TRBV2… TRBD1  TRBJ2…    12      13    17
#>  3     33    0.00388 TGTGCCAGC… CASSLI… TRBV28 TRBD1  TRBJ2…    14      20    26
#>  4     32    0.00376 TGTGCCAGC… CASSIT… TRBV27 TRBD1  TRBJ1…    11      16    18
#>  5     26    0.00306 TGCAGCGTT… CSVEGG… TRBV2… TRBD2  TRBJ2…    12      13    16
#>  6     25    0.00294 TGTGCCAGC… CASGSG… TRBV1… TRBD1  TRBJ2…     8      15    23
#>  7     24    0.00282 TGCAGTGCT… CSAMGS… TRBV2… TRBD2  TRBJ2…     9      16    25
#>  8     22    0.00259 TGTGCCAGC… CASSQG… TRBV7… TRBD1  TRBJ2…    11      12    17
#>  9     22    0.00259 TGTGCCAGC… CASSPG… TRBV7… TRBD1  TRBJ2…    11      15    21
#> 10     21    0.00247 TGCAGTGCT… CSAGRD… TRBV2… TRBD1  TRBJ2…     8      13    17
#> # ℹ 7,135 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS3
#> # A tibble: 6,461 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    608    0.0715  TGTGCCAGC… CASSQD… TRBV14 TRBD1  TRBJ2…    16      19    21
#>  2    291    0.0342  TGTGCCAGC… CASSPT… TRBV1… TRBD1  TRBJ2…    11      14    22
#>  3    131    0.0154  TGTGCCAGC… CASSQD… TRBV14 TRBD2  TRBJ2…    16      18    21
#>  4    115    0.0135  TGTGCCACC… CATSII… TRBV15 TRBD2  TRBJ2…    11      16    24
#>  5     78    0.00918 TGTGCCACC… CATSRL… TRBV15 TRBD2  TRBJ2…    11      13    24
#>  6     51    0.006   TGTGCCAGC… CASSLG… TRBV5… TRBD1  TRBJ2…    15      23    26
#>  7     33    0.00388 TGTGCCAGC… CASSPG… TRBV7… TRBD1  TRBJ2…    11      16    19
#>  8     33    0.00388 TGTGCCAGC… CASSPG… TRBV7… TRBD2  TRBJ2…    11      15    27
#>  9     32    0.00376 TGTGCCATC… CAIRDP… TRBV1… TRBD1  TRBJ2…    10      17    20
#> 10     29    0.00341 TGTGCCAGC… CASSLG… TRBV7… TRBD2  TRBJ2…    15      16    27
#> # ℹ 6,451 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS4
#> # A tibble: 7,447 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     28    0.00329 TGTGCCAGC… CASSVV… TRBV9  TRBD1  TRBJ2…    15      24    29
#>  2     27    0.00318 TGTGCCAGC… CASSPD… TRBV7… TRBD1  TRBJ2…    11      21    24
#>  3     27    0.00318 TGTGCCACC… CATSRD… TRBV15 TRBD2  TRBJ2…    11      26    31
#>  4     24    0.00282 TGCGCCAGC… CASQRE… TRBV4… TRBD2  TRBJ1…     8      15    18
#>  5     18    0.00212 TGTGCCAGC… CASSHR… TRBV5… TRBD1  TRBJ2…    11      16    25
#>  6     16    0.00188 TGTGCCAGC… CASSFV… TRBV1… TRBD1  TRBJ2…    13      17    23
#>  7     15    0.00176 TGTGCCAGC… CASSYS… TRBV7… TRBD2  TRBJ2…    10      16    20
#>  8     15    0.00176 TGCGCCAGC… CASRSG… TRBV5… TRBD1  TRBJ2…    10      16    26
#>  9     14    0.00165 TGTGCCATC… CAISDR… TRBV1… TRBD1  TRBJ1…    13      14    18
#> 10     14    0.00165 TGCAGCGCC… CSATGD… TRBV2… TRBD1  TRBJ1…     7       9    15
#> # ℹ 7,437 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS5
#> # A tibble: 5,657 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    433    0.0509  TGTGCCAGC… CASSPG… TRBV1… TRBD1  TRBJ2…    10      13    19
#>  2    414    0.0487  TGTGCCAGC… CASSPT… TRBV6… TRBD1  TRBJ2…    10      16    19
#>  3    272    0.032   TGTGCCAGC… CASSDG… TRBV2… TRBD1  TRBJ1…    13      18    20
#>  4    233    0.0274  TGTGCCAGC… CASSQG… TRBV7… TRBD1  TRBJ1…    11      14    19
#>  5    106    0.0125  TGTGCCAGC… CASSLG… TRBV7… TRBD2  TRBJ2…    15      16    26
#>  6     79    0.00929 TGTGCCAGC… CASRFK… TRBV6… TRBD2  TRBJ2…    10      18    27
#>  7     75    0.00882 TGTGCCAGC… CASSLG… TRBV28 TRBD1  TRBJ2…    14      15    18
#>  8     55    0.00647 TGTGCCAGC… CASSQD… TRBV3… TRBD2  TRBJ2…    16      24    27
#>  9     45    0.00529 TGCGCCAGC… CASSQE… TRBV4… TRBD2  TRBJ1…    16      19    22
#> 10     40    0.00471 TGTGCCACC… CATSRV… TRBV15 TRBD2  TRBJ2…    11      16    23
#> # ℹ 5,647 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS6
#> # A tibble: 7,409 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     46    0.00541 TGTGCCAGC… CASSAT… TRBV27 TRBD1  TRBJ2…    11      14    18
#>  2     41    0.00482 TGCAGTGCT… CSARDK… TRBV2… TRBD2  TRBJ2…    13      16    25
#>  3     29    0.00341 TGTGCCAGC… CASSPL… TRBV1… TRBD1  TRBJ2…    11      19    23
#>  4     26    0.00306 TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    11      12    14
#>  5     21    0.00247 TGTGCCAGC… CASGTG… TRBV7… TRBD1  TRBJ1…     8       9    16
#>  6     20    0.00235 TGCGCCAGC… CASSLS… TRBV5… TRBD2  TRBJ2…    14      18    27
#>  7     18    0.00212 TGTGCCAGC… CASSPN… TRBV1… TRBD1  TRBJ2…    11      19    21
#>  8     17    0.002   TGTGCCAGC… CASSTG… TRBV6… TRBD2  TRBJ2…    11      14    26
#>  9     12    0.00141 TGTGCCAGC… CASSDS… TRBV6… TRBD2  TRBJ2…    16      17    27
#> 10     11    0.00129 TGCAGTGCT… CSARED… TRBV2… TRBD1  TRBJ1…    13      18    20
#> # ℹ 7,399 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> 
#> $meta
#> # A tibble: 6 × 6
#>   Sample ID    Sex     Age Status Lane 
#>   <chr>  <chr> <chr> <dbl> <chr>  <chr>
#> 1 MS1    MS1   M        12 MS     C    
#> 2 MS2    MS2   M        30 MS     C    
#> 3 MS3    MS3   M         8 MS     C    
#> 4 MS4    MS4   F        14 MS     C    
#> 5 MS5    MS5   F        15 MS     C    
#> 6 MS6    MS6   F        15 MS     C    
#> 

# Select samples without status "MS"
repFilter(immdata, "by.meta", list(Status = exclude("MS")))
#> $data
#> $data$`A2-i129`
#> # A tibble: 6,532 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    173    0.0204  TGCGCCAGC… CASSQE… TRBV4… TRBD1  TRBJ2…    16      18    26
#>  2    163    0.0192  TGCGCCAGC… CASSYR… TRBV4… TRBD1  TRBJ2…    11      13    18
#>  3     66    0.00776 TGTGCCACC… CATSTN… TRBV15 TRBD1  TRBJ2…    11      16    22
#>  4     54    0.00635 TGTGCCACC… CATSIG… TRBV15 TRBD2  TRBJ2…    11      19    25
#>  5     48    0.00565 TGTGCCAGC… CASSPW… TRBV27 TRBD1  TRBJ1…    11      16    23
#>  6     48    0.00565 TGCGCCAGC… CASQGD… TRBV4… TRBD1  TRBJ1…     8      13    19
#>  7     40    0.00471 TGCGCCAGC… CASSQD… TRBV4… TRBD1  TRBJ2…    16      21    26
#>  8     31    0.00365 TGTGCCAGC… CASSEE… TRBV2  TRBD1  TRBJ1…    15      17    20
#>  9     30    0.00353 TGCGCCAGC… CASSQP… TRBV4… TRBD1  TRBJ2…    14      23    28
#> 10     28    0.00329 TGTGCCAGC… CASSWV… TRBV6… TRBD1  TRBJ2…    12      20    25
#> # ℹ 6,522 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A2-i131`
#> # A tibble: 6,553 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    111    0.0131  TGCAGTGCT… CSASRG… TRBV2… TRBD1  TRBJ2…    11      12    17
#>  2     93    0.0109  TGTGCCAGC… CASSVA… TRBV9  TRBD1  TRBJ2…    15      21    23
#>  3     66    0.00776 TGTGCCAGC… CASSRM… TRBV13 TRBD1  TRBJ2…    11      18    24
#>  4     59    0.00694 TGTGCCAGC… CASSPT… TRBV6… TRBD2  TRBJ2…    10      14    19
#>  5     57    0.00671 TGCGCCAGC… CASSLD… TRBV5… TRBD2  TRBJ1…    15      17    20
#>  6     47    0.00553 TGTGCCAGC… CASRGL… TRBV6… TRBD2  TRBJ2…    10      11    16
#>  7     46    0.00541 TGCAGCGTT… CSVTGV… TRBV2… TRBD1  TRBJ2…     8       9    13
#>  8     30    0.00353 TGTGCCAGC… CASSYL… TRBV6… TRBD2  TRBJ1…    15      17    19
#>  9     29    0.00341 TGTGCCAGC… CASSLA… TRBV5… TRBD1  TRBJ1…    15      21    26
#> 10     29    0.00341 TGTGCCAGC… CASSYI… TRBV6… TRBD1  TRBJ1…    14      17    20
#> # ℹ 6,543 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A2-i133`
#> # A tibble: 6,393 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    333    0.0392  TGTGCCAGC… CASSLY… TRBV1… TRBD2  TRBJ2…    11      18    29
#>  2    111    0.0131  TGTGCCAGC… CASSLG… TRBV7… TRBD1  TRBJ1…    12      15    19
#>  3    102    0.012   TGTGCCAGC… CASSPL… TRBV7… TRBD2  TRBJ2…    11      18    23
#>  4     81    0.00953 TGTGCCAGC… CASSPF… TRBV7… TRBD2  TRBJ1…    11      16    20
#>  5     71    0.00835 TGTGCCAGC… CASSQG… TRBV4… TRBD2  TRBJ2…    15      19    22
#>  6     53    0.00624 TGTGCCAGC… CASSVT… TRBV9  TRBD1  TRBJ1…    13      14    18
#>  7     45    0.00529 TGTGCCAGC… CASSLG… TRBV7… TRBD1  TRBJ1…    15      16    18
#>  8     38    0.00447 TGTGCCAGC… CASSST… TRBV7… TRBD1  TRBJ1…    16      19    24
#>  9     38    0.00447 TGTGCCAGC… CASREL… TRBV28 TRBD2  TRBJ2…    10      24    29
#> 10     21    0.00247 TGCAGCGTT… CSVDEG… TRBV2… TRBD1  TRBJ2…    10      14    17
#> # ℹ 6,383 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A2-i132`
#> # A tibble: 6,849 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     41    0.00482 TGTGCCAGC… CASSFR… TRBV7… TRBD1  TRBJ2…    10      16    26
#>  2     23    0.00271 TGTGCCATC… CAIRKQ… TRBV1… TRBD1  TRBJ1…    10      15    19
#>  3     20    0.00235 TGCGCCAGC… CASSTR… TRBV4… TRBD2  TRBJ2…    11      20    28
#>  4     20    0.00235 TGTGCCAGC… CASSYL… TRBV6… TRBD1  TRBJ1…    14      18    27
#>  5     18    0.00212 TGTGCCAGC… CASSYI… TRBV6… TRBD1  TRBJ1…    14      18    23
#>  6     18    0.00212 TGTGCCAGC… CASSLL… TRBV28 TRBD2  TRBJ2…    14      15    24
#>  7     17    0.002   TGTGCCAGC… CASTSL… TRBV6… TRBD1  TRBJ2…     9      25    29
#>  8     16    0.00188 TGCGCCAGC… CASSLD… TRBV5… TRBD1  TRBJ2…    15      -1    -1
#>  9     15    0.00176 TGTGCCAGC… CASTLR… TRBV28 TRBD1  TRBJ1…     9      19    21
#> 10     15    0.00176 TGCGCCAGC… CASSQE… TRBV4… TRBD1  TRBJ2…    16      20    23
#> # ℹ 6,839 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A4-i191`
#> # A tibble: 5,146 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    449    0.0528  TGTGCCAGC… CASSAF… TRBV9  TRBD2  TRBJ2…    12      19    24
#>  2    202    0.0238  TGCGCCTGT… CACGGG… TRBV1… TRBD2  TRBJ1…     5      12    18
#>  3    187    0.022   TGTGCCAGC… CASSSG… TRBV27 TRBD2  TRBJ2…    12      15    23
#>  4    143    0.0168  TGTGCCAGC… CASSSG… TRBV6… TRBD1  TRBJ2…    12      14    21
#>  5    126    0.0148  TGCGCCAGC… CASSQD… TRBV4… TRBD1  TRBJ2…    16      19    22
#>  6     83    0.00976 TGCGCCAGC… CASSQV… TRBV4… TRBD2  TRBJ1…    15      17    21
#>  7     80    0.00941 TGTGCCAGC… CASSLG… TRBV28 TRBD2  TRBJ2…    14      20    24
#>  8     68    0.008   TGTGCCAGC… CASSFG… TRBV1… TRBD1  TRBJ2…    13      23    26
#>  9     66    0.00776 TGTGCCAGC… CASSAG… TRBV7… TRBD1  TRBJ2…    11      15    21
#> 10     56    0.00659 TGCGCCAGC… CASSLA… TRBV5… TRBD2  TRBJ1…    15      20    24
#> # ℹ 5,136 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A4-i192`
#> # A tibble: 5,823 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    150    0.0176  TGCGCCAGC… CASSES… TRBV1… TRBD1  TRBJ2…    16      17    19
#>  2    124    0.0146  TGTGCCAGC… CASIPP… TRBV7… TRBD2  TRBJ2…     9      30    38
#>  3    120    0.0141  TGCGCCAGC… CASSSG… TRBV4… TRBD1  TRBJ1…    11      15    20
#>  4    115    0.0135  TGCAGTGCT… CSARDI… TRBV2… TRBD1  TRBJ1…    13      18    20
#>  5    107    0.0126  TGTGCCAGC… CASSRW… TRBV7… TRBD1  TRBJ2…    11      16    20
#>  6    101    0.0119  TGCAGTGCT… CSARDF… TRBV2… TRBD1  TRBJ2…    13      24    31
#>  7     95    0.0112  TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    10      11    14
#>  8     76    0.00894 TGTGCCAGC… CASSLI… TRBV27 TRBD1  TRBJ2…    14      17    19
#>  9     51    0.006   TGTGCCAGC… CASSPK… TRBV18 TRBD2  TRBJ2…    14      18    24
#> 10     42    0.00494 TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    11      16    19
#> # ℹ 5,813 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> 
#> $meta
#> # A tibble: 6 × 6
#>   Sample  ID    Sex     Age Status Lane 
#>   <chr>   <chr> <chr> <dbl> <chr>  <chr>
#> 1 A2-i129 C1    M        11 C      A    
#> 2 A2-i131 C2    M         9 C      A    
#> 3 A2-i133 C4    M        16 C      A    
#> 4 A2-i132 C3    F         6 C      A    
#> 5 A4-i191 C8    F        22 C      B    
#> 6 A4-i192 C9    F        24 C      B    
#> 

# Select samples from lanes "A" and "B" with age > 15
repFilter(immdata, "by.meta", list(Lane = include("A", "B"), Age = morethan(15)))
#> $data
#> $data$`A2-i133`
#> # A tibble: 6,393 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    333    0.0392  TGTGCCAGC… CASSLY… TRBV1… TRBD2  TRBJ2…    11      18    29
#>  2    111    0.0131  TGTGCCAGC… CASSLG… TRBV7… TRBD1  TRBJ1…    12      15    19
#>  3    102    0.012   TGTGCCAGC… CASSPL… TRBV7… TRBD2  TRBJ2…    11      18    23
#>  4     81    0.00953 TGTGCCAGC… CASSPF… TRBV7… TRBD2  TRBJ1…    11      16    20
#>  5     71    0.00835 TGTGCCAGC… CASSQG… TRBV4… TRBD2  TRBJ2…    15      19    22
#>  6     53    0.00624 TGTGCCAGC… CASSVT… TRBV9  TRBD1  TRBJ1…    13      14    18
#>  7     45    0.00529 TGTGCCAGC… CASSLG… TRBV7… TRBD1  TRBJ1…    15      16    18
#>  8     38    0.00447 TGTGCCAGC… CASSST… TRBV7… TRBD1  TRBJ1…    16      19    24
#>  9     38    0.00447 TGTGCCAGC… CASREL… TRBV28 TRBD2  TRBJ2…    10      24    29
#> 10     21    0.00247 TGCAGCGTT… CSVDEG… TRBV2… TRBD1  TRBJ2…    10      14    17
#> # ℹ 6,383 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A4-i191`
#> # A tibble: 5,146 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    449    0.0528  TGTGCCAGC… CASSAF… TRBV9  TRBD2  TRBJ2…    12      19    24
#>  2    202    0.0238  TGCGCCTGT… CACGGG… TRBV1… TRBD2  TRBJ1…     5      12    18
#>  3    187    0.022   TGTGCCAGC… CASSSG… TRBV27 TRBD2  TRBJ2…    12      15    23
#>  4    143    0.0168  TGTGCCAGC… CASSSG… TRBV6… TRBD1  TRBJ2…    12      14    21
#>  5    126    0.0148  TGCGCCAGC… CASSQD… TRBV4… TRBD1  TRBJ2…    16      19    22
#>  6     83    0.00976 TGCGCCAGC… CASSQV… TRBV4… TRBD2  TRBJ1…    15      17    21
#>  7     80    0.00941 TGTGCCAGC… CASSLG… TRBV28 TRBD2  TRBJ2…    14      20    24
#>  8     68    0.008   TGTGCCAGC… CASSFG… TRBV1… TRBD1  TRBJ2…    13      23    26
#>  9     66    0.00776 TGTGCCAGC… CASSAG… TRBV7… TRBD1  TRBJ2…    11      15    21
#> 10     56    0.00659 TGCGCCAGC… CASSLA… TRBV5… TRBD2  TRBJ1…    15      20    24
#> # ℹ 5,136 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$`A4-i192`
#> # A tibble: 5,823 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    150    0.0176  TGCGCCAGC… CASSES… TRBV1… TRBD1  TRBJ2…    16      17    19
#>  2    124    0.0146  TGTGCCAGC… CASIPP… TRBV7… TRBD2  TRBJ2…     9      30    38
#>  3    120    0.0141  TGCGCCAGC… CASSSG… TRBV4… TRBD1  TRBJ1…    11      15    20
#>  4    115    0.0135  TGCAGTGCT… CSARDI… TRBV2… TRBD1  TRBJ1…    13      18    20
#>  5    107    0.0126  TGTGCCAGC… CASSRW… TRBV7… TRBD1  TRBJ2…    11      16    20
#>  6    101    0.0119  TGCAGTGCT… CSARDF… TRBV2… TRBD1  TRBJ2…    13      24    31
#>  7     95    0.0112  TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    10      11    14
#>  8     76    0.00894 TGTGCCAGC… CASSLI… TRBV27 TRBD1  TRBJ2…    14      17    19
#>  9     51    0.006   TGTGCCAGC… CASSPK… TRBV18 TRBD2  TRBJ2…    14      18    24
#> 10     42    0.00494 TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    11      16    19
#> # ℹ 5,813 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> 
#> $meta
#> # A tibble: 3 × 6
#>   Sample  ID    Sex     Age Status Lane 
#>   <chr>   <chr> <chr> <dbl> <chr>  <chr>
#> 1 A2-i133 C4    M        16 C      A    
#> 2 A4-i191 C8    F        22 C      B    
#> 3 A4-i192 C9    F        24 C      B    
#> 

# Select samples that are not from lanes "A" and "B"
repFilter(immdata, "by.meta", list(Lane = exclude("A", "B")))
#> $data
#> $data$MS1
#> # A tibble: 5,405 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    539    0.0634  TGTGCCAGC… CASSLQ… TRBV7… TRBD2  TRBJ2…    14      18    26
#>  2    320    0.0376  TGTGCCAGC… CASSVY… TRBV9  TRBD1  TRBJ2…    13      20    22
#>  3    204    0.024   TGCAGTACC… CSTEED… TRBV2… TRBD1  TRBJ2…     5      14    19
#>  4    151    0.0178  TGCAGCGTT… CSVELR… TRBV2… TRBD1  TRBJ2…    11      16    19
#>  5     98    0.0115  TGTGCCAGC… CASSLG… TRBV5… TRBD1  TRBJ2…    15      16    22
#>  6     81    0.00953 TGCAGTGCT… CSARDL… TRBV2… TRBD2  TRBJ2…    13      15    20
#>  7     76    0.00894 TGTGCCAGC… CASSFE… TRBV7… TRBD1  TRBJ2…    13      16    22
#>  8     62    0.00729 TGCAGCTAT… CSYRTG… TRBV2… TRBD1  TRBJ2…     5      10    20
#>  9     60    0.00706 TGTGCCAGC… CASSLG… TRBV28 TRBD1  TRBJ2…    14      26    31
#> 10     38    0.00447 TGTGCCAGC… CASSLY… TRBV7… TRBD2  TRBJ2…    14      17    19
#> # ℹ 5,395 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS2
#> # A tibble: 7,145 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     97    0.0114  TGTGCCAGC… CASSTR… TRBV28 TRBD1  TRBJ2…    10      15    20
#>  2     77    0.00906 TGCAGCGTT… CSVEGG… TRBV2… TRBD1  TRBJ2…    12      13    17
#>  3     33    0.00388 TGTGCCAGC… CASSLI… TRBV28 TRBD1  TRBJ2…    14      20    26
#>  4     32    0.00376 TGTGCCAGC… CASSIT… TRBV27 TRBD1  TRBJ1…    11      16    18
#>  5     26    0.00306 TGCAGCGTT… CSVEGG… TRBV2… TRBD2  TRBJ2…    12      13    16
#>  6     25    0.00294 TGTGCCAGC… CASGSG… TRBV1… TRBD1  TRBJ2…     8      15    23
#>  7     24    0.00282 TGCAGTGCT… CSAMGS… TRBV2… TRBD2  TRBJ2…     9      16    25
#>  8     22    0.00259 TGTGCCAGC… CASSQG… TRBV7… TRBD1  TRBJ2…    11      12    17
#>  9     22    0.00259 TGTGCCAGC… CASSPG… TRBV7… TRBD1  TRBJ2…    11      15    21
#> 10     21    0.00247 TGCAGTGCT… CSAGRD… TRBV2… TRBD1  TRBJ2…     8      13    17
#> # ℹ 7,135 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS3
#> # A tibble: 6,461 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    608    0.0715  TGTGCCAGC… CASSQD… TRBV14 TRBD1  TRBJ2…    16      19    21
#>  2    291    0.0342  TGTGCCAGC… CASSPT… TRBV1… TRBD1  TRBJ2…    11      14    22
#>  3    131    0.0154  TGTGCCAGC… CASSQD… TRBV14 TRBD2  TRBJ2…    16      18    21
#>  4    115    0.0135  TGTGCCACC… CATSII… TRBV15 TRBD2  TRBJ2…    11      16    24
#>  5     78    0.00918 TGTGCCACC… CATSRL… TRBV15 TRBD2  TRBJ2…    11      13    24
#>  6     51    0.006   TGTGCCAGC… CASSLG… TRBV5… TRBD1  TRBJ2…    15      23    26
#>  7     33    0.00388 TGTGCCAGC… CASSPG… TRBV7… TRBD1  TRBJ2…    11      16    19
#>  8     33    0.00388 TGTGCCAGC… CASSPG… TRBV7… TRBD2  TRBJ2…    11      15    27
#>  9     32    0.00376 TGTGCCATC… CAIRDP… TRBV1… TRBD1  TRBJ2…    10      17    20
#> 10     29    0.00341 TGTGCCAGC… CASSLG… TRBV7… TRBD2  TRBJ2…    15      16    27
#> # ℹ 6,451 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS4
#> # A tibble: 7,447 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     28    0.00329 TGTGCCAGC… CASSVV… TRBV9  TRBD1  TRBJ2…    15      24    29
#>  2     27    0.00318 TGTGCCAGC… CASSPD… TRBV7… TRBD1  TRBJ2…    11      21    24
#>  3     27    0.00318 TGTGCCACC… CATSRD… TRBV15 TRBD2  TRBJ2…    11      26    31
#>  4     24    0.00282 TGCGCCAGC… CASQRE… TRBV4… TRBD2  TRBJ1…     8      15    18
#>  5     18    0.00212 TGTGCCAGC… CASSHR… TRBV5… TRBD1  TRBJ2…    11      16    25
#>  6     16    0.00188 TGTGCCAGC… CASSFV… TRBV1… TRBD1  TRBJ2…    13      17    23
#>  7     15    0.00176 TGTGCCAGC… CASSYS… TRBV7… TRBD2  TRBJ2…    10      16    20
#>  8     15    0.00176 TGCGCCAGC… CASRSG… TRBV5… TRBD1  TRBJ2…    10      16    26
#>  9     14    0.00165 TGTGCCATC… CAISDR… TRBV1… TRBD1  TRBJ1…    13      14    18
#> 10     14    0.00165 TGCAGCGCC… CSATGD… TRBV2… TRBD1  TRBJ1…     7       9    15
#> # ℹ 7,437 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS5
#> # A tibble: 5,657 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1    433    0.0509  TGTGCCAGC… CASSPG… TRBV1… TRBD1  TRBJ2…    10      13    19
#>  2    414    0.0487  TGTGCCAGC… CASSPT… TRBV6… TRBD1  TRBJ2…    10      16    19
#>  3    272    0.032   TGTGCCAGC… CASSDG… TRBV2… TRBD1  TRBJ1…    13      18    20
#>  4    233    0.0274  TGTGCCAGC… CASSQG… TRBV7… TRBD1  TRBJ1…    11      14    19
#>  5    106    0.0125  TGTGCCAGC… CASSLG… TRBV7… TRBD2  TRBJ2…    15      16    26
#>  6     79    0.00929 TGTGCCAGC… CASRFK… TRBV6… TRBD2  TRBJ2…    10      18    27
#>  7     75    0.00882 TGTGCCAGC… CASSLG… TRBV28 TRBD1  TRBJ2…    14      15    18
#>  8     55    0.00647 TGTGCCAGC… CASSQD… TRBV3… TRBD2  TRBJ2…    16      24    27
#>  9     45    0.00529 TGCGCCAGC… CASSQE… TRBV4… TRBD2  TRBJ1…    16      19    22
#> 10     40    0.00471 TGTGCCACC… CATSRV… TRBV15 TRBD2  TRBJ2…    11      16    23
#> # ℹ 5,647 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> $data$MS6
#> # A tibble: 7,409 × 15
#>    Clones Proportion CDR3.nt    CDR3.aa V.name D.name J.name V.end D.start D.end
#>     <dbl>      <dbl> <chr>      <chr>   <chr>  <chr>  <chr>  <int>   <int> <int>
#>  1     46    0.00541 TGTGCCAGC… CASSAT… TRBV27 TRBD1  TRBJ2…    11      14    18
#>  2     41    0.00482 TGCAGTGCT… CSARDK… TRBV2… TRBD2  TRBJ2…    13      16    25
#>  3     29    0.00341 TGTGCCAGC… CASSPL… TRBV1… TRBD1  TRBJ2…    11      19    23
#>  4     26    0.00306 TGTGCCAGC… CASSPN… TRBV1… TRBD2  TRBJ1…    11      12    14
#>  5     21    0.00247 TGTGCCAGC… CASGTG… TRBV7… TRBD1  TRBJ1…     8       9    16
#>  6     20    0.00235 TGCGCCAGC… CASSLS… TRBV5… TRBD2  TRBJ2…    14      18    27
#>  7     18    0.00212 TGTGCCAGC… CASSPN… TRBV1… TRBD1  TRBJ2…    11      19    21
#>  8     17    0.002   TGTGCCAGC… CASSTG… TRBV6… TRBD2  TRBJ2…    11      14    26
#>  9     12    0.00141 TGTGCCAGC… CASSDS… TRBV6… TRBD2  TRBJ2…    16      17    27
#> 10     11    0.00129 TGCAGTGCT… CSARED… TRBV2… TRBD1  TRBJ1…    13      18    20
#> # ℹ 7,399 more rows
#> # ℹ 5 more variables: J.start <int>, VJ.ins <dbl>, VD.ins <dbl>, DJ.ins <dbl>,
#> #   Sequence <lgl>
#> 
#> 
#> $meta
#> # A tibble: 6 × 6
#>   Sample ID    Sex     Age Status Lane 
#>   <chr>  <chr> <chr> <dbl> <chr>  <chr>
#> 1 MS1    MS1   M        12 MS     C    
#> 2 MS2    MS2   M        30 MS     C    
#> 3 MS3    MS3   M         8 MS     C    
#> 4 MS4    MS4   F        14 MS     C    
#> 5 MS5    MS5   F        15 MS     C    
#> 6 MS6    MS6   F        15 MS     C    
#> 

# Select samples with a number of clonotypes from 1000 to 5000
repFilter(immdata, "by.repertoire", list(n_clonotypes = interval(1000, 5000)))
#> Warning: Filter by key "n_clonotypes" removed all remaining samples!
#> $data
#> named list()
#> 
#> $meta
#> # A tibble: 0 × 6
#> # ℹ 6 variables: Sample <chr>, ID <chr>, Sex <chr>, Age <dbl>, Status <chr>,
#> #   Lane <chr>
#> 

# Select clonotypes in all samples with alpha chains
repFilter(immdata, "by.clonotype",
  list(V.name = include("AV"), J.name = include("AJ")),
  .match = "substring"
)
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A2-i129"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A2-i131"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A2-i133"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A2-i132"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A4-i191"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "A4-i192"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS1"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS2"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS3"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS4"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS5"; sample was removed!
#> Warning: Filter by column "V.name" removed all remaining clonotypes from sample "MS6"; sample was removed!
#> $data
#> named list()
#> 
#> $meta
#> # A tibble: 0 × 6
#> # ℹ 6 variables: Sample <chr>, ID <chr>, Sex <chr>, Age <dbl>, Status <chr>,
#> #   Lane <chr>
#>