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