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