Generating fragment density plots in R/Bioconductor with VplotR

Generating fragment density plots in R/Bioconductor with VplotR - Published in JOSS (2021)

https://github.com/js2264/vplotr

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: ncbi.nlm.nih.gov, joss.theoj.org
  • Committers with academic emails
    2 of 5 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

bioconductor-package motif-analysis motif-enrichment-analysis sequence-logo
Last synced: 6 months ago · JSON representation

Repository

R package to easily generate "V-plots" of paired-end sequencing data over regions of interest

Basic Info
Statistics
  • Stars: 11
  • Watchers: 1
  • Forks: 4
  • Open Issues: 2
  • Releases: 2
Created almost 7 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog License Code of conduct

README.md

DOI DOI
Codecov test coverage R-CMD-check

VplotR

Introduction

This R package makes the process of generating fragment density plots (also known as "V-plots") straightforward. V-plots have been introduced for the first time by the Henikoff lab in 2011. Recently, V-plots have proven to be very instructive to understand the molecular organization of the chromatin. For instance, the nucleoATAC package relies on cross-correlation of ATAC-seq fragment density plots to accurately map nucleosome occupancy along the genome.
VplotR aim is to streamline the process of generating V-plots. It contains wrapping functions to import paired-end sequencing bam files and generate V-plots around genomic loci of interest.
VplotR is designed around ggplot2 and makes full use of its potential. As such, it is easy to generate V-plots in batches and combine them with other plots to make publication-ready figures.

VplotR documentation

VplotR documentation is available here or directly within R:

r vignette("VplotR")

V-plots: what they are and how to interpret them

V-plots are two-dimensional plots of paired-end sequencing fragments from chromatin accessibility assays (e.g. ATAC-seq, MNase-seq or DNAse-seq) of from chromatin immunoprecipitation assays (i.e. ChIP-seq).

The x axis represents the distance between sequencing fragments and genomic loci of interest (e.g. nucleosome-depleted regions, or NDR), while the y axis indicates the length of the sequenced fragments. The color scale indicates the density of fragments mapping over aggregated genomic loci of interest.

concept

Thus, V-plots can reveal where protein bound to DNA (e.g. nucleosomes) protect it from digestion.

System requirements

VplotR has been tested on Mac OS (>= 10.13), Ubuntu (>= 18.04) and Windows Server (2012).
VplotR requires R >= 4.0 and is available from Bioconductor (release > 3.12).

Installation

VplotR and all its dependencies can be installed from Bioconductor:

r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("VplotR") library("VplotR")

VplotR developpment version can be installed from Github as follows:

r install.packages("devtools") devtools::install_github("js2264/VplotR")

Citation

If you are using VplotR in your research, please cite:

Generating fragment density plots in R/Bioconductor with VplotR
J. Serizay & J. Ahringer
Journal of Open Source Software, 2021

Distinctive regulatory architectures of germline-active and somatic genes in C. elegans
J. Serizay, Y. Dong, J. Jänes, M. Chesney, C. Cerrato & J. Ahringer
Genome Research, 2020

Main functions

The main user-level functions of VplotR are getFragmentsDistribution(), plotVmat(), plotFootprint() and plotProfile().

  • getFragmentsDistribution() computes the distribution of fragment sizes over sets of genomic ranges;
  • plotVmat() is used to compute fragment density and generate V-plots;
  • plotFootprint() generates the MNase-seq or ATAC-seq footprint at a set of genomic ranges.
  • plotProfile() is used to plot the distribution of paired-end fragments at a single locus of interest.

See the package vignette for an in-depth introduction to the package functionalities and the reference for a full description of each function, a list of the available data provided in the package and examples of use cases.

Getting started with VplotR

Plotting a V-plot

V-plots can be generated using the plotVmat() function:

r data(MNase_sacCer3_Henikoff2011) data(ABF1_sacCer3) p <- plotVmat( x = MNase_sacCer3_Henikoff2011, granges = ABF1_sacCer3 ) p

vplot

Importing sequencing fragments as GRanges

Paired-end .bam files are imported using the importPEBamFiles() function as follows:

r library(VplotR) bamfile <- system.file("extdata", "ex1.bam", package = "Rsamtools") fragments <- importPEBamFiles( bamfile, shift_ATAC_fragments = TRUE ) fragments

```r

GRanges object with 1572 ranges and 0 metadata columns:

seqnames ranges strand

[1] seq1 41-215 +

[2] seq1 54-255 +

[3] seq1 56-258 +

[4] seq1 65-255 +

[5] seq1 65-265 +

... ... ... ...

[1568] seq2 1326-1542 -

[1569] seq2 1336-1544 -

[1570] seq2 1358-1550 -

[1571] seq2 1380-1557 -

[1572] seq2 1353-1562 -

-------

seqinfo: 2 sequences from an unspecified genome; no seqlengths

```

Plotting fragment size distribution

The distribution of fragment sizes can be computed with the getFragmentsDistribution() function:

r library(VplotR) data(MNase_sacCer3_Henikoff2011) data(ABF1_sacCer3) df <- getFragmentsDistribution( MNase_sacCer3_Henikoff2011, ABF1_sacCer3 ) p <- ggplot(df, aes(x = x, y = y)) + geom_line() + theme_ggplot2() + labs(x = "Fragment size", y = "# of fragments") p

fragment_size_distribution

Datasets provided in VplotR

Several dataset samples are provided as GRanges object in this package:

  • A set of tissue-specific ATAC-seq experiments in young adult C. elegans (Serizay et al., 2020):

r library(VplotR) data(ATAC_ce11_Serizay2020) ATAC_ce11_Serizay2020

```r

$Germline

GRanges object with 462371 ranges and 0 metadata columns:

seqnames ranges strand

[1] chrI 426-514 +

[2] chrI 3588-3854 +

[3] chrI 3640-3798 +

[4] chrI 3650-3694 +

[5] chrI 3732-3863 +

... ... ... ...

[462367] chrX 17712277-17712469 -

[462368] chrX 17712279-17712342 -

[462369] chrX 17712282-17712565 -

[462370] chrX 17712285-17712384 -

[462371] chrX 17712287-17712576 -

-------

seqinfo: 7 sequences from an unspecified genome; no seqlengths

$Neurons

GRanges object with 367935 ranges and 0 metadata columns:

seqnames ranges strand

[1] chrI 4011-4241 +

[2] chrI 7397-7614 +

[3] chrI 11279-11502 +

[4] chrI 12744-12819 +

[5] chrI 14381-14433 +

... ... ... ...

[367931] chrX 17687948-17687982 -

[367932] chrX 17699614-17699853 -

[367933] chrX 17706798-17706923 -

[367934] chrX 17708264-17708347 -

[367935] chrX 17709920-17710007 -

-------

seqinfo: 7 sequences from an unspecified genome; no seqlengths

```

  • An MNase-seq experiment in yeast (Henikoff et al., 2011) and associated ABF1 binding sites:

r library(VplotR) data(MNase_sacCer3_Henikoff2011)

```r

GRanges object with 400000 ranges and 0 metadata columns:

seqnames ranges strand

[1] chrI 2-116 +

[2] chrI 14-66 +

[3] chrI 15-134 +

[4] chrI 54-167 +

[5] chrI 66-104 +

... ... ... ...

[399996] chrXVI 920439-920471 -

[399997] chrXVI 920439-920486 -

[399998] chrXVI 920439-920528 -

[399999] chrXVI 920442-920659 -

[400000] chrXVI 920454-920683 -

-------

seqinfo: 17 sequences from an unspecified genome

```

  • A .bam file sample containing 100,000 reads mapped to C. elegans:

r library(VplotR) data(bam_test)

```r

GRanges object with 100000 ranges and 0 metadata columns:

seqnames ranges strand

[1] chrI 425-554 +

[2] chrI 426-555 +

[3] chrI 459-604 +

[4] chrI 459-604 +

[5] chrI 504-634 +

... ... ... ...

[99996] chrI 355817-355907 -

[99997] chrI 355863-356018 +

[99998] chrI 355864-355975 +

[99999] chrI 355880-355917 +

[100000] chrI 355883-355988 +

-------

seqinfo: 7 sequences from an unspecified genome; no seqlengths

```

For a full list of the data available in this package, please go to the reference page.

Contributions

Code contributions, bug reports, fixes and feature requests are most welcome. Please make any pull requests against the master branch at https://github.com/js2264/VplotR and file issues at https://github.com/js2264/VplotR/issues.
Feel free to reach out to J. Serizay for any query.

License

VplotR is licensed under the GPL-3 license.

Code of Conduct

Please note that VplotR is released with a Contributor Code of Conduct.
By contributing to this project, you agree to abide by its terms.

Owner

  • Name: Jacques Serizay
  • Login: js2264
  • Kind: user
  • Location: Paris, FR

JOSS Publication

Generating fragment density plots in R/Bioconductor with VplotR
Published
March 12, 2021
Volume 6, Issue 59, Page 3009
Authors
Jacques Serizay ORCID
The Gurdon Institute and Department of Genetics, University of Cambridge, Cambridge UK
Julie Ahringer
The Gurdon Institute and Department of Genetics, University of Cambridge, Cambridge UK
Editor
Charlotte Soneson ORCID
Tags
genomics dataviz

GitHub Events

Total
  • Watch event: 2
  • Fork event: 1
Last Year
  • Watch event: 2
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 101
  • Total Committers: 5
  • Avg Commits per committer: 20.2
  • Development Distribution Score (DDS): 0.158
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
js2264 j****4@c****k 85
Nitesh Turaga n****a@g****m 8
J Wokaty j****y@s****u 6
Hervé Pagès h****b@g****m 1
Charlotte Soneson c****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 1
  • Average time to close issues: 1 day
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 5
  • Total pull request authors: 1
  • Average comments per issue: 1.27
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • henrykironde (7)
  • wzylin (1)
  • fgeier (1)
  • HUNNNGRY (1)
  • Adnanhashim (1)
Pull Request Authors
  • csoneson (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • bioconductor 8,532 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
bioconductor.org: VplotR

Set of tools to make V-plots and compute footprint profiles

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 8,532 Total
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Stargazers count: 15.1%
Forks count: 15.3%
Average: 22.5%
Downloads: 81.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • GenomicRanges * depends
  • IRanges * depends
  • R >= 4.0 depends
  • ggplot2 * depends
  • GenomeInfoDb * imports
  • GenomicAlignments * imports
  • RColorBrewer * imports
  • Rsamtools * imports
  • S4Vectors * imports
  • cowplot * imports
  • graphics * imports
  • magrittr * imports
  • methods * imports
  • parallel * imports
  • reshape2 * imports
  • stats * imports
  • zoo * imports
  • GenomicFeatures * suggests
  • TxDb.Scerevisiae.UCSC.sacCer3.sgdGene * suggests
  • covr * suggests
  • knitr * suggests
  • pkgdown * suggests
  • rmarkdown * suggests
  • testthat * suggests
.github/workflows/rworkflows.yml actions
  • neurogenomics/rworkflows master composite
.github/workflows/test-coverage.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite