Skip to content
Snippets Groups Projects
Commit 2a6eb09c authored by Simeon's avatar Simeon
Browse files

minor bug fix in subset_by_clusters

parent 12621d49
No related branches found
No related tags found
No related merge requests found
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
#' #'
#' @param seqs A sequence object containing the sequences to be subsetted. #' @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 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 #' @return A list of sequence objects, where each list element corresponds to a cluster and contains the sequences in that cluster
#' @import dplyr purrr #' @import dplyr purrr
#' @importFrom Biostrings writeXStringSet #' @importFrom Biostrings writeXStringSet
#' @export #' @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 %>% cluster_seqs <- cluster_tbl %>%
select(cluster, seqnames) %>% select(cluster, seqnames) %>%
arrange(cluster) %>% arrange(cluster) %>%
...@@ -29,10 +29,12 @@ subset_by_clusters <- function(seqs, cluster_tbl, save_to_file = TRUE){ ...@@ -29,10 +29,12 @@ subset_by_clusters <- function(seqs, cluster_tbl, save_to_file = TRUE){
clus_save_dir, paste0(names(out)[clusnum], "_cluster.fasta")) clus_save_dir, paste0(names(out)[clusnum], "_cluster.fasta"))
writeXStringSet(out[[clusnum]], filepath = clus_save) writeXStringSet(out[[clusnum]], filepath = clus_save)
} }
if (save_to_file) { if (!is.logical(save_to_file) & dir.exists(save_to_file)) {
clus_save_dir <- file.path(path, paste0("cluster_sequences")) clus_save_dir <- file.path(save_to_file, paste0("cluster_sequences"))
dir.create(clus_save_dir, showWarnings = FALSE) dir.create(clus_save_dir, showWarnings = FALSE)
lapply(seq_along(out), save_cluster) 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) return(out)
} }
...@@ -4,14 +4,14 @@ ...@@ -4,14 +4,14 @@
\alias{subset_by_clusters} \alias{subset_by_clusters}
\title{Subset sequences by clusters} \title{Subset sequences by clusters}
\usage{ \usage{
subset_by_clusters(seqs, cluster_tbl, save_to_file = TRUE) subset_by_clusters(seqs, cluster_tbl, save_to_file = path)
} }
\arguments{ \arguments{
\item{seqs}{A sequence object containing the sequences to be subsetted.} \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{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{ \value{
A list of sequence objects, where each list element corresponds to a cluster and contains the sequences in that cluster A list of sequence objects, where each list element corresponds to a cluster and contains the sequences in that cluster
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment