Commit 38e93557 authored by Christian Arnold's avatar Christian Arnold
Browse files

GRaNIEdev: re-uploadec current version

parent 46e702ac
Pipeline #28082 passed with stage
in 15 seconds
doc
Meta
vignettes/*_files
vignettes/*_cache
vignettes/output
Package: GRaNIE
Title: GRaNIE: Reconstruction cell type specific gene regulatory networks including enhancers using chromatin accessibility and RNA-seq data
Version: 0.14.0
Encoding: UTF-8
Authors@R: c(person("Christian", "Arnold", email =
"christian.arnold@embl.de", role = c("cre","aut")),
person("Judith", "Zaugg", email =
"judith.zaugg@embl.de", role = c("aut")),
person("Rim", "Moussa", email =
"rim.moussa01@gmail.com", role = "ctb"),
person("Armando", "Reyes-Palomares", email =
"armandorp@gmail.com", role = "ctb"),
person("Giovanni", "Palla", email =
"giov.pll@gmail.com", role = "ctb"),
person("Maksim", "Kholmatov", email =
"maksim.kholmatov@embl.de", role = "ctb"))
Description: Genetic variants associated with diseases often affect non-coding regions, thus likely having a regulatory role. To understand the effects of genetic variants in these regulatory regions, identifying genes that are modulated by specific regulatory elements (REs) is crucial. The effect of gene regulatory elements, such as enhancers, is often cell-type specific, likely because the combinations of transcription factors (TFs) that are regulating a given enhancer have celltype specific activity. This TF activity can be quantified with existing tools such as diffTF and captures differences in binding of a TF in open chromatin regions. Collectively, this forms a gene regulatory network (GRN) with cell-type and data-specific TF-RE and RE-gene links. Here, we reconstruct such a GRN using bulk RNAseq and open chromatin (e.g., using ATACseq or ChIPseq for open chromatin marks) and optionally TF activity data. Our network contains different types of links, connecting TFs to regulatory elements, the latter of which is connected to genes in the vicinity or within the same chromatin domain (TAD). We use a statistical framework to assign empirical FDRs and weights to all links using a permutation-based approach.
Imports:
futile.logger,
checkmate,
patchwork,
reshape2,
data.table,
matrixStats,
Matrix,
GenomicRanges,
RColorBrewer,
colorspace,
pheatmap,
ComplexHeatmap,
limma,
DESeq2,
csaw,
robust,
progress,
utils,
methods,
stringr,
scales,
BiocManager,
BiocParallel,
igraph,
S4Vectors,
ggplot2,
rlang,
Biostrings,
GenomeInfoDb,
IRanges,
SummarizedExperiment,
forcats,
gridExtra,
limma,
purrr,
tibble,
tidyselect,
readr,
grid
Depends:
R (>= 3.6),
tidyverse,
topGO,
tidyr,
dplyr,
stats,
grDevices,
graphics,
magrittr,
tibble
Suggests:
knitr,
BSgenome.Hsapiens.UCSC.hg19,
BSgenome.Hsapiens.UCSC.hg38,
BSgenome.Mmusculus.UCSC.mm10,
BSgenome.Mmusculus.UCSC.mm9,
TxDb.Hsapiens.UCSC.hg19.knownGene,
TxDb.Hsapiens.UCSC.hg38.knownGene,
TxDb.Mmusculus.UCSC.mm10.knownGene,
TxDb.Mmusculus.UCSC.mm9.knownGene,
IHW,
ChIPseeker,
testthat (>= 3.0.0)
VignetteBuilder: knitr
biocViews:
Software,
GeneExpression,
GeneRegulation,
NetworkInference,
GeneSetEnrichment,
BiomedicalInformatics,
Genetics,
Transcriptomics,
ATACSeq,
RNASeq
License: LGPL (>= 3)
LazyData: true
URL: https://grp-zaugg.embl-community.io/GRaNIE
BugReports: https://git.embl.de/grp-zaugg/GRaNIE/issues
RoxygenNote: 7.1.1
Config/testthat/edition: 3
# Generated by roxygen2: do not edit by hand
export(AR_classification_wrapper)
export(addConnections_TF_peak)
export(addConnections_peak_gene)
export(addData)
export(addData_TFActivity)
export(addTFBS)
export(add_TF_gene_correlation)
export(calculateCommunitiesEnrichment)
export(calculateCommunitiesStats)
export(calculateGeneralEnrichment)
export(calculateTFEnrichment)
export(deleteIntermediateData)
export(filterData)
export(filterGRNAndConnectGenes)
export(generateStatsSummary)
export(getCounts)
export(getGRNConnections)
export(getParameters)
export(getTopNodes)
export(importTFData)
export(initializeGRN)
export(nGenes)
export(nPeaks)
export(overlapPeaksAndTFBS)
export(performAllNetworkAnalyses)
export(plotCommunitiesEnrichment)
export(plotCommunitiesStats)
export(plotDiagnosticPlots_TFPeaks)
export(plotDiagnosticPlots_peakGene)
export(plotGeneralEnrichment)
export(plotGeneralGraphStats)
export(plotPCA_all)
export(plotTFEnrichment)
export(plot_stats_connectionSummary)
import(GenomicRanges)
import(IRanges)
import(checkmate)
import(ggplot2)
import(graphics)
import(grid)
import(patchwork)
import(rlang)
import(tibble)
import(topGO)
import(utils)
importFrom(GenomicRanges,mcols)
importFrom(methods,new)
importFrom(rlang,.data)
importFrom(utils,packageVersion)
importFrom(utils,tail)
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
# GRaNIEdev Changelog and News
## GRaNIEdev 0.9 - 0.14 (2021-12-13)
### Major changes
- major overhaul and continuous work on peak-gene QC plots
- the *filterData* functions has now more filter parameters, such as filtering for CV. Also, all filters uniformly have a *min* and *max* filter.
- integrated network statistics and various enrichment analyses
- handling of edge cases and rare events in various functions
- packages have been renamed to *GRaNIE* as basename (before: *GRN*)
### Bug fixes
- various minor bug fixes
### Minor changes
- changed the object structure slightly and moved some gene and peak annotation data (such as mean, CV) to the appropriate annotation slot
## GRaNIEdev 0.8 (2021-05-07)
### Major changes
- improved PCA plotting, PCA plots are now produced for both raw and normalized data
- new filters for the function *filterGRaNIEAndConnectGenes* (*peak_gene.maxDistance*) as well as more flexibility how to adjust the peak-gene raw p-values for multiple testing (including the possibility to use IHW - experimental)
- new function *plotDiagnosticPlots_TFPeaks* for plotting (this function was previously called only internally, but is now properly exported), in analogy to *plotDiagnosticPlots_peakGene*
### Bug fixes
- various minor bug fixes (PCA plotting, compatibility when providing pre-normalized data)
### Minor changes
- changed the object structure slightly and cleaned the config slot, for example
- some functions have been added / renamed to make the workflow more clear and streamlined, see Vignette for details
- some default parameters changed
## GRaNIEdev 0.7 (2021-03-12)
### Major changes
- improved PCA plotting, also works for pre-normalized counts now when provided as input originally
- more flexibility for data normalization
- homogenized wordings, function calls and workflow clarity, removed unnecessary warnings when plotting peak-gene diagnostic plots, added more R help documentation
- added IHW (Independent Hypothesis Weighting) as a multiple testing procedure for peak-gene p-values in addition to now allowing all methods that are supported by p.adjust
### Bug fixes
- various minor bug fixes
### Minor changes
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
## GRaNIEdev 0.6 (2021-02-09)
### Major changes
- significant speed improvements for the peak-FDR calculations and subsequent plotting
- TF-peak diagnostic plots now also show negatively correlated TF-peak statistics irrespective of whether they have been filtered out in the object / pipeline. This may be useful for diagnostic purposes to check whether excluding them is a sensible choice and to confirm the numbers are low
### Bug fixes
- Numbers for connections per correlation bin in the TF-peak diagnostic plots were wrong as they did not correctly differentiate between the different connection types in case multiple ones had been specified (e.g., expression and TF activity). This has been fixed.
### Minor changes
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
## GRaNIEdev 0.5 (2021-02-02)
first published package version
This diff is collapsed.
#' \strong{GRaNIE} (\strong{G}ene \strong{R}egul\strong{a}tory \strong{N}etwork \strong{I}nference including \strong{E}nhancers): Reconstruction and evaluation of data-driven, cell type specific gene regulatory networks including enhancers using chromatin accessibility and RNAseq data (general package information)
#'
#' Genetic variants associated with diseases often affect non-coding regions, thus likely having a regulatory role. To understand the effects of genetic variants in these regulatory regions, identifying genes that are modulated by specific regulatory elements (REs) is crucial. The effect of gene regulatory elements, such as enhancers, is often cell-type specific, likely because the combinations of transcription factors (TFs) that are regulating a given enhancer have celltype specific activity. This TF activity can be quantified with existing tools such as \code{diffTF} and captures differences in binding of a TF in open chromatin regions. Collectively, this forms a gene regulatory network (\code{eGRN}) with cell-type and data-specific TF-RE and RE-gene links. Here, we reconstruct such a \code{eGRN} using bulk RNAseq and open chromatin (e.g., using ATACseq or ChIPseq for open chromatin marks) and optionally TF activity data. Our network contains different types of links, connecting TFs to regulatory elements, the latter of which is connected to genes in the vicinity or within the same chromatin domain (TAD). We use a statistical framework to assign empirical FDRs and weights to all links using a permutation-based approach.
#'
#' @section Package functions:
#' See the Vignettes for a workflow example and more generally \url{https://grp-zaugg.embl-community.io/GRaNIE/articles/} for all project-related information.
#'
#' @section GRN object:
#' The \code{GRaNIE} package works with \code{GRN} objects. See \code{\linkS4class{GRN}} for details.
#'
#' @section Contact Information:
#' Please check out \url{https://grp-zaugg.embl-community.io/GRaNIE} for how to get in contact with us.
#'
#' @docType package
#' @keywords GRaNIE, GRaNIE-package
#' @name GRaNIE
NULL
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#' @importFrom utils packageVersion
.onAttach <- function(libname, pkgname) {
message = paste0("\n",
"Welcome to the ", utils::packageName(), " package and thank you for using our software. This is ", utils::packageName(), " version ", utils::packageVersion(utils::packageName()),".\n",
"See the vignettes (type browseVignettes(\"", utils::packageName(), "\") or the help pages for how to use it for your analyses.\n",
"All project-related information and ways to contact us can be found here: https://grp-zaugg.embl-community.io/GRaNIE\n"
)
packageStartupMessage(message)
# Turn off scientific notation
options(scipen = 999)
}
### Gene Regulatory Network Inference including Enhancers: Reconstruction and evaluation of data-driven, cell type specific gene regulatory networks including enhancers using chromatin accessibility and RNAseq data
*GRaNIE* (**G**ene **R**egul**a**tory **N**etwork **I**nference including **E**nhancers) is currently under active development. If you have questions, please do not hesitate to contact us (see below).
### Summary
*Towards a data-driven cell-type specific regulatory network including enhancers*
Genetic variants associated with diseases often affect non-coding regions, thus likely having a regulatory role. To
understand the effects of genetic variants in these regulatory regions, identifying genes that are modulated by specific
regulatory elements (REs) is crucial. The effect of gene regulatory elements, such as enhancers, is often cell-type
specific, likely because the combinations of transcription factors (TFs) that are regulating a given enhancer have cell-type-specific activity. This TF activity can be quantified with existing tools such as *diffTF* and captures differences in
binding of a TF in open chromatin regions. Collectively, this forms an enhancer-mediated gene regulatory network (*eGRN*) with cell-type and
data-specific TF-RE and RE-gene links.
Here, we reconstruct such a *eGRN* using bulk RNAseq and open chromatin (e.g., using ATACseq or ChIPseq for open
chromatin marks) and optionally TF activity data. Our network contains different types of links, connecting TFs to
regulatory elements, the latter of which is connected to genes in the vicinity or within the same chromatin domain
(TAD). We use a statistical framework to assign empirical FDRs and weights to all links using a permutation-based
approach.
Since no widely accepted ground-truth dataset for assessing the constructed *eGRN* exists, we propose a novel
evaluation algorithm which is not using a ground-truth network and instead assesses a *eGRN* based on its
performance in predicting differential expression response. For this, we used a random forest regression model and
evaluate how well the *eGRN* links predict differential expression values based on differential TF activity. Overall, our
*eGRNs* consistently perform significantly better than corresponding randomized versions, showing that they capture
reliable links between TFs and their target genes. Our framework also allows us to benchmark and compare different
*eGRN* reconstruction algorithms.
Finally, we run our *eGRN* construction and evaluation pipeline on diverse datasets such as naive CD4-positive T cells
or an AML cohort and identified a set of cell-type specific TFs with crucial roles to predict differential gene expression
based on differential TF activity. The resulting core subnetwork has higher predictive power and enables a deeper
understanding of the underlying regulatory programs
### Get help and contact us
If you have questions or comments, feel free to contact us. We will be happy to answer any questions related to this project as well as questions related to the software implementation. For method-related questions, contact Judith B. Zaugg (judith.zaugg@embl.de). For technical questions, contact Christian Arnold (christian.arnold@embl.de).
If you have questions, doubts, ideas or problems, please use the [Gitlab Issue Tracker](https://git.embl.de/grp-zaugg/GRaNIE/issues). We will respond in a timely manner.
### Contributions
- Originally developed by Armando Reyes-Palomares and subsequently modified by Giovanni Palla
- Christian Arnold then took over and added many improvements and extensions and converted it to a proper R package with the help of various people from the Zaugg Lab, particularly Rim Moussa.
\ No newline at end of file
template:
params:
bootswatch: flatly
ganalytics: G-530L9SXFM1
news:
one_page: false
navbar:
left:
- href: index.html
- text: Getting Started
href: articles/quickStart.html
- text: Vignettes
menu:
- text: Getting Started
desc: Bla
href: articles/quickStart.html
navbar: Test
- text: Introduction
desc: Learn what the GRaNIE package is and what you can use it for
navbar: Intro
href: articles/Introduction.html
- text: Workflow example
desc: Learn how to use the GRaNIE package with a full workflow example
href: articles/workflow.html
navbar: test
- text: Reference
href: reference/index.html
- text: Changelog & News
href: news/index.html
articles:
- title: Getting started
desc: Getting started in 1 minute
navbar: Getting started
contents:
- quickStart
- title: Introduction
desc: Learn what the GRaNIE package is and what you can use it for
navbar: Introductory Vignette
contents:
- Introduction
- title: Workflow example
desc: Learn how to use the GRaNIE package with a full workflow example
navbar: Workflow Vignette
contents:
- workflow
#
# navbar:
# left:
# - href: index.html
# - text: Getting Started
# href: articles/GRaNIE.html
# - text: Vignettes
# menu:
# - text: Getting started
# desc: Bla
# href: articles/GRaNIE.html
# navbar: Test
# - text: Introduction
# desc: Learn what the GRaNIE package is and what you can use it for
# navbar: Intro
# href: articles/Introduction.html
# - text: Workflow example
# desc: Learn how to use the GRaNIE package with a full workflow example
# href: articles/workflow.html
# navbar: test
# - text: Reference
# href: reference/index.html
# - text: Changelog & News
# href: news/index.html
#
# navbar:
# left:
# - href: index.html
# - text: Getting Started
# href: articles/GRaNIE.html
# - text: Vignettes
# menu:
# - text: Plot Assembly
# href: articles/guides/assembly.html
# - text: Controlling Layout
# href: articles/guides/layout.html
# - text: Adding annotation to a patchwork
# href: articles/guides/annotation.html
# - text: Multipage Alignment
# href: articles/guides/multipage.html
# - text: Reference
# href: reference/index.html
# - text: News
#
# See https://github.com/thomasp85/patchwork/blob/master/_pkgdown.yml for a full customized example
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page not found (404) • GRaNIEdev</title>
<!-- jquery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/flatly/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script>
<!-- bootstrap-toc -->
<link rel="stylesheet" href="bootstrap-toc.css">
<script src="bootstrap-toc.js"></script>
<!-- Font Awesome icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script>
<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script>
<!-- pkgdown -->
<link href="pkgdown.css" rel="stylesheet">
<script src="pkgdown.js"></script>
<meta property="og:title" content="Page not found (404)" />
<!-- mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-530L9SXFM1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-530L9SXFM1');
</script>
</head>
<body data-spy="scroll" data-target="#toc">
<div class="container template-title-body">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="index.html">GRaNIEdev</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.14.0</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html"></a>
</li>
<li>
<a href="articles/quickStart.html">Getting Started</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Vignettes
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="articles/quickStart.html">Getting Started</a>
</li>
<li>
<a href="articles/Introduction.html">Introduction</a>
</li>
<li>
<a href="articles/workflow.html">Workflow example</a>
</li>
</ul>
</li>
<li>
<a href="reference/index.html">Reference</a>
</li>
<li>
<a href="news/index.html">Changelog &amp; News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="contents col-md-9">
<div class="page-header">
<h1>Page not found (404)</h1>
</div>
Content not found. Please use links in the navbar.
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top">
<h2 data-toc-skip>Contents</h2>
</nav>
</div>
</div>
<footer>
<div class="copyright">
<p>Developed by Christian Arnold, Rim Moussa.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>
</div>
</footer>
</div>
</body>
</html>
This diff is collapsed.
// Hide empty <a> tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) -->
// v0.0.1
// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020.
document.addEventListener('DOMContentLoaded', function() {
const codeList = document.getElementsByClassName("sourceCode");
for (var i = 0; i < codeList.length; i++) {
var linkList = codeList[i].getElementsByTagName('a');
for (var j = 0; j < linkList.length; j++) {
if (linkList[j].innerHTML === "") {
linkList[j].setAttribute('aria-hidden', 'true');
}
}
}
});
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).