From a5d571f0f217ac048069ef9a9014dac4aaa28f62 Mon Sep 17 00:00:00 2001 From: Stathis Gennatas Date: Fri, 7 Jun 2024 12:35:01 -0700 Subject: [PATCH] added FASTA support to read --- R/read.R | 16 +++++++++++++++- man/read.Rd | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/R/read.R b/R/read.R index b7d221c3..e3f76b74 100644 --- a/R/read.R +++ b/R/read.R @@ -19,6 +19,7 @@ #' - **Delimited** files using `data.table:fread()`, `arrow:read_delim_arrow()`, #' `vroom::vroom()`, `duckdb::duckdb_read_csv()` # or `polars::pl$read_csv()` +#' - **FASTA** files using `seqinr::read.fasta()` #' #' @param filename Character: filename or full path if `datadir = NULL` #' @param datadir Character: Optional path to directory where `filename` @@ -126,6 +127,18 @@ read <- function(filename, } .dat <- haven::read_dta(path, ...) if (output == "data.table") setDT(.dat) + } else if (ext == "fasta") { + dependency_check("seqinr") + if (verbose) { + msg20( + bold(green("\u25B6")), " Reading ", + hilite(basename(path)), " using seqinr::read.fasta()..." + ) + } + .dat <- seqinr::read.fasta(path, ...) + # if single sequence, return as character + if (length(.dat) == 1) .dat <- as.character(.dat[[1]]) + return(.dat) } else { if (verbose) { msg20( @@ -245,7 +258,8 @@ read <- function(filename, } if (timed) outro(start.time) - .dat + + return(.dat) } # rtemis::read msgread <- function(x, caller = "", use_basename = TRUE) { diff --git a/man/read.Rd b/man/read.Rd index 17e14943..5eb54f6c 100644 --- a/man/read.Rd +++ b/man/read.Rd @@ -80,6 +80,7 @@ characters to factors \item \strong{DTA} files from Stata using \code{haven::read_dta()} \item \strong{Delimited} files using \code{data.table:fread()}, \code{arrow:read_delim_arrow()}, \code{vroom::vroom()}, \code{duckdb::duckdb_read_csv()} +\item \strong{FASTA} files using \code{seqinr::read.fasta()} } } \examples{