#' Clonal relatedness
#'
#' Calculates the clonal relatedness for each sample in a list of data frames.
#'
#' @param list A list data frames of unproductive or productive nucleotide
#' sequences or productive nucleotide sequences. Nucleotide and count are
#' required columns.
#' @param editDistance An integer giving the minimum edit distance that the
#' sequence must be less than or equal to. See details below.
#' @details Clonal relatedness is the proportion of nucleotide sequences that
#' are related by a defined edit distance threshold. The value ranges from 0 to
#' 1 where 0 indicates no sequences are related and 1 indicates all sequences
#' are related.
#'
#' 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 nucleotide.
#' @return Returns a data frame with the calculated clonal relatedness for each sample.
#' @examples
#' file.path <- system.file("extdata", "IGH_sequencing", package = "LymphoSeq")
#'
#' file.list <- readImmunoSeq(path = file.path)
#'
#' clonal.relatedness <- clonalRelatedness(list = file.list, editDistance = 10)
#'
#' # Merge results with clonality table
#' clonality <- clonality(file.list = file.list)
#' merged <- merge(clonality, clonal.relatedness)
#'
#' @export
#' @importFrom stringdist stringdist
clonalRelatedness <- function(list, editDistance = 10){
relatedness <- as.numeric()
clonality <- as.numeric()
cloneResolved <- as.character()
i <- 2
for(i in 1:length(list)){
file <- list[[i]]
top <- file[order(file$count, decreasing = TRUE), "nucleotide"][1]
result1 <- length(which(
stringdist::stringdist(top, file$nucleotide,
method = "lv") < editDistance))/nrow(file)
relatedness <- c(relatedness, result1)
}
df <- data.frame(samples = names(list), clonalRelatedness = relatedness)
return(df)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.