Gitlab is now using https://gitlab.lcsb.uni.lu as it's primary address. Please update your bookmarks. FAQ.

Commit e5bbd9f8 authored by Rauschenberger's avatar Rauschenberger
Browse files

automation

parent c4055146
......@@ -3,7 +3,7 @@ Version: 0.0.0
Title: Alternative Splicing
Description: Implements test for alternative splicing.
Depends: R (>= 3.0.0)
Imports: lme4, globaltest, edgeR, snpStats, refGenome, R.utils, methods
Imports: lme4, globaltest, edgeR, snpStats, refGenome, R.utils, methods, SummarizedExperiment, vcfR
Suggests: knitr, testthat
Authors@R: c(person("Armin","Rauschenberger",email="a.rauschenberger@vumc.nl",role=c("aut","cre")),
person("Renee","Menezes",role=c("aut")))
......
......@@ -3,6 +3,10 @@
export(adjust.covariates)
export(adjust.samples)
export(drop.trivial)
export(get.exons.bbmri)
export(get.exons.geuvadis)
export(get.snps.bbmri)
export(get.snps.geuvadis)
export(map.exons)
export(map.genes)
export(map.snps)
......
#' @export
#' @title
#' Get SNP data (Geuvadis)
#'
#' @description
#' This function transforms SNP data (local machine).
#'
#' @param chr
#' chromosome: integer \eqn{1-22}
#'
#' @param path
#' local directory for VCF (variant call format) and SDRF (sample and data relationship format) files
#'
#' @examples
#' path <- "C:/Users/a.rauschenbe/Desktop/spliceQTL/data"
#'
get.snps.geuvadis <- function(chr,path=getwd()){
# download SNP data
file <- paste0("GEUVADIS.chr",chr,".PH1PH2_465.IMPFRQFILT_BIALLELIC_PH.annotv2.genotypes.vcf.gz")
url <- paste0("http://www.ebi.ac.uk/arrayexpress/files/E-GEUV-1/genotypes/",file)
destfile <- file.path(path,file)
if(!file.exists(destfile)){
utils::download.file(url=url,destfile=destfile,method="auto")
}
# transform with PLINK
setwd(path)
system(paste0("plink --vcf GEUVADIS.chr",chr,".PH1PH2_465.IMPFRQFILT_BIALLELIC_PH.annotv2.genotypes.vcf.gz",
" --maf 0.05 --geno 0 --make-bed --out snps",chr),invisible=FALSE)
# read into R
bed <- file.path(path,paste("snps",chr,".bed",sep=""))
bim <- file.path(path,paste("snps",chr,".bim",sep=""))
fam <- file.path(path,paste("snps",chr,".fam",sep=""))
X <- snpStats::read.plink(bed=bed,bim=bim,fam=fam)
X$fam <- NULL; all(diff(X$map$position) > 0)
# fitler MAF
maf <- snpStats::col.summary(X$genotypes)$MAF
cond <- maf >= 0.05
X$genotypes <- X$genotypes[,cond]
X$map <- X$map[cond,]
# format
colnames(X$genotypes) <- paste0(X$map$chromosome,":",X$map$position)
snps <- methods::as(object=X$genotypes,Class="numeric")
class(snps) <- "integer"
# change identifiers
file <- "E-GEUV-1.sdrf.txt"
url <- paste("http://www.ebi.ac.uk/arrayexpress/files/E-GEUV-1/",file,sep="")
destfile <- file.path(path$data,file)
if(!file.exists(destfile)){
utils::download.file(url=url,destfile=destfile,method="auto")
}
samples <- utils::read.delim(file=file.path(path,"E-GEUV-1.sdrf.txt"))
match <- match(rownames(snps),samples$Source.Name)
rownames(snps) <- samples$Comment.ENA_RUN.[match]
snps <- snps[!is.na(rownames(snps)),]
save(object=snps,file=file.path(path,paste0("Geuvadis.chr",chr,".RData")))
}
#' @export
#' @title
#' Get SNP data (BBMRI)
#'
#' @description
#' This function transforms SNP data (virtual machine).
#'
#' @param chr
#' chromosome: integer \eqn{1-22}
#'
#' @param biobank
#' character "CODAM", "LL", "LLS", "NTR", "PAN", "RS", or NULL (all)
#'
#' @param path
#' data directory
#'
#' @examples
#' path <- "/virdir/Scratch/arauschenberger/trial"
#'
get.snps.bbmri <- function(chr,biobank=NULL,path=getwd()){
start <- Sys.time()
message(rep("-",times=20)," chromosome ",chr," ",rep("-",times=20))
p <- 5*10^6 # (maximum number of SNPs per chromosome, before filtering)
size <- 60*10^3 # (originally 100*10^3, decrease: slower but less memory)
skip <- seq(from=0,to=p,by=size)
if(is.null(biobank)){
study <- c("CODAM","LL","LLS0","LLS1","NTR0","NTR1","PAN","RS")
} else if(biobank=="LLS"){
study <- c("LLS0","LLS1")
} else if(biobank=="NTR"){
study <- c("NTR0","NTR1")
} else if(!biobank %in% c("CODAM","LL","PAN","RS")){
study <- biobank
} else{
stop("Invalid biobank.",call.=FALSE)
}
collect <- matrix(list(),nrow=length(skip),ncol=length(study))
colnames(collect) <- study
for(i in seq_along(skip)){
message("\n","chunk ",i,": ",appendLF=FALSE)
for(j in seq_along(study)){
message(study[j]," ",appendLF=FALSE)
# Locating files on virtual machine.
dir <- study[j]
if(study[j]=="LLS0"){dir <- "LLS/660Q"}
if(study[j]=="LLS1"){dir <- "LLS/OmniExpr"}
if(study[j]=="NTR0"){dir <- "NTR/Affy6"}
if(study[j]=="NTR1"){dir <- "NTR/GoNL"}
path0 <- file.path("/mnt/virdir/Backup/RP3_data/HRCv1.1_Imputation",dir)
path1 <- "/virdir/Scratch/arauschenberger/trial"
file0 <- paste0("chr",chr,".dose.vcf.gz")
file1 <- paste0(study[j],".chr",chr,".dose.vcf.gz")
file2 <- paste0(study[j],".chr",chr,".dose.vcf")
# Decompressing missing files in personal folder.
if(!file.exists(file.path(path1,file2))){
file.copy(from=file.path(path0,file0),to=file.path(path1,file1))
R.utils::gunzip(filename=file.path(path1,file1),remove=TRUE,overwrite=TRUE)
}
# Reading in files.
vcf <- vcfR::read.vcfR(file=file.path(path1,file2),skip=skip[i],nrows=size,verbose=FALSE)
vcf <- vcf[vcf@fix[,"CHROM"]!="",] # bug fix
vcf@fix[,"ID"] <- paste0(vcf@fix[,"ID"],"_",seq_len(dim(vcf)["variants"]))
collect[i,j][[1]] <- vcf
stop <- dim(vcf)["variants"]==0
final <- dim(vcf)["variants"]<size
if(stop){break}
}
print(utils::object.size(collect),units="Gb")
end <- Sys.time()
if(stop){break}
# Calculating minor allele frequency.
num <- numeric(); maf <- list()
for(j in seq_along(study)){
num[j] <- dim(collect[i,j][[1]])["gt_cols"] # replace by adjusted sample sizes?
maf[[j]] <- num[j]*vcfR::maf(collect[i,j][[1]])[,"Frequency"]
}
cond <- rowSums(do.call(what="cbind",args=maf))/sum(num)>0.05
if(sum(cond)==0){if(final){break}else{next}}
# Filtering out genotypes.
for(j in seq_along(study)){
gt <- vcfR::extract.gt(collect[i,j][[1]][cond,])
gt[gt=="0|0"] <- 0
gt[gt=="0|1"|gt=="1|0"] <- 1
gt[gt=="1|1"] <- 2
storage.mode(gt) <- "integer"
collect[i,j][[1]] <- gt
}
if(final){break}
}
# Removing empty rows.
cond <- apply(collect,1,function(x) all(sapply(x,length)==0))
collect <- collect[!cond,,drop=FALSE]
save(object=collect,file=file.path(path1,paste0("temp.chr",chr,".RData")))
#load(file.path(path1,paste0("temp.chr",chr,".RData")))
# Fusing all matrices.
snps <- NULL
for(i in seq_len(nrow(collect))){
inner <- NULL
for(j in seq_len(ncol(collect))){
add <- collect[i,j][[1]]
colnames(add) <- paste0(colnames(collect)[j],":",colnames(add))
inner <- cbind(inner,add)
}
snps <- rbind(snps,inner)
}
attributes(snps)$time <- end-start
rownames(snps) <- sapply(strsplit(x=rownames(snps),split="_"),function(x) x[[1]])
snps <- t(snps)
# Filter samples.
rownames(snps) <- sub(x=rownames(snps),pattern="LLS0|LLS1",replacement="LLS")
rownames(snps) <- sub(x=rownames(snps),pattern="NTR0|NTR1",replacement="NTR")
#split <- strsplit(x=colnames(snps),split=":")
#bio <- sapply(split,function(x) x[[1]])
#id <- sapply(split,function(x) x[[2]])
#cond <- rep(NA,times=ncol(snps))
#for(j in seq_along(study)){
# cond[bio==study[j]] <- duplicated(id[bio==study[j]])
#}
if(is.null(biobank)){
save(object=snps,file=file.path(path1,paste0("BBMRI.chr",chr,".RData")))
} else {
save(object=snps,file=file.path(path1,paste0(biobank,".chr",chr,".RData")))
}
}
#' @export
#' @title
#' Get exon data (Geuvadis)
#'
#' @description
#' This function transforms exon data (virtual machine).
#'
#' @param path
#' data directory
#'
#' @examples
#' path <- "/virdir/Scratch/arauschenberger/trial"
#'
get.exons.geuvadis <- function(path=getwd()){
nrows <- 303544
file <-"/virdir/Scratch/rmenezes/data_counts.txt"
exons <- utils::read.table(file=file,header=TRUE,nrows=nrows)
exons <- exons[exons[,"chr"] %in% 1:22,] # autosomes
rownames(exons) <- exon_id <- paste0(exons[,"chr"],"_",exons[,"start"],"_",exons[,"end"])
gene_id <- as.character(exons[,4])
exons <- t(exons[,-c(1:4)])
save(list=c("exons","exon_id","gene_id"),file=file.path(path,"Geuvadis.exons.RData"))
}
#' @export
#' @title
#' Get exon data (BBMRI)
#'
#' @description
#' This function transforms exon data (virtual machine).
#'
#' @param path
#' data directory
#'
#' @examples
#' path <- "/virdir/Scratch/arauschenberger/trial"
#'
get.exons.bbmri <- function(path=getwd()){
# sample identifiers:
# (1) loading quality controlled gene expression data
# (2) extracting sample identifiers
# (3) removing identifiers without SNP data
# (4) translating identifiers
utils::data(rnaSeqData_ReadCounts_BIOS_cleaned,package="BBMRIomics") # (1)
cd <- SummarizedExperiment::colData(counts)[,c("biobank_id","imputation_id","run_id")]; rm(counts) # (2)
names(cd) <- substr(names(cd),start=1,stop=3) # abbreviate names
cd <- cd[!is.na(cd$imp),] # (3)
cd$id <- NA # (4)
cd$id[cd$bio=="CODAM"] <- sapply(strsplit(x=cd$imp[cd$bio=="CODAM"],split="_"),function(x) x[[2]])
cd$id[cd$bio=="LL"] <- sub(pattern="1_LLDeep_",replacement="",x=cd$imp[cd$bio=="LL"])
cd$id[cd$bio=="LLS"] <- sapply(strsplit(x=cd$imp[cd$bio=="LLS"],split="_"),function(x) x[[2]])
cd$id[cd$bio=="NTR"] <- sapply(strsplit(x=cd$imp[cd$bio=="NTR"],split="_"),function(x) x[[2]])
cd$id[cd$bio=="PAN"] <- cd$imp[cd$bio=="PAN"]
cd$id[cd$bio=="RS"] <- sub(pattern="RS1_|RS2_|RS3_",replacement="",x=cd$imp[cd$bio=="RS"])
# Identify individual not with "id" but with "bio:id".
any(duplicated(cd$id)) # TRUE
sapply(unique(cd$bio),function(x) any(duplicated(cd$id[x]))) # FALSE
# exon data:
# (1) loading exon expression data
# (2) extracting sample identifiers
# (3) retaining autosomes
# (4) retaining samples from above
load("/virdir/Backup/RP3_data/RNASeq/v2.1.3/exon_base/exon_base_counts.RData") # (1)
colnames(counts) <- sub(pattern=".exon.base.count.gz",replacement="",x=colnames(counts)) # (2)
autosomes <- sapply(strsplit(x=rownames(counts),split="_"),function(x) x[[1]] %in% 1:22) # (3)
exons <- counts[autosomes,cd$run] # (3) and (4)
exon_id <- exon_id[autosomes] # (3)
gene_id <- gene_id[autosomes] # (3)
colnames(exons) <- paste0(cd$bio,":",cd$id)
exons <- t(exons)
save(list=c("exons","exon_id","gene_id"),file=file.path(path,"BBMRI.exons.RData"))
}
#' @export
#' @title
#' Prepare data matrices
......
......@@ -89,9 +89,10 @@
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb1-1" data-line-number="1">stats<span class="op">::</span><span class="kw"><a href="http://www.rdocumentation.org/packages/stats/topics/Normal">rnorm</a></span>(<span class="dv">10</span>)</a></code></pre></div>
<pre><code>## [1] 0.70736847 0.63344201 -0.10847742 0.44286567 -0.07326815
## [6] -0.61661042 0.41808907 1.53022899 -3.17186612 -1.04656881</code></pre>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb1-1" data-line-number="1"><span class="kw">set.seed</span>(<span class="dv">1</span>)</a>
<a class="sourceLine" id="cb1-2" data-line-number="2">stats<span class="op">::</span><span class="kw"><a href="http://www.rdocumentation.org/packages/stats/topics/Normal">rnorm</a></span>(<span class="dv">10</span>)</a></code></pre></div>
<pre><code>## [1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078 -0.8204684
## [7] 0.4874291 0.7383247 0.5757814 -0.3053884</code></pre>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
......
......@@ -110,7 +110,7 @@
<div class="col-md-9 contents">
<div class="page-header">
<h1>Adjust exon length</h1>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/function.R'><code>R/function.R</code></a></small>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/functions.R'><code>R/functions.R</code></a></small>
<div class="hidden name"><code>adjust.covariates.Rd</code></div>
</div>
......
......@@ -110,7 +110,7 @@
<div class="col-md-9 contents">
<div class="page-header">
<h1>Adjust library sizes</h1>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/function.R'><code>R/function.R</code></a></small>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/functions.R'><code>R/functions.R</code></a></small>
<div class="hidden name"><code>adjust.samples.Rd</code></div>
</div>
......
......@@ -110,7 +110,7 @@
<div class="col-md-9 contents">
<div class="page-header">
<h1>Drop trivial test</h1>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/function.R'><code>R/function.R</code></a></small>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/functions.R'><code>R/functions.R</code></a></small>
<div class="hidden name"><code>drop.trivial.Rd</code></div>
</div>
......
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<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>Get exon data (BBMRI) — get.exons.bbmri • spliceQTL</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" integrity="sha384-cV+rhyOuRHc9Ub/91rihWcGmMmCXDeksTtCihMupQHSsi8GIIRDG0ThDc3HGQFJ3" crossorigin="anonymous"></script>
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../jquery.sticky-kit.min.js"></script>
<script src="../pkgdown.js"></script>
<meta property="og:title" content="Get exon data (BBMRI) — get.exons.bbmri" />
<meta property="og:description" content="This function transforms exon data (virtual machine)." />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></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]-->
</head>
<body>
<div class="container template-reference-topic">
<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">
<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">spliceQTL</a>
<span class="label label-default" data-toggle="tooltip" data-placement="bottom" title="Released package">0.0.0</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">
<span class="fa fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Articles
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="../articles/vignette.html">spliceQTL</a>
</li>
</ul>
</li>
<li>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/rauschenberger/spliceQTL">
<span class="fa fa-github fa-lg"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Get exon data (BBMRI)</h1>
<small class="dont-index">Source: <a href='https://github.com/rauschenberger/spliceQTL/blob/master/R/functions.R'><code>R/functions.R</code></a></small>
<div class="hidden name"><code>get.exons.bbmri.Rd</code></div>
</div>
<div class="ref-description">
<p>This function transforms exon data (virtual machine).</p>
</div>
<pre class="usage"><span class='fu'>get.exons.bbmri</span>(<span class='kw'>path</span> <span class='kw'>=</span> <span class='fu'>getwd</span>())</pre>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
<th>path</th>
<td><p>data directory</p></td>
</tr>
</table>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='no'>path</span> <span class='kw'>&lt;-</span> <span class='st'>"/virdir/Scratch/arauschenberger/trial"</span></div></pre>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#arguments">Arguments</a></li>
<li><a href="#examples">Examples</a></li>
</ul>
</div>
</div>
<footer>
<div class="copyright">
<p>Developed by Armin Rauschenberger, Renee Menezes.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="http://pkgdown.r-lib.org/">pkgdown</a>.</p>
</div>
</footer>
</div>
</body>
</html>
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<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>Get exon data (Geuvadis) — get.exons.geuvadis • spliceQTL</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" integrity="sha384-cV+rhyOuRHc9Ub/91rihWcGmMmCXDeksTtCihMupQHSsi8GIIRDG0ThDc3HGQFJ3" crossorigin="anonymous"></script>
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../jquery.sticky-kit.min.js"></script>
<script src="../pkgdown.js"></script>
<meta property="og:title" content="Get exon data (Geuvadis) — get.exons.geuvadis" />
<meta property="og:description" content="This function transforms exon data (virtual machine)." />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src='https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></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]-->
</head>
<body>
<div class="container template-reference-topic">
<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">
<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">spliceQTL</a>
<span class="label label-default" data-toggle="tooltip" data-placement="bottom" title="Released package">0.0.0</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">