diff --git a/NAMESPACE b/NAMESPACE index 9f3d3773..6359ef8a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -56,6 +56,7 @@ export(load_regional_univariate_data) export(load_rss_data) export(load_tsv_region) export(load_twas_weights) +export(map_data_type) export(mash_pipeline) export(mash_rand_null_sample) export(merge_mash_data) diff --git a/R/file_utils.R b/R/file_utils.R index 47b82ea5..73d0dab8 100644 --- a/R/file_utils.R +++ b/R/file_utils.R @@ -980,3 +980,23 @@ batch_load_twas_weights <- function(twas_weights_results, meta_data_df, max_memo names(batches) <- NULL return(batches) } + + +#' Map data type for twas weight contexts based on provided data type table. +#' @param data_type_table A data frame contains three columns: type, context, subgroup +#' @param context_names A vector of contexts +#' @return A vector of mapped data type based on context names +#' @export +map_data_type <- function(data_type_table, context_names){ + data_type <- lapply(context_names, function(context){ + xqtl_type_table$type[apply(xqtl_type_table, 1, function(x) { + if (! grepl("sQTL",context)) { + grepl(x[2], context) + } else { + grepl(x[2], context) & grepl(x[3], context) + } + })] + }) + names(data_type) <- context_names + return(data_type) +} diff --git a/man/map_data_type.Rd b/man/map_data_type.Rd new file mode 100644 index 00000000..de8ec440 --- /dev/null +++ b/man/map_data_type.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/file_utils.R +\name{map_data_type} +\alias{map_data_type} +\title{Map data type for twas weight contexts based on provided data type table.} +\usage{ +map_data_type(data_type_table, context_names) +} +\arguments{ +\item{data_type_table}{A data frame contains three columns: type, context, subgroup} + +\item{context_names}{A vector of contexts} +} +\value{ +A vector of mapped data type based on context names +} +\description{ +Map data type for twas weight contexts based on provided data type table. +}