## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)

## ----message=FALSE------------------------------------------------------------
library(SPIAT)

## -----------------------------------------------------------------------------
data("simulated_image")

# define cell types
formatted_image <- define_celltypes(
    simulated_image, 
    categories = c("Tumour_marker","Immune_marker1,Immune_marker2", 
                   "Immune_marker1,Immune_marker3", 
                   "Immune_marker1,Immune_marker2,Immune_marker4", "OTHER"), 
    category_colname = "Phenotype", 
    names = c("Tumour", "Immune1", "Immune2", "Immune3", "Others"),
    new_colname = "Cell.Type")

## ----fig.height = 2, fig.width = 3.2------------------------------------------
marker_intensity_boxplot(formatted_image, "Immune_marker1")

## ----fig.height=3, fig.width=6, dpi = 72, out.width="100%"--------------------
plot_cell_marker_levels(formatted_image, "Immune_marker1")

## ----fig.height = 2.2, out.width="75%"----------------------------------------
plot_marker_level_heatmap(formatted_image, num_splits = 100, "Tumour_marker")

## -----------------------------------------------------------------------------
data_subset <- select_celltypes(
  formatted_image, keep=TRUE,
  celltypes = c("Tumour_marker","Immune_marker1,Immune_marker3", 
                "Immune_marker1,Immune_marker2",
                "Immune_marker1,Immune_marker2,Immune_marker4"),
  feature_colname = "Phenotype")
# have a look at what phenotypes are present
unique(data_subset$Phenotype)

## -----------------------------------------------------------------------------
# First predict the phenotypes (this is for generating not 100% accurate phenotypes)
predicted_image2 <- predict_phenotypes(spe_object = simulated_image,
                                      thresholds = NULL,
                                      tumour_marker = "Tumour_marker",
                                      baseline_markers = c("Immune_marker1", 
                                                           "Immune_marker2", 
                                                           "Immune_marker3", 
                                                           "Immune_marker4"),
                                      reference_phenotypes = FALSE)

# Then define the cell types based on predicted phenotypes
predicted_image2 <- define_celltypes(
  predicted_image2, 
  categories = c("Tumour_marker", "Immune_marker1,Immune_marker2",
                 "Immune_marker1,Immune_marker3", 
                 "Immune_marker1,Immune_marker2,Immune_marker4"), 
  category_colname = "Phenotype",
  names = c("Tumour", "Immune1", "Immune2",  "Immune3"),
  new_colname = "Cell.Type")

# Delete cells with unrealistic marker combinations from the dataset
predicted_image2 <- 
  select_celltypes(predicted_image2, "Undefined", feature_colname = "Cell.Type",
                   keep = FALSE)

# TSNE plot
g <- dimensionality_reduction_plot(predicted_image2, plot_type = "TSNE", 
                                   feature_colname = "Cell.Type")

## ----echo=TRUE, eval=FALSE----------------------------------------------------
# plotly::ggplotly(g)

## ----echo=FALSE, fig.width = 4, fig.height = 4, out.width = "70%"-------------
knitr::include_graphics("tSNE1.jpg")

## ----eval=FALSE---------------------------------------------------------------
# predicted_image2 <-
#   select_celltypes(predicted_image2, c("Cell_3302", "Cell_4917", "Cell_2297",
#                                        "Cell_488", "Cell_4362", "Cell_4801",
#                                        "Cell_2220", "Cell_3431", "Cell_533",
#                                        "Cell_4925", "Cell_4719", "Cell_469",
#                                        "Cell_1929", "Cell_310", "Cell_2536",
#                                        "Cell_321", "Cell_4195"),
#                    feature_colname = "Cell.ID", keep = FALSE)

## ----eval=FALSE---------------------------------------------------------------
# # TSNE plot
# g <- dimensionality_reduction_plot(predicted_image2, plot_type = "TSNE", feature_colname = "Cell.Type")
# 
# # plotly::ggplotly(g) # uncomment this code to interact with the plot

## ----echo=FALSE, fig.width = 4, fig.height = 4, out.width = "70%"-------------
knitr::include_graphics("tSNE2.jpg")

## ----fig.height = 2.5---------------------------------------------------------
my_colors <- c("red", "blue", "darkcyan", "darkgreen")
  
plot_cell_categories(spe_object = formatted_image, 
                     categories_of_interest = 
                       c("Tumour", "Immune1", "Immune2", "Immune3"), 
                     colour_vector = my_colors, feature_colname = "Cell.Type")

## ----eval=FALSE---------------------------------------------------------------
# marker_surface_plot(formatted_image, num_splits=15, marker="Immune_marker1")

## ----echo=FALSE, out.width = "75%"--------------------------------------------
knitr::include_graphics("marker_surface1.jpg")

## ----eval=FALSE---------------------------------------------------------------
# marker_surface_plot_stack(formatted_image, num_splits=15, markers=c("Tumour_marker", "Immune_marker1"))

## ----echo=FALSE, out.width = "75%"--------------------------------------------
knitr::include_graphics("marker_surface2.jpg")

## -----------------------------------------------------------------------------
sessionInfo()