R/PSICalculater.R

Defines functions PSICalculater

Documented in PSICalculater

#' This function are PSI calculater
#'
#' @rdname PSICalculater
#' @name PSICalculater
#' @title PSICalculater
#'
#' @param object an ICASDataSet
#' @param MMJF minimum minor-junction fraction of multiple-alternative-splice site (same start/end junction > 2)
#' @param MinSumSpliceSite The minimum number of reads of each SameStart or SameEnd for PSI Calculating
#' @export
#' @author Tang Chao

PSICalculater <- function(object, MMJF = 0.01, MinSumSpliceSite = 10) {
  if(!is(object, "ICASDataSet"))
    stop("The object must be a ICASDataSet data")

  if(length(MMJF) != 1) {
    stop("MMJF must be a numeric between [0, 1]")
  }

  if(!is.numeric(MMJF)) {
    stop("MMJF must be a numeric between [0, 1]")
  }

  if(MMJF < 0 | MMJF > 1) {
    stop("MMJF must be a numeric between [0, 1]")
  }

  if(length(MinSumSpliceSite) != 1) {
    stop("MinSumSpliceSite must be a positive numeric number")
  }

  if(!is.numeric(MinSumSpliceSite)) {
    stop("MinSumSpliceSite must be a positive numeric number")
  }

  if(MinSumSpliceSite < 0) {
    stop("MinSumSpliceSite must be a positive numeric number")
  }

  AScountData <- ASSJFilter(counts(object), MMJF = MMJF)
  psiMat <- PSICalculate(ASSJMat = AScountData, MinSumSpliceSite = MinSumSpliceSite)
  psi(object) <- psiMat
  return(object)
}
tangchao7498/ICAS documentation built on Jan. 28, 2021, 3:56 p.m.