Search for one or more amino acid or junction CDR3 sequences in a study tibble.
Usage
searchSeq(
study_table,
sequence,
seq_type = "junction",
edit_distance = 0,
match = "global"
)
findSeq(sequence, query_list, edit_distance, seq_type, match)
Arguments
- study_table
A tibble generated by the LymphoSeq2 functions
readImmunoSeq()
orproductiveSeq()
. "junction_aa" or "junction", "duplicate_frequency", and "duplicate_count" are required columns.- sequence
A character vector of one ore more amino acid or junction CDR3 sequences to search.
- seq_type
A character vector specifying the type of sequences to be searched. Available options are "junction_aa" or "junction".
- edit_distance
An integer giving the minimum edit distance that the sequence must be less than or equal to. See details below.
- match
A string indicating the type of sequence matching to perform. Acceptable values are
"global"
and"partial"
. See details below.- query_list
List of productive CDR3 nucleotide or amino acid sequences
Value
Returns the rows for every instance in the list of data frames where the searched sequence(s) appeared.
Tibble of sequences that differ from the input sequence by the edit distance threshold provided
Details
An exact partial match means the searched sequence is contained within target sequence. An exact global match means the searched sequence is identical to the target sequence.
Edit distance is a way of quantifying how dissimilar two sequences are to one another by counting the minimum number of operations required to transform one sequence into the other. For example, an edit distance of 0 means the sequences are identical and an edit distance of 1 indicates that the sequences different by a single amino acid or junction.
Examples
file_path <- system.file("extdata", "TCRB_sequencing", package = "LymphoSeq2")
study_table <- LymphoSeq2::readImmunoSeq(path = file_path, threads = 1)
study_table <- LymphoSeq2::topSeqs(study_table, top = 100)
aa1 <- "CASSPVSNEQFF"
aa2 <- "CASSQEVPPYQAFF"
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = aa1,
seq_type = "junction_aa",
edit_distance = 0,
match = "global"
)
#> # A tibble: 1 × 147
#> sequence_id sequence sequence_aa rev_comp productive vj_in_frame stop_codon
#> <chr> <chr> <chr> <lgl> <lgl> <lgl> <lgl>
#> 1 TRB_Unsorted_… CTGATTC… CASSPVSNEQ… FALSE FALSE NA FALSE
#> # ℹ 140 more variables: complete_vdj <lgl>, locus <chr>, v_call <chr>,
#> # d_call <chr>, d2_call <chr>, j_call <chr>, c_call <chr>,
#> # sequence_alignment <chr>, sequence_alignment_aa <chr>,
#> # germline_alignment <chr>, germline_alignment_aa <chr>, junction <chr>,
#> # junction_aa <chr>, np1 <chr>, np1_aa <chr>, np2 <chr>, np2_aa <chr>,
#> # np3 <chr>, np3_aa <chr>, cdr1 <chr>, cdr1_aa <chr>, cdr2 <chr>,
#> # cdr2_aa <chr>, cdr3 <chr>, cdr3_aa <chr>, fwr1 <chr>, fwr1_aa <chr>, …
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = c(aa1, aa2),
seq_type = "junction_aa",
edit_distance = 0,
match = "global"
)
#> # A tibble: 2 × 147
#> sequence_id sequence sequence_aa rev_comp productive vj_in_frame stop_codon
#> <chr> <chr> <chr> <lgl> <lgl> <lgl> <lgl>
#> 1 TRB_Unsorted_… CTGATTC… CASSPVSNEQ… FALSE FALSE NA FALSE
#> 2 TRB_Unsorted_… ATCAATT… CASSQEVPPY… FALSE FALSE NA FALSE
#> # ℹ 140 more variables: complete_vdj <lgl>, locus <chr>, v_call <chr>,
#> # d_call <chr>, d2_call <chr>, j_call <chr>, c_call <chr>,
#> # sequence_alignment <chr>, sequence_alignment_aa <chr>,
#> # germline_alignment <chr>, germline_alignment_aa <chr>, junction <chr>,
#> # junction_aa <chr>, np1 <chr>, np1_aa <chr>, np2 <chr>, np2_aa <chr>,
#> # np3 <chr>, np3_aa <chr>, cdr1 <chr>, cdr1_aa <chr>, cdr2 <chr>,
#> # cdr2_aa <chr>, cdr3 <chr>, cdr3_aa <chr>, fwr1 <chr>, fwr1_aa <chr>, …
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = aa1,
seq_type = "junction_aa",
edit_distance = 1,
match = "global"
)
#> # A tibble: 1 × 147
#> sequence_id sequence sequence_aa rev_comp productive vj_in_frame stop_codon
#> <chr> <chr> <chr> <lgl> <lgl> <lgl> <lgl>
#> 1 TRB_Unsorted_… CTGATTC… CASSPVSNEQ… FALSE FALSE NA FALSE
#> # ℹ 140 more variables: complete_vdj <lgl>, locus <chr>, v_call <chr>,
#> # d_call <chr>, d2_call <chr>, j_call <chr>, c_call <chr>,
#> # sequence_alignment <chr>, sequence_alignment_aa <chr>,
#> # germline_alignment <chr>, germline_alignment_aa <chr>, junction <chr>,
#> # junction_aa <chr>, np1 <chr>, np1_aa <chr>, np2 <chr>, np2_aa <chr>,
#> # np3 <chr>, np3_aa <chr>, cdr1 <chr>, cdr1_aa <chr>, cdr2 <chr>,
#> # cdr2_aa <chr>, cdr3 <chr>, cdr3_aa <chr>, fwr1 <chr>, fwr1_aa <chr>, …
nt <- "CTGATTCTGGAGTCCGCCAGCACCAACCAGACATCTATGTACCTCTGTGCCAGCAGTCCGGTAAGCAATGAGCAGTTCTTCGGGCCA"
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = nt,
seq_type = "junction",
edit_distance = 3,
match = "global"
)
#> # A tibble: 1 × 147
#> sequence_id sequence sequence_aa rev_comp productive vj_in_frame stop_codon
#> <chr> <chr> <chr> <lgl> <lgl> <lgl> <lgl>
#> 1 TRB_Unsorted_… CTGATTC… CASSPVSNEQ… FALSE FALSE NA FALSE
#> # ℹ 140 more variables: complete_vdj <lgl>, locus <chr>, v_call <chr>,
#> # d_call <chr>, d2_call <chr>, j_call <chr>, c_call <chr>,
#> # sequence_alignment <chr>, sequence_alignment_aa <chr>,
#> # germline_alignment <chr>, germline_alignment_aa <chr>, junction <chr>,
#> # junction_aa <chr>, np1 <chr>, np1_aa <chr>, np2 <chr>, np2_aa <chr>,
#> # np3 <chr>, np3_aa <chr>, cdr1 <chr>, cdr1_aa <chr>, cdr2 <chr>,
#> # cdr2_aa <chr>, cdr3 <chr>, cdr3_aa <chr>, fwr1 <chr>, fwr1_aa <chr>, …
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = "CASSPVS",
seq_type = "junction_aa",
edit_distance = 0,
match = "global"
)
#> # A tibble: 0 × 147
#> # ℹ 147 variables: sequence_id <chr>, sequence <chr>, sequence_aa <chr>,
#> # rev_comp <lgl>, productive <lgl>, vj_in_frame <lgl>, stop_codon <lgl>,
#> # complete_vdj <lgl>, locus <chr>, v_call <chr>, d_call <chr>, d2_call <chr>,
#> # j_call <chr>, c_call <chr>, sequence_alignment <chr>,
#> # sequence_alignment_aa <chr>, germline_alignment <chr>,
#> # germline_alignment_aa <chr>, junction <chr>, junction_aa <chr>, np1 <chr>,
#> # np1_aa <chr>, np2 <chr>, np2_aa <chr>, np3 <chr>, np3_aa <chr>, …
LymphoSeq2::searchSeq(
study_table = study_table,
sequence = nt,
seq_type = "junction",
edit_distance = 0,
match = "global"
)
#> # A tibble: 0 × 147
#> # ℹ 147 variables: sequence_id <chr>, sequence <chr>, sequence_aa <chr>,
#> # rev_comp <lgl>, productive <lgl>, vj_in_frame <lgl>, stop_codon <lgl>,
#> # complete_vdj <lgl>, locus <chr>, v_call <chr>, d_call <chr>, d2_call <chr>,
#> # j_call <chr>, c_call <chr>, sequence_alignment <chr>,
#> # sequence_alignment_aa <chr>, germline_alignment <chr>,
#> # germline_alignment_aa <chr>, junction <chr>, junction_aa <chr>, np1 <chr>,
#> # np1_aa <chr>, np2 <chr>, np2_aa <chr>, np3 <chr>, np3_aa <chr>, …