diff --git a/.Rbuildignore b/.Rbuildignore new file mode 100644 index 0000000..5baa8ba --- /dev/null +++ b/.Rbuildignore @@ -0,0 +1,7 @@ +^.*\.Rproj$ +^\.Rproj\.user$ +^doc$ +^Meta$ +.gitignore +readme.md +readme.Rmd \ No newline at end of file diff --git a/DESCRIPTION b/DESCRIPTION index c9f813a..f2778f9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,10 +1,10 @@ Package: cytoqc Type: Package -Title: Quality control for cytometry -Version: 0.99.1 -Author: Mike Jiang, Jake Wagner +Title: Quality control and standardization of cytometry data +Version: 0.99.2 +Author: Mike Jiang, Jake Wagner, Greg Finak Maintainer: Mike Jiang -Description: Provides quality control and quality assessment tools for cytometry data. +Description: Provides quality control, quality assessment, and data standardization tools for cytometry. Depends: R (>= 3.5.0) Imports: methods, @@ -20,9 +20,11 @@ Imports: purrr, shiny, tibble, - tidyr + tidyr, + stats, + graphics License: Artistic-2.0 -biocViews: ImmunoOncology, Infrastructure, FlowCytometry, CellBasedAssays +biocViews: Infrastructure, FlowCytometry, CellBasedAssays Suggests: rmarkdown VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index 284446e..f09485c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -84,6 +84,7 @@ importFrom(dplyr,select) importFrom(dplyr,summarise) importFrom(dplyr,ungroup) importFrom(flowCore,parameters) +importFrom(flowCore,write.FCS) importFrom(flowWorkspace,colnames) importFrom(ggcyto,autoplot) importFrom(ggplot2,aes) @@ -93,6 +94,7 @@ importFrom(ggplot2,geom_jitter) importFrom(ggplot2,geom_point) importFrom(ggplot2,ggplot) importFrom(ggplot2,scale_color_identity) +importFrom(graphics,abline) importFrom(kableExtra,cell_spec) importFrom(kableExtra,collapse_rows) importFrom(kableExtra,column_spec) @@ -100,6 +102,7 @@ importFrom(kableExtra,kable_styling) importFrom(kableExtra,row_spec) importFrom(knitr,kable) importFrom(knitr,knit_print) +importFrom(methods,is) importFrom(purrr,map) importFrom(purrr,map_dfr) importFrom(purrr,reduce) @@ -114,6 +117,14 @@ importFrom(shiny,renderPlot) importFrom(shiny,selectInput) importFrom(shiny,shinyApp) importFrom(shiny,wellPanel) +importFrom(stats,dbeta) +importFrom(stats,dt) +importFrom(stats,mad) +importFrom(stats,median) +importFrom(stats,optim) +importFrom(stats,pbeta) +importFrom(stats,pnorm) +importFrom(stats,pt) importFrom(tibble,add_row) importFrom(tibble,as.tibble) importFrom(tibble,tibble) @@ -122,3 +133,4 @@ importFrom(tidyr,pivot_wider) importFrom(tidyr,separate) importFrom(tidyr,separate_rows) importFrom(tidyr,unite) +importFrom(utils,adist) diff --git a/R/cqc_find_reference.R b/R/cqc_find_reference.R index 696dce2..dacb183 100644 --- a/R/cqc_find_reference.R +++ b/R/cqc_find_reference.R @@ -48,7 +48,7 @@ cqc_find_params_reference <- function(cqc_cf_list, type = c("channel", "marker") cqc_remove_not_in_reference <- function(x, ...)UseMethod("cqc_remove_not_in_reference") #' @importFrom flowWorkspace colnames #' @export -cqc_remove_not_in_reference.cqc_report_channel <- function(x, cqc_cf_list){ +cqc_remove_not_in_reference.cqc_report_channel <- function(x, cqc_cf_list,...){ for(sn in names(x)) { check_result <- x[[sn]] @@ -65,7 +65,7 @@ cqc_remove_not_in_reference.cqc_report_channel <- function(x, cqc_cf_list){ } } #' @export -cqc_remove_not_in_reference.cqc_report_marker <- function(x, cqc_cf_list){ +cqc_remove_not_in_reference.cqc_report_marker <- function(x, cqc_cf_list,...){ for(sn in names(x)) { check_result <- x[[sn]] diff --git a/R/cqc_find_solution.R b/R/cqc_find_solution.R index bec69a7..91c7cc4 100644 --- a/R/cqc_find_solution.R +++ b/R/cqc_find_solution.R @@ -31,16 +31,19 @@ cqc_find_solution.cqc_match_result_keyword <- function(x, ...){ #' Find solution to resolve the discrepancy discovered by match_reference #' #' It tries to find the aproximate match(based on 'agrep') between the target and reference as well as the extra redundunt items that can be removed. -#' +#' @name cqc_find_solution #' @return a table (with 'from' and 'to' columns) represents the itemized fix recommendation. When 'to' is 'NA', it means the entry is redundunt and can be removed #' @examples #' \dontrun{ #' solution <- cqc_find_solution(groups, select = c(1, 4)) #' } +#' @param x A CQC object of some kind. See vignettes. #' @param max.distance Maximum distance allowed for a match. See ?agrep +#' @param ... additional arguments not for the user. #' @importFrom tibble tibble add_row +#' @importFrom utils adist #' @export -cqc_find_solution.cqc_match_result <- function(x, max.distance = 0.1){ +cqc_find_solution.cqc_match_result <- function(x, max.distance = 0.1,...){ res <- map_dfr(x, function(check_result) { unknown <- check_result[["unknown"]] diff --git a/R/cqc_fix.R b/R/cqc_fix.R index 0ae282c..3684278 100644 --- a/R/cqc_fix.R +++ b/R/cqc_fix.R @@ -6,10 +6,10 @@ cqc_fix <- function(x, ...)UseMethod("cqc_fix") #' #' Peform the actual fixing action (i.e update or delete) #' @param x the cqc_solution returned by 'find_solution' calls -#' +#' @param ... addiitional arguments not for the user. #' @importFrom dplyr rowwise do #' @export -cqc_fix.cqc_solution <- function(x, func){ +cqc_fix.cqc_solution <- function(x,...){ group <- attr(x, "group") cqc_data <- attr(group, "data") type <- sub("cqc_solution_", "", class(x)[[1]]) @@ -29,7 +29,7 @@ cqc_fix.cqc_solution <- function(x, func){ #' @export cqc_delete <- function(x, ...)UseMethod("cqc_delete") #' @export -cqc_delete.cytoframe <- function(x, value, type){ +cqc_delete.cytoframe <- function(x, value, type, ...){ if(type == "channel") { cols <- flowWorkspace::colnames(x) @@ -55,7 +55,7 @@ cqc_delete.GatingSet <- function(x, ...){ #' @export cqc_update <- function(x, ...)UseMethod("cqc_update") #' @export -cqc_update.cytoframe <- function(x, from, to, type){ +cqc_update.cytoframe <- function(x, from, to, type,...){ if(type == "channel") { flowWorkspace:::setChannel(x@pointer, from, to) @@ -71,7 +71,7 @@ cqc_update.cytoframe <- function(x, from, to, type){ } #' @export -cqc_update.GatingSet <- function(x, from, to, type){ +cqc_update.GatingSet <- function(x, from, to, type,...){ if(type == "channel") gs_update_channels(x, map = data.frame(old = from , new = to diff --git a/R/cqc_group.R b/R/cqc_group.R index 19a181e..0a9b1b9 100644 --- a/R/cqc_group.R +++ b/R/cqc_group.R @@ -29,7 +29,7 @@ cqc_group.cqc_gs_list <- function(x, ...){ attr(res, "data") <- x res } -#' QC check +#' Perform a QC check on flow data. #' #' This is the first step of the entire qc workflow. #' It extracts meta information(specified by 'type' argument) from the raw data @@ -40,6 +40,7 @@ cqc_group.cqc_gs_list <- function(x, ...){ #' @param x cqc_cf_list #' @param type specify the qc type, can be "channel", "marker" or "panel" #' @param delimiter a special character used to separate channel and marker +#' @param ... additional arguments. #' @examples #' \dontrun{ #' groups <- cqc_group(cqc_cf_list, "channel") @@ -47,7 +48,7 @@ cqc_group.cqc_gs_list <- function(x, ...){ #' @export #' @importFrom dplyr filter arrange pull mutate group_indices distinct count add_count #' @importFrom tidyr separate separate_rows -cqc_group.cqc_cf_list <- function(x, type = c("channel", "marker", "panel", "keyword"), delimiter = "|"){ +cqc_group.cqc_cf_list <- function(x, type = c("channel", "marker", "panel", "keyword"), delimiter = "|",...){ sep <- paste0(delimiter, delimiter)#double delimiter for sep params and single delimiter for sep channel and marker keys <- sapply(x, function(cf){ if(type == "keyword") @@ -89,18 +90,19 @@ cqc_group.cqc_cf_list <- function(x, type = c("channel", "marker", "panel", "key res } -#' Provide the summary view of the qc report +#' Provide the summary view of the cqc_group report. #' #' It summarise the sample-wise qc report into group overview report for reference selection and further QC action. #' #' @param object qc table returned by 'cqc_group' +#' @param ... Additional arguments not for the user. Ignore. #' @examples #' \dontrun{ #' su <- summary(groups) #' #' } #' @export -summary.cqc_group <- function(object){ +summary.cqc_group <- function(object,...){ res <- object %>% select(-c(object)) %>% distinct() @@ -109,31 +111,33 @@ summary.cqc_group <- function(object){ } #' @export -diff.cqc_group_keyword <- function(x){ +diff.cqc_group_keyword <- function(x,...){ diff.cqc_group(x, c("keyword")) } #' @export -diff.cqc_group_channel <- function(x){ +diff.cqc_group_channel <- function(x,...){ diff.cqc_group(x, c("channel")) } #' @export -diff.cqc_group_marker <- function(x){ +diff.cqc_group_marker <- function(x,...){ diff.cqc_group(x, c("marker")) } #' @export -diff.cqc_group_panel <- function(x){ +diff.cqc_group_panel <- function(x,...){ diff.cqc_group(x, c("channel", "marker")) } -#' Helper function to only show the difference among qc group +#' Display the differences among QC groups #' #' @param x the grouped summary report generated by 'summary' call on the 'cqc_group' results +#' @param vars variable to split by. Determined automatically. +#' @param ... Additional arguments not for the user. Ignore. #' @examples #' \dontrun{ #' su <- summary(groups) @@ -143,7 +147,7 @@ diff.cqc_group_panel <- function(x){ #' @importFrom dplyr group_split inner_join anti_join #' @importFrom purrr reduce map map_dfr #' @export -diff.cqc_group <- function(x, vars){ +diff.cqc_group <- function(x, vars, ...){ grps <- x %>% group_split(group_id) commons <- grps %>% reduce(inner_join, by = vars) @@ -152,13 +156,13 @@ diff.cqc_group <- function(x, vars){ `class<-`(value = class(x)) } -#' Split the samples into groups +#' Split the result of 'cqc_group' into groups #' #' It is used to split samples into separate groups when they can't be reconciled into the sampe group. #' #' @importFrom purrr walk #' @export -split.cqc_group <- function(x){ +split.cqc_group <- function(x, f,drop=FALSE,...){ cqc_data <- attr(x, "data") data_type <- class(cqc_data) vec <- x %>% select(c(object, group_id)) %>% distinct() %>% pull(group_id) @@ -168,7 +172,7 @@ split.cqc_group <- function(x){ }) } -#' Helper function to remove the outlier groups that can't be fixed +#' Remove outlier groups from the result of 'cqc_group'. #' #' @param groups the object returned by 'cqc_groups' #' @param id the group id to be dropped from the dataset @@ -184,7 +188,7 @@ cqc_drop_groups <- function(groups, id){ groups } -#' Helper function to extract the data from 'cqc_groups' object +#' Extract the data from the result of a 'cqc_groups' call. #' #' @param groups the object returned by 'cqc_groups' #' @param id the group id to be selected from the dataset, default is NULL, meaning all data @@ -198,9 +202,9 @@ cqc_get_data <- function(groups, id = NULL){ } cqc_data } -#' set reference +#' Set a reference sample for further QC. #' -#' It is the step prior to the further qc solution finding step. +#' This is the first step prior to finding a QC solution for a data set. #' #' @param x cqc report generated by 'cqc_group' #' @param ref specifies the reference, which can be either an integer group id or a characte vector giving the actual values of the reference diff --git a/R/cqc_io.R b/R/cqc_io.R index 3a3fac0..6edb448 100644 --- a/R/cqc_io.R +++ b/R/cqc_io.R @@ -1,6 +1,9 @@ #' Load FCS files -#' load fcs into 'cqc_cf_list' object which is a list of cytoframes +#' load fcs into 'cqc_cf_list' object which is a list of cytoframes. +#' This is the method to construct the core data object for cytoQC. +#' @param is_h5 \code{logical} should the cytoframe be constructed as an h5 disk-backed structure. Default \code{TRUE}. #' @import flowWorkspace +#' @importFrom methods is #' @export cqc_load_fcs <- function(files, is_h5 = TRUE, ...){ res <- sapply(files, function(file)load_cytoframe_from_fcs(file, is_h5 = is_h5, ...)) @@ -10,7 +13,7 @@ cqc_load_fcs <- function(files, is_h5 = TRUE, ...){ #' Construct a 'cqc_cf_list' object from a list of 'cytoframe' objects #' -#' For the methods dispatching purpose +#' This is the core data object for CytoQC. #' #' @param x a list of 'cytoframe' objects #' @export @@ -32,11 +35,13 @@ cqc_cf_list <- function(x){ #' @export write_fcs <- function(x, ...)UseMethod("write_fcs") -#' The helper function to write the cleaned cqc_cf_list back to fcs +#' Write out tidied flow data (cqc_cf_list) back to fcs #' @param x cqc_cf_list +#' @param ... additional arguments. #' @param out the output directory that the FCS will be written +#' @importFrom flowCore write.FCS #' @export -write_fcs.cqc_cf_list <- function(x, out, verbose = TRUE){ +write_fcs.cqc_cf_list <- function(x, out, verbose = TRUE,...){ if(!dir.exists(out)) dir.create(out) for(sn in names(x)) diff --git a/R/outlier.R b/R/outlier.R index 4b94ab0..2c95240 100644 --- a/R/outlier.R +++ b/R/outlier.R @@ -21,11 +21,13 @@ #'@author Mike Jiang,Greg Finak #' #'Maintainer: Mike Jiang -#'@seealso \code{\link{qaCheck}},\code{\link[QUALIFIER:qaReport]{qaReport}} +#'@seealso \code{\link[QUALIFIER:qaCheck]{qaCheck}},\code{\link[QUALIFIER:qaReport]{qaReport}} #'@keywords functions -#' @rdname outlierFunctions -#' @export -#' @aliases rlm outlierFunctions +#'@importFrom graphics abline +#'@importFrom stats dbeta dt mad median optim pbeta pnorm pt +#'@rdname outlierFunctions +#'@export +#'@aliases rlm outlierFunctions proportion.outliers.robust<-function (x, alpha = 0.01,isUpper=TRUE,isLower=TRUE) { outliers<-rep(FALSE,length(x)) diff --git a/R/print.R b/R/print.R index 69fdb7d..6e45eb2 100644 --- a/R/print.R +++ b/R/print.R @@ -1,5 +1,5 @@ #' @export -print.cqc_cf_list <- function(x){ +print.cqc_cf_list <- function(x,...){ cat("cytoqc data: \n") cat(length(x), " samples \n") } diff --git a/man/cqc_cf_list.Rd b/man/cqc_cf_list.Rd index a033c61..f06f7e3 100644 --- a/man/cqc_cf_list.Rd +++ b/man/cqc_cf_list.Rd @@ -10,5 +10,5 @@ cqc_cf_list(x) \item{x}{a list of 'cytoframe' objects} } \description{ -For the methods dispatching purpose +This is the core data object for CytoQC. } diff --git a/man/cqc_drop_groups.Rd b/man/cqc_drop_groups.Rd index 41be46b..b63e84b 100644 --- a/man/cqc_drop_groups.Rd +++ b/man/cqc_drop_groups.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/cqc_group.R \name{cqc_drop_groups} \alias{cqc_drop_groups} -\title{Helper function to remove the outlier groups that can't be fixed} +\title{Remove outlier groups from the result of 'cqc_group'.} \usage{ cqc_drop_groups(groups, id) } @@ -12,5 +12,5 @@ cqc_drop_groups(groups, id) \item{id}{the group id to be dropped from the dataset} } \description{ -Helper function to remove the outlier groups that can't be fixed +Remove outlier groups from the result of 'cqc_group'. } diff --git a/man/cqc_find_solution.cqc_match_result.Rd b/man/cqc_find_solution.Rd similarity index 82% rename from man/cqc_find_solution.cqc_match_result.Rd rename to man/cqc_find_solution.Rd index a5a2a67..a9e07ab 100644 --- a/man/cqc_find_solution.cqc_match_result.Rd +++ b/man/cqc_find_solution.Rd @@ -1,13 +1,18 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/cqc_find_solution.R -\name{cqc_find_solution.cqc_match_result} +\name{cqc_find_solution} +\alias{cqc_find_solution} \alias{cqc_find_solution.cqc_match_result} \title{Find solution to resolve the discrepancy discovered by match_reference} \usage{ -\method{cqc_find_solution}{cqc_match_result}(x, max.distance = 0.1) +\method{cqc_find_solution}{cqc_match_result}(x, max.distance = 0.1, ...) } \arguments{ +\item{x}{A CQC object of some kind. See vignettes.} + \item{max.distance}{Maximum distance allowed for a match. See ?agrep} + +\item{...}{additional arguments not for the user.} } \value{ a table (with 'from' and 'to' columns) represents the itemized fix recommendation. When 'to' is 'NA', it means the entry is redundunt and can be removed diff --git a/man/cqc_fix.cqc_solution.Rd b/man/cqc_fix.cqc_solution.Rd index 7a97829..a0095a1 100644 --- a/man/cqc_fix.cqc_solution.Rd +++ b/man/cqc_fix.cqc_solution.Rd @@ -4,10 +4,12 @@ \alias{cqc_fix.cqc_solution} \title{Apply the cqc_solution} \usage{ -\method{cqc_fix}{cqc_solution}(x, func) +\method{cqc_fix}{cqc_solution}(x, ...) } \arguments{ \item{x}{the cqc_solution returned by 'find_solution' calls} + +\item{...}{addiitional arguments not for the user.} } \description{ Peform the actual fixing action (i.e update or delete) diff --git a/man/cqc_get_data.Rd b/man/cqc_get_data.Rd index 412fb8c..091a8f4 100644 --- a/man/cqc_get_data.Rd +++ b/man/cqc_get_data.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/cqc_group.R \name{cqc_get_data} \alias{cqc_get_data} -\title{Helper function to extract the data from 'cqc_groups' object} +\title{Extract the data from the result of a 'cqc_groups' call.} \usage{ cqc_get_data(groups, id = NULL) } @@ -12,5 +12,5 @@ cqc_get_data(groups, id = NULL) \item{id}{the group id to be selected from the dataset, default is NULL, meaning all data} } \description{ -Helper function to extract the data from 'cqc_groups' object +Extract the data from the result of a 'cqc_groups' call. } diff --git a/man/cqc_group.cqc_cf_list.Rd b/man/cqc_group.cqc_cf_list.Rd index 82d199c..aff2f8e 100644 --- a/man/cqc_group.cqc_cf_list.Rd +++ b/man/cqc_group.cqc_cf_list.Rd @@ -2,12 +2,13 @@ % Please edit documentation in R/cqc_group.R \name{cqc_group.cqc_cf_list} \alias{cqc_group.cqc_cf_list} -\title{QC check} +\title{Perform a QC check on flow data.} \usage{ \method{cqc_group}{cqc_cf_list}( x, type = c("channel", "marker", "panel", "keyword"), - delimiter = "|" + delimiter = "|", + ... ) } \arguments{ @@ -16,6 +17,8 @@ \item{type}{specify the qc type, can be "channel", "marker" or "panel"} \item{delimiter}{a special character used to separate channel and marker} + +\item{...}{additional arguments.} } \value{ a tibble with 4 columns: object, qc type (e.g. channel), group_id and nobject (i.e. group count) diff --git a/man/cqc_load_fcs.Rd b/man/cqc_load_fcs.Rd index 8b78558..2879be9 100644 --- a/man/cqc_load_fcs.Rd +++ b/man/cqc_load_fcs.Rd @@ -3,11 +3,16 @@ \name{cqc_load_fcs} \alias{cqc_load_fcs} \title{Load FCS files -load fcs into 'cqc_cf_list' object which is a list of cytoframes} +load fcs into 'cqc_cf_list' object which is a list of cytoframes. +This is the method to construct the core data object for cytoQC.} \usage{ cqc_load_fcs(files, is_h5 = TRUE, ...) } +\arguments{ +\item{is_h5}{\code{logical} should the cytoframe be constructed as an h5 disk-backed structure. Default \code{TRUE}.} +} \description{ Load FCS files -load fcs into 'cqc_cf_list' object which is a list of cytoframes +load fcs into 'cqc_cf_list' object which is a list of cytoframes. +This is the method to construct the core data object for cytoQC. } diff --git a/man/cqc_set_reference.Rd b/man/cqc_set_reference.Rd index ac293f7..ad68ec1 100644 --- a/man/cqc_set_reference.Rd +++ b/man/cqc_set_reference.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/cqc_group.R \name{cqc_set_reference} \alias{cqc_set_reference} -\title{set reference} +\title{Set a reference sample for further QC.} \usage{ cqc_set_reference(x, ref) } @@ -15,5 +15,5 @@ cqc_set_reference(x, ref) the original cqc report with the reference info attached } \description{ -It is the step prior to the further qc solution finding step. +This is the first step prior to finding a QC solution for a data set. } diff --git a/man/diff.cqc_group.Rd b/man/diff.cqc_group.Rd index 92ec1b1..c5bdcb6 100644 --- a/man/diff.cqc_group.Rd +++ b/man/diff.cqc_group.Rd @@ -2,15 +2,19 @@ % Please edit documentation in R/cqc_group.R \name{diff.cqc_group} \alias{diff.cqc_group} -\title{Helper function to only show the difference among qc group} +\title{Display the differences among QC groups} \usage{ -\method{diff}{cqc_group}(x, vars) +\method{diff}{cqc_group}(x, vars, ...) } \arguments{ \item{x}{the grouped summary report generated by 'summary' call on the 'cqc_group' results} + +\item{vars}{variable to split by. Determined automatically.} + +\item{...}{Additional arguments not for the user. Ignore.} } \description{ -Helper function to only show the difference among qc group +Display the differences among QC groups } \examples{ \dontrun{ diff --git a/man/outlierFunctions.Rd b/man/outlierFunctions.Rd index fe74ebe..6bf9e70 100644 --- a/man/outlierFunctions.Rd +++ b/man/outlierFunctions.Rd @@ -67,7 +67,7 @@ Distribution based outlier detection functions. These different outlier detection functions are used together with qaCheck method to perform outlier checks. } \seealso{ -\code{\link{qaCheck}},\code{\link[QUALIFIER:qaReport]{qaReport}} +\code{\link[QUALIFIER:qaCheck]{qaCheck}},\code{\link[QUALIFIER:qaReport]{qaReport}} } \author{ Mike Jiang,Greg Finak diff --git a/man/split.cqc_group.Rd b/man/split.cqc_group.Rd index 453276d..2221868 100644 --- a/man/split.cqc_group.Rd +++ b/man/split.cqc_group.Rd @@ -2,9 +2,9 @@ % Please edit documentation in R/cqc_group.R \name{split.cqc_group} \alias{split.cqc_group} -\title{Split the samples into groups} +\title{Split the result of 'cqc_group' into groups} \usage{ -\method{split}{cqc_group}(x) +\method{split}{cqc_group}(x, f, drop = FALSE, ...) } \description{ It is used to split samples into separate groups when they can't be reconciled into the sampe group. diff --git a/man/summary.cqc_group.Rd b/man/summary.cqc_group.Rd index fb7dd4d..28edc0b 100644 --- a/man/summary.cqc_group.Rd +++ b/man/summary.cqc_group.Rd @@ -2,12 +2,14 @@ % Please edit documentation in R/cqc_group.R \name{summary.cqc_group} \alias{summary.cqc_group} -\title{Provide the summary view of the qc report} +\title{Provide the summary view of the cqc_group report.} \usage{ -\method{summary}{cqc_group}(object) +\method{summary}{cqc_group}(object, ...) } \arguments{ \item{object}{qc table returned by 'cqc_group'} + +\item{...}{Additional arguments not for the user. Ignore.} } \description{ It summarise the sample-wise qc report into group overview report for reference selection and further QC action. diff --git a/man/write_fcs.cqc_cf_list.Rd b/man/write_fcs.cqc_cf_list.Rd index 3f5d330..5521944 100644 --- a/man/write_fcs.cqc_cf_list.Rd +++ b/man/write_fcs.cqc_cf_list.Rd @@ -2,15 +2,17 @@ % Please edit documentation in R/cqc_io.R \name{write_fcs.cqc_cf_list} \alias{write_fcs.cqc_cf_list} -\title{The helper function to write the cleaned cqc_cf_list back to fcs} +\title{Write out tidied flow data (cqc_cf_list) back to fcs} \usage{ -\method{write_fcs}{cqc_cf_list}(x, out, verbose = TRUE) +\method{write_fcs}{cqc_cf_list}(x, out, verbose = TRUE, ...) } \arguments{ \item{x}{cqc_cf_list} \item{out}{the output directory that the FCS will be written} + +\item{...}{additional arguments.} } \description{ -The helper function to write the cleaned cqc_cf_list back to fcs +Write out tidied flow data (cqc_cf_list) back to fcs } diff --git a/vignettes/qc-gs.Rmd b/vignettes/qc-gs.Rmd index e20dbf7..b1bc46b 100644 --- a/vignettes/qc-gs.Rmd +++ b/vignettes/qc-gs.Rmd @@ -3,7 +3,7 @@ title: A QC tool for openCyto output: rmarkdown::html_vignette always_allow_html: yes vignette: > - %\VignetteIndexEntry{cytoqc} + %\VignetteIndexEntry{cytoqc-gs} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- @@ -20,8 +20,7 @@ library(kableExtra) ```{r} library(flowCore) library(flowWorkspace) -# library(cytoqc) -devtools::load_all("../") +library(cytoqc) ``` ```{r include=FALSE} diff --git a/vignettes/qc-keywords.Rmd b/vignettes/qc-keywords.Rmd index 04ebd90..f536f1a 100644 --- a/vignettes/qc-keywords.Rmd +++ b/vignettes/qc-keywords.Rmd @@ -3,7 +3,7 @@ title: A QC tool for openCyto output: rmarkdown::html_vignette always_allow_html: yes vignette: > - %\VignetteIndexEntry{cytoqc} + %\VignetteIndexEntry{cytoqc-kw} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- @@ -20,8 +20,7 @@ library(kableExtra) ```{r} library(flowCore) library(flowWorkspace) -# library(cytoqc) -devtools::load_all("../") +library(cytoqc) ``` ```{r include=FALSE} diff --git a/vignettes/qc-pregating.Rmd b/vignettes/qc-pregating.Rmd index f8e7dcc..506e823 100644 --- a/vignettes/qc-pregating.Rmd +++ b/vignettes/qc-pregating.Rmd @@ -3,7 +3,7 @@ title: A QC tool for openCyto output: rmarkdown::html_vignette always_allow_html: yes vignette: > - %\VignetteIndexEntry{cytoqc} + %\VignetteIndexEntry{cytoqc-pregating} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- @@ -29,8 +29,7 @@ library(kableExtra) ```{r} library(flowCore) library(flowWorkspace) -# library(cytoqc) -devtools::load_all("../") +library(cytoqc) ``` ```{r include=FALSE} diff --git a/vignettes/qc-pregating2.Rmd b/vignettes/qc-pregating2.Rmd index 07e880c..753db6d 100644 --- a/vignettes/qc-pregating2.Rmd +++ b/vignettes/qc-pregating2.Rmd @@ -3,7 +3,7 @@ title: A QC tool for openCyto 2 output: rmarkdown::html_vignette always_allow_html: yes vignette: > - %\VignetteIndexEntry{cytoqc2} + %\VignetteIndexEntry{cytoqc=pregating-alt} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} @@ -28,8 +28,7 @@ library(kableExtra) ```{r} library(flowCore) library(flowWorkspace) -# library(cytoqc) -devtools::load_all("../") +library(cytoqc) ``` ```{r include=FALSE}