R/point_in_orga.R

Defines functions point_in_orga

Documented in point_in_orga

#' point_in_orga
#'
#' Function to generate random coordinate according to a subcellular location from img2.
#'
#' @param Organelle One of the valid organelle; To see the valid organelles type
#'                  \code{unique(IMPRINTS.CETSA.app::orgatlas_match$location.corres)}
#'
#' @return A double containing coordinates
#'
#' @export
#'
#' @seealso \code{\link{is_in_zone}}

point_in_orga <- function(Organelle = "Golgi"){
  if (grepl("Mitochondrian|Vacuole|Vesicle", Organelle)){
    if(sample(c(1,2), 1) == 1){
      Organelle <- paste0(Organelle, 2)
    }
  }
  if (grepl("^endoplasmic_reticulum", Organelle)){
    if(sample(c(1,2), 1) == 1){
      Organelle <- paste0("Rough_", Organelle)
    }
    else{
      Organelle <- paste0("Smooth_", Organelle)
    }
  }
  rg_orgx <- rg_list[[Organelle]]$x
  rg_orgy <- rg_list[[Organelle]]$y

  rnd_x <- runif(1, rg_orgx[1], rg_orgx[2])
  rnd_y <- runif(1, rg_orgy[1], rg_orgy[2])

  data <- loca_orga[which(loca_orga$organelle == Organelle), 1:2]
  while(!is_in_zone(data, c(rnd_x, rnd_y))){
    rnd_x <- runif(1, rg_orgx[1], rg_orgx[2])
    rnd_y <- runif(1, rg_orgy[1], rg_orgy[2])
  }

  return(c(rnd_x, rnd_y))
}
mgerault/mineCETSAapp documentation built on April 17, 2025, 7:24 p.m.