## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.height = 5, fig.width = 5, fig.align = "center" ) ## ----------------------------------------------------------------------------- library(ClustIRR) library(knitr) library(visNetwork) ## ----eval=FALSE--------------------------------------------------------------- # if(!require("BiocManager", quietly = TRUE)) { # install.packages("BiocManager") # } # BiocManager::install("ClustIRR") ## ----graphic, echo = FALSE, fig.align="left", out.width='90%'----------------- knitr::include_graphics("../inst/extdata/logo.png") ## ----------------------------------------------------------------------------- data("CDR3ab") ## ----------------------------------------------------------------------------- # take the first 500 CDR3b sequences from the data -> s # s <- base::data.frame(CDR3b = CDR3ab$CDR3b[1:500]) s <- base::data.frame(CDR3b = c(CDR3ab$CDR3b[1:500], "CASSSSPGDQEQFF")) # take 5000 CDR3b sequences 501:5500 from the data -> r r <- base::data.frame(CDR3b = CDR3ab$CDR3b[501:5500]) ## ----------------------------------------------------------------------------- str(s) ## ----------------------------------------------------------------------------- str(r) ## ----------------------------------------------------------------------------- cdr3 <- "CASSTTTGTGELFF" k <- 4 base::colnames(stringdist::qgrams(cdr3, q = k)) ## ----------------------------------------------------------------------------- t <- 3 cdr3_trimmed <- base::substr(x = cdr3, start = t + 1, stop = nchar(cdr3) - t) base::colnames(stringdist::qgrams(cdr3_trimmed, q = k)) ## ----------------------------------------------------------------------------- # insert motif LEAR base::substr(x = s$CDR3b[1:20], start = 6, stop = 9) <- "LEAR" ## ----------------------------------------------------------------------------- o <- cluster_irr(s = s, r = r, version = 2, ks = 4, cores = 1, control = list(trim_flank_aa = 3)) ## ----------------------------------------------------------------------------- # extract local motifs local_motifs <- get_clustirr_clust(o)$CDR3b$local$m # display only passed motifs knitr::kable(local_motifs[local_motifs$pass == TRUE, ], row.names = FALSE) ## ----------------------------------------------------------------------------- # display globally similar pairs knitr::kable(get_clustirr_clust(o)$CDR3b$global, row.names = FALSE) ## ----fig.width=5, fig.height=4, fig.align='center'---------------------------- par(mai = c(0,0,0,0)) plot_graph(clust_irr = o) ## ----fig.width=5, fig.height=4, fig.align='center'---------------------------- plot_graph(clust_irr = o, as_visnet = TRUE) ## ----------------------------------------------------------------------------- # create a clone of 10 T-cells clone <- base::data.frame(CDR3b = rep("CATSRPDGLAQYF", times = 20)) # append the clone to the original repertoire 's' s <- base::rbind(s, clone) ## ----------------------------------------------------------------------------- o <- cluster_irr(s = s, r = r, version = 2, ks = 4, cores = 1, control = list(trim_flank_aa = 3)) ## ----fig.align='center'------------------------------------------------------- # extract local motifs local_motifs <- get_clustirr_clust(o)$CDR3b$local$m # display only passed motifs knitr::kable(local_motifs[local_motifs$pass == TRUE, ], row.names = FALSE) ## ----------------------------------------------------------------------------- # plot the clust_irr object plot_graph(clust_irr = o, as_visnet = TRUE) ## ----------------------------------------------------------------------------- data("CDR3ab") S0 <- base::data.frame(CDR3a = CDR3ab$CDR3a[3001:4000], CDR3b = CDR3ab$CDR3b[3001:4000]) S1 <- base::data.frame(CDR3a = CDR3ab$CDR3a[5001:6000], CDR3b = CDR3ab$CDR3b[5001:6000]) ## ----------------------------------------------------------------------------- # insert motif LEAR in CDR3b base::substr(x = S0$CDR3b[1:10], start = 6, stop = 9) <- "LEAR" # insert motif REAL in CDR3a base::substr(x = S0$CDR3a[50:59], start = 6, stop = 9) <- "REAL" ## ----------------------------------------------------------------------------- # create 3 clones clone_1 <- data.frame(CDR3a = rep(x = "CASSEGEQFF", times = 100), CDR3b = rep(x = "CASSLLARAEQFF", times = 100)) clone_2 <- data.frame(CDR3a = rep(x = "CASSLESPLHF", times = 50), CDR3b = rep(x = "CASSLEEEEEEPLHF", times = 50)) clone_3 <- data.frame(CDR3a = rep(x = "CASSLESPLHF", times = 10), CDR3b = rep(x = "CASSLAAAAASPLHF", times = 10)) # append clones to s S0 <- rbind(S0, clone_1, clone_2, clone_3) ## ----------------------------------------------------------------------------- base::substr(x = S1$CDR3b[1:20], start = 6, stop = 9) <- "WWWW" S1 <- rbind(S1, clone_1) ## ----------------------------------------------------------------------------- o_S1_vs_S0 <- cluster_irr(s = S1, r = S0, version = 2, ks = 4, cores = 1, control = list(trim_flank_aa = 3)) o_S0_vs_S1 <- cluster_irr(s = S0, r = S1, version = 2, ks = 4, cores = 1, control = list(trim_flank_aa = 3)) ## ----------------------------------------------------------------------------- # beta & alpha chain plot_joint_graph(clust_irr_1 = o_S1_vs_S0, clust_irr_2 = o_S0_vs_S1, as_visnet = TRUE) ## ----------------------------------------------------------------------------- data("CDR3ab") # gamma/delta chain TCR data -> notice CDR3g and CDR3d columns of 's' and 'r' s <- base::data.frame(CDR3g = CDR3ab$CDR3a[4501:5000], CDR3d = CDR3ab$CDR3b[4501:5000]) r <- base::data.frame(CDR3g = CDR3ab$CDR3a[5001:10000], CDR3d = CDR3ab$CDR3b[5001:10000]) ## ----------------------------------------------------------------------------- data("CDR3ab") # heavy/light chain BCR data -> notice CDR3h and CDR3l columns of 's' and 'r' s <- base::data.frame(CDR3h = CDR3ab$CDR3a[4501:5000], CDR3l = CDR3ab$CDR3b[4501:5000]) r <- base::data.frame(CDR3h = CDR3ab$CDR3a[5001:10000], CDR3l = CDR3ab$CDR3b[5001:10000]) ## ----session_info------------------------------------------------------------- utils::sessionInfo()