Skip to content

Commit 4d00622

Browse files
committed
fix: included tests for optional packages; reduced run time
1 parent 9995285 commit 4d00622

15 files changed

+271
-248
lines changed

R/geom_base.R

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,41 @@
4747
#' @export
4848
#'
4949
#' @examples
50-
#' library("BSgenome.Hsapiens.UCSC.hg19")
50+
#' if (requireNamespace("BSgenome.Hsapiens.UCSC.hg19", quietly = TRUE)) {
51+
#' library("BSgenome.Hsapiens.UCSC.hg19")
5152
#'
52-
#' # get sample metadata
53-
#' sample.meta <- data.frame(
54-
#' SampleName = c("tumorA.chr4.selected"),
55-
#' Type = c("tumorA"),
56-
#' Group = c("tumorA")
57-
#' )
58-
#'
59-
#' # get bam file
60-
#' bam.file <-
61-
#' system.file("extdata", "DNA-seq", "tumorA.chr4.selected.bam", package = "ggcoverage")
53+
#' # get sample metadata
54+
#' sample.meta <- data.frame(
55+
#' SampleName = c("tumorA.chr4.selected"),
56+
#' Type = c("tumorA"),
57+
#' Group = c("tumorA")
58+
#' )
6259
#'
63-
#' # load bam file
64-
#' track.df <- LoadTrackFile(
65-
#' track.file = bam.file,
66-
#' meta.info = sample.meta,
67-
#' single.nuc = TRUE,
68-
#' single.nuc.region = "chr4:62474235-62474295"
69-
#' )
60+
#' # get bam file
61+
#' bam.file <-
62+
#' system.file("extdata", "DNA-seq", "tumorA.chr4.selected.bam", package = "ggcoverage")
7063
#'
71-
#' # plot
72-
#' ggcoverage(
73-
#' data = track.df,
74-
#' color = "grey",
75-
#' range.position = "out",
76-
#' single.nuc = TRUE,
77-
#' rect.color = "white"
78-
#' ) +
79-
#' geom_base(
80-
#' bam.file = bam.file,
81-
#' bs.fa.seq = BSgenome.Hsapiens.UCSC.hg19
64+
#' # load bam file
65+
#' track.df <- LoadTrackFile(
66+
#' track.file = bam.file,
67+
#' meta.info = sample.meta,
68+
#' single.nuc = TRUE,
69+
#' single.nuc.region = "chr4:62474235-62474295"
8270
#' )
8371
#'
72+
#' # plot
73+
#' ggcoverage(
74+
#' data = track.df,
75+
#' color = "grey",
76+
#' range.position = "out",
77+
#' single.nuc = TRUE,
78+
#' rect.color = "white"
79+
#' ) +
80+
#' geom_base(
81+
#' bam.file = bam.file,
82+
#' bs.fa.seq = BSgenome.Hsapiens.UCSC.hg19
83+
#' )
84+
#' }
8485
geom_base <- function(bam.file, fa.file = NULL, bs.fa.seq = NULL, chr.split = "[[:space:]]",
8586
nuc.offset = -0.1, nuc.size = 4, nuc.padding = 0.05, nuc.padding.r = 0,
8687
nuc.color = c("A" = "#ff2b08", "C" = "#009aff", "G" = "#ffb507", "T" = "#00bc0d"),

R/geom_cnv.R

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,36 @@
2222
#' @export
2323
#'
2424
#' @examples
25-
#' # library(ggcoverage)
26-
#' # library(utils)
27-
#' # library("BSgenome.Hsapiens.UCSC.hg19")
28-
#' # # prepare files
29-
#' # cnv.file <- system.file("extdata", "DNA-seq", "SRR054616_copynumber.txt", package = "ggcoverage")
30-
#' # track.file <- system.file("extdata", "DNA-seq", "SRR054616.bw", package = "ggcoverage")
31-
#' # # read CNV
32-
#' # cnv.df = read.table(file = cnv.file, sep = "\t", header = TRUE)
33-
#' # # load track
34-
#' # track.df = LoadTrackFile(track.file = track.file, format = "bw")
35-
#' # track.df$seqnames = paste0("chr", track.df$seqnames)
36-
#' # # plot
37-
#' # ggcoverage(data = track.df, color = "grey", region = "chr4:1-160000000",
38-
#' # mark.region = NULL, range.position = "out") +
39-
#' # geom_gc(bs.fa.seq=BSgenome.Hsapiens.UCSC.hg19) +
40-
#' # geom_cnv(cnv.df = cnv.df, bin.col = 3, cn.col = 4) +
41-
#' # geom_ideogram(genome = "hg19",plot.space = 0, highlight.centromere = TRUE)
25+
#' if (requireNamespace("BSgenome.Hsapiens.UCSC.hg19", quietly = TRUE)) {
26+
#' library("BSgenome.Hsapiens.UCSC.hg19")
27+
#'
28+
#' # load track data
29+
#' track_file <-
30+
#' system.file("extdata", "DNA-seq", "SRR054616.bw", package = "ggcoverage")
31+
#' track_df <- LoadTrackFile(
32+
#' track.file = track_file,
33+
#' format = "bw",
34+
#' region = "4:1-160000000"
35+
#' )
36+
#' track_df$seqnames <- paste0("chr", track_df$seqnames)
37+
#'
38+
#' # read CNV data
39+
#' cnv_file <-
40+
#' system.file("extdata", "DNA-seq", "SRR054616_copynumber.txt", package = "ggcoverage")
41+
#' cnv_df <- read.table(file = cnv_file, sep = "\t", header = TRUE)
42+
#'
43+
#' # plot coverage, GC content, CNV
44+
#' basic_coverage <- ggcoverage(
45+
#' data = track_df,
46+
#' color = "grey",
47+
#' mark.region = NULL,
48+
#' range.position = "out"
49+
#' )
50+
#'
51+
#' basic_coverage +
52+
#' geom_gc(bs.fa.seq = BSgenome.Hsapiens.UCSC.hg19) +
53+
#' geom_cnv(cnv.df = cnv_df, bin.col = 3, cn.col = 4)
54+
#' }
4255
geom_cnv <- function(cnv.df, bin.col = 3, cn.col = 4, ref.cn = 2,
4356
bin.point.color = "grey", bin.point.alpha = 0.6, cn.line.color = "red",
4457
ref.line.color = "black", plot.space = 0.1, plot.height = 0.2) {

R/geom_gc.R

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,30 @@
2020
#' @export
2121
#'
2222
#' @examples
23-
#' # library(ggcoverage)
24-
#' # library(utils)
25-
#' # library(rtracklayer)
26-
#' # library("BSgenome.Hsapiens.UCSC.hg19")
27-
#' # track folder
28-
#' # track.file <- system.file("extdata", "DNA-seq", "CNV_example.txt", package = "ggcoverage")
29-
#' # track.df <- utils::read.table(track.file, header = TRUE)
30-
#' # gtf.file <- system.file("extdata", "used_hg19.gtf", package = "ggcoverage")
31-
#' # gtf.gr <- rtracklayer::import.gff(con = gtf.file, format = "gtf")
32-
#' # basic.coverage <- ggcoverage(
33-
#' # data = track.df, color = NULL, mark.region = NULL,
34-
#' # region = "chr4:61750000-62,700,000", range.position = "out"
35-
#' # )
36-
#' # basic.coverage + geom_gc(bs.fa.seq = BSgenome.Hsapiens.UCSC.hg19)
23+
#' if (requireNamespace("BSgenome.Hsapiens.UCSC.hg19", quietly = TRUE)) {
24+
#' library("BSgenome.Hsapiens.UCSC.hg19")
25+
#'
26+
#' # load track data
27+
#' track_file <-
28+
#' system.file("extdata", "DNA-seq", "SRR054616.bw", package = "ggcoverage")
29+
#' track_df <- LoadTrackFile(
30+
#' track.file = track_file,
31+
#' format = "bw",
32+
#' region = "4:1-160000000"
33+
#' )
34+
#' track_df$seqnames <- paste0("chr", track_df$seqnames)
35+
#'
36+
#' # plot coverage and GC content
37+
#' basic_coverage <- ggcoverage(
38+
#' data = track_df,
39+
#' color = "grey",
40+
#' mark.region = NULL,
41+
#' range.position = "out"
42+
#' )
43+
#'
44+
#' basic_coverage +
45+
#' geom_gc(bs.fa.seq = BSgenome.Hsapiens.UCSC.hg19)
46+
#' }
3747
geom_gc <- function(fa.file = NULL, bs.fa.seq = NULL, chr.split = "[[:space:]]", guide.line = NULL,
3848
line.color = "black", guide.line.color = "red", guide.line.type = "dashed",
3949
plot.space = 0.1, plot.height = 0.2) {

R/geom_ideogram.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#'
3737
#' @examples
3838
#' \dontrun{
39+
#' # note that you need to have package 'ggbio' installed
3940
#' library(ggbio)
4041
#'
4142
#' # load metadata

R/geom_tad.R

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,53 +23,54 @@
2323
#' @importFrom utils write.table
2424
#'
2525
#' @examples
26-
#' library(ggcoverage)
27-
#' library(HiCBricks)
26+
#' if (requireNamespace("HiCBricks", quietly = TRUE)) {
27+
#' library(HiCBricks)
2828
#'
29-
#' # prepare track dataframe
30-
#' track.file <- system.file("extdata", "HiC", "H3K36me3.bw", package = "ggcoverage")
31-
#' track.df <- LoadTrackFile(
32-
#' track.file = track.file, format = "bw",
33-
#' region = "chr2L:8050000-8300000", extend = 0
34-
#' )
35-
#' track.df$score <- ifelse(track.df$score < 0, 0, track.df$score)
36-
#' # check the data
37-
#' head(track.df)
29+
#' # prepare track dataframe
30+
#' track.file <- system.file("extdata", "HiC", "H3K36me3.bw", package = "ggcoverage")
31+
#' track.df <- LoadTrackFile(
32+
#' track.file = track.file, format = "bw",
33+
#' region = "chr2L:8100000-8200000", extend = 0
34+
#' )
35+
#' track.df$score <- ifelse(track.df$score < 0, 0, track.df$score)
36+
#' # check the data
37+
#' head(track.df)
3838
#'
39-
#' # Load Hi-C data
40-
#' hic.mat.file <- system.file("extdata", "HiC", "HiC_mat.txt", package = "ggcoverage")
41-
#' hic.mat <- read.table(file = hic.mat.file, sep = "\t")
42-
#' hic.mat <- as.matrix(hic.mat)
39+
#' # Load Hi-C data
40+
#' hic.mat.file <- system.file("extdata", "HiC", "HiC_mat.txt", package = "ggcoverage")
41+
#' hic.mat <- read.table(file = hic.mat.file, sep = "\t")
42+
#' hic.mat <- as.matrix(hic.mat)
4343
#'
44-
#' # bin data
45-
#' hic.bin.file <- system.file("extdata", "HiC", "HiC_bin.txt", package = "ggcoverage")
46-
#' hic.bin <- read.table(file = hic.bin.file, sep = "\t")
47-
#' colnames(hic.bin) <- c("chr", "start", "end")
48-
#' hic.bin.gr <- GenomicRanges::makeGRangesFromDataFrame(df = hic.bin)
44+
#' # bin data
45+
#' hic.bin.file <- system.file("extdata", "HiC", "HiC_bin.txt", package = "ggcoverage")
46+
#' hic.bin <- read.table(file = hic.bin.file, sep = "\t")
47+
#' colnames(hic.bin) <- c("chr", "start", "end")
48+
#' hic.bin.gr <- GenomicRanges::makeGRangesFromDataFrame(df = hic.bin)
4949
#'
50-
#' # transfrom function
51-
#' failsafe_log10 <- function(x) {
52-
#' x[is.na(x) | is.nan(x) | is.infinite(x)] <- 0
53-
#' return(log10(x + 1))
54-
#' }
50+
#' # transfrom function
51+
#' failsafe_log10 <- function(x) {
52+
#' x[is.na(x) | is.nan(x) | is.infinite(x)] <- 0
53+
#' return(log10(x + 1))
54+
#' }
5555
#'
56-
#' # load link data: prepare arcs
57-
#' link.file <- system.file("extdata", "HiC", "HiC_link.bedpe", package = "ggcoverage")
56+
#' # load link data: prepare arcs
57+
#' link.file <- system.file("extdata", "HiC", "HiC_link.bedpe", package = "ggcoverage")
5858
#'
59-
#' # basic coverage
60-
#' basic.coverage <- ggcoverage(
61-
#' data = track.df, color = "grey",
62-
#' mark.region = NULL, range.position = "out"
63-
#' )
59+
#' # basic coverage
60+
#' basic.coverage <- ggcoverage(
61+
#' data = track.df, color = "grey",
62+
#' mark.region = NULL, range.position = "out"
63+
#' )
6464
#'
65-
#' # add annotations
66-
#' basic.coverage +
67-
#' geom_tad(
68-
#' matrix = hic.mat, granges = hic.bin.gr, value.cut = 0.99,
69-
#' color.palette = "viridis", transform.fun = failsafe_log10,
70-
#' top = FALSE, show.rect = TRUE
71-
#' ) +
72-
#' geom_link(link.file = link.file, file.type = "bedpe", show.rect = TRUE)
65+
#' # add annotations
66+
#' basic.coverage +
67+
#' geom_tad(
68+
#' matrix = hic.mat, granges = hic.bin.gr, value.cut = 0.99,
69+
#' color.palette = "viridis", transform.fun = failsafe_log10,
70+
#' top = FALSE, show.rect = TRUE
71+
#' ) +
72+
#' geom_link(link.file = link.file, file.type = "bedpe", show.rect = TRUE)
73+
#' }
7374
#'
7475
#' @export
7576
geom_tad <- function(matrix, granges, color.palette = NULL, value.cut = NULL,

R/geom_transcript.R

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@
4646
#' @export
4747
#'
4848
#' @examples
49-
#' library(ggcoverage)
50-
#' library(utils)
51-
#' library(rtracklayer)
52-
#'
5349
#' # load metadata
5450
#' meta_file <- system.file("extdata", "RNA-seq", "meta_info.csv", package = "ggcoverage")
5551
#' sample_meta <- read.csv(meta_file)
@@ -75,20 +71,6 @@
7571
#' basic_coverage +
7672
#' geom_transcript(gtf.gr = gtf_gr, label.vjust = 1.5)
7773
#'
78-
#' # plot with custom style
79-
#' basic_coverage +
80-
#' geom_transcript(
81-
#' gtf.gr = gtf_gr,
82-
#' exon.size = 2.0,
83-
#' arrow.size.im = 1.0,
84-
#' arrow.length.im = 5,
85-
#' arrow.type.im = "open",
86-
#' color.by.im = "strand",
87-
#' fill.color = c(
88-
#' "-" = "darkblue",
89-
#' "+" = "darkgreen"
90-
#' )
91-
#' )
9274
geom_transcript <-
9375
function(gtf.gr,
9476
gene.name = "HNRNPC",

README.Rmd

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,9 @@ basic_coverage
317317

318318
##### Add GC annotations
319319

320-
Add **GC**, **ideogram** and **gene** annotaions.
320+
Add **GC**, **ideogram** and **gene** annotations.
321+
The plotting of the GC content requires the genome annotation package `BSgenome.Hsapiens.UCSC.hg19`.
322+
This package needs to be installed separately (it is only 'Suggested' by `ggcoverage`).
321323

322324
```{r gc_coverage, warning = FALSE, fig.height = 10, fig.width = 12, fig.align = "center"}
323325
# load genome data

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,10 @@ basic_coverage
423423

424424
##### Add GC annotations
425425

426-
Add **GC**, **ideogram** and **gene** annotaions.
426+
Add **GC**, **ideogram** and **gene** annotations. The plotting of the
427+
GC content requires the genome annotation package
428+
`BSgenome.Hsapiens.UCSC.hg19`. This package needs to be installed
429+
separately (it is only ‘Suggested’ by `ggcoverage`).
427430

428431
``` r
429432
# load genome data
@@ -657,7 +660,7 @@ graphics::par(opar)
657660

658661
Default color scheme for amino acid annotation is from [Residual
659662
colours: a proposal for
660-
aminochromography](https://doi.org/10.1093/protein/10.7.743):
663+
aminochromography](https://pubmed.ncbi.nlm.nih.gov/9342138/):
661664

662665
``` r
663666
aa_color <- c(
@@ -898,7 +901,7 @@ a contact map.
898901

899902
The Hi-C data is taken from [pyGenomeTracks: reproducible plots for
900903
multivariate genomic
901-
datasets](https://doi.org/10.1093/bioinformatics/btaa692).
904+
datasets](https://pubmed.ncbi.nlm.nih.gov/32745185/).
902905

903906
The Hi-C matrix visualization is implemented by
904907
[`HiCBricks`](https://github.com/koustav-pal/HiCBricks). This package

0 commit comments

Comments
 (0)