ISAnalytics 1.2.1
To install the package run the following code:
## For release version
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("ISAnalytics")
## For devel version
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
# The following initializes usage of Bioc devel
BiocManager::install(version = "devel")
BiocManager::install("ISAnalytics")
To install from GitHub:
# For release version
if (!require(devtools)) {
install.packages("devtools")
}
devtools::install_github("calabrialab/ISAnalytics",
ref = "RELEASE_3_12",
dependencies = TRUE,
build_vignettes = TRUE
)
## Safer option for vignette building issue
devtools::install_github("calabrialab/ISAnalytics",
ref = "RELEASE_3_12"
)
# For devel version
if (!require(devtools)) {
install.packages("devtools")
}
devtools::install_github("calabrialab/ISAnalytics",
ref = "master",
dependencies = TRUE,
build_vignettes = TRUE
)
## Safer option for vignette building issue
devtools::install_github("calabrialab/ISAnalytics",
ref = "master"
)
library(ISAnalytics)
ISAnalytics
has a verbose option that allows some functions to print
additional information to the console while they’re executing.
To disable this feature do:
# DISABLE
options("ISAnalytics.verbose" = FALSE)
# ENABLE
options("ISAnalytics.verbose" = TRUE)
Some functions also produce report in a user-friendly HTML format, to set this feature:
# DISABLE HTML REPORTS
options("ISAnalytics.widgets" = FALSE)
# ENABLE HTML REPORTS
options("ISAnalytics.widgets" = TRUE)
We’re not going into too much detail here, but we’re going to explain in a very simple way what is a “collision” and how the function in this package deal with them.
We say that an integration (aka a unique combination of chromosome,
integration locus and strand) is a collision if this combination is shared
between different independent samples: an independent sample is a unique
combination of ProjectID
and SubjectID
(where subjects usually represent
patients). The reason behind this is that it’s highly improbable to observe
the very same integration in two different subjects and this phenomenon might
be an indicator of some kind of contamination in the sequencing phase or in
PCR phase, for this reason we might want to exclude such contamination from
our analysis.
ISAnalytics
provides a function that processes the imported data for the
removal or reassignment of these “problematic” integrations,
remove_collisions
.
The processing is done on the sequence count matrix (after import) and matrices of other quantification types are re-aligned accordingly.
The remove_collisions
function follows several logical steps to decide whether
an integration is a collision and if it is it decides whether to re-assign it or
remove it entirely based on different criterias.
As we said before, a collision is a triplet made of chr
, integration locus
and strand
, which is shared between different independent samples, aka a pair
made of ProjectID
and SubjectID
. The function uses the information stored
in the association file to assess which independent samples are present and
counts the number of independent samples for each integration: those who have a
count > 1 are considered collisions.
Once the collisions are identified, the function follows 3 steps where it tries to re-assign the combination to a single independent sample. The criterias are:
reads_ratio
), the default value is 10.If none of the criterias were sufficient to make a decision, the integration is simply removed from the matrix.
To know more about import functions take a look at the vignette “How to use import functions”.
Import your association file:
withr::with_options(list(ISAnalytics.widgets = FALSE), {
path_AF <- system.file("extdata", "ex_association_file.tsv",
package = "ISAnalytics"
)
root_correct <- system.file("extdata", "fs.zip",
package = "ISAnalytics"
)
root_correct <- unzip_file_system(root_correct, "fs")
association_file <- import_association_file(path_AF, root_correct,
dates_format = "dmy")
})
#> *** Association file import summary ***
#> ℹ For detailed report please set option 'ISAnalytics.widgets' to TRUE
#> * Parsing problems detected: TRUE
#> * Date parsing problems: TRUE
#> * Column problems detected: TRUE
#> * NAs found in important columns: TRUE
#> * File system alignment: no problems detected
#> *** Association file import summary ***
#> ℹ For detailed report please set option 'ISAnalytics.widgets' to TRUE
#> * Parsing problems detected: TRUE
#> * Date parsing problems: TRUE
#> * Column problems detected: TRUE
#> * NAs found in important columns: TRUE
#> * File system alignment: no problems detected
Important notes on the association file:
# This imports both sequence count and fragment estimate matrices
withr::with_options(list(ISAnalytics.widgets = FALSE), {
matrices <- import_parallel_Vispa2Matrices_auto(
association_file = association_file, root = NULL,
quantification_type = c("fragmentEstimate", "seqCount"),
matrix_type = "annotated", workers = 2, patterns = NULL,
matching_opt = "ANY", multi_quant_matrix = FALSE
)
})
#> [1] "--- REPORT: FILES IMPORTED ---"
#> # A tibble: 8 x 5
#> ProjectID concatenatePoolIDSeqRun Quantification_type
#> <chr> <chr> <chr>
#> 1 CLOEXP POOL6-1 fragmentEstimate
#> 2 PROJECT1100 ABX-LR-PL5-POOL14-1 fragmentEstimate
#> 3 PROJECT1100 ABX-LR-PL6-POOL15-1 fragmentEstimate
#> 4 PROJECT1101 ABY-LR-PL4-POOL54-2 fragmentEstimate
#> 5 CLOEXP POOL6-1 seqCount
#> 6 PROJECT1100 ABX-LR-PL5-POOL14-1 seqCount
#> 7 PROJECT1100 ABX-LR-PL6-POOL15-1 seqCount
#> 8 PROJECT1101 ABY-LR-PL4-POOL54-2 seqCount
#> Files_chosen
#> <fs::path>
#> 1 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_fragmentEstimate_matrix.no0.annotated.tsv.xz
#> 2 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_fragmentEstimate_ma…
#> 3 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_fragmentEstimate_ma…
#> 4 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_fragmentEstimate_ma…
#> 5 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_seqCount_matrix.no0.annotated.tsv.xz
#> 6 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_seqCount_matrix.no0…
#> 7 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_seqCount_matrix.no0…
#> 8 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_seqCount_matrix.no0…
#> Imported
#> <lgl>
#> 1 TRUE
#> 2 TRUE
#> 3 TRUE
#> 4 TRUE
#> 5 TRUE
#> 6 TRUE
#> 7 TRUE
#> 8 TRUE
#> [1] "--- SUMMARY OF FILES CHOSEN FOR IMPORT ---"
#> # A tibble: 8 x 4
#> ProjectID concatenatePoolIDSeqRun Quantification_type
#> <chr> <chr> <chr>
#> 1 CLOEXP POOL6-1 fragmentEstimate
#> 2 CLOEXP POOL6-1 seqCount
#> 3 PROJECT1100 ABX-LR-PL5-POOL14-1 fragmentEstimate
#> 4 PROJECT1100 ABX-LR-PL5-POOL14-1 seqCount
#> 5 PROJECT1100 ABX-LR-PL6-POOL15-1 fragmentEstimate
#> 6 PROJECT1100 ABX-LR-PL6-POOL15-1 seqCount
#> 7 PROJECT1101 ABY-LR-PL4-POOL54-2 fragmentEstimate
#> 8 PROJECT1101 ABY-LR-PL4-POOL54-2 seqCount
#> Files_chosen
#> <fs::path>
#> 1 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_fragmentEstimate_matrix.no0.annotated.tsv.xz
#> 2 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_seqCount_matrix.no0.annotated.tsv.xz
#> 3 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_fragmentEstimate_ma…
#> 4 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_seqCount_matrix.no0…
#> 5 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_fragmentEstimate_ma…
#> 6 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_seqCount_matrix.no0…
#> 7 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_fragmentEstimate_ma…
#> 8 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_seqCount_matrix.no0…
#> [1] "--- INTEGRATION MATRICES FOUND REPORT ---"
#> # A tibble: 8 x 5
#> ProjectID concatenatePoolIDSeqRun Anomalies Quantification_type
#> <chr> <chr> <lgl> <chr>
#> 1 CLOEXP POOL6-1 FALSE fragmentEstimate
#> 2 CLOEXP POOL6-1 FALSE seqCount
#> 3 PROJECT1100 ABX-LR-PL5-POOL14-1 FALSE fragmentEstimate
#> 4 PROJECT1100 ABX-LR-PL5-POOL14-1 FALSE seqCount
#> 5 PROJECT1100 ABX-LR-PL6-POOL15-1 FALSE fragmentEstimate
#> 6 PROJECT1100 ABX-LR-PL6-POOL15-1 FALSE seqCount
#> 7 PROJECT1101 ABY-LR-PL4-POOL54-2 FALSE fragmentEstimate
#> 8 PROJECT1101 ABY-LR-PL4-POOL54-2 FALSE seqCount
#> Files_found
#> <fs::path>
#> 1 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_fragmentEstimate_matrix.no0.annotated.tsv.xz
#> 2 /tmp/RtmpUgNaF5/fs/VA/CLOEXP/quantification/POOL6-1/VA-CLOEXP-POOL6-1_seqCount_matrix.no0.annotated.tsv.xz
#> 3 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_fragmentEstimate_ma…
#> 4 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL5-POOL14-1/PROJECT1100_ABX-LR-PL5-POOL14-1_seqCount_matrix.no0…
#> 5 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_fragmentEstimate_ma…
#> 6 /tmp/RtmpUgNaF5/fs/PROJECT1100/quantification/ABX-LR-PL6-POOL15-1/PROJECT1100_ABX-LR-PL6-POOL15-1_seqCount_matrix.no0…
#> 7 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_fragmentEstimate_ma…
#> 8 /tmp/RtmpUgNaF5/fs/PROJECT1101/quantification/ABY-LR-PL4-POOL54-2/PROJECT1101_ABY-LR-PL4-POOL54-2_seqCount_matrix.no0…
As stated in the introduction, it is fundamental that the sequence count matrix is present for the collision removal process to take place.
You can process the collisions in 3 different ways.
# Pass the whole named list
withr::with_options(list(ISAnalytics.widgets = FALSE), {
matrices_processed <- remove_collisions(
x = matrices,
association_file = association_file,
date_col = "SequencingDate",
reads_ratio = 10
)
})
#> Found additional data relative to some projects that are not included in the imported matrices. Here is a summary
#> # A tibble: 1 x 3
#> ProjectID PoolID
#> <chr> <chr>
#> 1 PROJECT1101 ABY-LR-PL4-POOL54
#> CompleteAmplificationID
#> <chr>
#> 1 PROJECT1101_ABY-LR-PL4-POOL54_LTR51LC51_VA2020-mix14_VA2020-mix14_lenti_737.pCCLsin.PPT.SFFV.eGFP.Wpre_PL4_NONE_2_NON…
#> Identifying collisions...
#> Processing collisions...
#>
|
| | 0%
|
|============================ | 25%
|
|======================================================= | 50%
|
|================================================================================== | 75%
|
|==============================================================================================================| 100%
#>
#> [1] "--- SUMMARY ---"
#> # A tibble: 4 x 7
#> SubjectID count_integrations_before sumSeqReads_before count_integrations_after sumSeqReads_after
#> <chr> <int> <dbl> <int> <dbl>
#> 1 VA2020-mix10 2092 10099664 1714 5052150
#> 2 VA2020-mix11 1332 15955128 994 7980886
#> 3 VA2020-mix12 896 8172644 614 4088054
#> 4 VA2020-mix13 1584 10035460 1258 5019402
#> delta_integrations delta_seqReads
#> <int> <dbl>
#> 1 378 5047514
#> 2 338 7974242
#> 3 282 4084590
#> 4 326 5016058
#> Realigning matrices...
#> Finished!
If you have the “widgets” option active, a report file is produced at the end
that shows the before and after for each subject (and some other details).
This report is an HTML widget, so you can save it or export it for future
reference if you need it.
In this case, collision removal is done on the sequence
count matrix and other matrices are re-aligned automatically.
# Pass the sequence count matrix only
withr::with_options(list(ISAnalytics.widgets = FALSE), {
matrices_processed_single <- remove_collisions(
x = matrices$seqCount,
association_file =
association_file,
date_col = "SequencingDate",
reads_ratio = 10
)
})
#> Found additional data relative to some projects that are not included in the imported matrices. Here is a summary
#> # A tibble: 1 x 3
#> ProjectID PoolID
#> <chr> <chr>
#> 1 PROJECT1101 ABY-LR-PL4-POOL54
#> CompleteAmplificationID
#> <chr>
#> 1 PROJECT1101_ABY-LR-PL4-POOL54_LTR51LC51_VA2020-mix14_VA2020-mix14_lenti_737.pCCLsin.PPT.SFFV.eGFP.Wpre_PL4_NONE_2_NON…
#> Identifying collisions...
#> Processing collisions...
#>
|
| | 0%
|
|============================ | 25%
|
|======================================================= | 50%
|
|================================================================================== | 75%
|
|==============================================================================================================| 100%
#>
#> [1] "--- SUMMARY ---"
#> # A tibble: 4 x 7
#> SubjectID count_integrations_before sumSeqReads_before count_integrations_after sumSeqReads_after
#> <chr> <int> <dbl> <int> <dbl>
#> 1 VA2020-mix10 2092 10099664 1714 5052150
#> 2 VA2020-mix11 1332 15955128 994 7980886
#> 3 VA2020-mix12 896 8172644 614 4088054
#> 4 VA2020-mix13 1584 10035460 1258 5019402
#> delta_integrations delta_seqReads
#> <int> <dbl>
#> 1 378 5047514
#> 2 338 7974242
#> 3 282 4084590
#> 4 326 5016058
#> Finished! You provided a single sequence count as matrix, to re-align other related matrices see ?realign_after_collisions
If you have the “verbose” option active, a console message will remind you to align other matrices if you have them at a later time.
If you’d like to avoid the re-alignment phase, you can call collision removal
on a multi-quantification matrix obtained via the function comparison_matrix
:
# Obtain multi-quantification matrix
multi <- comparison_matrix(matrices)
multi
#> # A tibble: 5,904 x 8
#> chr integration_locus strand GeneName GeneStrand CompleteAmplificationID fragmentEstimate seqCount
#> <chr> <int> <chr> <chr> <chr> <fct> <dbl> <dbl>
#> 1 10 102326217 + HIF1AN + CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 2 10 20775144 + MIR4675 + CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 3 10 24622789 + KIAA1217 + CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 4 10 30105047 + SVIL - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 5 10 32656933 - EPC1 - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 6 10 66717706 + LOC10192… - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 7 10 76391232 - ADK + CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 8 10 85334019 - LOC10537… - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 2.00 6
#> 9 11 107591208 + SLN - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> 10 11 111744171 + FDXACB1 - CLOEXP_POOL6_LTR10LC10_VA2020-mix10_VA… 1.00 1
#> # … with 5,894 more rows
withr::with_options(list(ISAnalytics.widgets = FALSE), {
matrices_processed_multi <- remove_collisions(
x = multi,
association_file =
association_file,
date_col = "SequencingDate",
reads_ratio = 10,
seq_count_col = "seqCount"
)
})
#> Found additional data relative to some projects that are not included in the imported matrices. Here is a summary
#> # A tibble: 1 x 3
#> ProjectID PoolID
#> <chr> <chr>
#> 1 PROJECT1101 ABY-LR-PL4-POOL54
#> CompleteAmplificationID
#> <chr>
#> 1 PROJECT1101_ABY-LR-PL4-POOL54_LTR51LC51_VA2020-mix14_VA2020-mix14_lenti_737.pCCLsin.PPT.SFFV.eGFP.Wpre_PL4_NONE_2_NON…
#> Identifying collisions...
#> Processing collisions...
#>
|
| | 0%
|
|============================ | 25%
|
|======================================================= | 50%
|
|================================================================================== | 75%
|
|==============================================================================================================| 100%
#>
#> [1] "--- SUMMARY ---"
#> # A tibble: 4 x 7
#> SubjectID count_integrations_before sumSeqReads_before count_integrations_after sumSeqReads_after
#> <chr> <int> <dbl> <int> <dbl>
#> 1 VA2020-mix10 2092 10099664 1714 5052150
#> 2 VA2020-mix11 1332 15955128 994 7980886
#> 3 VA2020-mix12 896 8172644 614 4088054
#> 4 VA2020-mix13 1584 10035460 1258 5019402
#> delta_integrations delta_seqReads
#> <int> <dbl>
#> 1 378 5047514
#> 2 338 7974242
#> 3 282 4084590
#> 4 326 5016058
#> Finished!
As you can see, comparison_matrix
produces a single integration matrix
from the named list of single quantification matrices. This is the recommended
approach if you don’t have specific needs as it negates the necessity of
realigning matrices altogether.
If you have opted for the second way, to realign other matrices you have
to call the function realign_after_collisions
, passing as input the
processed sequence count matrix and the named list of other matrices
to realign.
NOTE: the names in the list must be quantification types.
seq_count_proc <- matrices_processed_single
other_matrices <- matrices[!names(matrices) %in% "seqCount"]
# Select only matrices that are not relative to sequence count
other_realigned <- realign_after_collisions(seq_count_proc, other_matrices)
The ISAnalytics package (calabrialab, 2021) was made possible thanks to:
This package was developed using biocthis.
R
session information.
#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.1.0 (2021-05-18)
#> os Ubuntu 20.04.2 LTS
#> system x86_64, linux-gnu
#> ui X11
#> language (EN)
#> collate C
#> ctype en_US.UTF-8
#> tz America/New_York
#> date 2021-06-10
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#> package * version date lib source
#> assertthat 0.2.1 2019-03-21 [2] CRAN (R 4.1.0)
#> BiocManager 1.30.15 2021-05-11 [2] CRAN (R 4.1.0)
#> BiocParallel 1.26.0 2021-06-10 [2] Bioconductor
#> BiocStyle * 2.20.0 2021-06-10 [2] Bioconductor
#> bookdown 0.22 2021-04-22 [2] CRAN (R 4.1.0)
#> bslib 0.2.5.1 2021-05-18 [2] CRAN (R 4.1.0)
#> cellranger 1.1.0 2016-07-27 [2] CRAN (R 4.1.0)
#> cli 2.5.0 2021-04-26 [2] CRAN (R 4.1.0)
#> colorspace 2.0-1 2021-05-04 [2] CRAN (R 4.1.0)
#> crayon 1.4.1 2021-02-08 [2] CRAN (R 4.1.0)
#> data.table 1.14.0 2021-02-21 [2] CRAN (R 4.1.0)
#> DBI 1.1.1 2021-01-15 [2] CRAN (R 4.1.0)
#> digest 0.6.27 2020-10-24 [2] CRAN (R 4.1.0)
#> dplyr 1.0.6 2021-05-05 [2] CRAN (R 4.1.0)
#> ellipsis 0.3.2 2021-04-29 [2] CRAN (R 4.1.0)
#> evaluate 0.14 2019-05-28 [2] CRAN (R 4.1.0)
#> fansi 0.5.0 2021-05-25 [2] CRAN (R 4.1.0)
#> fs 1.5.0 2020-07-31 [2] CRAN (R 4.1.0)
#> generics 0.1.0 2020-10-31 [2] CRAN (R 4.1.0)
#> ggplot2 3.3.3 2020-12-30 [2] CRAN (R 4.1.0)
#> ggrepel 0.9.1 2021-01-15 [2] CRAN (R 4.1.0)
#> glue 1.4.2 2020-08-27 [2] CRAN (R 4.1.0)
#> gtable 0.3.0 2019-03-25 [2] CRAN (R 4.1.0)
#> highr 0.9 2021-04-16 [2] CRAN (R 4.1.0)
#> hms 1.1.0 2021-05-17 [2] CRAN (R 4.1.0)
#> htmltools 0.5.1.1 2021-01-22 [2] CRAN (R 4.1.0)
#> htmlwidgets 1.5.3 2020-12-10 [2] CRAN (R 4.1.0)
#> httr 1.4.2 2020-07-20 [2] CRAN (R 4.1.0)
#> ISAnalytics * 1.2.1 2021-06-10 [1] Bioconductor
#> jquerylib 0.1.4 2021-04-26 [2] CRAN (R 4.1.0)
#> jsonlite 1.7.2 2020-12-09 [2] CRAN (R 4.1.0)
#> knitcitations * 1.0.12 2021-01-10 [2] CRAN (R 4.1.0)
#> knitr 1.33 2021-04-24 [2] CRAN (R 4.1.0)
#> lattice 0.20-44 2021-05-02 [2] CRAN (R 4.1.0)
#> lazyeval 0.2.2 2019-03-15 [2] CRAN (R 4.1.0)
#> lifecycle 1.0.0 2021-02-15 [2] CRAN (R 4.1.0)
#> lubridate 1.7.10 2021-02-26 [2] CRAN (R 4.1.0)
#> magrittr * 2.0.1 2020-11-17 [2] CRAN (R 4.1.0)
#> mnormt 2.0.2 2020-09-01 [2] CRAN (R 4.1.0)
#> munsell 0.5.0 2018-06-12 [2] CRAN (R 4.1.0)
#> nlme 3.1-152 2021-02-04 [2] CRAN (R 4.1.0)
#> pillar 1.6.1 2021-05-16 [2] CRAN (R 4.1.0)
#> pkgconfig 2.0.3 2019-09-22 [2] CRAN (R 4.1.0)
#> plotly 4.9.4 2021-06-08 [2] CRAN (R 4.1.0)
#> plyr 1.8.6 2020-03-03 [2] CRAN (R 4.1.0)
#> ps 1.6.0 2021-02-28 [2] CRAN (R 4.1.0)
#> psych 2.1.3 2021-03-27 [2] CRAN (R 4.1.0)
#> purrr 0.3.4 2020-04-17 [2] CRAN (R 4.1.0)
#> R6 2.5.0 2020-10-28 [2] CRAN (R 4.1.0)
#> Rcapture 1.4-3 2019-12-16 [2] CRAN (R 4.1.0)
#> Rcpp 1.0.6 2021-01-15 [2] CRAN (R 4.1.0)
#> reactable 0.2.3 2020-10-04 [2] CRAN (R 4.1.0)
#> readr 1.4.0 2020-10-05 [2] CRAN (R 4.1.0)
#> readxl 1.3.1 2019-03-13 [2] CRAN (R 4.1.0)
#> RefManageR 1.3.0 2020-11-13 [2] CRAN (R 4.1.0)
#> rlang 0.4.11 2021-04-30 [2] CRAN (R 4.1.0)
#> rmarkdown 2.8 2021-05-07 [2] CRAN (R 4.1.0)
#> rstudioapi 0.13 2020-11-12 [2] CRAN (R 4.1.0)
#> sass 0.4.0 2021-05-12 [2] CRAN (R 4.1.0)
#> scales 1.1.1 2020-05-11 [2] CRAN (R 4.1.0)
#> sessioninfo * 1.1.1 2018-11-05 [2] CRAN (R 4.1.0)
#> stringi 1.6.2 2021-05-17 [2] CRAN (R 4.1.0)
#> stringr 1.4.0 2019-02-10 [2] CRAN (R 4.1.0)
#> tibble 3.1.2 2021-05-16 [2] CRAN (R 4.1.0)
#> tidyr 1.1.3 2021-03-03 [2] CRAN (R 4.1.0)
#> tidyselect 1.1.1 2021-04-30 [2] CRAN (R 4.1.0)
#> tmvnsim 1.0-2 2016-12-15 [2] CRAN (R 4.1.0)
#> upsetjs 1.9.0 2021-02-15 [2] CRAN (R 4.1.0)
#> utf8 1.2.1 2021-03-12 [2] CRAN (R 4.1.0)
#> vctrs 0.3.8 2021-04-29 [2] CRAN (R 4.1.0)
#> viridisLite 0.4.0 2021-04-13 [2] CRAN (R 4.1.0)
#> withr 2.4.2 2021-04-18 [2] CRAN (R 4.1.0)
#> xfun 0.23 2021-05-15 [2] CRAN (R 4.1.0)
#> xml2 1.3.2 2020-04-23 [2] CRAN (R 4.1.0)
#> yaml 2.2.1 2020-02-01 [2] CRAN (R 4.1.0)
#> zip 2.2.0 2021-05-31 [2] CRAN (R 4.1.0)
#>
#> [1] /tmp/RtmpnRhy18/Rinst2bb03b7368fd6d
#> [2] /home/biocbuild/bbs-3.13-bioc/R/library
This vignette was generated using BiocStyle (Oleś, 2021) with knitr (Xie, 2021) and rmarkdown (Allaire, Xie, McPherson, Luraschi, et al., 2021) running behind the scenes.
Citations made with knitcitations (Boettiger, 2021).
[1] J. Allaire, Y. Xie, J. McPherson, J. Luraschi, et al. rmarkdown: Dynamic Documents for R. R package version 2.8. 2021. <URL: https://github.com/rstudio/rmarkdown>.
[2] C. Boettiger. knitcitations: Citations for ‘Knitr’ Markdown Files. R package version 1.0.12. 2021. <URL: https://CRAN.R-project.org/package=knitcitations>.
[3] G. Csárdi, R. core, H. Wickham, W. Chang, et al. sessioninfo: R Session Information. R package version 1.1.1. 2018. <URL: https://CRAN.R-project.org/package=sessioninfo>.
[4] A. Oleś. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.20.0. 2021. <URL: https://github.com/Bioconductor/BiocStyle>.
[5] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2021. <URL: https://www.R-project.org/>.
[6] H. Wickham. “testthat: Get Started with Testing”. In: The R Journal 3 (2011), pp. 5-10. <URL: https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf>.
[7] Y. Xie. knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.33. 2021. <URL: https://yihui.org/knitr/>.
[8] calabrialab. Analyze gene therapy vector insertion sites data identified from genomics next generation sequencing reads for clonal tracking studies. https://github.com/calabrialab/ISAnalytics - R package version 1.2.1. 2021. DOI: 10.18129/B9.bioc.ISAnalytics. <URL: http://www.bioconductor.org/packages/ISAnalytics>.