## ----include=FALSE------------------------------------------------------------ knitr::opts_chunk$set( collapse=TRUE, comment="#>" ) ## ----setup-------------------------------------------------------------------- # install.packages("devtools") # devtools::install_github("https://github.com/saeyslab/PeacoQC") library(PeacoQC) ## ----warning=FALSE, fig.show='hide'------------------------------------------- # Specify flowframe path and read your flowframe fileName <- system.file("extdata", "111.fcs", package="PeacoQC") ff <- flowCore::read.FCS(fileName) # Determine channels on which quality control should be done channels <- c(1, 3, 5:14, 18, 21) # Remove margins # Make sure you do this before any compensation since the internal parameters # change and they are neccessary for the RemoveMargins function. # If this is not possible, you can specify the internal parameters in the # channel_specifications parameter. ff <- RemoveMargins(ff=ff, channels=channels, output="frame") # Compensate and transform the data ff <- flowCore::compensate(ff, flowCore::keyword(ff)$SPILL) ff <- flowCore::transform(ff, flowCore::estimateLogicle(ff, colnames(flowCore::keyword(ff)$SPILL))) # Run PeacoQC and save the cleaned flowframe as an fcs file and plot the results # of this quality control step. peacoqc_res <- PeacoQC( ff=ff, channels=channels, determine_good_cells="all", save_fcs=TRUE, plot=TRUE, output_directory = "PeacoQC_Example1") # Filtered flowframe is stored in peacoqc_res$FinalFF and can be used for # further analysis. ff <- peacoqc_res$FinalFF ## ----eval = FALSE------------------------------------------------------------- # # # Example of how the code could look for mass cytometry data # # ff <- flowCore::read.FCS(file) # # # You don't have to remove margin events or compensate the data but you # # should transform it # channels <- c(3, 5, 6:53) # # ff <- transform(ff,transformList(colnames(ff)[channels], # arcsinhTransform(a = 0, b = 1/5, c = 0))) # # # Make sure the parameters are set correctly and that the remove_zeros variable # # is set to TRUE. # peacoqc_results <- PeacoQC(ff, # channels=channels, # IT_limit=0.6, # remove_zeros=TRUE, # time_units=50000) # ## ----warning=FALSE------------------------------------------------------------ # Change IT_limit for one compensated and transformed file. # (Higher=more strict, lower=less strict) # The fcs file should not be saved since we are still optimising the parameters fileName <- system.file("extdata", "111.fcs", package="PeacoQC") ff <- flowCore::read.FCS(fileName) # Determine channels on which quality control should be done channels <- c(1, 3, 5:14, 18, 21) # Remove margins ff <- RemoveMargins(ff=ff, channels=channels, output="frame") # Compensate and transform the data ff <- flowCore::compensate(ff, flowCore::keyword(ff)$SPILL) ff <- flowCore::transform(ff, flowCore::estimateLogicle(ff, colnames(flowCore::keyword(ff)$SPILL))) # Run PeacoQC and save the cleaned flowframe as an fcs file and plot the results # of this quality control step. peacoqc_res <- PeacoQC( ff=ff, channels=channels, determine_good_cells="all", save_fcs=FALSE, plot=TRUE, output_directory = "PeacoQC_Example2", IT_limit = 0.65) ## ----eval = FALSE------------------------------------------------------------- # # # You can also change the MAD parameter to a lower value # # (to make it more strict) or to a higher value (to make it less strict). # # Since the MAD analysis does not remove something, this is not neccesary now. # # peacoqc_res <- PeacoQC( # ff, # channels, # determine_good_cells="all", # save_fcs=FALSE, # plot=TRUE, # MAD=8 # ) # # # # When the correct parameters are chosen you can run the different files in # # a for loop # # for (file in files){ # ff <- flowCore::read.FCS(file) # # # Remove margins # ff <- RemoveMargins(ff=ff, channels=channels, output="frame") # # # Compensate and transform the data # ff <- flowCore::compensate(ff, flowCore::keyword(ff)$SPILL) # ff <- flowCore::transform(ff, # flowCore::estimateLogicle(ff, # colnames(flowCore::keyword(ff)$SPILL))) # peacoqc_res <- PeacoQC( # ff, # channels, # determine_good_cells="all", # IT_limit=0.6, # save_fcs=T, # plot=T) # } # ## ----warning = FALSE---------------------------------------------------------- # Find the path to the report that was created by using the PeacoQC function location <- system.file("extdata", "PeacoQC_report.txt", package="PeacoQC") # Make heatmap overview of the quality control run PeacoQCHeatmap(report_location=location, show_values = FALSE, show_row_names = FALSE) # Make heatmap with only the runs of the last test PeacoQCHeatmap(report_location=location, show_values = FALSE, latest_tests=TRUE, show_row_names = FALSE) # Make heatmap with row annotation PeacoQCHeatmap(report_location=location, show_values = FALSE, show_row_names = FALSE, row_split=c(rep("r1",7), rep("r2", 55))) ## ----warning=FALSE, fig.show= 'hide'------------------------------------------ # Load in compensated and transformed flowframe fileName <- system.file("extdata", "111_Comp_Trans.fcs", package="PeacoQC") ff <- flowCore::read.FCS(fileName) # Plot only the peaks (No quality control) PlotPeacoQC(ff, channels, display_peaks=TRUE, prefix = "PeacoQC_peaks_") # Plot only the dots of the file PlotPeacoQC(ff, channels, display_peaks=FALSE, prefix = "PeacoQC_nopeaks_")