# Pi User Manual (R/Bioconductor package)

Hai Fang, the ULTRA-DD Consortium, Julian C Knight

#### 2018-02-09

#### Abstract

This document provides instructions on how to use an R/Bioconductor package called Priority index (or Pi). Pi is developed as a genomic-led target prioritisation system, with the focus on leveraging human genetic data to prioritise potential drug targets at the gene, pathway and network level. The long-term goal is to use such information to enhance early-stage target validation. Based on evidence of disease association from genome-wide association studies (GWAS), this prioritisation system is able to generate evidence to support identification of the specific modulated genes (seed genes) that are responsible for the genetic association signal by utilising knowledge of linkage disequilibrium (co-inherited genetic variants), distance of associated variants from the gene, evidence of independent genetic association with gene expression in disease relevant cell/tissue types and states, and evidence of physical interaction involving variants and genes in primary blood cell types. Seed genes are scored in an integrative way, quantifying the genetic influence. Scored seed genes are subsequently used as baits to rank seed genes plus additional (non-seed) genes; this is achieved by iteratively exploring the global connectivity of a gene interaction network. Genes with the highest priority are further used to identify/prioritise pathways that are significantly enriched with highly prioritised genes. Prioritised genes are also used to identify a gene network interconnecting highly prioritised genes and a minimal number of less prioritised genes (which act as linkers bringing together highly prioritised genes).

#### Package

Pi 1.6.2

# 1 Installation

## 1.1 R

The latest version on different platforms can be installed following instructions at http://bioconductor.org/install/#install-R.

## 1.2 Packages

Install `Pi` (the latest stable release version from Bioconductor):

    source("http://bioconductor.org/biocLite.R")
    # to use the latest version of Bioconductor, upgrade it: biocLite("BiocUpgrade")
    biocLite("Pi")

Also install the latest development version from github (highly recommended):

    # first, install the dependant packages (the stable version)
    source("http://bioconductor.org/biocLite.R")
    biocLite(c("XGR","devtools"), siteRepos=c("http://cran.r-project.org"))

    # then, install the `Pi` package and its dependency (the latest version)
    library(devtools)
    install_github(c("hfang-bristol/XGR", "hfang-bristol/Pi"))

# 2 Workflow

# 3 R functions

Priority functions are designed in a nested way. The core relation follows this route: `xPierSNPs` -> `xPierGenes` -> `xPier` -> `xRWR`, achieving gene-level prioritisation from an input list of SNPs (along with their significant level). The output of this route is taken as the input of either `xPierManhattan` for visualising gene priority scores, `xPierPathways` for prioritising pathways, or `xPierSubnet` for identifying a network of top prioritised genes.

## 3.1 xRWR

`xRWR`: implements Random Walk with Restart (RWR) estimating the affinity score of nodes in a graph to a list of seed nodes. The affinity score can be viewed as the `influential impact` over the graph that is collectively imposed by seed nodes. If the seeds are not given, it will pre-compute affinity matrix for nodes in the input graph with respect to each starting node (as a seed) by looping over every node in the graph. A higher-level function `xPier` directly relies on it.

## 3.2 xPier

`xPier`: uses RWR to calculate the affinity score of nodes in a graph to a list of seed nodes. A node that has a higher affinity score to seed nodes will receive a higher priority score. It is an internal function acting as a general template for RWR-based prioritisation. A higher-level function `xPierGenes` directly relies on it.

## 3.3 xPierGenes

`xPierGenes`: prioritises gene targets from an input gene interaction network and the score info imposed on its seed nodes/genes. This function can be considered to be a specific instance of `xPier`, that is, specifying a gene interaction network as a graph and seed nodes as seed genes.

There are two sources of gene interaction network information: the STRING database (Szklarczyk et al. 2015) and the Pathway Commons database (Cerami et al. 2011). STRING is a meta-integration of undirect interactions from a functional aspect, while Pathway Commons mainly contains both undirect and direct interactions from a physical/pathway aspect. In addition to interaction type, users can choose the interactions of varying quality:

Table 1:
Code | Interaction (type and quality) | Database
--- | --- | ---
STRING_high | Functional interactions (with high confidence scores>=700) | STRING
STRING_medium | Functional interactions (with medium confidence scores>=400) | STRING
PCommonsUN_high | Physical/undirect interactions (with references & >=2 sources) | Pathway Commons
PCommonsUN_medium | Physical/undirect interactions (with references & >=1 sources) | Pathway Commons
PCommonsDN_high | Pathway/direct interactions (with references & >=2 sources) | Pathway Commons
PCommonsDN_medium | Pathway/direct interactions (with references & >=1 sources) | Pathway Commons

## 3.4 xPierSNPs

`xPierSNPs`: prioritises gene targets from an input gene interaction network and a given list of SNPs together with the significance level (eg GWAS reported p-values). To do so, it first defines seed genes and their scores that are calculated in an integrative manner to quantify the genetic influence under SNPs. Genetic influential score on a seed gene is calculated from the SNP score (reflecting the SNP significant level), the gene-to-SNP distance weight, the eQTL mapping weight and the promoter capture HiC weight. This function can be considered to be a specific instance of `xPierGenes`, that is, specifying seed genes plus their scores.

Knowledge of co-inherited variants is also used to include additional SNPs that are in Linkage Disequilibrium (LD) with GWAS lead SNPs. LD SNPs are calculated based on 1000 Genomes Project data (1000 Genomes Project Consortium 2012). LD SNPs are defined to be any SNPs having R2 > 0.8 with GWAS lead SNPs. The user can choose the population used to calculate LD SNPs:

Table 2:
Code | Population | Project
--- | --- | ---
AFR | African | 1000 Genomes Project
AMR | Admixed American | 1000 Genomes Project
EAS | East Asian | 1000 Genomes Project
EUR | European | 1000 Genomes Project
SAS | South Asian | 1000 Genomes Project

## 3.5 xPierAnno

`xPierAnno`: prioritises seed genes only from a list of pNode objects using annotation data. To do so, it first extracts seed genes from a list of pNode objects and then scores seed genes using annotation data (or something similar), followed by `xPierGenes`.

## 3.6 xPierMatrix and xPierEvidence

`xPierMatrix`: extracts priority matrix from a list of `pNode` objects, in which rows are genes and columns for the predictors (corresponding to the `pNode` objects). Also highlighted is to generate priority results in the discovery mode, that is, (similar to meta-analysis) aggregation of priority matrix.

`xPierEvidence`: extracts evidence from a list of `pNode` objects, in terms of seed genes under genetic influence.

`xVisEvidence`: visualises evidence for prioritised genes in a gene network.

## 3.7 xPierManhattan and xPierTrack

`xPierManhattan`: visualises prioritised genes using manhattan plot, in which priority for genes is displayed on the Y-axis along with genomic locations on the X-axis. Also highlighted are genes with the top priority.

`xPierTrack`: visualises a prioritised gene using track plot, in which priority for the gene in query is displayed on the data track and nearby genes on the annotation track. Genomic locations on the X-axis are indicated on the X-axis, and the gene in query is highlighted.

`xPierTrackAdv`: visualises a list of prioritised genes using advanced track plot.

## 3.8 xPierPathways and xPierGSEA

`xPierPathways`: prioritises pathways based on enrichment analysis of genes with the top priority (eg top 100 genes) using a compendium of pathways. It returns an object of class `eTerm`. A highly prioritised pathway has its member genes with high gene-level priority scores, that is, having evidence of direct modulation by disease-associated lead (or LD) SNPs, and/or having evidence of indirect modulation at the network level.

`xPierGSEA`: prioritises pathways based on gene set enrichment analysis (GSEA) of prioritised genes using a compendium of pathways. It returns an object of class `eGSEA`. A highly prioritised pathway has its member genes with a tendency of having high gene-level priority scores.

In addition to pathways, analysis can be extended to other ontologies, as listed below:

Table 3:
Code | Ontology | Category
--- | --- | ---
DO | Disease Ontology | Disease
GOMF | Gene Ontology Molecular Function | Function
GOBP | Gene Ontology Biological Process | Function
GOCC | Gene Ontology Cellular Component | Function
HPPA | Human Phenotype Phenotypic Abnormality | Phenotype
HPMI | Human Phenotype Mode of Inheritance | Phenotype
HPCM | Human Phenotype Clinical Modifier | Phenotype
HPMA | Human Phenotype Mortality Aging | Phenotype
MP | Mammalian/Mouse Phenotype | Phenotype
DGIdb | DGI druggable gene categories | Druggable
SF | SCOP domain superfamilies | Structural domain
Pfam | Pfam domain families | Structural domain
PS2 | phylostratific age information (our ancestors) | Evolution
MsigdbH | Hallmark gene sets | Hallmark (MsigDB)
MsigdbC1 | Chromosome and cytogenetic band positional gene sets | Cytogenetics (MsigDB)
MsigdbC2CGP | Chemical and genetic perturbation gene sets | Perturbation (MsigDB)
MsigdbC2CPall | All pathway gene sets | Pathways (MsigDB)
MsigdbC2CP | Canonical pathway gene sets | Pathways (MsigDB)
MsigdbC2KEGG | KEGG pathway gene sets | Pathways (MsigDB)
MsigdbC2REACTOME | Reactome pathway gene sets | Pathways (MsigDB)
MsigdbC2BIOCARTA | BioCarta pathway gene sets | Pathways (MsigDB)
MsigdbC3TFT | Transcription factor target gene sets | TF targets (MsigDB)
MsigdbC3MIR | microRNA target gene sets | microRNA targets (MsigDB)
MsigdbC4CGN | Cancer gene neighborhood gene sets | Cancer (MsigDB)
MsigdbC4CM | Cancer module gene sets | Cancer (MsigDB)
MsigdbC5BP | GO biological process gene sets | Function (MsigDB)
MsigdbC5MF | GO molecular function gene sets | Function (MsigDB)
MsigdbC5CC | GO cellular component gene sets | Function (MsigDB)
MsigdbC6 | Oncogenic signature gene sets | Oncology (MsigDB)
MsigdbC7 | Immunologic signature gene sets | Immunology (MsigDB)

## 3.9 xPierSubnet

`xPierSubnet`: identifies a gene network that contains as many highly prioritised genes as possible but a few lowly prioritised genes as linkers. An iterative procedure of choosing different priority cutoff is also used to identify the network with a desired number of nodes/genes.

## 3.10 Evaluation functions

- `xPredictROCR`: assesses the prediction/prioritisation performance via Receiver Operating Characteristic (ROC) and Precision-Recall (PR) analysis.

- `xPredictCompare`: compares the prediction/prioritisation performance.

- `xGSsimulator`: simulates the gold standard negatives (GSN) from gold standard positives (GSP) considering the gene interaction evidence.

- `xPierROCR`: assesses the dTarget performance via ROC and PR analysis.

- `xMLfeatureplot`: visualises/assesses features used for machine learning.

## 3.11 Integral functions

- `xMLrandomforest`: integrates predictor matrix via machine learning algorithm random forest and returns an object of class `pTarget`.

- `xMLcaret`: integrates predictor matrix in a supervised manner via machine learning algorithms using caret and returns an object of class `pTarget`.

- `xMLparameters`: visualises cross-validation performance against tuning parameters.

- `xMLdotplot`: visualise machine learning results (a `pTarget` object) using dot plot and returns an object of class `ggplot`.

- `xMLdensity`: visualise machine learning results (a `pTarget` or `dTarget` object) using density plot and returns an object of class `ggplot`.

- `xMLzoom`: visualise machine learning results (a `pTarget` or `dTarget` object) using zoom plot and returns an object of class `ggplot`.

## 3.12 Elementary functions

- `xPierSNPsAdv`: prepares genetic predictors given a list of seed SNPs together with the significance level (e.g. GWAS reported p-values).

- `xPierCross`: extracts priority matrix from a list of `dTarget`/`sTarget` objects.

- `xSNPeqtl`: extracts eQTL-gene pairs given a list of SNPs.

- `xSNP2eGenes`: defines eQTL genes given a list of SNPs.

- `xSNPhic`: extracts promoter capture HiC-gene pairs given a list of SNPs.

- `xSNP2cGenes`: defines HiC genes given a list of SNPs.

- `xPCHiCplot`: visualises promoter capture HiC data using different network layouts.

- `xContour`: visualises a numeric matrix as a contour plot.

- `xGSEAdotplot`: visualises GSEA results using dot plot.

- `xGSEAbarplot`: visualises GSEA results using bar plot.

- `xGSEAconciser`: makes GSEA results conciser by removing redundant terms.

# 4 Showcases

In this section, we use GWAS SNPs about an inflammatory disease `Spondyloarthritis` (including `Ankylosing Spondylitis` and `Psoriatic Arthritis`) as a case study, and give a step-by-step demo showing how to use `Pi` to achieve disease-specific genetic prioritisation of targets at the gene, pathway and network level.

First of all, load the packages including `Pi`:

    library(Pi)

    # optionally, specify the local location of built-in RData
    # by default:
    RData.location <- "http://galahad.well.ox.ac.uk/bigdata_dev"

## 4.1 Input data

Spondyloarthritis-associated GWAS lead SNPs are collected mainly from GWAS Catalog (Welter et al. 2014), complemented by ImmunoBase and latest publications.

    data.file <- "http://galahad.well.ox.ac.uk/bigdata_dev/Spondyloarthritis.txt"
    data <- read.delim(data.file, header=TRUE, stringsAsFactors=FALSE)

The first 15 rows of `data` are shown below, with the column `SNP` for GWAS SNPs and the column `Pval` for GWAS-detected P-values.

Table 4:
SNP | Pval
--- | ---
rs6600247 | 2.6e-15
rs11209026 | 2.0e-27
rs11209026 | 9.1e-14
rs12141575 | 9.4e-11
rs4129267 | 3.4e-13
rs1801274 | 1.4e-09
rs41299637 | 1.9e-15
rs1250550 | 1.5e-09
rs1250550 | 1.5e-09
rs1250550 | 1.5e-09
rs11190133 | 4.9e-14
rs1860545 | 2.8e-10
rs11065898 | 4.7e-08
rs11624293 | 1.5e-10
imm_16_28525386 | 2.6e-09

## 4.2 Gene-level prioritisation

It includes the following steps:

- `define seed genes`, that is, seed genes are defined based on distance-to-SNP window, genetic association with gene expression, and physical interaction involving variants and genes: `nearby genes` that are located within defined distance window (by default, 50kb) of lead or Linkage Disequilibrium (LD) SNPs that are calculated based on European population data from 1000 Genome Project; `expression associated genes (eQTL genes)` for which gene expression is, either in a cis- or trans-acting manner, significantly associated with lead or LD SNPs, based on eQTL mapping; `promoter capture HiC genes (HiC genes)` for which gene promoters physically interact with variants, based on genome-wide capture HiC-generated promoter interactomes.

- `score seed genes`, that is, quantifying the genetic influence under lead or LD SNPs.

- `prioritise target genes`, that is, estimating their global network connectivity to seed genes. With scored seed genes superposed onto a gene interaction network, RWR algorithm is implemented to prioritise candidate target genes based on their network connectivity/affinity to seed genes. As such, a gene that has a higher affinity score to seed genes will receive a higher priority score.

> Specify parameters

    include.LD <- 'EUR'
    LD.r2 <- 0.8
    LD.customised <- NULL
    significance.threshold <- 5e-8
    distance.max <- 50000
    decay.kernel <- "rapid"
    decay.exponent <- 2
    include.eQTL <- c("JKscience_TS2A","JKscience_TS2B","JKscience_TS3A","JKng_bcell","JKng_mono","JKnc_neutro", "GTEx_V4_Whole_Blood")
    eQTL.customised <- NULL
    include.HiC <- c("Monocytes","Neutrophils","Total_B_cells")
    GR.SNP <- "dbSNP_GWAS"
    GR.Gene <- "UCSC_knownGene"
    cdf.function <- "empirical"
    relative.importance <- c(1/3, 1/3, 1/3)
    scoring.scheme <- 'max'
    network <- "STRING_high"
    network.customised <- NULL
    weighted <- FALSE
    normalise <- "laplacian"
    normalise.affinity.matrix <- "none"
    restart <- 0.75
    parallel <- TRUE
    multicores <- NULL
    verbose <- TRUE

> Do prioritisation

    pNode <- xPierSNPs(data, include.LD=include.LD, LD.r2=LD.r2, significance.threshold=significance.threshold, distance.max=distance.max, decay.kernel=decay.kernel, decay.exponent=decay.exponent, include.eQTL=include.eQTL, include.HiC=include.HiC, GR.SNP=GR.SNP, GR.Gene=GR.Gene, cdf.function=cdf.function, scoring.scheme=scoring.scheme, network=network, restart=restart, RData.location=RData.location)

The results are stored in the data frame `pNode$priority`, which can be saved into a file `Genes_priority.txt`:

    write.table(pNode$priority, file="Genes_priority.txt", sep="\t", row.names=FALSE)

> Visualise in manhattan plot

Top genes can be highlighted in manhattan plot, in which priority scores for genes are displayed on the Y-axis along with genomic locations on the X-axis.

    mp <- xPierManhattan(pNode, top=40, y.scale="sqrt", RData.location=RData.location)
    print(mp)

## 4.3 Pathway-level prioritisation

Pathway-level prioritisation is based on top 100 genes using a compendium of pathways from diverse sources (Canonical, KEGG, BioCarta and Reactome). Since diverse sources are used, it is necessary to remove redundant pathways (of the same granularity to the similar pathways with higher priority scores), done by XGR (Fang et al. 2016).

    eTerm <- xPierPathways(pNode, priority.top=100, ontology="MsigdbC2CPall", RData.location=RData.location)
    eTerm_nonred <- xEnrichConciser(eTerm)

    # view the top pathways/terms
    xEnrichViewer(eTerm_nonred)

    # save results to a file `Pathways_priority.nonredundant.txt`
    Pathways_nonred <- xEnrichViewer(eTerm_nonred, top_num=length(eTerm_nonred$adjp), sortBy="fdr", details=TRUE)
    output <- data.frame(term=rownames(Pathways_nonred), Pathways_nonred)
    write.table(output, file="Pathways_priority.nonredundant.txt", sep="\t", row.names=FALSE)

Barplot of prioritised pathways (non-redundant and informative):

    bp <- xEnrichBarplot(eTerm_nonred, top_num="auto", displayBy="fdr", FDR.cutoff=1e-3, wrap.width=50, signature=FALSE)
    bp

## 4.4 Network-level prioritisation

Network-level prioritisation is to identify a gene network that contains as many highly prioritised genes as possible but a few lowly prioritised genes as linkers. Given a gene network (the same as used in gene-level prioritisation) with nodes labelled with gene priority scores, the search for a maximum-scoring gene subnetwork is briefed as follows:

- `score transformation`, that is, given a threshold of tolerable priority scores, nodes above this threshold (nodes of interest) are scored positively, and negative scores for nodes below the threshold (intolerable).

- `subnetwork identification`, that is, to find an interconnected gene subnetwork enriched with positive-score nodes but allowing for a few negative-score nodes as linkers, done via heuristically solving prize-collecting Steiner tree problem (Fang and Gough 2014).

- `controlling the subnetwork size`, that is, an iterative procedure of scanning different priority thresholds is used to identify the network with a desired number of nodes/genes.

Notably, the preferential use of the same network as used in gene-level prioritisation is due to the fact that gene-level affinity/priority scores are smoothly distributed over the network after being walked. In other words, the chance of identifying such a gene network enriched with top prioritised genes is much higher. To reduce the runtime, by default only top 10% prioritised genes will be used to search for the maximum-scoring gene network.

    # find maximum-scoring gene network with the desired node number=50
    g <- xPierSubnet(pNode, priority.quantite=0.1, subnet.size=50, RData.location=RData.location)

The identified gene network has nodes/genes colored according to their priority scores (see below). Notably, if nodes appear abnormally, please remove `vertex.shape="sphere"` when running the function `xVisNet`.

    pattern <- as.numeric(V(g)$priority)
    zmax <- ceiling(quantile(pattern,0.75)*1000)/1000
    xVisNet(g, pattern=pattern, vertex.shape="sphere", colormap="yr", newpage=FALSE, edge.arrow.size=0.3, vertex.label.color="blue", vertex.label.dist=0.35, vertex.label.font=2, zlim=c(0,zmax), signature=FALSE)

# 5 Session Info

Here is the output of `sessionInfo()` on the system on which this user manual was compiled:

    > R version 3.4.3 (2017-11-30)
    > Platform: x86_64-w64-mingw32/x64 (64-bit)
    > Running under: Windows Server 2012 R2 x64 (build 9600)
    >
    > Matrix products: default
    >
    > locale:
    > [1] LC_COLLATE=C
    > [2] LC_CTYPE=English_United States.1252
    > [3] LC_MONETARY=English_United States.1252
    > [4] LC_NUMERIC=C
    > [5] LC_TIME=English_United States.1252
    >
    > attached base packages:
    > [1] grid      stats     graphics  grDevices utils     datasets  methods
    > [8] base
    >
    > other attached packages:
    > [1] Pi_1.6.2        XGR_1.1.1       ggplot2_2.2.1   dnet_1.1.2
    > [5] supraHex_1.16.0 hexbin_1.27.2   igraph_1.1.2    png_0.1-7
    > [9] BiocStyle_2.6.1
    >
    > loaded via a namespace (and not attached):
    >   [1] tidyselect_0.2.3              RSQLite_2.0
    >   [3] AnnotationDbi_1.40.0          htmlwidgets_1.0
    >   [5] BiocParallel_1.12.0           munsell_0.4.3
    >   [7] codetools_0.2-15              misc3d_0.8-4
    >   [9] withr_2.1.1                   colorspace_1.3-2
    >  [11] BiocInstaller_1.28.0          Biobase_2.38.0
    >  [13] OrganismDbi_1.20.0            highr_0.6
    >  [15] knitr_1.19                    rstudioapi_0.7
    >  [17] stats4_3.4.3                  ROCR_1.0-7
    >  [19] robustbase_0.92-8             dimRed_0.1.0
    >  [21] GenomeInfoDbData_1.0.0        mnormt_1.5-5
    >  [23] bit64_0.9-7                   rprojroot_1.3-2
    >  [25] ipred_0.9-6                   xfun_0.1
    >  [27] biovizBase_1.26.0             randomForest_4.6-12
    >  [29] R6_2.2.2                      GenomeInfoDb_1.14.0
    >  [31] AnnotationFilter_1.2.0        DRR_0.0.3
    >  [33] bitops_1.0-6                  reshape_0.8.7
    >  [35] DelayedArray_0.4.1            assertthat_0.2.0
    >  [37] scales_0.5.0                  nnet_7.3-12
    >  [39] gtable_0.2.0                  ddalpha_1.3.1.1
    >  [41] ggbio_1.26.0                  ensembldb_2.2.1
    >  [43] timeDate_3042.101             rlang_0.1.6
    >  [45] CVST_0.2-1                    RcppRoll_0.2.2
    >  [47] splines_3.4.3                 rtracklayer_1.38.3
    >  [49] lazyeval_0.2.1                ModelMetrics_1.1.0
    >  [51] acepack_1.4.1                 dichromat_2.0-0
    >  [53] broom_0.4.3                   checkmate_1.8.5
    >  [55] yaml_2.1.16                   reshape2_1.4.3
    >  [57] GenomicFeatures_1.30.3        ggnetwork_0.5.1
    >  [59] backports_1.1.2               httpuv_1.3.5
    >  [61] Hmisc_4.1-1                   RMySQL_0.10.13
    >  [63] RBGL_1.54.0                   caret_6.0-78
    >  [65] tools_3.4.3                   lava_1.6
    >  [67] bookdown_0.6                  psych_1.7.8
    >  [69] statnet.common_4.0.0          GenomicScores_1.2.2
    >  [71] gplots_3.0.1                  RColorBrewer_1.1-2
    >  [73] BiocGenerics_0.24.0           Rcpp_0.12.15
    >  [75] plyr_1.8.4                    base64enc_0.1-3
    >  [77] progress_1.1.2                zlibbioc_1.24.0
    >  [79] purrr_0.2.4                   RCurl_1.95-4.10
    >  [81] prettyunits_1.0.2             rpart_4.1-12
    >  [83] S4Vectors_0.16.0              sfsmisc_1.1-1
    >  [85] SummarizedExperiment_1.8.1    ggrepel_0.7.0
    >  [87] cluster_2.0.6                 magrittr_1.5
    >  [89] data.table_1.10.4-3           sna_2.4
    >  [91] ProtGenerics_1.10.0           matrixStats_0.53.0
    >  [93] mime_0.5                      evaluate_0.10.1
    >  [95] xtable_1.8-2                  XML_3.98-1.9
    >  [97] IRanges_2.12.0                gridExtra_2.3
    >  [99] compiler_3.4.3                biomaRt_2.34.2
    > [101] tibble_1.4.2                  KernSmooth_2.23-15
    > [103] htmltools_0.3.6               Formula_1.2-2
    > [105] tidyr_0.8.0                   lubridate_1.7.2
    > [107] DBI_0.7                       MASS_7.3-48
    > [109] Matrix_1.2-12                 gdata_2.18.0
    > [111] parallel_3.4.3                Gviz_1.22.2
    > [113] bindr_0.1                     gower_0.1.2
    > [115] GenomicRanges_1.30.1          pkgconfig_2.0.1
    > [117] GenomicAlignments_1.14.1      RCircos_1.2.0
    > [119] foreign_0.8-69                recipes_0.1.2
    > [121] foreach_1.4.4                 XVector_0.18.0
    > [123] prodlim_1.6.1                 stringr_1.2.0
    > [125] VariantAnnotation_1.24.5      digest_0.6.15
    > [127] graph_1.56.0                  Biostrings_2.46.0
    > [129] rmarkdown_1.8                 htmlTable_1.11.2
    > [131] curl_3.1                      kernlab_0.9-25
    > [133] shiny_1.0.5                   Rsamtools_1.30.0
    > [135] gtools_3.5.0                  nlme_3.1-131
    > [137] bindrcpp_0.2                  network_1.13.0
    > [139] BSgenome_1.46.0               pillar_1.1.0
    > [141] lattice_0.20-35               GGally_1.3.2
    > [143] httr_1.3.1                    DEoptimR_1.0-8
    > [145] survival_2.41-3               interactiveDisplayBase_1.16.0
    > [147] glue_1.2.0                    iterators_1.0.9
    > [149] glmnet_2.0-13                 plot3D_1.1.1
    > [151] bit_1.1-12                    Rgraphviz_2.22.0
    > [153] class_7.3-14                  stringi_1.1.6
    > [155] blob_1.1.0                    AnnotationHub_2.10.1
    > [157] latticeExtra_0.6-28           caTools_1.17.1
    > [159] memoise_1.1.0                 dplyr_0.7.4
    > [161] ape_5.0

# 6 References

Below is the list of references that Pi stands on:

1000 Genomes Project Consortium. 2012. “An integrated map of genetic variation from 1,092 human genomes.” Nature 491 (7422):56–65. https://doi.org/10.1038/nature11632.

Cerami, E. G., B. E. Gross, E. Demir, I. Rodchenkov, O. Babur, N. Anwar, N. Schultz, G. D. Bader, and C. Sander. 2011. “Pathway Commons, a web resource for biological pathway data.” Nucleic Acids Research 39 (Database):D685–D690. https://doi.org/10.1093/nar/gkq1039.

Fang, Hai, and Julian Gough. 2014. “The ’dnet’ approach promotes emerging research on cancer patient survival.” Genome Medicine 6 (8):64. https://doi.org/10.1186/s13073-014-0064-8.

Fang, Hai, Bogdan Knezevic, Katie L. Burnham, and Julian C. Knight. 2016. “XGR software for enhanced interpretation of genomic summary data, illustrated by application to immunological traits.” Genome Medicine 8 (1). Genome Medicine:129. https://doi.org/10.1186/s13073-016-0384-y.

Szklarczyk, Damian, Andrea Franceschini, Stefan Wyder, Kristoffer Forslund, Davide Heller, Jaime Huerta-cepas, Milan Simonovic, et al. 2015. “STRING v10 : protein – protein interaction networks , integrated over the tree of life.” Nucleic Acids Res 43 (Database):D447–D452. https://doi.org/10.1093/nar/gku1003.

Welter, Danielle, Jacqueline MacArthur, Joannella Morales, Tony Burdett, Peggy Hall, Heather Junkins, Alan Klemm, et al. 2014. “The NHGRI GWAS Catalog, a curated resource of SNP-trait associations.” Nucleic Acids Research 42 (D1):1001–6. https://doi.org/10.1093/nar/gkt1229.