From cd864f96e1f3c6e8266e3c08102c966c2ffd8509 Mon Sep 17 00:00:00 2001 From: J Wokaty Date: Wed, 10 Jul 2024 01:01:36 -0400 Subject: [PATCH] Update vignette --- DESCRIPTION | 1 + NAMESPACE | 2 +- R/bedbaser.R | 29 +--------- R/utils.R | 2 +- man/bb_metadata_files-BEDbase-method.Rd | 23 -------- man/dot-bed_file_to_granges.Rd | 2 +- tests/testthat/.test-bedbaser.R.swp | Bin 16384 -> 0 bytes vignettes/bedbaser.Rmd | 70 ++++++++++++++---------- 8 files changed, 49 insertions(+), 80 deletions(-) delete mode 100644 man/bb_metadata_files-BEDbase-method.Rd delete mode 100644 tests/testthat/.test-bedbaser.R.swp diff --git a/DESCRIPTION b/DESCRIPTION index 76059bb..5a24624 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -12,6 +12,7 @@ Imports: AnVIL, BiocFileCache, dplyr, + GenomicRanges, httr, purrr, rtracklayer, diff --git a/NAMESPACE b/NAMESPACE index 116cffa..5323e9f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,7 +9,6 @@ exportMethods(bb_example) exportMethods(bb_list_beds) exportMethods(bb_list_bedsets) exportMethods(bb_metadata) -exportMethods(bb_metadata_files) exportMethods(bb_to_granges) exportMethods(bb_to_grangeslist) importFrom(AnVIL,Service) @@ -19,6 +18,7 @@ importFrom(BiocFileCache,bfcdownload) importFrom(BiocFileCache,bfcneedsupdate) importFrom(BiocFileCache,bfcquery) importFrom(BiocFileCache,bfcrpath) +importFrom(GenomicRanges,GRangesList) importFrom(R.utils,gunzip) importFrom(dplyr,bind_rows) importFrom(dplyr,filter) diff --git a/R/bedbaser.R b/R/bedbaser.R index 3eace31..c05e3cf 100644 --- a/R/bedbaser.R +++ b/R/bedbaser.R @@ -267,31 +267,6 @@ setMethod( } ) -setGeneric(name = "bb_metadata_files", - def = function(x, id) { standardGeneric("bb_metadata_files") }) - -#' BED files metadata -#' -#' @param id integer() BED record identifier -#' -#' @importFrom httr content -#' -#' @return tibble() file metadata -#' -#' @examples -#' client <- BEDbase() -#' ex_bed <- bb_example(client, "bed") -#' mdf <- bb_metadata_files(client, ex_bed$id) -#' -#' @export -setMethod( - "bb_metadata_files", "BEDbase", - function(x, id) { - md <- bb_metadata(x, id, "bed", TRUE) - .format_metadata_files(md$files) - } -) - setGeneric(name = "bb_to_granges", def = function(x, id, file_type = c("bed", "bigbed"), extra_cols = NULL, quietly = FALSE) { @@ -349,6 +324,8 @@ setGeneric(name = "bb_to_grangeslist", #' @param id integer() BEDset record identifier #' @param quietly logical() (defaults to FALSE) display messages #' +#' @importFrom GenomicRanges GRangesList +#' #' @return GRangesList() object #' #' @examples @@ -360,7 +337,7 @@ setGeneric(name = "bb_to_grangeslist", setMethod( "bb_to_grangeslist", "BEDbase", function(x, id, quietly = FALSE) { - beds <- bb_beds_in_bedset(client, id) + beds <- bb_beds_in_bedset(x, id) gros <- list() for (id in beds$id) { gro <- bb_to_granges(x, id, "bed", quietly = quietly) diff --git a/R/utils.R b/R/utils.R index 91d6c13..ca5dc69 100644 --- a/R/utils.R +++ b/R/utils.R @@ -105,7 +105,7 @@ #' @examples #' client <- BEDbase() #' ex_bed <- bb_example(client, "bed") -#' md <- bb_metadata(client, ex_bed$id, "bed", TRUE). +#' md <- bb_metadata(client, ex_bed$id, "bed", TRUE) #' file_path <- .get_file_path(md$files$bed_file$access_methods[[1]]$access_url$url, #' "bed") #' .bed_file_to_granges(file_path, bed_type, bed_format) diff --git a/man/bb_metadata_files-BEDbase-method.Rd b/man/bb_metadata_files-BEDbase-method.Rd deleted file mode 100644 index f95ab80..0000000 --- a/man/bb_metadata_files-BEDbase-method.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/bedbaser.R -\name{bb_metadata_files,BEDbase-method} -\alias{bb_metadata_files,BEDbase-method} -\title{BED files metadata} -\usage{ -\S4method{bb_metadata_files}{BEDbase}(x, id) -} -\arguments{ -\item{id}{integer() BED record identifier} -} -\value{ -tibble() file metadata -} -\description{ -BED files metadata -} -\examples{ -client <- BEDbase() -ex_bed <- bb_example(client, "bed") -mdf <- bb_metadata_files(client, ex_bed$id) - -} diff --git a/man/dot-bed_file_to_granges.Rd b/man/dot-bed_file_to_granges.Rd index 7dd477c..823f76c 100644 --- a/man/dot-bed_file_to_granges.Rd +++ b/man/dot-bed_file_to_granges.Rd @@ -32,7 +32,7 @@ Aborts if the length of \code{extra_cols} is not equal to Y in BEDX+Y. \examples{ client <- BEDbase() ex_bed <- bb_example(client, "bed") -md <- bb_metadata(client, ex_bed$id, "bed", TRUE). +md <- bb_metadata(client, ex_bed$id, "bed", TRUE) file_path <- .get_file_path(md$files$bed_file$access_methods[[1]]$access_url$url, "bed") .bed_file_to_granges(file_path, bed_type, bed_format) diff --git a/tests/testthat/.test-bedbaser.R.swp b/tests/testthat/.test-bedbaser.R.swp deleted file mode 100644 index ef7ea96b5943867a986ba44f359f273772dad527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHNU5F%C6|Rk%_>&jG7heRwbAPIx zqwc}2EbFmguzWd5A6dT4BR@^zE$%M6!gqNl(&b!ac_!cUKF{TcMe}g!;$g(sZE6N; z24*oZ%7ev?lh#V7-J&M<+Gp51-hOFT>-v7pK+QnSK+QnSK+QnSK+QnSK+VAaAp`mF z4(n5}>ke((w!WU2y1q_-f1kcyo_emo)|Z-rnt_^unt_^unt_^unt_^unt_^unt_^u znt}g82Dooo7ogXRwBg6^|7QRH+qYTPZ-8e27gz_nzzXosw_4Uqz?Xn80G|i00S^JE zfghc;tXseqZ~^!*a0>X>-Inz-unn99e*G59`W5g?;48qBzzWa;mVrOM*|L5P>;a3w zzu#n8KLfr9Tm!BE4+HlA7VzyiLN;&;_}yKW^>u&)*MO_Q9B?=AlRGV|2b=-^{szl> z0k{d|Kn83AXMkV49{qvSz@Kmc@=f5=z+=FpKnHj?@Cpu3z6LxEjDYLFdw{!uzkt^t z13v_a;}?MAc|E#dF}%d?PX11X85xnb-(X>v1bm_D)@yMK`l_|WmiFz+{(cG&|MS3a3bMK+3Z2x>Rk#~XVK zY!pXfmgCa`yY>D;a1sQW$kDH*wV~0Xa1heHcB@%5+!={<5BKbTZ)L+)_w`t$g_p#+ zi1UUQg}BV+Vi&e2q>7UXo_c-fM!Wn?HW(&QNRB|(k{H*OjpS3+PfKj-ftC4c6zcHc z`47_nR6q;;QN^MEs5I>TQdlbTQ5t8sN?Mroh|hSBhjEs(yf2uv&~CC%B8m*l(uZZw zIH7h9eNe5)Mtm8opE+SHogfS!P2(1k&xQU1AgxyXnar25_J&@StgJC3$$W&m?_@%MTa}uvb9x4nt= z)(tO-GI-ykv_a!(`?YeDy2xRRbWzzv227C#W;Y>GI;KpcSrOG_^Jqf4ncyn*sPK51 zm6DU?ZSwG#AjQzZt}aU~9377au1HxDkf+&UJUvOKactptbK}sSF6GVkrd_)mQ%9`? zls^i0PqFl>e4b%}W!mvUlB&GU`aRHJk=*41&7-J64dgtX>xnoS2!}@@$E=e}9=T2_ zrPp<}CYU}dXqs{mC4R{UJ%Lhd=P~)k!^$;;qy&RZflqxji^m?Kvuz8+UFAAhD zX0BS-C)z^P)Ur^_H0{Z;8>cNfvLB0yTXrI5uUWRqpR`t!hD?oClF`#QMm=MQOo$;SCWZ8+cB>Hx%*#Ts>c z){M+o0;$FzJ?E=*)C%6qND>klmphJB%x8>Ky2wQuqcBFEjj?GAlh~sD|Kr%}K83w7 z?f=d1`_E&a|5acJoCDqk{2qJz?*Y#N-vNAJ3z!4`fc^dVf$sv(0atXG2~~sTrsls2QjkI5GoO=U_M# zWRZw_IB@KxQL)OGPRi^LB!eL;_DuL6y2#_6$hL3>f;HNUc$UdtSK3$A3JejtHo$3N zFO{une=#l%qa@-E9XdKAFY}y0aGc}`s_u41p~xdTlpI&L2iK01<1jCUK!J6bP3k&6 z1>Ao!W79Go#yxwXsgHC0V3G*hG119l!^7dP*pY`t(Ads$o)Qzbh<&=;4E?;X9>8{a zi`we*RX-qZc(z1an57`a6R?*k=Ju-} zKd7RvRP0)$z{GBtYOU_sHq06Lvecp)O({Dt6`(1KXUi=)Q;j)QJ1P&W!tu~0?%3%J zdwravvmrteE-Wzyy=OaJdazNrnQWhY+1p+6Iq%SiklM6h8?rj9bfi_?T+ac8X6!!5?|;gJ9B;I`Kh8lc1A@Qi8rsQYg9eQ1P;MmL|zD z#f$55e`7W1v^Uo}uDjuHu6MfKZm=F~@)f?h(mDQki8;=dZj#Gb1Ews<$bmuQv~gU- zPGsA#hd{+J)f883uU~D7G^Z*vrVYo>k-Z18si%qaUorovakX-m^6GKL)w<_)kcl=# h*K>Kt_trXMwe9=fddmykz&-xB;tU4JUnmMj{{sjb_kREY diff --git a/vignettes/bedbaser.Rmd b/vignettes/bedbaser.Rmd index 83e4d90..c0a06c3 100644 --- a/vignettes/bedbaser.Rmd +++ b/vignettes/bedbaser.Rmd @@ -92,45 +92,59 @@ bb_beds_in_bedset(client, "excluderanges") ### Search for a BED file by keyword -Search for BED files by keywords: +Search for BED files by keywords. `bb_bed_text_search()` returns all BED files +scored against a query. ```{r bb_search, eval=FALSE} -# Currently not working correctly -results <- bb_search(client, "hg13") -results +bb_bed_text_search(client, "hg13", limit = 10) ``` ## Import a BED into a GRanges object -`bb_to_granges` creates a GRanges object from a BED record identifier. It uses -`rtracklayer` to import the BED file. When column names are not known for BEDX+Y -formats, a name is given indicating its position in the BED file. +`bb_to_granges` downloads and imports a BED file into `rtracklayer` to +create a GRanges object when given a BED record identifier. -Note: Still in development, working for broadPeak, narrowPeak, and BEDX+0 +For BEDX+Y formats, a named list with column types may be passed through +`extra_cols` if the column name and type are known. Otherwise, `bb_to_granges` +attempts to guess the types and assigns column names. `bb_to_granges` assigns +the proper name and types for broad peak and narrow peak files. + +`bb_to_granges` also attempts to pass the genome to `rtracklayer` ```{r bb_to_granges} -rec_id1 <- "bbad85f21962bb8d972444f7f9a3a932" -bed1 <- bb_metadata(client, rec_id1, rec_type = "bed") -print(paste(bed1$name, "is in", bed1$bed_type, "format.")) -obj1 <- bb_to_granges(client, rec_id1, file_type="bed", quietly = TRUE) -obj1 - -# The following imports a BED4+1. Since we don't know the last column, we take -# the column name and type from reading the table, which is V5. -bed2 <- bb_metadata(client, example_bed$id, rec_type = "bed") -print(paste(bed2$name, "is in", bed2$bed_type, "format.")) -obj2 <- bb_to_granges(client, example_bed$id, file_type="bed", quietly = TRUE) -obj2 -# This is the same as -# file_path <- "/home/meatbag/.cache/R/bedbaser/5611ae9d790f_04c46b96264ef40bca93f03b10345da5.bed" -# import.bed(file_path, extraCols = c(V5 = numeric)) -```x` +ex_bed <- bb_example(client, "bed") +ex_bed$bed_type +ex_bed$genome_alias +bb_to_granges(client, ex_bed$id, "bed") + +ex_bed <- bb_example(client, "bed") +ex_bed$bed_type +bb_to_granges(client, ex_bed$id, "bed", extra_cols = c("testing" = "character")) + +id <- "bbad85f21962bb8d972444f7f9a3a932" +md <- bb_metadata(client, id, "bed", TRUE) +md$bed_format +md$bed_type +bb_to_granges(client, id, "bed") +``` + +`bb_to_granges` can also import big BED files. + +```{r bb_to_granges_big_bed} +ex_bed <- bb_example(client, "bed") +bb_to_granges(client, ex_bed$id, "bigbed") +``` +# Import a BEDset into a GRangesList + +`bb_to_grangeslist` creates GRangesList object given a BEDset record identifier. + +```{r bb_to_grangeslist} +id <- "lola_hg38_ucsc_features" +bb_to_grangeslist(client, id) +``` ## SessionInfo() ```{r sessionInfo} sessionInfo() -``` -Notes: For metadata in R, maybe create a tibble from some reasonable level of untested data, then demo use of tidy::unnest_wider() / unnest_longer(), GRanges as plyranges? - -Can you specify the column names interactively? +```