---
title: "tripr User Guide"
author:
- name: Maria Th. Kotouza
affiliation: Department of Electrical and Computer Engineering,
Aristotle University of Thessaloniki, Thessaloniki, GR
- name: Katerina Gemenetzi
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Chrysi Galigalidou
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Elisavet Vlachonikola
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Nikolaos Pechlivanis
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Andreas Agathangelidis
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Raphael Sandaltzopoulos
affiliation: Department of Molecular Biology and Genetics,
Democritus University of Thrace, Alexandroupolis, GR
- name: Pericles A. Mitkas
affiliation: Department of Electrical and Computer Engineering,
Aristotle University of Thessaloniki, Thessaloniki, GR
- name: Kostas Stamatopoulos
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Anastasia Chatzidimitriou
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
- name: Fotis E. Psomopoulos
affiliation: Institute of Applied Biosciences,
Centre for Research and Technology Hellas, Thessaloniki, GR
email: fpsom@certh.gr
date: "`r BiocStyle::doc_date()`"
package: "`r BiocStyle::pkg_ver('tripr')`"
output:
BiocStyle::html_document:
toc_float: true
vignette: >
%\VignetteIndexEntry{tripr User Guide}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r vignetteSetup, echo=FALSE, message=FALSE, warning = FALSE}
## For links
library("BiocStyle")
## Track time spent on making the vignette
#startTime <- Sys.time()
## Bib setup
library("RefManageR")
## Write bibliography information
bib <- c(
R = citation(),
BiocStyle = citation("BiocStyle")[1],
DT = citation("DT")[1],
ggplot2 = citation("ggplot2")[1],
golem = citation("golem")[1],
knitr = citation("knitr")[3],
plotly = citation("plotly")[1],
RColorBrewer = citation("RColorBrewer")[1],
RefManageR = citation("RefManageR")[1],
rmarkdown = citation("rmarkdown")[1],
shiny = citation("shiny")[1],
testthat = citation("testthat")[1],
biocthis = citation("biocthis")[1],
shinyjs = citation("shinyjs")[1],
shinyFiles = citation("shinyFiles")[1],
plyr = citation("plyr")[1],
data.table = citation("data.table")[1],
stringr = citation("stringr")[1],
stringdist = citation("stringdist")[1],
plot3D = citation("plot3D")[1],
gridExtra = citation("gridExtra")[1],
dplyr = citation("dplyr")[1],
pryr = citation("pryr")[1],
shinyBS = citation("shinyBS")[1],
fs = citation("fs")[1]
)
```
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
error = FALSE,
warning = FALSE,
message = FALSE,
crop = NULL
)
```
```{r, echo=FALSE, out.width='50%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www", "tripr.png",
package="tripr", mustWork=TRUE))
```
# Introduction
`tripr` is a [Bioconductor](http://bioconductor.org) package,
written in [shiny](https://shiny.rstudio.com/) that provides
analytics services on
antigen receptor (B cell receptor immunoglobulin, BcR IG | T cell receptor,
TR) gene sequence data. Every step of the analysis can be
performed interactively, thus not requiring any programming skills. It takes
as input the output files of the
[IMGT/HighV-Quest tool](http://www.imgt.org/HighV-QUEST/home.action).
Users can select to analyze the data from each of the input samples separately,
or the combined data files from all samples and visualize the results
accordingly. Functions for an `R` command-line use are also available.
## Installation
`tripr` is distributed as a [Bioconductor](https://www.bioconductor.org/)
package and requires `R` (version "4.2"), which can be installed on any
operating system from [CRAN](https://cran.r-project.org/), and
Bioconductor (version "3.15").
To install `tripr` package enter the following commands in your `R` session:
```{r eval = FALSE}
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("tripr")
## Check that you have a valid Bioconductor installation
BiocManager::valid()
```
## Launching the app
Once `tripr` is successfully installed, it can be loaded as follow:
```{r setup}
library(tripr)
```
# Running `tripr` as a `shiny` application
In order to start the `shiny` app, please run the following command:
```{r demostart, eval=FALSE}
tripr::run_app()
```
`tripr` should be opening in a browser (ideally Chrome, Firefox or Opera).
If this does not happen automatically,
please open a browser and navigate to the address shown on the `R` console
(for example, `Listening on http://127.0.0.1:6134`).
## Home
In this tab users can import their data by selecting the directory
where the data is stored, by pressing the **Choose directory** button.
The tool takes as input
the 10 output files of the
[IMGT/HighV-Quest tool](http://www.imgt.org/HighV-QUEST/home.action) in text
format (.txt). Users can also
choose only some of the files depending on the type of the downstream analysis.
Note that every sample of the dataset must have its own individual folder and
every sample folder must be in one root folder (See example below). For the
dataset to be selected for upload, this root folder must be selected and
then the button **Load Data** has to be pressed.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www", "upload_data.png",
package="tripr", mustWork=TRUE))
```
Previous sessions can also be loaded with the **Restore Previous Sessions**
button.
There are 2 options regarding the cell type (**T cell** and **B cell**) as
well as 2
options based on the amount of available data
(**High-** or **Low-Throughput**).
Concerning the latter, the main difference is the application of the
preselection and selection steps. In the case of High-Throughput data, all
filters are applied consequentially (i.e. if a sequence fails >1 selection
criteria, only the first unsatisfied criterion will be reported), whereas
for Low-Throughput data all criteria are applied at the same time.
## Preprocessing
`tripr` offers 2 steps of preprocessing:
- **Preselection**: Refers to the cleaning process of the input dataset.
- **Selection**: Refers to the filtering process of the resulting data from
Preselection process.
### Preselection{#preselection}
The Preselection process comprises 4 different criteria:
- __Only take into account Functional V-Gene__:
Only sequences utilizing a
functional V gene are included into the downstream analysis. Sequences with
pseudogenes (P) or open reading frame (ORF) genes are excluded from further
analysis.
- __Only take into account CDR3 with no Special Characters (X,\*,#,.)__:
Only sequences without ambiguities
(i.e. characters other than those of the 20 amino acids)
are included in the analysis.
- __Only take into account Productive Sequences__:
Only productive sequences
(without stop codons and frameshifts) are included in the analysis.
- __Only take into account CDR3 with valid start/end landmarks__:
Start/End CDR3
landmarks (anchors) can be customized by the user based on the type of data
(BcR/TR, heavy/light chain). More than one valid landmark can be used.
The different letters should be separated with a vertical bar (e.g. F|D).
Sequences with landmarks other than the chosen ones are excluded from the
analysis.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www", "Preselection.png",
package="tripr", mustWork=TRUE))
```
The execution starts when the **Apply** button is pressed.
Users can visualize the results of the preselection (first cleaning) process in
the **Preselection** tab. In the case of multi-sample datasets, results are
provided for each individual sample separately, or for the combined dataset
by scrolling through the **Select Dataset** option.
The output consists of 4 table files:
1. **Summary**: a summary table with both the
included and excluded sequences for each different criterion
2. **All Data table**: the entire set of data
3. **Clean table**: the sequences that
meet the preselection criteria and are included in the analysis and
4. **Clean out table**: the excluded sequences.
The last column of the “Clean out table” refers to the unsatisfied criteria.
The figure below shows an example Clean table from this Tab.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"Preselection_Clean_table.png",
package="tripr", mustWork=TRUE))
```
All 4 tables can be downloaded as text files.
### Selection{#selection}
The sequences that passed through the Preselection process (“Clean table”) are
used as input for the data Selection (filtering) process.
This step comprises 6 different filters:
- **V-REGION identity %**:
Sequences with identity percent to germline that do
not fall in the range set by the user are excluded from the analysis.
- **Select Specific V Gene**
- **Select Specific J Gene**
- **Select Specific D Gene**
Using the above 3 filters the user can select for sequences that carry one or
more particular V, J and D genes or gene alleles, respectively. Different
genes/gene alleles should be separated with a vertical line (|), e.g.
TRBV11-2|TRBV29-1*03.
- **Select CDR3 length range**:
Only sequences with the
selected CDR3 lengths are included in the analysis.
- **Only select CDR3 containing specific amino-acid sequence**:
Sequences with the specific CDR3
amino acid motif provided by the user are included in the analysis.
The execution starts when the **Execute** button is pressed.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www", "Selection.png",
package="tripr", mustWork=TRUE))
```
The results of the Selection (filtering) process are presented in the
**Selection** tab.
This process provides 4 output files:
1. **Summary**: a summary table with both the
included and excluded sequences for each filter
2. **All Data table**: the data
used as input after the Preselection process
3. **Filter in table**: the
sequences that passed through the selection filters and
4. **Filter out table**: the excluded sequences. The last column of the
“Filter out table” refers to the filters that were not passed by each
individual sequence.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www", "Selection_visual.png",
package="tripr", mustWork=TRUE))
```
All the tables can be downloaded as text files.
## Pipelines & Step dependencies {#pipelines}
Users can select the workflow that they want to apply to their dataset(s).
There are 11 different tools in the pipeline tab. 7 of them can be applied for
both T- and B-cells, while the remaining 4 can be applied _only_ for B-cells.
-------------------------------------------------------------------------
**Step Dependencies in Pipeline**
1. In order to apply _Highly Similar Clonotypes computation_,
_Clonotypes computation_ should have been selected previously.
2. In order to apply _Repertoires Extraction_, _Clonotypes computation_
should have run previously. If _Highly Similar Clonotypes computation_ has
been selected, repertoires will be extracted for both total clonotypes and
highly similar clonotypes.
3. The _Somatic hypermutation status_ is applied using the groups that have
been selected at _Insert Identity groups_.
4. If both _Alignment_ and _Clonotypes computation_ have been selected, the
cluster ID in the alignment table corresponds to the cluster ID in the
clonotype table. Otherwise, all elements in the “cluster_ID” column of the
alignment table are assigned to zero.
5. In order to apply _Alignment_ using the _Select top N clonotypes_ option,
_Clonotypes computation_ should have run previously.
6. In order to apply _Mutations_, _Alignment_ should have run previously,
using the corresponding “AA or Nt” option. The Mutation table is computed
based on the grouped alignment table.
7. In order to apply _Mutations_ using the _Select top N clonotypes_ or the
_Select clonotypes separately_ option, _Clonotypes computation_ should have
previously run.
8. In order to apply _Logo_ using the _Select top N clonotypes_ option,
_Clonotypes computation_ should have run previously.
9. Ιn order to run the _Shared Clonotype computation_ and the _Repertoire
comparison_ steps, the user must have loaded more than one datasets.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"pipeline_overview.png",
package="tripr", mustWork=TRUE))
```
-----------------------------------------------------------------------------
For **both** T- and B-cells:
### Clonotype computation
The frequencies for all unique clonotypes of each
sample are computed. There are 10 different options for clonotype
definition.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"Clonotypes_pipeline.png",
package="tripr", mustWork=TRUE))
```
The results are presented in the **Clonotypes** tab in the
form of a table, where the clonotype, the count, the frequency and the
convergent evolution (if feasible) are given. Each clonotype is also a
link that provides a table with all relevant immunogenetic data for that
particular clonotype, based on the uploaded files. This table consists
of all reads/sequences assigned to that clonotype and all relevant
information. Each clonotype is given a unique cluster
identifier (cluster ID).
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"clonotypes_tab.png",
package="tripr", mustWork=TRUE))
```
### Highly similar clonotypes computation
Frequencies for all highly
similar clonotypes are computed. The user can set the number of
mismatches allowed for each CDR3 length found in the dataset and a
clonotype frequency threshold (range: 0-1). Only clonotypes with a
frequency above the applied threshold will be used in the subsequent
grouping. The whole process can be performed with or without taking
into account the rearranged V-gene.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"highly_similar_pipeline.png",
package="tripr", mustWork=TRUE))
```
The results are presented in
the **Highly Similar Clonotypes** tab as a table. A second table is
also provided containing information regarding the clonotype grouping.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"highly_sim_clono_tab.png",
package="tripr", mustWork=TRUE))
```
### Repertoires extraction
The number of clonotypes using each V, J or D
gene/allele is computed over the total number of clonotypes based on
the clonotype definition given in the previous _Clonotype computation_
step. If multiple samples are analyzed together the tool provides a
total repertoire as well as the repertoire for each individual sample.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"repertoires_pipeline.png",
package="tripr", mustWork=TRUE))
```
Results are provided in the **Repertoires** tab as tables. Each table
includes the gene/allele and information concerning the absolute count
and frequency of sequences expressing that particular gene/allele.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"repertoires_tab.png",
package="tripr", mustWork=TRUE))
```
### Highly Similar Repertoires extraction
Same as above except for the fact
that the tool uses as input the clonotypes as computed in the
_Highly Similar Clonotypes computation_.
### Multiple value comparison
The tool performs cross-tabulation analysis
between 2 selected variables. Many different variables can be selected
by the user for this type of analysis depending on the selected input
files from the **Home** tab.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"mv_pipeline.png",
package="tripr", mustWork=TRUE))
```
The results are presented at the
**Multiple value comparison** tab as tables. Each table contains the
values that were found to be associated and the relevant frequency.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"multiple_tab.png",
package="tripr", mustWork=TRUE))
```
### CDR3 with 1 amino acid length difference
This tool can be applied for
datasets that consist of sequences with highly similar CDR3. The tool
is able to align and create sequence logos for sequences with the same
length as well as for sequences that differ by a single amino acid in
terms of length.
### Logo
This tool creates an amino acid frequency table for the selected
sequence region (CDR3, VDJ REGION, VJ REGION) of a given length. The
frequency table is computed by counting the frequency of appearance of
each of the 20 different amino acids at any given position of the sequence.
The users have the option to select over the total frequency table or the
table of the top clusters according to the clonotype frequencies.
A logo is
created using the above frequency table. The color code of the amino acids
is created based on the 11
[IMGT amino acid physicochemical classes](http://www.imgt.org/IMGTeducation/Aide-memoire/_UK/aminoacids/IMGTclasses.html).
-----------------------------------------------------------------------------
**Only** for B cells:
### Insert identity groups
Input sequences are grouped into different categories based on the V-region
identity percent. The user can determine the number and the identity percent
range of mutational groups. (high limit: <, low limit: ≥)
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"insert_identity_pipeline.png",
package="tripr", mustWork=TRUE))
```
### Somatic hypermutation status
The relative frequency of each germline identity group is computed. If the
user has not defined any groups based on the somatic hypermutation (SHM)
status using the _Insert identity groups_ tool, the tool will group together
only sequences that display the exact SHM status (e.g. sequences with an
identity percent of 98.6% will be grouped together whereas sequences with
98.7% identity will form a distinct group). Relative frequencies for each
SHM group will be computed based on the total number of sequences.
### Alignment
An alignment table is created for the user-selected region (VDJ REGION,
VJ REGION). Sequences that are identical in terms of amino acid or nucleotide
sequence level are grouped together in order to create the grouped alignment
table. Alignments for the selected region can be provided at the nucleotide
or amino acid level or both. Default reference sequences are extracted from
the [IMGT reference directory](http://www.imgt.org/vquest/refseqh.html).
Reference sequences can be used either at the gene or gene allele level. At
the gene level, allele *01 is considered as reference. Users can also submit
their own reference sequence. There is also the possibility to align only a
number of selected clonotypes through the _Select topN clonotype_ option or
select those clonotypes that have an individual frequency above a given
percent cutoff.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"Alignment_pipeline.png",
package="tripr", mustWork=TRUE))
```
Results are presented in the **Alignment** tab as tables.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"alignment_tab.png",
package="tripr", mustWork=TRUE))
```
Each table can be downloaded in txt format.
### Somatic hypermutations
A table with all somatic hypermutations for all samples together as well as
for each individual sample is computed based on the alignment table provided
by the previous tool.
The output table includes:
1. the mutation type,
2. the position of the change,
3. the region where the change occurs,
4. the number of sequences carrying each change and
5. the frequency of the change for every gene or allele based on
the grouped alignment table regardless
the clonotype.
There is the possibility to analyze only a number of clonotypes
by choosing the _Select topN clonotypes_ or
the _Select threshold for clonotypes_ option or even
some clonotypes separately by choosing the
_Select clonotypes separately_ option. Different clonotype/cluster
identifiers (cluster IDs) should be separated by comma (e.g. 1,3,7).
Results are given in the **Mutations** tab as tables. When different clonotypes
are selected separately, different tables are created for each given clonotype.
Each table can be downloaded in text format.
## Visualization
In the **Visualization** tab different types of charts
(scatter, plots, bars etc.)
are available for the visualization of the analysis results. Clonotypes are
presented as bars and the user can select the frequency above which the
clonotypes will be presented.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"visual_clono.png",
package="tripr", mustWork=TRUE))
```
The convergent evolution is also available
for visualization with more than one chart type options.
The computed
repertoires are presented as pie-charts and the user can again select
the minimum frequency of the gene/allele that will be presented.
Regarding the _Multiple value comparison_ tool, a plot of the 2
selected variables is presented.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"hist3d_visual.png",
package="tripr", mustWork=TRUE))
```
All the tables that are presented
to the user can be downloaded in text format, whereas the plots and the
graphics can be downloaded in .png format.
## Overview
This section provides an overview of the user's total options for the analysis.
```{r, echo=FALSE, out.width='100%', fig.align='center'}
knitr::include_graphics(path = system.file("app", "www",
"overview.png",
package="tripr", mustWork=TRUE))
```
# Running `tripr` via `R` command line
As mentioned before, `tripr` can also be used via `R` command line with
the `run_TRIP()` function.
## Usage
`run_TRIP()` works as a wrapper function for the analysis that `tripr`
provides. To see its detailed documentation write:
```{r eval = FALSE}
?tripr::run_TRIP
```
Some of its most important arguments:
* `datapath` : The path to the directory where data is located.
Note that every sample of the dataset must have its
**own individual folder**
and every sample folder must be in **one root folder**.
Note that **every** file in the root folder will be used in
the analysis.
Supposedly the dataset is in user's _Documents_ folder, one
could use: `fs::path_home("Documents", "dataset")`, with the help of
[fs](https://www.rdocumentation.org/packages/fs) package.
The default value is
```{r eval=FALSE}
fs::path_package("extdata", "dataset", package = "tripr")
```
which uses the example dataset of 2 B-cell samples.
* `output_path` : The directory where the output data will
be stored. Please provide a valid path, ideally the same way as `datapath`
by using the [fs](https://www.rdocumentation.org/packages/fs) package.
The default value points to *Documents/tripr_output* directory.
* `filelist` : The character vector of files of the
[IMGT/HighV-Quest tool](http://www.imgt.org/HighV-QUEST/home.action)
output that will be used through the analysis.
The default value is
```{r eval=FALSE}
c("1_Summary.txt", "2_IMGT-gapped-nt-sequences.txt",
"4_IMGT-gapped-AA-sequences.txt", "6_Junction.txt")
```
which uses only 4 of the 10 .txt files that the
[IMGT/HighV-Quest tool](http://www.imgt.org/HighV-QUEST/home.action)
tool provides as output.
* `preselection` : Preselection Options (1:4). See [Preselection](#preselection)
* `selection` : Selection Options (5:10). See [Selection](#selection)
* `pipeline` : Pipeline Options (1:19). The user can select multiple pipelines
by seperating them with comma ','.
See [Pipelines](#pipelines) and run `?tripr::run_TRIP` for more details.
## Output of Command Line tool
Every output of `tripr` analysis with `run_TRIP()` function will be stored in
the `output_path` directory as mentioned before. Therefore, no table or plot
will be presented through `RStudio` or any other graphics device when the
analysis is run, on contrary with the `shiny` app, where the user has access
to output tables and plots via the User Interface.
Output Directory contains two folders:
1. **output** : Where data tables are stored.
2. **Analysis** : Where plots are stored.
The output directory has a unique name for every analysis, that points
to the system time that it was run.
## Example with `run_TRIP()`
An example of `run_TRIP()` analysis, using the example dataset of 2 B-cells
that is provided, is presented below.
```{r eval=FALSE}
datapath <- fs::path_package("extdata", "dataset", package="tripr")
output_path <- tools::R_user_dir("tripr", which="cache")
cell <- "Bcell"
preselection <- "1,2,3,4C:W"
selection <- "5"
filelist <- c("1_Summary.txt",
"2_IMGT-gapped-nt-sequences.txt",
"4_IMGT-gapped-AA-sequences.txt",
"6_Junction.txt")
throughput <- "High Throughput"
preselection <- "1,2,3,4C:W"
selection <- "5"
identity_range <- "88:100"
pipeline <- "1"
select_clonotype <- "V Gene + CDR3 Amino Acids"
run_TRIP(
datapath=datapath,
output_path=output_path,
filelist=filelist,
cell=cell,
throughput=throughput,
preselection=preselection,
selection=selection,
identity_range=identity_range,
pipeline=pipeline,
select_clonotype=select_clonotype)
```
# Tool dependencies
The `r Biocpkg('tripr')` package was
made possible thanks to:
* R `r Citep(bib[['R']])`
* `r Biocpkg('BiocStyle')` `r Citep(bib[['BiocStyle']])`
* `r CRANpkg('DT')` `r Citep(bib[['DT']])`
* `r CRANpkg('ggplot2')` `r Citep(bib[['ggplot2']])`
* `r CRANpkg('golem')` `r Citep(bib[['golem']])`
* `r CRANpkg('knitr')` `r Citep(bib[['knitr']])`
* `r CRANpkg('plotly')` `r Citep(bib[['plotly']])`
* `r CRANpkg('RColorBrewer')` `r Citep(bib[['RColorBrewer']])`
* `r CRANpkg('rmarkdown')` `r Citep(bib[['rmarkdown']])`
* `r CRANpkg('shiny')` `r Citep(bib[['shiny']])`
* `r CRANpkg('shinyBS')` `r Citep(bib[['shinyBS']])`
* `r CRANpkg('testthat')` `r Citep(bib[['testthat']])`
* `r CRANpkg('shinyjs')` `r Citep(bib[['shinyjs']])`
* `r CRANpkg('shinyFiles')` `r Citep(bib[['shinyFiles']])`
* `r CRANpkg('plyr')` `r Citep(bib[['plyr']])`
* `r CRANpkg('data.table')` `r Citep(bib[['data.table']])`
* `r CRANpkg('stringr')` `r Citep(bib[['stringr']])`
* `r CRANpkg('stringdist')` `r Citep(bib[['stringdist']])`
* `r CRANpkg('plot3D')` `r Citep(bib[['plot3D']])`
* `r CRANpkg('gridExtra')` `r Citep(bib[['gridExtra']])`
* `r CRANpkg('dplyr')` `r Citep(bib[['dplyr']])`
* `r CRANpkg('pryr')` `r Citep(bib[['pryr']])`
* `r CRANpkg('fs')` `r Citep(bib[['fs']])`
* `r Biocpkg('biocthis')` `r Citep(bib[['biocthis']])`
# Citation
We hope that `r Biocpkg('tripr')` will be useful for your research.
Please use the following information to cite the package and the research
article. Thank you!
```{r 'citation'}
## Citation info
citation("tripr")
```
# Session info {.unnumbered}
Here is the output of `sessionInfo()` on the system on which this document was
compiled running pandoc ``r rmarkdown::pandoc_version()``:
```{r sessionInfo, echo=FALSE}
sessionInfo()
```
# Bibliography {.unnumbered}
This vignette was generated using `r Biocpkg('BiocStyle')`
`r Citep(bib[['BiocStyle']])`, `r CRANpkg('knitr')` `r Citep(bib[['knitr']])`
and `r CRANpkg('rmarkdown')` `r Citep(bib[['rmarkdown']])` running
behind the scenes.
Citations made with `r CRANpkg('RefManageR')` `r Citep(bib[['RefManageR']])`.
```{r vignetteBiblio, results = 'asis', echo = FALSE, warning = FALSE, message = FALSE}
## Print bibliography
PrintBibliography(bib, .opts = list(hyperlink = "to.doc", style = "html"))
```