From 2a6eb09cb73e939fc0c748247d3fefb2c00cb047 Mon Sep 17 00:00:00 2001 From: Simeon <51403284+simeross@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:00:29 +0100 Subject: [PATCH] minor bug fix in subset_by_clusters --- R/subset_by_clusters.R | 10 ++++++---- man/subset_by_clusters.Rd | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/R/subset_by_clusters.R b/R/subset_by_clusters.R index 8211118..1806349 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 b8d2dd8..a4062a1 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 -- GitLab