|
19 | 19 | #' - **Delimited** files using `data.table:fread()`, `arrow:read_delim_arrow()`,
|
20 | 20 | #' `vroom::vroom()`, `duckdb::duckdb_read_csv()`
|
21 | 21 | # or `polars::pl$read_csv()`
|
| 22 | +#' - **FASTA** files using `seqinr::read.fasta()` |
22 | 23 | #'
|
23 | 24 | #' @param filename Character: filename or full path if `datadir = NULL`
|
24 | 25 | #' @param datadir Character: Optional path to directory where `filename`
|
@@ -126,6 +127,18 @@ read <- function(filename,
|
126 | 127 | }
|
127 | 128 | .dat <- haven::read_dta(path, ...)
|
128 | 129 | if (output == "data.table") setDT(.dat)
|
| 130 | + } else if (ext == "fasta") { |
| 131 | + dependency_check("seqinr") |
| 132 | + if (verbose) { |
| 133 | + msg20( |
| 134 | + bold(green("\u25B6")), " Reading ", |
| 135 | + hilite(basename(path)), " using seqinr::read.fasta()..." |
| 136 | + ) |
| 137 | + } |
| 138 | + .dat <- seqinr::read.fasta(path, ...) |
| 139 | + # if single sequence, return as character |
| 140 | + if (length(.dat) == 1) .dat <- as.character(.dat[[1]]) |
| 141 | + return(.dat) |
129 | 142 | } else {
|
130 | 143 | if (verbose) {
|
131 | 144 | msg20(
|
@@ -245,7 +258,8 @@ read <- function(filename,
|
245 | 258 | }
|
246 | 259 |
|
247 | 260 | if (timed) outro(start.time)
|
248 |
| - .dat |
| 261 | + |
| 262 | + return(.dat) |
249 | 263 | } # rtemis::read
|
250 | 264 |
|
251 | 265 | msgread <- function(x, caller = "", use_basename = TRUE) {
|
|
0 commit comments