R/create_recurrence_table.R

Defines functions create_recurrence_table

Documented in create_recurrence_table

create_recurrence_table <- function(data=NULL, recurrence_value="Gene.refGene", recurrence_threshold=2, sample_col="sample") {
  if (is.null(data)) stop("Mandatory argument data is missing")

  all_genes <- sort(unique(data[[recurrence_value]]))
  rec_data <- data.frame(matrix(nrow=length(all_genes), ncol=length(unique(data[[sample_col]]))))
  rownames(rec_data) <- all_genes
  samples <- sort(unique(data[[sample_col]]))
  colnames(rec_data) <- samples
  rec_data[is.na(rec_data)] <- 0
  for(i in 1:nrow(data)) {
    rec_data[data[[recurrence_value]][i], data[[sample_col]][i]] <- rec_data[data[[recurrence_value]][i], data[[sample_col]][i]] + 1
  }
  rec_data_simple <- rec_data
  rec_data_simple[rec_data_simple > 0] <- 1
  rec_data_simple$rec <- apply(X=rec_data_simple, MARGIN=1, FUN=sum)
  rec_data$rec <- rec_data_simple$rec
  rec_data <- rec_data[order(rec_data$rec),]

  rec_data <- rec_data[rec_data$rec >= recurrence_threshold,]
  rec_data$rec <- NULL
  return(rec_data)
}
Bio-Core/BioCore.Annotation documentation built on Feb. 3, 2020, 6:01 p.m.