diff --git a/R/subset_by_clusters.R b/R/subset_by_clusters.R index 82111186016b81f68027ac40465d50082368ec7c..180634959e830cbfb845ae0f819bab546fe5ed63 100644 --- a/R/subset_by_clusters.R +++ b/R/subset_by_clusters.R @@ -4,12 +4,12 @@ #' #' @param seqs A sequence object containing the sequences to be subsetted. #' @param cluster_tbl A data frame or tibble containing the cluster assignments. It should have two columns, 'cluster' and 'seqnames', where 'cluster' contains the cluster numbers and 'seqnames' contains the corresponding sequence names. -#' @param save_to_file Logical value indicating whether to save the resulting sequences to separate files for each cluster. +#' @param save_to_file FALSE or target directory. #' @return A list of sequence objects, where each list element corresponds to a cluster and contains the sequences in that cluster #' @import dplyr purrr #' @importFrom Biostrings writeXStringSet #' @export -subset_by_clusters <- function(seqs, cluster_tbl, save_to_file = TRUE){ +subset_by_clusters <- function(seqs, cluster_tbl, save_to_file = path){ cluster_seqs <- cluster_tbl %>% select(cluster, seqnames) %>% arrange(cluster) %>% @@ -29,10 +29,12 @@ subset_by_clusters <- function(seqs, cluster_tbl, save_to_file = TRUE){ clus_save_dir, paste0(names(out)[clusnum], "_cluster.fasta")) writeXStringSet(out[[clusnum]], filepath = clus_save) } - if (save_to_file) { - clus_save_dir <- file.path(path, paste0("cluster_sequences")) + if (!is.logical(save_to_file) & dir.exists(save_to_file)) { + clus_save_dir <- file.path(save_to_file, paste0("cluster_sequences")) dir.create(clus_save_dir, showWarnings = FALSE) lapply(seq_along(out), save_cluster) + } else if (!is.logical(save_to_file) & dir.exists(save_to_file)){ + stop(paste(save_to_file, "does not exist.")) } return(out) } diff --git a/man/subset_by_clusters.Rd b/man/subset_by_clusters.Rd index b8d2dd80f60d521ba7a1cb631bb7eb6ea1e266e6..a4062a127683b0ebb409d5031dbfad82c77879b6 100644 --- a/man/subset_by_clusters.Rd +++ b/man/subset_by_clusters.Rd @@ -4,14 +4,14 @@ \alias{subset_by_clusters} \title{Subset sequences by clusters} \usage{ -subset_by_clusters(seqs, cluster_tbl, save_to_file = TRUE) +subset_by_clusters(seqs, cluster_tbl, save_to_file = path) } \arguments{ \item{seqs}{A sequence object containing the sequences to be subsetted.} \item{cluster_tbl}{A data frame or tibble containing the cluster assignments. It should have two columns, 'cluster' and 'seqnames', where 'cluster' contains the cluster numbers and 'seqnames' contains the corresponding sequence names.} -\item{save_to_file}{Logical value indicating whether to save the resulting sequences to separate files for each cluster.} +\item{save_to_file}{FALSE or target directory.} } \value{ A list of sequence objects, where each list element corresponds to a cluster and contains the sequences in that cluster