Interval statistics
-July 04 2024
+August 19 2024
Source:vignettes/interval-stats.Rmd
interval-stats.Rmd
Distance metrics#> ℹ Row 1 of `x` matches multiple rows in `y`. #> ℹ Row 29037 of `y` matches multiple rows in `x`. #> ℹ If a many-to-many relationship is expected, set `relationship = -#> "many-to-many"` to silence this warning.
-
+#> "many-to-many"` to silence this warning.
+
ggplot(res_signif, aes(x = value, color = type)) +
stat_ecdf() +
facet_grid(stat ~ name) +
@@ -302,7 +303,7 @@ Projection testFirst we’ll extract 5 kb regions upstream of the transcription start
sites to represent the promoter regions for coding and non-coding
genes.
-
+
# create intervals 5kb upstream of tss representing promoters
promoters <-
bed_flank(genes, genome, left = 5000, strand = TRUE) |>
@@ -327,9 +328,8 @@ Projection test#> 8 chr22 17560848 17565848 coding 0 +
#> 9 chr22 17602213 17607213 coding 0 -
#> 10 chr22 17602257 17607257 coding 0 -
-#> # ℹ 963 more rows
-
-
+#> # ℹ 963 more rows
+
promoters_ncoding
#> # A tibble: 294 × 6
#> chrom start end name score strand
@@ -347,7 +347,7 @@ Projection test#> # ℹ 284 more rows
Next we’ll apply the bed_projection()
test for each
repeat class for both coding and non-coding regions.
-
+
# function to apply bed_projection to groups
projection_stats <- function(x, y, genome, group_var, type = NA) {
group_by(x, !!rlang::sym(group_var)) |>
@@ -398,7 +398,7 @@ Projection testlower_tail = TRUE
column indicates that the query intervals
are depleted, whereas lower_tail = FALSE
indicates that the
query intervals are enriched.
-
+
library(DT)
# find and show top 5 most significant repeats
@@ -424,7 +424,7 @@ Projection test
valr overview
- 2024-07-04
+ 2024-08-19
Source: vignettes/valr.Rmd
valr.Rmd
@@ -181,9 +183,8 @@ Interval coordinates#> # A tibble: 1 × 3
#> chrom start end
#> <chr> <dbl> <dbl>
-#> 1 chr1 0 100
-
-
+#> 1 chr1 0 100
+
# single base-pair intervals
bases <- tribble(
~chrom, ~start, ~end,
@@ -206,7 +207,7 @@ Remote databasesRemote databases can be accessed with db_ucsc()
(to
access the UCSC Browser) and db_ensembl()
(to access
Ensembl databases).
-
+
# access the `refGene` tbl on the `hg38` assembly.
if (require(RMariaDB)) {
ucsc <- db_ucsc("hg38")
@@ -221,7 +222,7 @@ Visual documentationbed_intersect()
:
-
+
x <- tribble(
~chrom, ~start, ~end,
"chr1", 25, 50,
@@ -236,7 +237,7 @@ Visual documentationbed_glyph(bed_intersect(x, y))
And this glyph illustrates bed_merge()
:
-
+
x <- tribble(
~chrom, ~start, ~end,
"chr1", 1, 50,
@@ -256,7 +257,7 @@ Grouping data
+
x <- tribble(
~chrom, ~start, ~end, ~strand,
"chr1", 1, 100, "+",
@@ -283,7 +284,7 @@ Grouping data#> 2 chr1 50 150 + 50 125 + 75
Comparisons between intervals on opposite strands are done using the
flip_strands()
function:
-
+
x <- group_by(x, strand)
y <- flip_strands(y)
@@ -303,11 +304,11 @@ Grouping dataColumn specification
Columns in BEDtools
are referred to by position:
-# calculate the mean of column 6 for intervals in `b` that overlap with `a`
-bedtools map -a a.bed -b b.bed -c 6 -o mean
+# calculate the mean of column 6 for intervals in `b` that overlap with `a`
+bedtools map -a a.bed -b b.bed -c 6 -o mean
In valr
, columns are referred to by name and can be used
in multiple name/value expressions for summaries.
-
+
# calculate the mean and variance for a `value` column
bed_map(a, b, .mean = mean(value), .var = var(value))
@@ -325,7 +326,7 @@ Meta-analysis
+
# `valr_example()` identifies the path of example files
bedfile <- valr_example("genes.hg19.chr22.bed.gz")
genomefile <- valr_example("hg19.chrom.sizes.gz")
@@ -339,7 +340,7 @@ Meta-analysisbed_makewindows()
with reversed
window
numbers.
-
+
# generate 1 bp TSS intervals, `+` strand only
tss <- genes |>
filter(strand == "+") |>
@@ -375,7 +376,7 @@ Meta-analysis
+
# map signals to TSS regions and calculate summary statistics.
res <- bed_map(x, y, win_sum = sum(value, na.rm = TRUE)) |>
group_by(.win_id) |>
@@ -401,7 +402,7 @@ Meta-analysis#> # ℹ 31 more rows
Finally, these summary statistics are used to construct a plot that
illustrates histone density surrounding TSSs.
-
+
x_labels <- seq(
-region_size,
region_size,
@@ -461,7 +462,7 @@ Related work
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/authors.html b/dev/authors.html
index ef3a4287..f1c75212 100644
--- a/dev/authors.html
+++ b/dev/authors.html
@@ -1,5 +1,5 @@
-Authors and Citation • valr
+Authors and Citation • valr
Skip to contents
@@ -53,7 +53,7 @@ Authors
- RNA Bioscience Initiative. Funder, copyright holder.
@@ -85,7 +85,7 @@ Citation
diff --git a/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G04pIo.woff2 b/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G04pIo.woff2
new file mode 100644
index 00000000..7f0ce7c2
Binary files /dev/null and b/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G04pIo.woff2 differ
diff --git a/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G07JIoSwQ.woff2 b/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G07JIoSwQ.woff2
new file mode 100644
index 00000000..466bca17
Binary files /dev/null and b/dev/deps/Atkinson_Hyperlegible-0.4.9/9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G07JIoSwQ.woff2 differ
diff --git a/dev/deps/Atkinson_Hyperlegible-0.4.9/font.css b/dev/deps/Atkinson_Hyperlegible-0.4.9/font.css
new file mode 100644
index 00000000..a01646ca
--- /dev/null
+++ b/dev/deps/Atkinson_Hyperlegible-0.4.9/font.css
@@ -0,0 +1,18 @@
+/* latin-ext */
+@font-face {
+ font-family: 'Atkinson Hyperlegible';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G07JIoSwQ.woff2) format('woff2');
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Atkinson Hyperlegible';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(9Bt23C1KxNDXMspQ1lPyU89-1h6ONRlW45G04pIo.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
diff --git a/dev/deps/Fira_Code-0.4.9/font.css b/dev/deps/Fira_Code-0.4.9/font.css
new file mode 100644
index 00000000..533f7edf
--- /dev/null
+++ b/dev/deps/Fira_Code-0.4.9/font.css
@@ -0,0 +1,54 @@
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2) format('woff2');
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2
new file mode 100644
index 00000000..b8a2908a
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2 differ
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2
new file mode 100644
index 00000000..0d2103fd
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2 differ
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2
new file mode 100644
index 00000000..00c8383e
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2 differ
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2
new file mode 100644
index 00000000..eb5b302f
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2 differ
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2
new file mode 100644
index 00000000..8bd4abb2
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2 differ
diff --git a/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2 b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2
new file mode 100644
index 00000000..06b6f7a6
Binary files /dev/null and b/dev/deps/Fira_Code-0.4.9/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2 differ
diff --git a/dev/deps/bootstrap-5.3.1/bootstrap.min.css b/dev/deps/bootstrap-5.3.1/bootstrap.min.css
index bef3c14c..7351e56e 100644
--- a/dev/deps/bootstrap-5.3.1/bootstrap.min.css
+++ b/dev/deps/bootstrap-5.3.1/bootstrap.min.css
@@ -2,4 +2,4 @@
* Bootstrap v5.3.1 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */:root,[data-bs-theme="light"]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #dee2e6;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 222,226,230;--bs-primary-rgb: 13,110,253;--bs-secondary-rgb: 108,117,125;--bs-success-rgb: 25,135,84;--bs-info-rgb: 13,202,240;--bs-warning-rgb: 255,193,7;--bs-danger-rgb: 220,53,69;--bs-light-rgb: 248,249,250;--bs-dark-rgb: 33,37,41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255,255,255;--bs-black-rgb: 0,0,0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33,37,41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255,255,255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0,0,0;--bs-secondary-color: rgba(33,37,41,0.75);--bs-secondary-color-rgb: 33,37,41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233,236,239;--bs-tertiary-color: rgba(33,37,41,0.5);--bs-tertiary-color-rgb: 33,37,41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248,249,250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13,110,253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10,88,202;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0,0,0,0.175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0,0,0,0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0,0,0,0.075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13,110,253,0.25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme="dark"]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222,226,230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33,37,41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255,255,255;--bs-secondary-color: rgba(222,226,230,0.75);--bs-secondary-color-rgb: 222,226,230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52,58,64;--bs-tertiary-color: rgba(222,226,230,0.5);--bs-tertiary-color-rgb: 222,226,230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43,48,53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110,168,254;--bs-link-hover-color-rgb: 139,185,254;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-border-color: #495057;--bs-border-color-translucent: rgba(255,255,255,0.15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;color:RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.375rem}pre code{background-color:transparent;font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);border-radius:.375rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;-webkit-flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media (min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media (min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media (min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media (min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media (min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.col{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0,0,0,0.05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0,0,0,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0,0,0,0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #bacbe6;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #bcd0c7;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #badce3;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme="dark"] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type="checkbox"],.shiny-input-container .checkbox input[type="checkbox"],.shiny-input-container .checkbox-inline input[type="checkbox"],.shiny-input-container .radio input[type="checkbox"],.shiny-input-container .radio-inline input[type="checkbox"]{border-radius:.25em}.form-check-input[type="radio"],.shiny-input-container .checkbox input[type="radio"],.shiny-input-container .checkbox-inline input[type="radio"],.shiny-input-container .radio input[type="radio"],.shiny-input-container .radio-inline input[type="radio"]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type="checkbox"],.shiny-input-container .checkbox input:checked[type="checkbox"],.shiny-input-container .checkbox-inline input:checked[type="checkbox"],.shiny-input-container .radio input:checked[type="checkbox"],.shiny-input-container .radio-inline input:checked[type="checkbox"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type="radio"],.shiny-input-container .checkbox input:checked[type="radio"],.shiny-input-container .checkbox-inline input:checked[type="radio"],.shiny-input-container .radio input:checked[type="radio"],.shiny-input-container .radio-inline input:checked[type="radio"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox-inline input[type="checkbox"]:indeterminate,.shiny-input-container .radio input[type="checkbox"]:indeterminate,.shiny-input-container .radio-inline input[type="checkbox"]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255,255,255,0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n + 3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n + 4),.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #e3e6ea;--bs-btn-hover-border-color: #e1e5e9;--bs-btn-focus-shadow-rgb: 189,192,196;--bs-btn-active-color: #000;--bs-btn-active-bg: #e5e8eb;--bs-btn-active-border-color: #e1e5e9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #dee2e6;--bs-btn-disabled-border-color: #dee2e6}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49,132,253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130,138,145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60,153,110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11,172,204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217,164,6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225,83,97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211,212,213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66,70,73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-default{--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222,226,230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13,110,253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108,117,125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25,135,84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13,202,240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255,193,7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220,53,69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248,249,250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33,37,41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49,132,253;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255,255,255,0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n + 3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833,37,41,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme="dark"]{--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.55);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.75);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.25);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme="dark"] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13,110,253,0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme="dark"] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13,110,253,0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size:.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:.75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13,110,253,0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme="dark"] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:.875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme="dark"] .carousel .carousel-control-prev-icon,[data-bs-theme="dark"] .carousel .carousel-control-next-icon,[data-bs-theme="dark"].carousel .carousel-control-prev-icon,[data-bs-theme="dark"].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target],[data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme="dark"] .carousel .carousel-caption,[data-bs-theme="dark"].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(229,232,235, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(229,232,235, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10,88,202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86,94,100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20,108,67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20,108,67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61,213,243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61,213,243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255,205,57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176,42,55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249,250,251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26,30,33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,0.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,0.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: .1}.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25{--bs-link-opacity: .25}.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50{--bs-link-opacity: .5}.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75{--bs-link-opacity: .75}.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: .1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25{--bs-link-underline-opacity: .25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50{--bs-link-underline-opacity: .5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75{--bs-link-underline-opacity: .75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.table th[align=left]{text-align:left}.table th[align=right]{text-align:right}.table th[align=center]{text-align:center}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre,.bslib-gap-spacing>.shiny-html-output>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-html-output>.form-group,.bslib-gap-spacing>.shiny-html-output>p,.bslib-gap-spacing>.shiny-html-output>pre,.bslib-gap-spacing>.shiny-panel-conditional>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-panel-conditional>.form-group,.bslib-gap-spacing>.shiny-panel-conditional>p,.bslib-gap-spacing>.shiny-panel-conditional>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #0d6efd}.bg-primary{--bslib-color-bg: #0d6efd;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.row>main{max-width:50rem;overflow-wrap:break-word;hyphens:auto}@media (min-width: 1200px) and (max-width: 1399.98px){.container .row{justify-content:space-evenly}}@media (min-width: 1400px){body{font-size:18px}.col-md-3{margin-left:5rem}}.navbar{background:RGBA(var(--bs-body-color-rgb), 0.1);background:color-mix(in oklab, color-mix(in oklab, var(--bs-body-bg) 95%, var(--bs-primary)) 95%, var(--bs-body-color));line-height:initial}.nav-item .nav-link{border-radius:.375rem}.nav-item.active .nav-link{background:RGBA(var(--bs-body-color-rgb), 0.1)}.nav-item .nav-link:hover{background:RGBA(var(--bs-primary-rgb), 0.1)}.navbar>.container{align-items:baseline;-webkit-align-items:baseline}input[type="search"]{width:12rem}[aria-labelledby=dropdown-lightswitch] span.fa{opacity:0.5}@media (max-width: 991.98px){.algolia-autocomplete,input[type="search"],#navbar .dropdown-menu{width:100%}#navbar .dropdown-item{white-space:normal}input[type="search"]{margin:0.25rem 0}}.headroom{will-change:transform;transition:transform 400ms ease}.headroom--pinned{transform:translateY(0%)}.headroom--unpinned{transform:translateY(-100%)}.row>main,.row>aside{margin-top:56px}html,body{scroll-padding:56px}@media (min-width: 576px){#toc{position:sticky;top:56px;max-height:calc(100vh - 56px - 1rem);overflow-y:auto}}aside h2,aside .h2{margin-top:1.5rem;font-size:1.25rem}aside .roles{color:RGBA(var(--bs-body-color-rgb), 0.8)}aside .list-unstyled li{margin-bottom:0.5rem}aside .dev-status .list-unstyled li{margin-bottom:0.1rem}@media (max-width: 767.98px){.row>aside{margin:0.5rem;width:calc(100vw - 1rem);background-color:RGBA(var(--bs-body-color-rgb), 0.1);border-color:var(--bs-border-color);border-radius:.375rem}.row>aside h2:first-child,.row>aside .h2:first-child{margin-top:1rem}}body{position:relative}#toc>.nav{margin-bottom:1rem}#toc>.nav a.nav-link{color:inherit;padding:0.25rem 0.5rem;margin-bottom:2px;border-radius:.375rem}#toc>.nav a.nav-link:hover,#toc>.nav a.nav-link:focus{background-color:RGBA(var(--bs-primary-rgb), 0.1)}#toc>.nav a.nav-link.active{background-color:RGBA(var(--bs-body-color-rgb), 0.1)}#toc>.nav .nav a.nav-link{margin-left:0.5rem}#toc>.nav .nav{display:none !important}#toc>.nav a.active+.nav{display:flex !important}footer{margin:1rem 0 1rem 0;padding-top:1rem;font-size:.875em;border-top:1px solid #dee2e6;background:rgba(0,0,0,0);color:RGBA(var(--bs-body-color-rgb), 0.8);display:flex;column-gap:1rem}@media (max-width: 575.98px){footer{flex-direction:column}}@media (min-width: 576px){footer .pkgdown-footer-right{text-align:right}}footer div{flex:1 1 auto}html,body{height:100%}body>.container{min-height:100%;display:flex;flex-direction:column}body>.container .row{flex:1 0 auto}main img{max-width:100%;height:auto}main table{display:block;overflow:auto}body{font-display:fallback}.page-header{border-bottom:1px solid var(--bs-border-color);padding-bottom:0.5rem;margin-bottom:0.5rem;margin-top:1.5rem}dl{margin-bottom:0}dd{padding-left:1.5rem;margin-bottom:0.25rem}h2,.h2{font-size:1.75rem;margin-top:1.5rem}h3,.h3{font-size:1.25rem;margin-top:1rem;font-weight:bold}h4,.h4{font-size:1.1rem;font-weight:bold}h5,.h5{font-size:1rem;font-weight:bold}summary{margin-bottom:0.5rem}details{margin-bottom:1rem}.html-widget{margin-bottom:1rem}a.anchor{display:none;margin-left:2px;vertical-align:top;width:Min(0.9em, 20px);height:Min(0.9em, 20px);background-image:url(../../link.svg);background-repeat:no-repeat;background-size:Min(0.9em, 20px) Min(0.9em, 20px);background-position:center center}h2:hover .anchor,.h2:hover .anchor,h2:target .anchor,.h2:target .anchor,h3:hover .anchor,.h3:hover .anchor,h3:target .anchor,.h3:target .anchor,h4:hover .anchor,.h4:hover .anchor,h4:target .anchor,.h4:target .anchor,h5:hover .anchor,.h5:hover .anchor,h5:target .anchor,.h5:target .anchor,h6:hover .anchor,.h6:hover .anchor,h6:target .anchor,.h6:target .anchor,dt:hover .anchor,dt:target .anchor{display:inline-block}dt:target,dt:target+dd{border-left:0.25rem solid var(--bs-primary);margin-left:-0.75rem}dt:target{padding-left:0.5rem}dt:target+dd{padding-left:2rem}.orcid{color:#A6CE39;margin-right:4px}.fab{font-family:"Font Awesome 5 Brands" !important}img.logo{float:right;width:100px;margin-left:30px}.template-home img.logo{width:120px}@media (max-width: 575.98px){img.logo{width:80px}}@media (min-width: 576px){.page-header{min-height:88px}.template-home .page-header{min-height:104px}}.line-block{margin-bottom:1rem}.template-reference-index dt{font-weight:normal}.template-reference-index code{word-wrap:normal}.icon{float:right}.icon img{width:40px}a[href='#main']{position:absolute;margin:4px;padding:0.75rem;background-color:var(--bs-body-bg);text-decoration:none;z-index:2000}.lifecycle{color:var(--bs-secondary-color);background-color:var(--bs-secondary-bg);border-radius:5px}.lifecycle-stable{background-color:#108001;color:var(--bs-white)}.lifecycle-superseded{background-color:#074080;color:var(--bs-white)}.lifecycle-experimental,.lifecycle-deprecated{background-color:#fd8008;color:var(--bs-black)}a.footnote-ref{cursor:pointer}.popover{width:Min(100vw, 32rem);font-size:0.9rem;box-shadow:4px 4px 8px RGBA(var(--bs-body-color-rgb), 0.3)}.popover-body{padding:0.75rem}.popover-body p:last-child{margin-bottom:0}.tab-content{padding:1rem}.tabset-pills .tab-content{border:solid 1px #e5e5e5}.tab-content{display:flex}.tab-content>.tab-pane{display:block;visibility:hidden;margin-right:-100%;width:100%}.tab-content>.active{visibility:visible}div.csl-entry{clear:both}.hanging-indent div.csl-entry{margin-left:2em;text-indent:-2em}div.csl-left-margin{min-width:2em;float:left}div.csl-right-inline{margin-left:2em;padding-left:1em}div.csl-indent{margin-left:2em}pre,pre code{word-wrap:normal}[data-bs-theme="dark"] pre,[data-bs-theme="dark"] code{background-color:RGBA(var(--bs-body-color-rgb), 0.1)}[data-bs-theme="dark"] pre code{background:transparent}code{overflow-wrap:break-word}.hasCopyButton{position:relative}.btn-copy-ex{position:absolute;right:5px;top:5px;visibility:hidden}.hasCopyButton:hover button.btn-copy-ex{visibility:visible}pre{padding:0.75rem}pre div.gt-table{white-space:normal;margin-top:1rem}@media (max-width: 575.98px){div>div>pre{margin-left:calc(var(--bs-gutter-x) * -.5);margin-right:calc(var(--bs-gutter-x) * -.5);border-radius:0;padding-left:1rem;padding-right:1rem}.btn-copy-ex{right:calc(var(--bs-gutter-x) * -.5 + 5px)}}code a:any-link{color:inherit;text-decoration-color:RGBA(var(--bs-body-color-rgb), 0.6)}pre code{padding:0;background:transparent}pre code .error,pre code .warning{font-weight:bolder}pre .img img,pre .r-plt img{margin:5px 0;background-color:#fff}[data-bs-theme="dark"] pre img{opacity:0.66;transition:opacity 250ms ease-in-out}[data-bs-theme="dark"] pre img:hover,[data-bs-theme="dark"] pre img:focus,[data-bs-theme="dark"] pre img:active{opacity:1}@media print{code a:link:after,code a:visited:after{content:""}}a.sourceLine:hover{text-decoration:none}mark,.mark{background:linear-gradient(-100deg, RGBA(var(--bs-info-rgb), 0.2), RGBA(var(--bs-info-rgb), 0.7) 95%, RGBA(var(--bs-info-rgb), 0.1))}.algolia-autocomplete .aa-dropdown-menu{margin-top:0.5rem;padding:0.5rem 0.25rem;width:MAX(100%, 20rem);max-height:50vh;overflow-y:auto;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.375rem}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;font-size:1rem;padding:0.5rem 0.25rem;line-height:1.3}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion:hover{background-color:var(--bs-tertiary-bg);color:var(--bs-body-color)}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-details{text-decoration:underline;display:inline}span.smallcaps{font-variant:small-caps}ul.task-list{list-style:none}ul.task-list li input[type="checkbox"]{width:0.8em;margin:0 0.8em 0.2em -1em;vertical-align:middle}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:0.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:0.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:0.5em}figure>figcaption.quarto-float-caption-top{margin-top:0.5em}:root{--mermaid-bg-color: transparent;--mermaid-edge-color: var(--bs-secondary);--mermaid-fg-color: var(--bs-body-color);--mermaid-fg-color--lighter: RGBA(var(--bs-body-color-rgb), 0.9);--mermaid-fg-color--lightest: RGBA(var(--bs-body-color-rgb), 0.8);--mermaid-font-family: var(--bs-body-font-family);--mermaid-label-bg-color: var(--bs-primary);--mermaid-label-fg-color: var(--bs-body-color);--mermaid-node-bg-color: RGBA(var(--bs-primary-rgb), 0.1);--mermaid-node-fg-color: var(--bs-primary)}pre{background-color:#f1f3f5}pre code{color:#003B4F}pre code span.al{color:#AD0000}pre code span.an{color:#5E5E5E}pre code span.at{color:#657422}pre code span.bn{color:#AD0000}pre code span.cf{color:#003B4F}pre code span.ch{color:#20794D}pre code span.cn{color:#8f5902}pre code span.co{color:#5E5E5E}pre code span.cv{color:#5E5E5E;font-style:italic}pre code span.do{color:#5E5E5E;font-style:italic}pre code span.dt{color:#AD0000}pre code span.dv{color:#AD0000}pre code span.er{color:#AD0000}pre code span.fl{color:#AD0000}pre code span.fu{color:#4758AB}pre code span.im{color:#00769E}pre code span.in{color:#5E5E5E}pre code span.kw{color:#003B4F}pre code span.op{color:#5E5E5E}pre code span.ot{color:#003B4F}pre code span.pp{color:#AD0000}pre code span.sc{color:#5E5E5E}pre code span.ss{color:#20794D}pre code span.st{color:#20794D}pre code span.va{color:#111111}pre code span.vs{color:#20794D}pre code span.wa{color:#5E5E5E;font-style:italic}mark,.mark{background:linear-gradient(-135deg, rgba(182,212,254,0.2), rgba(182,212,254,0.7) 95%, rgba(182,212,254,0.1))}.text-muted{color:#bbb}[data-bs-theme="dark"] pre code{color:#f8f8f2}[data-bs-theme="dark"] pre code span.al{color:#f07178;background-color:#2a0f15;font-weight:bold}[data-bs-theme="dark"] pre code span.an{color:#d4d0ab}[data-bs-theme="dark"] pre code span.at{color:#00e0e0}[data-bs-theme="dark"] pre code span.bn{color:#d4d0ab}[data-bs-theme="dark"] pre code span.bu{color:#abe338}[data-bs-theme="dark"] pre code span.cf{color:#ffa07a;font-weight:bold}[data-bs-theme="dark"] pre code span.ch{color:#abe338}[data-bs-theme="dark"] pre code span.cn{color:#ffd700}[data-bs-theme="dark"] pre code span.co{color:#f8f8f2;font-style:italic}[data-bs-theme="dark"] pre code span.cv{color:#ffd700}[data-bs-theme="dark"] pre code span.do{color:#f8f8f2}[data-bs-theme="dark"] pre code span.dt{color:#ffa07a}[data-bs-theme="dark"] pre code span.dv{color:#d4d0ab}[data-bs-theme="dark"] pre code span.er{color:#f07178;text-decoration:underline}[data-bs-theme="dark"] pre code span.ex{color:#00e0e0;font-weight:bold}[data-bs-theme="dark"] pre code span.fl{color:#d4d0ab}[data-bs-theme="dark"] pre code span.fu{color:#ffa07a}[data-bs-theme="dark"] pre code span.im{color:#abe338}[data-bs-theme="dark"] pre code span.in{color:#d4d0ab}[data-bs-theme="dark"] pre code span.kw{color:#ffa07a;font-weight:bold}[data-bs-theme="dark"] pre code span.op{color:#ffa07a}[data-bs-theme="dark"] pre code span.ot{color:#00e0e0}[data-bs-theme="dark"] pre code span.pp{color:#dcc6e0}[data-bs-theme="dark"] pre code span.re{color:#00e0e0;background-color:#f8f8f2}[data-bs-theme="dark"] pre code span.sc{color:#abe338}[data-bs-theme="dark"] pre code span.ss{color:#abe338}[data-bs-theme="dark"] pre code span.st{color:#abe338}[data-bs-theme="dark"] pre code span.va{color:#00e0e0}[data-bs-theme="dark"] pre code span.vs{color:#abe338}[data-bs-theme="dark"] pre code span.wa{color:#dcc6e0}
+ */:root,[data-bs-theme="light"]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #dee2e6;--bs-primary: #565A5C;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 222,226,230;--bs-primary-rgb: 86,90,92;--bs-secondary-rgb: 108,117,125;--bs-success-rgb: 25,135,84;--bs-info-rgb: 13,202,240;--bs-warning-rgb: 255,193,7;--bs-danger-rgb: 220,53,69;--bs-light-rgb: 248,249,250;--bs-dark-rgb: 33,37,41;--bs-primary-text-emphasis: #222425;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #dddede;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #bbbdbe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255,255,255;--bs-black-rgb: 0,0,0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: "Fira Code";--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: "Atkinson Hyperlegible";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33,37,41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255,255,255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0,0,0;--bs-secondary-color: rgba(33,37,41,0.75);--bs-secondary-color-rgb: 33,37,41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233,236,239;--bs-tertiary-color: rgba(33,37,41,0.5);--bs-tertiary-color-rgb: 33,37,41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248,249,250;--bs-heading-color: inherit;--bs-link-color: #565A5C;--bs-link-color-rgb: 86,90,92;--bs-link-decoration: underline dotted;--bs-link-hover-color: #45484a;--bs-link-hover-color-rgb: 69,72,74;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0,0,0,0.175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0,0,0,0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0,0,0,0.075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(86,90,92,0.25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme="dark"]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222,226,230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33,37,41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255,255,255;--bs-secondary-color: rgba(222,226,230,0.75);--bs-secondary-color-rgb: 222,226,230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52,58,64;--bs-tertiary-color: rgba(222,226,230,0.5);--bs-tertiary-color-rgb: 222,226,230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43,48,53;--bs-primary-text-emphasis: #9a9c9d;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #111212;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #343637;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #9a9c9d;--bs-link-hover-color: #aeb0b1;--bs-link-color-rgb: 154,156,157;--bs-link-hover-color-rgb: 174,176,177;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-border-color: #495057;--bs-border-color-translucent: rgba(255,255,255,0.15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;color:RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.375rem}pre code{background-color:transparent;font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);border-radius:.375rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;-webkit-flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media (min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media (min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media (min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media (min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media (min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.col{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0,0,0,0.05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0,0,0,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0,0,0,0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #dddede;--bs-table-border-color: #c7c8c8;--bs-table-striped-bg: #d2d3d3;--bs-table-striped-color: #000;--bs-table-active-bg: #c7c8c8;--bs-table-active-color: #000;--bs-table-hover-bg: #cccdcd;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #bcd0c7;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #badce3;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#abadae;outline:0;box-shadow:0 0 0 .25rem rgba(86,90,92,0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#abadae;outline:0;box-shadow:0 0 0 .25rem rgba(86,90,92,0.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme="dark"] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type="checkbox"],.shiny-input-container .checkbox input[type="checkbox"],.shiny-input-container .checkbox-inline input[type="checkbox"],.shiny-input-container .radio input[type="checkbox"],.shiny-input-container .radio-inline input[type="checkbox"]{border-radius:.25em}.form-check-input[type="radio"],.shiny-input-container .checkbox input[type="radio"],.shiny-input-container .checkbox-inline input[type="radio"],.shiny-input-container .radio input[type="radio"],.shiny-input-container .radio-inline input[type="radio"]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#abadae;outline:0;box-shadow:0 0 0 .25rem rgba(86,90,92,0.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#565A5C;border-color:#565A5C}.form-check-input:checked[type="checkbox"],.shiny-input-container .checkbox input:checked[type="checkbox"],.shiny-input-container .checkbox-inline input:checked[type="checkbox"],.shiny-input-container .radio input:checked[type="checkbox"],.shiny-input-container .radio-inline input:checked[type="checkbox"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type="radio"],.shiny-input-container .checkbox input:checked[type="radio"],.shiny-input-container .checkbox-inline input:checked[type="radio"],.shiny-input-container .radio input:checked[type="radio"],.shiny-input-container .radio-inline input:checked[type="radio"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox-inline input[type="checkbox"]:indeterminate,.shiny-input-container .radio input[type="checkbox"]:indeterminate,.shiny-input-container .radio-inline input[type="checkbox"]:indeterminate{background-color:#565A5C;border-color:#565A5C;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23abadae'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255,255,255,0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(86,90,92,0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(86,90,92,0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#565A5C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#cccece}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#565A5C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#cccece}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n + 3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n + 4),.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #e3e6ea;--bs-btn-hover-border-color: #e1e5e9;--bs-btn-focus-shadow-rgb: 189,192,196;--bs-btn-active-color: #000;--bs-btn-active-bg: #e5e8eb;--bs-btn-active-border-color: #e1e5e9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #dee2e6;--bs-btn-disabled-border-color: #dee2e6}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #565A5C;--bs-btn-border-color: #565A5C;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #494d4e;--bs-btn-hover-border-color: #45484a;--bs-btn-focus-shadow-rgb: 111,115,116;--bs-btn-active-color: #fff;--bs-btn-active-bg: #45484a;--bs-btn-active-border-color: #414445;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #565A5C;--bs-btn-disabled-border-color: #565A5C}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130,138,145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60,153,110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11,172,204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217,164,6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225,83,97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211,212,213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66,70,73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-default{--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222,226,230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #565A5C;--bs-btn-border-color: #565A5C;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #565A5C;--bs-btn-hover-border-color: #565A5C;--bs-btn-focus-shadow-rgb: 86,90,92;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565A5C;--bs-btn-active-border-color: #565A5C;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #565A5C;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #565A5C;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108,117,125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25,135,84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13,202,240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255,193,7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220,53,69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248,249,250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33,37,41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 111,115,116;text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #565A5C;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255,255,255,0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #565A5C;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n + 3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(86,90,92,0.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #565A5C}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833,37,41,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme="dark"]{--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.55);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.75);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.25);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme="dark"] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23222425'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #abadae;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(86,90,92,0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme="dark"] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%239a9c9d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%239a9c9d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(86,90,92,0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #565A5C;--bs-pagination-active-border-color: #565A5C;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size:.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:.75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #565A5C;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #565A5C;--bs-list-group-active-border-color: #565A5C;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(86,90,92,0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme="dark"] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:.875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme="dark"] .carousel .carousel-control-prev-icon,[data-bs-theme="dark"] .carousel .carousel-control-next-icon,[data-bs-theme="dark"].carousel .carousel-control-prev-icon,[data-bs-theme="dark"].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target],[data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme="dark"] .carousel .carousel-caption,[data-bs-theme="dark"].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(229,232,235, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(229,232,235, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(69,72,74, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(69,72,74, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86,94,100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20,108,67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20,108,67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61,213,243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61,213,243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255,205,57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176,42,55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249,250,251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26,30,33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,0.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,0.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: .1}.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25{--bs-link-opacity: .25}.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50{--bs-link-opacity: .5}.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75{--bs-link-opacity: .75}.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: .1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25{--bs-link-underline-opacity: .25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50{--bs-link-underline-opacity: .5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75{--bs-link-underline-opacity: .75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.table th[align=left]{text-align:left}.table th[align=right]{text-align:right}.table th[align=center]{text-align:center}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre,.bslib-gap-spacing>.shiny-html-output>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-html-output>.form-group,.bslib-gap-spacing>.shiny-html-output>p,.bslib-gap-spacing>.shiny-html-output>pre,.bslib-gap-spacing>.shiny-panel-conditional>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-panel-conditional>.form-group,.bslib-gap-spacing>.shiny-panel-conditional>p,.bslib-gap-spacing>.shiny-panel-conditional>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #565A5C}.bg-primary{--bslib-color-bg: #565A5C;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.row>main{max-width:50rem;overflow-wrap:break-word;hyphens:auto}@media (min-width: 1200px) and (max-width: 1399.98px){.container .row{justify-content:space-evenly}}@media (min-width: 1400px){body{font-size:18px}.col-md-3{margin-left:5rem}}.navbar{background:RGBA(var(--bs-body-color-rgb), 0.1);background:color-mix(in oklab, color-mix(in oklab, var(--bs-body-bg) 95%, var(--bs-primary)) 95%, var(--bs-body-color));line-height:initial}.nav-item .nav-link{border-radius:.375rem}.nav-item.active .nav-link{background:RGBA(var(--bs-body-color-rgb), 0.1)}.nav-item .nav-link:hover{background:RGBA(var(--bs-primary-rgb), 0.1)}.navbar>.container{align-items:baseline;-webkit-align-items:baseline}input[type="search"]{width:12rem}[aria-labelledby=dropdown-lightswitch] span.fa{opacity:0.5}@media (max-width: 991.98px){.algolia-autocomplete,input[type="search"],#navbar .dropdown-menu{width:100%}#navbar .dropdown-item{white-space:normal}input[type="search"]{margin:0.25rem 0}}.headroom{will-change:transform;transition:transform 400ms ease}.headroom--pinned{transform:translateY(0%)}.headroom--unpinned{transform:translateY(-100%)}.row>main,.row>aside{margin-top:56px}html,body{scroll-padding:56px}@media (min-width: 576px){#toc{position:sticky;top:56px;max-height:calc(100vh - 56px - 1rem);overflow-y:auto}}aside h2,aside .h2{margin-top:1.5rem;font-size:1.25rem}aside .roles{color:RGBA(var(--bs-body-color-rgb), 0.8)}aside .list-unstyled li{margin-bottom:0.5rem}aside .dev-status .list-unstyled li{margin-bottom:0.1rem}@media (max-width: 767.98px){.row>aside{margin:0.5rem;width:calc(100vw - 1rem);background-color:RGBA(var(--bs-body-color-rgb), 0.1);border-color:var(--bs-border-color);border-radius:.375rem}.row>aside h2:first-child,.row>aside .h2:first-child{margin-top:1rem}}body{position:relative}#toc>.nav{margin-bottom:1rem}#toc>.nav a.nav-link{color:inherit;padding:0.25rem 0.5rem;margin-bottom:2px;border-radius:.375rem}#toc>.nav a.nav-link:hover,#toc>.nav a.nav-link:focus{background-color:RGBA(var(--bs-primary-rgb), 0.1)}#toc>.nav a.nav-link.active{background-color:RGBA(var(--bs-body-color-rgb), 0.1)}#toc>.nav .nav a.nav-link{margin-left:0.5rem}#toc>.nav .nav{display:none !important}#toc>.nav a.active+.nav{display:flex !important}footer{margin:1rem 0 1rem 0;padding-top:1rem;font-size:.875em;border-top:1px solid #dee2e6;background:rgba(0,0,0,0);color:RGBA(var(--bs-body-color-rgb), 0.8);display:flex;column-gap:1rem}@media (max-width: 575.98px){footer{flex-direction:column}}@media (min-width: 576px){footer .pkgdown-footer-right{text-align:right}}footer div{flex:1 1 auto}html,body{height:100%}body>.container{min-height:100%;display:flex;flex-direction:column}body>.container .row{flex:1 0 auto}main img{max-width:100%;height:auto}main table{display:block;overflow:auto}body{font-display:fallback}.page-header{border-bottom:1px solid var(--bs-border-color);padding-bottom:0.5rem;margin-bottom:0.5rem;margin-top:1.5rem}dl{margin-bottom:0}dd{padding-left:1.5rem;margin-bottom:0.25rem}h2,.h2{font-size:1.75rem;margin-top:1.5rem}h3,.h3{font-size:1.25rem;margin-top:1rem;font-weight:bold}h4,.h4{font-size:1.1rem;font-weight:bold}h5,.h5{font-size:1rem;font-weight:bold}summary{margin-bottom:0.5rem}details{margin-bottom:1rem}.html-widget{margin-bottom:1rem}a.anchor{display:none;margin-left:2px;vertical-align:top;width:Min(0.9em, 20px);height:Min(0.9em, 20px);background-image:url(../../link.svg);background-repeat:no-repeat;background-size:Min(0.9em, 20px) Min(0.9em, 20px);background-position:center center}h2:hover .anchor,.h2:hover .anchor,h2:target .anchor,.h2:target .anchor,h3:hover .anchor,.h3:hover .anchor,h3:target .anchor,.h3:target .anchor,h4:hover .anchor,.h4:hover .anchor,h4:target .anchor,.h4:target .anchor,h5:hover .anchor,.h5:hover .anchor,h5:target .anchor,.h5:target .anchor,h6:hover .anchor,.h6:hover .anchor,h6:target .anchor,.h6:target .anchor,dt:hover .anchor,dt:target .anchor{display:inline-block}dt:target,dt:target+dd{border-left:0.25rem solid var(--bs-primary);margin-left:-0.75rem}dt:target{padding-left:0.5rem}dt:target+dd{padding-left:2rem}.orcid{color:#A6CE39;margin-right:4px}.fab{font-family:"Font Awesome 5 Brands" !important}img.logo{float:right;width:100px;margin-left:30px}.template-home img.logo{width:120px}@media (max-width: 575.98px){img.logo{width:80px}}@media (min-width: 576px){.page-header{min-height:88px}.template-home .page-header{min-height:104px}}.line-block{margin-bottom:1rem}.template-reference-index dt{font-weight:normal}.template-reference-index code{word-wrap:normal}.icon{float:right}.icon img{width:40px}a[href='#main']{position:absolute;margin:4px;padding:0.75rem;background-color:var(--bs-body-bg);text-decoration:none;z-index:2000}.lifecycle{color:var(--bs-secondary-color);background-color:var(--bs-secondary-bg);border-radius:5px}.lifecycle-stable{background-color:#108001;color:var(--bs-white)}.lifecycle-superseded{background-color:#074080;color:var(--bs-white)}.lifecycle-experimental,.lifecycle-deprecated{background-color:#fd8008;color:var(--bs-black)}a.footnote-ref{cursor:pointer}.popover{width:Min(100vw, 32rem);font-size:0.9rem;box-shadow:4px 4px 8px RGBA(var(--bs-body-color-rgb), 0.3)}.popover-body{padding:0.75rem}.popover-body p:last-child{margin-bottom:0}.tab-content{padding:1rem}.tabset-pills .tab-content{border:solid 1px #e5e5e5}.tab-content{display:flex}.tab-content>.tab-pane{display:block;visibility:hidden;margin-right:-100%;width:100%}.tab-content>.active{visibility:visible}div.csl-entry{clear:both}.hanging-indent div.csl-entry{margin-left:2em;text-indent:-2em}div.csl-left-margin{min-width:2em;float:left}div.csl-right-inline{margin-left:2em;padding-left:1em}div.csl-indent{margin-left:2em}pre,pre code{word-wrap:normal}[data-bs-theme="dark"] pre,[data-bs-theme="dark"] code{background-color:RGBA(var(--bs-body-color-rgb), 0.1)}[data-bs-theme="dark"] pre code{background:transparent}code{overflow-wrap:break-word}.hasCopyButton{position:relative}.btn-copy-ex{position:absolute;right:5px;top:5px;visibility:hidden}.hasCopyButton:hover button.btn-copy-ex{visibility:visible}pre{padding:0.75rem}pre div.gt-table{white-space:normal;margin-top:1rem}@media (max-width: 575.98px){div>div>pre{margin-left:calc(var(--bs-gutter-x) * -.5);margin-right:calc(var(--bs-gutter-x) * -.5);border-radius:0;padding-left:1rem;padding-right:1rem}.btn-copy-ex{right:calc(var(--bs-gutter-x) * -.5 + 5px)}}code a:any-link{color:inherit;text-decoration-color:RGBA(var(--bs-body-color-rgb), 0.6)}pre code{padding:0;background:transparent}pre code .error,pre code .warning{font-weight:bolder}pre .img img,pre .r-plt img{margin:5px 0;background-color:#fff}[data-bs-theme="dark"] pre img{opacity:0.66;transition:opacity 250ms ease-in-out}[data-bs-theme="dark"] pre img:hover,[data-bs-theme="dark"] pre img:focus,[data-bs-theme="dark"] pre img:active{opacity:1}@media print{code a:link:after,code a:visited:after{content:""}}a.sourceLine:hover{text-decoration:none}mark,.mark{background:linear-gradient(-100deg, RGBA(var(--bs-info-rgb), 0.2), RGBA(var(--bs-info-rgb), 0.7) 95%, RGBA(var(--bs-info-rgb), 0.1))}.algolia-autocomplete .aa-dropdown-menu{margin-top:0.5rem;padding:0.5rem 0.25rem;width:MAX(100%, 20rem);max-height:50vh;overflow-y:auto;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.375rem}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;font-size:1rem;padding:0.5rem 0.25rem;line-height:1.3}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion:hover{background-color:var(--bs-tertiary-bg);color:var(--bs-body-color)}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-details{text-decoration:underline;display:inline}span.smallcaps{font-variant:small-caps}ul.task-list{list-style:none}ul.task-list li input[type="checkbox"]{width:0.8em;margin:0 0.8em 0.2em -1em;vertical-align:middle}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:0.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:0.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:0.5em}figure>figcaption.quarto-float-caption-top{margin-top:0.5em}:root{--mermaid-bg-color: transparent;--mermaid-edge-color: var(--bs-secondary);--mermaid-fg-color: var(--bs-body-color);--mermaid-fg-color--lighter: RGBA(var(--bs-body-color-rgb), 0.9);--mermaid-fg-color--lightest: RGBA(var(--bs-body-color-rgb), 0.8);--mermaid-font-family: var(--bs-body-font-family);--mermaid-label-bg-color: var(--bs-primary);--mermaid-label-fg-color: var(--bs-body-color);--mermaid-node-bg-color: RGBA(var(--bs-primary-rgb), 0.1);--mermaid-node-fg-color: var(--bs-primary)}pre{background-color:#f1f3f5}pre code{color:#003B4F}pre code span.al{color:#AD0000}pre code span.an{color:#5E5E5E}pre code span.at{color:#657422}pre code span.bn{color:#AD0000}pre code span.cf{color:#003B4F}pre code span.ch{color:#20794D}pre code span.cn{color:#8f5902}pre code span.co{color:#5E5E5E}pre code span.cv{color:#5E5E5E;font-style:italic}pre code span.do{color:#5E5E5E;font-style:italic}pre code span.dt{color:#AD0000}pre code span.dv{color:#AD0000}pre code span.er{color:#AD0000}pre code span.fl{color:#AD0000}pre code span.fu{color:#4758AB}pre code span.im{color:#00769E}pre code span.in{color:#5E5E5E}pre code span.kw{color:#003B4F}pre code span.op{color:#5E5E5E}pre code span.ot{color:#003B4F}pre code span.pp{color:#AD0000}pre code span.sc{color:#5E5E5E}pre code span.ss{color:#20794D}pre code span.st{color:#20794D}pre code span.va{color:#111111}pre code span.vs{color:#20794D}pre code span.wa{color:#5E5E5E;font-style:italic}[data-bs-theme="dark"] pre code{color:#f8f8f2}[data-bs-theme="dark"] pre code span.al{color:#f07178;background-color:#2a0f15;font-weight:bold}[data-bs-theme="dark"] pre code span.an{color:#d4d0ab}[data-bs-theme="dark"] pre code span.at{color:#00e0e0}[data-bs-theme="dark"] pre code span.bn{color:#d4d0ab}[data-bs-theme="dark"] pre code span.bu{color:#abe338}[data-bs-theme="dark"] pre code span.cf{color:#ffa07a;font-weight:bold}[data-bs-theme="dark"] pre code span.ch{color:#abe338}[data-bs-theme="dark"] pre code span.cn{color:#ffd700}[data-bs-theme="dark"] pre code span.co{color:#f8f8f2;font-style:italic}[data-bs-theme="dark"] pre code span.cv{color:#ffd700}[data-bs-theme="dark"] pre code span.do{color:#f8f8f2}[data-bs-theme="dark"] pre code span.dt{color:#ffa07a}[data-bs-theme="dark"] pre code span.dv{color:#d4d0ab}[data-bs-theme="dark"] pre code span.er{color:#f07178;text-decoration:underline}[data-bs-theme="dark"] pre code span.ex{color:#00e0e0;font-weight:bold}[data-bs-theme="dark"] pre code span.fl{color:#d4d0ab}[data-bs-theme="dark"] pre code span.fu{color:#ffa07a}[data-bs-theme="dark"] pre code span.im{color:#abe338}[data-bs-theme="dark"] pre code span.in{color:#d4d0ab}[data-bs-theme="dark"] pre code span.kw{color:#ffa07a;font-weight:bold}[data-bs-theme="dark"] pre code span.op{color:#ffa07a}[data-bs-theme="dark"] pre code span.ot{color:#00e0e0}[data-bs-theme="dark"] pre code span.pp{color:#dcc6e0}[data-bs-theme="dark"] pre code span.re{color:#00e0e0;background-color:#f8f8f2}[data-bs-theme="dark"] pre code span.sc{color:#abe338}[data-bs-theme="dark"] pre code span.ss{color:#abe338}[data-bs-theme="dark"] pre code span.st{color:#abe338}[data-bs-theme="dark"] pre code span.va{color:#00e0e0}[data-bs-theme="dark"] pre code span.vs{color:#abe338}[data-bs-theme="dark"] pre code span.wa{color:#dcc6e0}
diff --git a/dev/deps/data-deps.txt b/dev/deps/data-deps.txt
index 8aa49e21..bb2b1541 100644
--- a/dev/deps/data-deps.txt
+++ b/dev/deps/data-deps.txt
@@ -2,6 +2,8 @@
+
+
diff --git a/dev/index.html b/dev/index.html
index 1e56fcd2..96b2c1f1 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -14,7 +14,9 @@
-
+
+
+
@@ -165,7 +167,7 @@ Developers
Kent Riemondy
Author, maintainer
-
Funder, copyright holder
+RNA Bioscience Initiative
Funder, copyright holder
@@ -187,7 +189,7 @@ Dev status
diff --git a/dev/news/index.html b/dev/news/index.html
index dcf58c12..6260cbea 100644
--- a/dev/news/index.html
+++ b/dev/news/index.html
@@ -1,5 +1,5 @@
-Changelog • valr
+Changelog • valr
Skip to contents
@@ -44,7 +44,8 @@
+
- Address NOTE on CRAN about Rd link targets.
+
diff --git a/dev/pkgdown.js b/dev/pkgdown.js
index 9757bf9e..1a99c65f 100644
--- a/dev/pkgdown.js
+++ b/dev/pkgdown.js
@@ -152,3 +152,11 @@ async function searchFuse(query, callback) {
});
});
})(window.jQuery || window.$)
+
+document.addEventListener('keydown', function(event) {
+ // Check if the pressed key is '/'
+ if (event.key === '/') {
+ event.preventDefault(); // Prevent any default action associated with the '/' key
+ document.getElementById('search-input').focus(); // Set focus to the search input
+ }
+});
diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml
index 2a801c8c..5bd73eb0 100644
--- a/dev/pkgdown.yml
+++ b/dev/pkgdown.yml
@@ -1,10 +1,10 @@
pandoc: 3.1.11
-pkgdown: 2.0.9.9000
-pkgdown_sha: 812e8c81d2a550f11f1b9a5201aa7d9ab0e42cdb
+pkgdown: 2.1.0.9000
+pkgdown_sha: 515efc4149b88d770f7cb236938b0689eb79a4db
articles:
interval-stats: interval-stats.html
valr: valr.html
-last_built: 2024-07-04T12:56Z
+last_built: 2024-08-19T12:46Z
urls:
reference: https://rnabioco.github.io/valr/reference
article: https://rnabioco.github.io/valr/articles
diff --git a/dev/reference/bed12_to_exons.html b/dev/reference/bed12_to_exons.html
index 5a642d06..6aeddf2f 100644
--- a/dev/reference/bed12_to_exons.html
+++ b/dev/reference/bed12_to_exons.html
@@ -1,5 +1,5 @@
-Convert BED12 to individual exons in BED6. — bed12_to_exons • valr Convert BED12 to individual exons in BED6. — bed12_to_exons • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_absdist.html b/dev/reference/bed_absdist.html
index 83bbab11..b04f1436 100644
--- a/dev/reference/bed_absdist.html
+++ b/dev/reference/bed_absdist.html
@@ -1,5 +1,5 @@
-Compute absolute distances between intervals. — bed_absdist • valr Compute absolute distances between intervals. — bed_absdist • valr
Skip to contents
@@ -135,7 +135,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_closest.html b/dev/reference/bed_closest.html
index cb5a3e84..b15193bb 100644
--- a/dev/reference/bed_closest.html
+++ b/dev/reference/bed_closest.html
@@ -1,5 +1,5 @@
-Identify closest intervals. — bed_closest • valr
+Identify closest intervals. — bed_closest • valr
Skip to contents
@@ -200,7 +200,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_cluster.html b/dev/reference/bed_cluster.html
index be7b4263..57e8ddbb 100644
--- a/dev/reference/bed_cluster.html
+++ b/dev/reference/bed_cluster.html
@@ -1,5 +1,5 @@
-Cluster neighboring intervals. — bed_cluster • valr Cluster neighboring intervals. — bed_cluster • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_complement.html b/dev/reference/bed_complement.html
index 8131f14b..10ecd11e 100644
--- a/dev/reference/bed_complement.html
+++ b/dev/reference/bed_complement.html
@@ -1,5 +1,5 @@
-Identify intervals in a genome not covered by a query. — bed_complement • valr
+Identify intervals in a genome not covered by a query. — bed_complement • valr
Skip to contents
@@ -135,7 +135,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/articles/valr.html b/dev/articles/valr.html
index 0cd36f8a..01b25c94 100644
--- a/dev/articles/valr.html
+++ b/dev/articles/valr.html
@@ -14,7 +14,9 @@
-
+
+
+
@@ -74,7 +76,7 @@
diff --git a/dev/reference/bed_coverage.html b/dev/reference/bed_coverage.html
index 75ac3b35..6ae7a4a2 100644
--- a/dev/reference/bed_coverage.html
+++ b/dev/reference/bed_coverage.html
@@ -1,5 +1,5 @@
-Compute coverage of intervals. — bed_coverage • valr
+Compute coverage of intervals. — bed_coverage • valr
Skip to contents
@@ -136,7 +136,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_fisher.html b/dev/reference/bed_fisher.html
index 6bf89dd5..dfaae1ad 100644
--- a/dev/reference/bed_fisher.html
+++ b/dev/reference/bed_fisher.html
@@ -1,5 +1,5 @@
-Fisher's test to measure overlap between two sets of intervals. — bed_fisher • valr Fisher's test to measure overlap between two sets of intervals. — bed_fisher • valr
Skip to contents
@@ -116,7 +116,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_genomecov.html b/dev/reference/bed_genomecov.html
index 100858e2..edffcc27 100644
--- a/dev/reference/bed_genomecov.html
+++ b/dev/reference/bed_genomecov.html
@@ -1,5 +1,5 @@
-Calculate coverage across a genome — bed_genomecov • valr
+Calculate coverage across a genome — bed_genomecov • valr
Skip to contents
@@ -156,7 +156,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_glyph.html b/dev/reference/bed_glyph.html
index e0f5265c..979f27e4 100644
--- a/dev/reference/bed_glyph.html
+++ b/dev/reference/bed_glyph.html
@@ -1,5 +1,5 @@
-Create example glyphs for valr functions. — bed_glyph • valr
+Create example glyphs for valr functions. — bed_glyph • valr
Skip to contents
@@ -110,7 +110,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_intersect.html b/dev/reference/bed_intersect.html
index 43f28625..75809970 100644
--- a/dev/reference/bed_intersect.html
+++ b/dev/reference/bed_intersect.html
@@ -1,5 +1,5 @@
-Identify intersecting intervals. — bed_intersect • valr Identify intersecting intervals. — bed_intersect • valr
Skip to contents
@@ -241,7 +241,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_jaccard.html b/dev/reference/bed_jaccard.html
index e849559d..51858cb9 100644
--- a/dev/reference/bed_jaccard.html
+++ b/dev/reference/bed_jaccard.html
@@ -1,5 +1,5 @@
-Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard • valr Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_makewindows.html b/dev/reference/bed_makewindows.html
index b379e848..9911baeb 100644
--- a/dev/reference/bed_makewindows.html
+++ b/dev/reference/bed_makewindows.html
@@ -1,5 +1,5 @@
-Divide intervals into new sub-intervals ("windows"). — bed_makewindows • valr
+Divide intervals into new sub-intervals ("windows"). — bed_makewindows • valr
Skip to contents
@@ -208,7 +208,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_map.html b/dev/reference/bed_map.html
index 8042715f..ee70ba73 100644
--- a/dev/reference/bed_map.html
+++ b/dev/reference/bed_map.html
@@ -1,8 +1,8 @@
-Calculate summaries from overlapping intervals. — bed_map • valr Calculate summaries from overlapping intervals. — bed_map • valr
@@ -50,7 +50,7 @@
- Apply functions like min()
and count()
to intersecting intervals.
+
Apply functions like min()
and max()
to intersecting intervals.
bed_map()
uses bed_intersect()
to identify intersecting intervals, so
output columns will be suffixed with .x
and .y
. Expressions that refer to
input columns from x
and y
columns must take these suffixes into account.
@@ -228,7 +228,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_merge.html b/dev/reference/bed_merge.html
index 62feb7db..32ec53e1 100644
--- a/dev/reference/bed_merge.html
+++ b/dev/reference/bed_merge.html
@@ -1,5 +1,5 @@
-Merge overlapping intervals. — bed_merge • valr Merge overlapping intervals. — bed_merge • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_partition.html b/dev/reference/bed_partition.html
index 98725e33..6f02ef8f 100644
--- a/dev/reference/bed_partition.html
+++ b/dev/reference/bed_partition.html
@@ -1,5 +1,5 @@
-Partition intervals into elemental intervals — bed_partition • valr Partition intervals into elemental intervals — bed_partition • valr
Skip to contents
@@ -73,7 +73,7 @@ Value
Details
- Summary operations, such as min()
or count()
can be performed
+
Summary operations, such as min()
or max()
can be performed
on elemental intervals by specifying name-value pairs.
This function is useful for calculating summaries across overlapping intervals
without merging the intervals.
@@ -189,7 +189,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_projection.html b/dev/reference/bed_projection.html
index b393f31a..b24296f7 100644
--- a/dev/reference/bed_projection.html
+++ b/dev/reference/bed_projection.html
@@ -1,5 +1,5 @@
-Projection test for query interval overlap. — bed_projection • valr
+Projection test for query interval overlap. — bed_projection • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_random.html b/dev/reference/bed_random.html
index d605bb92..8e7e2bfe 100644
--- a/dev/reference/bed_random.html
+++ b/dev/reference/bed_random.html
@@ -1,5 +1,5 @@
-Generate randomly placed intervals on a genome. — bed_random • valr
+Generate randomly placed intervals on a genome. — bed_random • valr
Skip to contents
@@ -162,7 +162,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_reldist.html b/dev/reference/bed_reldist.html
index b9381a0b..6491d88b 100644
--- a/dev/reference/bed_reldist.html
+++ b/dev/reference/bed_reldist.html
@@ -1,5 +1,5 @@
-Compute relative distances between intervals. — bed_reldist • valr
+Compute relative distances between intervals. — bed_reldist • valr
Skip to contents
@@ -145,7 +145,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shift.html b/dev/reference/bed_shift.html
index 4f9cd6ff..5d5dcca1 100644
--- a/dev/reference/bed_shift.html
+++ b/dev/reference/bed_shift.html
@@ -1,5 +1,5 @@
-Adjust intervals by a fixed size. — bed_shift • valr
+Adjust intervals by a fixed size. — bed_shift • valr
Skip to contents
@@ -172,7 +172,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shuffle.html b/dev/reference/bed_shuffle.html
index ffac7400..66de6030 100644
--- a/dev/reference/bed_shuffle.html
+++ b/dev/reference/bed_shuffle.html
@@ -1,5 +1,5 @@
-Shuffle input intervals. — bed_shuffle • valr
+Shuffle input intervals. — bed_shuffle • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html
index d3341e65..9ec54aa5 100644
--- a/dev/reference/bed_slop.html
+++ b/dev/reference/bed_slop.html
@@ -1,5 +1,5 @@
-Increase the size of input intervals. — bed_slop • valr
+Increase the size of input intervals. — bed_slop • valr
Skip to contents
@@ -185,7 +185,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_glyph.html b/dev/reference/bed_glyph.html index e0f5265c..979f27e4 100644 --- a/dev/reference/bed_glyph.html +++ b/dev/reference/bed_glyph.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_intersect.html b/dev/reference/bed_intersect.html
index 43f28625..75809970 100644
--- a/dev/reference/bed_intersect.html
+++ b/dev/reference/bed_intersect.html
@@ -1,5 +1,5 @@
-Identify intersecting intervals. — bed_intersect • valr Identify intersecting intervals. — bed_intersect • valr
Skip to contents
@@ -241,7 +241,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_jaccard.html b/dev/reference/bed_jaccard.html
index e849559d..51858cb9 100644
--- a/dev/reference/bed_jaccard.html
+++ b/dev/reference/bed_jaccard.html
@@ -1,5 +1,5 @@
-Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard • valr Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_makewindows.html b/dev/reference/bed_makewindows.html
index b379e848..9911baeb 100644
--- a/dev/reference/bed_makewindows.html
+++ b/dev/reference/bed_makewindows.html
@@ -1,5 +1,5 @@
-Divide intervals into new sub-intervals ("windows"). — bed_makewindows • valr
+Divide intervals into new sub-intervals ("windows"). — bed_makewindows • valr
Skip to contents
@@ -208,7 +208,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_map.html b/dev/reference/bed_map.html
index 8042715f..ee70ba73 100644
--- a/dev/reference/bed_map.html
+++ b/dev/reference/bed_map.html
@@ -1,8 +1,8 @@
-Calculate summaries from overlapping intervals. — bed_map • valr Calculate summaries from overlapping intervals. — bed_map • valr
@@ -50,7 +50,7 @@
- Apply functions like min()
and count()
to intersecting intervals.
+
Apply functions like min()
and max()
to intersecting intervals.
bed_map()
uses bed_intersect()
to identify intersecting intervals, so
output columns will be suffixed with .x
and .y
. Expressions that refer to
input columns from x
and y
columns must take these suffixes into account.
@@ -228,7 +228,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_merge.html b/dev/reference/bed_merge.html
index 62feb7db..32ec53e1 100644
--- a/dev/reference/bed_merge.html
+++ b/dev/reference/bed_merge.html
@@ -1,5 +1,5 @@
-Merge overlapping intervals. — bed_merge • valr Merge overlapping intervals. — bed_merge • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_partition.html b/dev/reference/bed_partition.html
index 98725e33..6f02ef8f 100644
--- a/dev/reference/bed_partition.html
+++ b/dev/reference/bed_partition.html
@@ -1,5 +1,5 @@
-Partition intervals into elemental intervals — bed_partition • valr Partition intervals into elemental intervals — bed_partition • valr
Skip to contents
@@ -73,7 +73,7 @@ Value
Details
- Summary operations, such as min()
or count()
can be performed
+
Summary operations, such as min()
or max()
can be performed
on elemental intervals by specifying name-value pairs.
This function is useful for calculating summaries across overlapping intervals
without merging the intervals.
@@ -189,7 +189,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_projection.html b/dev/reference/bed_projection.html
index b393f31a..b24296f7 100644
--- a/dev/reference/bed_projection.html
+++ b/dev/reference/bed_projection.html
@@ -1,5 +1,5 @@
-Projection test for query interval overlap. — bed_projection • valr
+Projection test for query interval overlap. — bed_projection • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_random.html b/dev/reference/bed_random.html
index d605bb92..8e7e2bfe 100644
--- a/dev/reference/bed_random.html
+++ b/dev/reference/bed_random.html
@@ -1,5 +1,5 @@
-Generate randomly placed intervals on a genome. — bed_random • valr
+Generate randomly placed intervals on a genome. — bed_random • valr
Skip to contents
@@ -162,7 +162,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_reldist.html b/dev/reference/bed_reldist.html
index b9381a0b..6491d88b 100644
--- a/dev/reference/bed_reldist.html
+++ b/dev/reference/bed_reldist.html
@@ -1,5 +1,5 @@
-Compute relative distances between intervals. — bed_reldist • valr
+Compute relative distances between intervals. — bed_reldist • valr
Skip to contents
@@ -145,7 +145,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shift.html b/dev/reference/bed_shift.html
index 4f9cd6ff..5d5dcca1 100644
--- a/dev/reference/bed_shift.html
+++ b/dev/reference/bed_shift.html
@@ -1,5 +1,5 @@
-Adjust intervals by a fixed size. — bed_shift • valr
+Adjust intervals by a fixed size. — bed_shift • valr
Skip to contents
@@ -172,7 +172,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shuffle.html b/dev/reference/bed_shuffle.html
index ffac7400..66de6030 100644
--- a/dev/reference/bed_shuffle.html
+++ b/dev/reference/bed_shuffle.html
@@ -1,5 +1,5 @@
-Shuffle input intervals. — bed_shuffle • valr
+Shuffle input intervals. — bed_shuffle • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html
index d3341e65..9ec54aa5 100644
--- a/dev/reference/bed_slop.html
+++ b/dev/reference/bed_slop.html
@@ -1,5 +1,5 @@
-Increase the size of input intervals. — bed_slop • valr
+Increase the size of input intervals. — bed_slop • valr
Skip to contents
@@ -185,7 +185,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_jaccard.html b/dev/reference/bed_jaccard.html index e849559d..51858cb9 100644 --- a/dev/reference/bed_jaccard.html +++ b/dev/reference/bed_jaccard.html @@ -1,5 +1,5 @@ -Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_makewindows.html b/dev/reference/bed_makewindows.html index b379e848..9911baeb 100644 --- a/dev/reference/bed_makewindows.html +++ b/dev/reference/bed_makewindows.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_map.html b/dev/reference/bed_map.html
index 8042715f..ee70ba73 100644
--- a/dev/reference/bed_map.html
+++ b/dev/reference/bed_map.html
@@ -1,8 +1,8 @@
-Calculate summaries from overlapping intervals. — bed_map • valr Calculate summaries from overlapping intervals. — bed_map • valr
@@ -50,7 +50,7 @@
- Apply functions like min()
and count()
to intersecting intervals.
+
Apply functions like min()
and max()
to intersecting intervals.
bed_map()
uses bed_intersect()
to identify intersecting intervals, so
output columns will be suffixed with .x
and .y
. Expressions that refer to
input columns from x
and y
columns must take these suffixes into account.
@@ -228,7 +228,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_merge.html b/dev/reference/bed_merge.html
index 62feb7db..32ec53e1 100644
--- a/dev/reference/bed_merge.html
+++ b/dev/reference/bed_merge.html
@@ -1,5 +1,5 @@
-Merge overlapping intervals. — bed_merge • valr Merge overlapping intervals. — bed_merge • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_partition.html b/dev/reference/bed_partition.html
index 98725e33..6f02ef8f 100644
--- a/dev/reference/bed_partition.html
+++ b/dev/reference/bed_partition.html
@@ -1,5 +1,5 @@
-Partition intervals into elemental intervals — bed_partition • valr Partition intervals into elemental intervals — bed_partition • valr
Skip to contents
@@ -73,7 +73,7 @@ Value
Details
- Summary operations, such as min()
or count()
can be performed
+
Summary operations, such as min()
or max()
can be performed
on elemental intervals by specifying name-value pairs.
This function is useful for calculating summaries across overlapping intervals
without merging the intervals.
@@ -189,7 +189,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_projection.html b/dev/reference/bed_projection.html
index b393f31a..b24296f7 100644
--- a/dev/reference/bed_projection.html
+++ b/dev/reference/bed_projection.html
@@ -1,5 +1,5 @@
-Projection test for query interval overlap. — bed_projection • valr
+Projection test for query interval overlap. — bed_projection • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_random.html b/dev/reference/bed_random.html
index d605bb92..8e7e2bfe 100644
--- a/dev/reference/bed_random.html
+++ b/dev/reference/bed_random.html
@@ -1,5 +1,5 @@
-Generate randomly placed intervals on a genome. — bed_random • valr
+Generate randomly placed intervals on a genome. — bed_random • valr
Skip to contents
@@ -162,7 +162,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_reldist.html b/dev/reference/bed_reldist.html
index b9381a0b..6491d88b 100644
--- a/dev/reference/bed_reldist.html
+++ b/dev/reference/bed_reldist.html
@@ -1,5 +1,5 @@
-Compute relative distances between intervals. — bed_reldist • valr
+Compute relative distances between intervals. — bed_reldist • valr
Skip to contents
@@ -145,7 +145,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shift.html b/dev/reference/bed_shift.html
index 4f9cd6ff..5d5dcca1 100644
--- a/dev/reference/bed_shift.html
+++ b/dev/reference/bed_shift.html
@@ -1,5 +1,5 @@
-Adjust intervals by a fixed size. — bed_shift • valr
+Adjust intervals by a fixed size. — bed_shift • valr
Skip to contents
@@ -172,7 +172,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shuffle.html b/dev/reference/bed_shuffle.html
index ffac7400..66de6030 100644
--- a/dev/reference/bed_shuffle.html
+++ b/dev/reference/bed_shuffle.html
@@ -1,5 +1,5 @@
-Shuffle input intervals. — bed_shuffle • valr
+Shuffle input intervals. — bed_shuffle • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html
index d3341e65..9ec54aa5 100644
--- a/dev/reference/bed_slop.html
+++ b/dev/reference/bed_slop.html
@@ -1,5 +1,5 @@
-Increase the size of input intervals. — bed_slop • valr
+Increase the size of input intervals. — bed_slop • valr
Skip to contents
@@ -185,7 +185,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Apply functions like min()
and count()
to intersecting intervals.
+
Apply functions like min()
and max()
to intersecting intervals.
bed_map()
uses bed_intersect()
to identify intersecting intervals, so
output columns will be suffixed with .x
and .y
. Expressions that refer to
input columns from x
and y
columns must take these suffixes into account.
Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
Details
-Summary operations, such as min()
or count()
can be performed
+
Summary operations, such as min()
or max()
can be performed
on elemental intervals by specifying name-value pairs.
This function is useful for calculating summaries across overlapping intervals without merging the intervals.
@@ -189,7 +189,7 @@Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_random.html b/dev/reference/bed_random.html index d605bb92..8e7e2bfe 100644 --- a/dev/reference/bed_random.html +++ b/dev/reference/bed_random.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_reldist.html b/dev/reference/bed_reldist.html
index b9381a0b..6491d88b 100644
--- a/dev/reference/bed_reldist.html
+++ b/dev/reference/bed_reldist.html
@@ -1,5 +1,5 @@
-Compute relative distances between intervals. — bed_reldist • valr
+Compute relative distances between intervals. — bed_reldist • valr
Skip to contents
@@ -145,7 +145,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shift.html b/dev/reference/bed_shift.html
index 4f9cd6ff..5d5dcca1 100644
--- a/dev/reference/bed_shift.html
+++ b/dev/reference/bed_shift.html
@@ -1,5 +1,5 @@
-Adjust intervals by a fixed size. — bed_shift • valr
+Adjust intervals by a fixed size. — bed_shift • valr
Skip to contents
@@ -172,7 +172,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shuffle.html b/dev/reference/bed_shuffle.html
index ffac7400..66de6030 100644
--- a/dev/reference/bed_shuffle.html
+++ b/dev/reference/bed_shuffle.html
@@ -1,5 +1,5 @@
-Shuffle input intervals. — bed_shuffle • valr
+Shuffle input intervals. — bed_shuffle • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html
index d3341e65..9ec54aa5 100644
--- a/dev/reference/bed_slop.html
+++ b/dev/reference/bed_slop.html
@@ -1,5 +1,5 @@
-Increase the size of input intervals. — bed_slop • valr
+Increase the size of input intervals. — bed_slop • valr
Skip to contents
@@ -185,7 +185,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shift.html b/dev/reference/bed_shift.html index 4f9cd6ff..5d5dcca1 100644 --- a/dev/reference/bed_shift.html +++ b/dev/reference/bed_shift.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_shuffle.html b/dev/reference/bed_shuffle.html
index ffac7400..66de6030 100644
--- a/dev/reference/bed_shuffle.html
+++ b/dev/reference/bed_shuffle.html
@@ -1,5 +1,5 @@
-Shuffle input intervals. — bed_shuffle • valr
+Shuffle input intervals. — bed_shuffle • valr
Skip to contents
@@ -141,7 +141,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html
index d3341e65..9ec54aa5 100644
--- a/dev/reference/bed_slop.html
+++ b/dev/reference/bed_slop.html
@@ -1,5 +1,5 @@
-Increase the size of input intervals. — bed_slop • valr
+Increase the size of input intervals. — bed_slop • valr
Skip to contents
@@ -185,7 +185,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_slop.html b/dev/reference/bed_slop.html index d3341e65..9ec54aa5 100644 --- a/dev/reference/bed_slop.html +++ b/dev/reference/bed_slop.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_sort.html b/dev/reference/bed_sort.html
index b5d51fa9..d0a54596 100644
--- a/dev/reference/bed_sort.html
+++ b/dev/reference/bed_sort.html
@@ -1,5 +1,5 @@
-Sort a set of intervals. — bed_sort • valr
+Sort a set of intervals. — bed_sort • valr
Skip to contents
@@ -154,7 +154,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html
index 59e00e34..54f6d2b2 100644
--- a/dev/reference/bed_subtract.html
+++ b/dev/reference/bed_subtract.html
@@ -1,5 +1,5 @@
-Subtract two sets of intervals. — bed_subtract • valr
+Subtract two sets of intervals. — bed_subtract • valr
Skip to contents
@@ -150,7 +150,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_subtract.html b/dev/reference/bed_subtract.html index 59e00e34..54f6d2b2 100644 --- a/dev/reference/bed_subtract.html +++ b/dev/reference/bed_subtract.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bed_window.html b/dev/reference/bed_window.html
index 8310c9a2..1429f81b 100644
--- a/dev/reference/bed_window.html
+++ b/dev/reference/bed_window.html
@@ -1,5 +1,5 @@
-Identify intervals within a specified distance. — bed_window • valr
+Identify intervals within a specified distance. — bed_window • valr
Skip to contents
@@ -153,7 +153,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html
index 9156ee10..d60d1ec2 100644
--- a/dev/reference/bound_intervals.html
+++ b/dev/reference/bound_intervals.html
@@ -1,5 +1,5 @@
-Select intervals bounded by a genome. — bound_intervals • valr Select intervals bounded by a genome. — bound_intervals • valr
Skip to contents
@@ -122,7 +122,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/bound_intervals.html b/dev/reference/bound_intervals.html index 9156ee10..d60d1ec2 100644 --- a/dev/reference/bound_intervals.html +++ b/dev/reference/bound_intervals.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_introns.html b/dev/reference/create_introns.html
index 74f528d1..b9b263eb 100644
--- a/dev/reference/create_introns.html
+++ b/dev/reference/create_introns.html
@@ -1,5 +1,5 @@
-Create intron features. — create_introns • valr Create intron features. — create_introns • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_tss.html b/dev/reference/create_tss.html
index fb90b502..195a7fe1 100644
--- a/dev/reference/create_tss.html
+++ b/dev/reference/create_tss.html
@@ -1,5 +1,5 @@
-Create transcription start site features. — create_tss • valr
+Create transcription start site features. — create_tss • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html
index 0358cdc2..19e7fc5b 100644
--- a/dev/reference/create_utrs3.html
+++ b/dev/reference/create_utrs3.html
@@ -1,5 +1,5 @@
-Create 3' UTR features. — create_utrs3 • valr
+Create 3' UTR features. — create_utrs3 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs3.html b/dev/reference/create_utrs3.html index 0358cdc2..19e7fc5b 100644 --- a/dev/reference/create_utrs3.html +++ b/dev/reference/create_utrs3.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/create_utrs5.html b/dev/reference/create_utrs5.html
index dcbc0470..c267e6c3 100644
--- a/dev/reference/create_utrs5.html
+++ b/dev/reference/create_utrs5.html
@@ -1,5 +1,5 @@
-Create 5' UTR features. — create_utrs5 • valr
+Create 5' UTR features. — create_utrs5 • valr
Skip to contents
@@ -99,7 +99,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html
index 45f07fa3..18e03a4a 100644
--- a/dev/reference/db.html
+++ b/dev/reference/db.html
@@ -1,5 +1,5 @@
-Fetch data from remote databases. — db • valr
+Fetch data from remote databases. — db • valr
Skip to contents
@@ -137,7 +137,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/db.html b/dev/reference/db.html index 45f07fa3..18e03a4a 100644 --- a/dev/reference/db.html +++ b/dev/reference/db.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/flip_strands.html b/dev/reference/flip_strands.html
index c45037cb..c90a506f 100644
--- a/dev/reference/flip_strands.html
+++ b/dev/reference/flip_strands.html
@@ -1,5 +1,5 @@
-Flip strands in intervals. — flip_strands • valr Flip strands in intervals. — flip_strands • valr
Skip to contents
@@ -98,7 +98,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html
index 037b9887..32d93f0d 100644
--- a/dev/reference/gr_to_bed.html
+++ b/dev/reference/gr_to_bed.html
@@ -1,5 +1,5 @@
-Convert Granges to bed tibble — gr_to_bed • valr
+Convert Granges to bed tibble — gr_to_bed • valr
Skip to contents
@@ -112,7 +112,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/gr_to_bed.html b/dev/reference/gr_to_bed.html index 037b9887..32d93f0d 100644 --- a/dev/reference/gr_to_bed.html +++ b/dev/reference/gr_to_bed.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/id.html b/dev/reference/id.html
index 868e9dd4..077c2ad5 100644
--- a/dev/reference/id.html
+++ b/dev/reference/id.html
@@ -1,5 +1,5 @@
-Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr Plyr function id packaged due to plyr being retired Compute a unique numeric id for each unique row in a data frame. — id • valr See also
diff --git a/dev/reference/id_var.html b/dev/reference/id_var.html
index ad195923..ca8f8861 100644
--- a/dev/reference/id_var.html
+++ b/dev/reference/id_var.html
@@ -1,5 +1,5 @@
-Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr Plyr function id_var packaged due to plyr being retired Numeric id for a vector. — id_var • valr
Skip to contents
@@ -64,7 +64,7 @@ Usage
Package index • valr
+Package index • valr
Skip to contents
@@ -381,7 +381,7 @@ Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
diff --git a/dev/reference/index.html b/dev/reference/index.html
index 2aa88b88..73a1fb73 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -1,5 +1,5 @@
-
Utilities
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/interval_spacing.html b/dev/reference/interval_spacing.html
index 052a34b3..af666253 100644
--- a/dev/reference/interval_spacing.html
+++ b/dev/reference/interval_spacing.html
@@ -1,5 +1,5 @@
-Calculate interval spacing. — interval_spacing • valr Calculate interval spacing. — interval_spacing • valr
Skip to contents
@@ -104,7 +104,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html
index 705d7b26..dba6510d 100644
--- a/dev/reference/ivl_df.html
+++ b/dev/reference/ivl_df.html
@@ -1,5 +1,5 @@
-Bed-like data.frame requirements for valr functions — ivl_df • valr Bed-like data.frame requirements for valr functions — ivl_df • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html
index efb03c81..118e3d38 100644
--- a/dev/reference/read_bed.html
+++ b/dev/reference/read_bed.html
@@ -1,5 +1,5 @@
-Read BED and related files. — read_bed • valr Read BED and related files. — read_bed • valr Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html
index 9daa9066..476fa0e9 100644
--- a/dev/reference/read_bigwig.html
+++ b/dev/reference/read_bigwig.html
@@ -1,5 +1,5 @@
-Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr Import and convert a bigwig file into a valr compatible tbl — read_bigwig • valr
Skip to contents
@@ -93,7 +93,7 @@ Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/ivl_df.html b/dev/reference/ivl_df.html index 705d7b26..dba6510d 100644 --- a/dev/reference/ivl_df.html +++ b/dev/reference/ivl_df.html @@ -1,5 +1,5 @@ -Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bed.html b/dev/reference/read_bed.html index efb03c81..118e3d38 100644 --- a/dev/reference/read_bed.html +++ b/dev/reference/read_bed.html @@ -1,5 +1,5 @@ -Site built with pkgdown 2.0.9.9000.
+Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_bigwig.html b/dev/reference/read_bigwig.html index 9daa9066..476fa0e9 100644 --- a/dev/reference/read_bigwig.html +++ b/dev/reference/read_bigwig.html @@ -1,5 +1,5 @@ -Examples
- Site built with pkgdown 2.0.9.9000.
+ Site built with pkgdown 2.1.0.9000.
diff --git a/dev/reference/read_genome.html b/dev/reference/read_genome.html
index e7415d6d..1a451cca 100644
--- a/dev/reference/read_genome.html
+++ b/dev/reference/read_genome.html
@@ -1,5 +1,5 @@
-Read genome files. — read_genome • valr select(starts_with(\"name\"), .overlap, .dist) |> filter(abs(.dist) < 5000) #> # A tibble: 1,047 × 4 #> name.x name.y .overlap .dist #> #> 1 rs530458610 P704P 0 2579 #> 2 rs2261631 P704P 0 -268 #> 3 rs570770556 POTEH 0 -913 #> 4 rs538163832 POTEH 0 -953 #> 5 rs190224195 POTEH 0 -1399 #> 6 rs2379966 DQ571479 0 4750 #> 7 rs142687051 DQ571479 0 3558 #> 8 rs528403095 DQ571479 0 3309 #> 9 rs555126291 DQ571479 0 2745 #> 10 rs5747567 DQ571479 0 -1778 #> # ℹ 1,037 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert BED12 to individual exons in BED6. — bed12_to_exons","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"conversion BED6 format, score column contains exon number, respect strand (.e., first exon - strand genes larger start end coordinates).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"bed12_to_exons(x)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"x ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed12_to_exons.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert BED12 to individual exons in BED6. — bed12_to_exons","text":"","code":"x <- read_bed12(valr_example(\"mm9.refGene.bed.gz\")) bed12_to_exons(x) #> # A tibble: 1,683 × 6 #> chrom start end name score strand #> #> 1 chr1 3204562 3207049 NM_001011874 3 - #> 2 chr1 3411782 3411982 NM_001011874 2 - #> 3 chr1 3660632 3661579 NM_001011874 1 - #> 4 chr1 4280926 4283093 NM_001195662 4 - #> 5 chr1 4341990 4342162 NM_001195662 3 - #> 6 chr1 4342282 4342918 NM_001195662 2 - #> 7 chr1 4399250 4399322 NM_001195662 1 - #> 8 chr1 4847774 4848057 NM_001159750 1 + #> 9 chr1 4847774 4848057 NM_011541 1 + #> 10 chr1 4848408 4848584 NM_001159751 1 + #> # ℹ 1,673 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute absolute distances between intervals. — bed_absdist","title":"Compute absolute distances between intervals. — bed_absdist","text":"Computes absolute distance midpoint x interval midpoints closest y interval.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"bed_absdist(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute absolute distances between intervals. — bed_absdist","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute absolute distances between intervals. — bed_absdist","text":"ivl_df .absdist .absdist_scaled columns.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute absolute distances between intervals. — bed_absdist","text":"Absolute distances scaled inter-reference gap chromosome follows. Q query points R reference points chromosome, scale distance query point closest reference point inter-reference gap chromosome. x interval matching y chromosome, .absdist NA. $$d_i(x,y) = min_k(|q_i - r_k|)\\frac{R}{Length\\ \\ chromosome}$$ absolute scaled distances reported .absdist .absdist_scaled. Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_absdist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute absolute distances between intervals. — bed_absdist","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_absdist(x, y, genome) #> # A tibble: 1,000,000 × 5 #> chrom start end .absdist .absdist_scaled #> #> 1 chr1 5184 6184 1392 0.448 #> 2 chr1 7663 8663 1087 0.350 #> 3 chr1 9858 10858 1526 0.491 #> 4 chr1 13805 14805 2421 0.779 #> 5 chr1 14081 15081 2697 0.868 #> 6 chr1 16398 17398 1700 0.547 #> 7 chr1 17486 18486 612 0.197 #> 8 chr1 22063 23063 466 0.150 #> 9 chr1 22494 23494 897 0.289 #> 10 chr1 29351 30351 1143 0.368 #> # ℹ 999,990 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify closest intervals. — bed_closest","title":"Identify closest intervals. — bed_closest","text":"Identify closest intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify closest intervals. — bed_closest","text":"","code":"bed_closest(x, y, overlap = TRUE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify closest intervals. — bed_closest","text":"x ivl_df y ivl_df overlap report overlapping intervals suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify closest intervals. — bed_closest","text":"ivl_df additional columns: .overlap amount overlap overlapping interval. Non-overlapping adjacent intervals overlap 0. .overlap included output overlap = FALSE. .dist distance closest interval. Negative distances denote upstream intervals. Book-ended intervals distance 1.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify closest intervals. — bed_closest","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Identify closest intervals. — bed_closest","text":"interval x bed_closest() returns overlapping intervals y closest non-intersecting y interval. Setting overlap = FALSE report closest non-intersecting y intervals, ignoring overlapping y intervals.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_closest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify closest intervals. — bed_closest","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 140, 175 ) bed_glyph(bed_closest(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 500, 600, \"chr2\", 5000, 6000 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 150, 200, \"chr1\", 550, 580, \"chr2\", 7000, 8500 ) bed_closest(x, y) #> # A tibble: 4 × 7 #> chrom start.x end.x start.y end.y .overlap .dist #> #> 1 chr1 500 600 550 580 30 0 #> 2 chr1 500 600 100 200 0 -301 #> 3 chr1 500 600 150 200 0 -301 #> 4 chr2 5000 6000 7000 8500 0 1001 bed_closest(x, y, overlap = FALSE) #> # A tibble: 3 × 6 #> chrom start.x end.x start.y end.y .dist #> #> 1 chr1 500 600 100 200 -301 #> 2 chr1 500 600 150 200 -301 #> 3 chr2 5000 6000 7000 8500 1001 # Report distance based on strand x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 10, 20, \"a\", 1, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 8, 9, \"b\", 1, \"+\", \"chr1\", 21, 22, \"b\", 1, \"-\" ) res <- bed_closest(x, y) # convert distance based on strand res$.dist_strand <- ifelse(res$strand.x == \"+\", res$.dist, -(res$.dist)) res #> # A tibble: 2 × 14 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 4 more variables: strand.y , .overlap , .dist , #> # .dist_strand # report absolute distances res$.abs_dist <- abs(res$.dist) res #> # A tibble: 2 × 15 #> chrom start.x end.x name.x score.x strand.x start.y end.y name.y score.y #> #> 1 chr1 10 20 a 1 - 21 22 b 1 #> 2 chr1 10 20 a 1 - 8 9 b 1 #> # ℹ 5 more variables: strand.y , .overlap , .dist , #> # .dist_strand , .abs_dist "},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Cluster neighboring intervals. — bed_cluster","title":"Cluster neighboring intervals. — bed_cluster","text":"output .id column can used downstream grouping operations. Default max_dist = 0 means overlapping book-ended intervals clustered.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"bed_cluster(x, max_dist = 0)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cluster neighboring intervals. — bed_cluster","text":"x ivl_df max_dist maximum distance clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cluster neighboring intervals. — bed_cluster","text":"ivl_df .id column specifying sets clustered intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cluster neighboring intervals. — bed_cluster","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_cluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cluster neighboring intervals. — bed_cluster","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 200, \"chr1\", 180, 250, \"chr1\", 250, 500, \"chr1\", 501, 1000, \"chr2\", 1, 100, \"chr2\", 150, 200 ) bed_cluster(x) #> # A tibble: 6 × 4 #> chrom start end .id #> #> 1 chr1 100 200 1 #> 2 chr1 180 250 1 #> 3 chr1 250 500 1 #> 4 chr1 501 1000 2 #> 5 chr2 1 100 3 #> 6 chr2 150 200 4 # glyph illustrating clustering of overlapping and book-ended intervals x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 1, 10, \"chr1\", 5, 20, \"chr1\", 30, 40, \"chr1\", 40, 50, \"chr1\", 80, 90 ) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intervals in a genome not covered by a query. — bed_complement","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"Identify intervals genome covered query.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"bed_complement(x, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"x ivl_df genome ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_complement.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intervals in a genome not covered by a query. — bed_complement","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 0, 10, \"chr1\", 75, 100 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 200 ) bed_glyph(bed_complement(x, genome)) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 600, \"chr3\", 800 ) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 300, \"chr1\", 200, 400, \"chr2\", 0, 100, \"chr2\", 200, 400, \"chr3\", 500, 600 ) # intervals not covered by x bed_complement(x, genome) #> # A tibble: 6 × 3 #> chrom start end #> #> 1 chr1 0 100 #> 2 chr1 400 500 #> 3 chr2 100 200 #> 4 chr2 400 600 #> 5 chr3 0 500 #> 6 chr3 600 800"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute coverage of intervals. — bed_coverage","title":"Compute coverage of intervals. — bed_coverage","text":"Compute coverage intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"bed_coverage(x, y, ...)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute coverage of intervals. — bed_coverage","text":"x ivl_df y ivl_df ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute coverage of intervals. — bed_coverage","text":"ivl_df following additional columns: .ints number x intersections .cov per-base coverage x intervals .len total length y intervals covered x intervals .frac .len scaled number y intervals","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute coverage of intervals. — bed_coverage","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Compute coverage of intervals. — bed_coverage","text":"Book-ended intervals included coverage calculations.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_coverage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute coverage of intervals. — bed_coverage","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 100, 500, \"+\", \"chr2\", 200, 400, \"+\", \"chr2\", 300, 500, \"-\", \"chr2\", 800, 900, \"-\" ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, ~strand, \"chr1\", 150, 400, 100, \"+\", \"chr1\", 500, 550, 100, \"+\", \"chr2\", 230, 430, 200, \"-\", \"chr2\", 350, 430, 300, \"-\" ) bed_coverage(x, y) #> # A tibble: 4 × 8 #> chrom start end strand .ints .cov .len .frac #> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.85 #> 3 chr2 300 500 - 2 130 200 0.65 #> 4 chr2 800 900 - 0 0 100 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":null,"dir":"Reference","previous_headings":"","what":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Calculate Fisher's test number intervals shared unique two sets x y intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"bed_fisher(x, y, genome)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"x ivl_df y ivl_df genome genome_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_fisher.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fisher's test to measure overlap between two sets of intervals. — bed_fisher","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, n = 1e4, seed = 1010486) y <- bed_random(genome, n = 1e4, seed = 9203911) bed_fisher(x, y, genome) #> # A tibble: 1 × 6 #> estimate p.value conf.low conf.high method alternative #> #> 1 0.945 0.707 0.722 1.22 Fisher's Exact Test for Count… two.sided"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":null,"dir":"Reference","previous_headings":"","what":"Create flanking intervals from input intervals. — bed_flank","title":"Create flanking intervals from input intervals. — bed_flank","text":"Create flanking intervals input intervals.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"bed_flank( x, genome, both = 0, left = 0, right = 0, fraction = FALSE, strand = FALSE, trim = FALSE, ... )"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create flanking intervals from input intervals. — bed_flank","text":"x ivl_df genome genome_df number bases sizes left number bases left side right number bases right side fraction define flanks based fraction interval length strand define left right based strand trim adjust coordinates --bounds intervals ... extra arguments (used)","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create flanking intervals from input intervals. — bed_flank","text":"ivl_df","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_flank.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create flanking intervals from input intervals. — bed_flank","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 130 ) bed_glyph(bed_flank(x, genome, both = 20)) x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 500, 1000, \".\", \".\", \"+\", \"chr1\", 1000, 1500, \".\", \".\", \"-\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 5000 ) bed_flank(x, genome, left = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - bed_flank(x, genome, right = 100) #> # A tibble: 2 × 6 #> chrom start end name score strand #> #> 1 chr1 1000 1100 . . + #> 2 chr1 1500 1600 . . - bed_flank(x, genome, both = 100) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 400 500 . . + #> 2 chr1 900 1000 . . - #> 3 chr1 1000 1100 . . + #> 4 chr1 1500 1600 . . - bed_flank(x, genome, both = 0.5, fraction = TRUE) #> # A tibble: 4 × 6 #> chrom start end name score strand #> #> 1 chr1 250 500 . . + #> 2 chr1 750 1000 . . - #> 3 chr1 1000 1250 . . + #> 4 chr1 1500 1750 . . -"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate coverage across a genome — bed_genomecov","title":"Calculate coverage across a genome — bed_genomecov","text":"function useful calculating interval coverage across entire genome.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"bed_genomecov(x, genome, zero_depth = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate coverage across a genome — bed_genomecov","text":"x ivl_df genome genome_df zero_depth TRUE, report intervals zero depth. Zero depth intervals reported respect groups.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate coverage across a genome — bed_genomecov","text":"ivl_df additional column: .depth depth interval coverage","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate coverage across a genome — bed_genomecov","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_genomecov.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate coverage across a genome — bed_genomecov","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~strand, \"chr1\", 20, 70, \"+\", \"chr1\", 50, 100, \"-\", \"chr1\", 200, 250, \"+\", \"chr1\", 220, 250, \"+\" ) genome <- tibble::tribble( ~chrom, ~size, \"chr1\", 500, \"chr2\", 1000 ) bed_genomecov(x, genome) #> # A tibble: 5 × 4 #> chrom start end .depth #> #> 1 chr1 20 50 1 #> 2 chr1 50 70 2 #> 3 chr1 70 100 1 #> 4 chr1 200 220 1 #> 5 chr1 220 250 2 bed_genomecov(dplyr::group_by(x, strand), genome) #> # A tibble: 4 × 5 #> chrom start end strand .depth #> #> 1 chr1 20 70 + 1 #> 2 chr1 200 220 + 1 #> 3 chr1 220 250 + 2 #> 4 chr1 50 100 - 1 bed_genomecov(dplyr::group_by(x, strand), genome, zero_depth = TRUE) #> # A tibble: 11 × 5 #> chrom start end strand .depth #> #> 1 chr1 0 20 + 0 #> 2 chr1 0 50 - 0 #> 3 chr1 20 70 + 1 #> 4 chr1 50 100 - 1 #> 5 chr1 70 200 + 0 #> 6 chr1 100 500 - 0 #> 7 chr1 200 220 + 1 #> 8 chr1 220 250 + 2 #> 9 chr1 250 500 + 0 #> 10 chr2 0 1000 + 0 #> 11 chr2 0 1000 - 0"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":null,"dir":"Reference","previous_headings":"","what":"Create example glyphs for valr functions. — bed_glyph","title":"Create example glyphs for valr functions. — bed_glyph","text":"Used illustrate output valr functions small examples.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"bed_glyph(expr, label = NULL)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create example glyphs for valr functions. — bed_glyph","text":"expr expression evaluate label column name use label values. present result call.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create example glyphs for valr functions. — bed_glyph","text":"ggplot2::ggplot()","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_glyph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create example glyphs for valr functions. — bed_glyph","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 30, 75, 50 ) bed_glyph(bed_intersect(x, y)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75, \"chr1\", 50, 90, \"chr1\", 91, 120 ) bed_glyph(bed_merge(x)) bed_glyph(bed_cluster(x), label = \".id\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify intersecting intervals. — bed_intersect","title":"Identify intersecting intervals. — bed_intersect","text":"Report intersecting intervals x y tbls. Book-ended intervals .overlap values 0 output.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"bed_intersect(x, ..., invert = FALSE, suffix = c(\".x\", \".y\"))"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify intersecting intervals. — bed_intersect","text":"x ivl_df ... one (e.g. list ) y ivl_df()s invert report x intervals y suffix colname suffixes output","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify intersecting intervals. — bed_intersect","text":"ivl_df original columns x y suffixed .x .y, new .overlap column extent overlap intersecting intervals. multiple y tbls supplied, .source contains variable names associated interval. original columns y suffixed .y output. ... contains named inputs (.e = y, b = z list(= y, b = z)), .source contain supplied names (see examples).","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Identify intersecting intervals. — bed_intersect","text":"input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_intersect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify intersecting intervals. — bed_intersect","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 25, 50, \"chr1\", 100, 125 ) y <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 30, 75 ) bed_glyph(bed_intersect(x, y)) bed_glyph(bed_intersect(x, y, invert = TRUE)) x <- tibble::tribble( ~chrom, ~start, ~end, \"chr1\", 100, 500, \"chr2\", 200, 400, \"chr2\", 300, 500, \"chr2\", 800, 900 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 350, 430, 300 ) bed_intersect(x, y) #> # A tibble: 6 × 7 #> chrom start.x end.x start.y end.y value.y .overlap #> #> 1 chr1 100 500 150 400 100 250 #> 2 chr1 100 500 500 550 100 0 #> 3 chr2 200 400 230 430 200 170 #> 4 chr2 200 400 350 430 300 50 #> 5 chr2 300 500 230 430 200 130 #> 6 chr2 300 500 350 430 300 80 bed_intersect(x, y, invert = TRUE) #> # A tibble: 1 × 3 #> chrom start end #> #> 1 chr2 800 900 # start and end of each overlapping interval res <- bed_intersect(x, y) dplyr::mutate(res, start = pmax(start.x, start.y), end = pmin(end.x, end.y) ) #> # A tibble: 6 × 9 #> chrom start.x end.x start.y end.y value.y .overlap start end #> #> 1 chr1 100 500 150 400 100 250 150 400 #> 2 chr1 100 500 500 550 100 0 500 500 #> 3 chr2 200 400 230 430 200 170 230 400 #> 4 chr2 200 400 350 430 300 50 350 400 #> 5 chr2 300 500 230 430 200 130 300 430 #> 6 chr2 300 500 350 430 300 80 350 430 z <- tibble::tribble( ~chrom, ~start, ~end, ~value, \"chr1\", 150, 400, 100, \"chr1\", 500, 550, 100, \"chr2\", 230, 430, 200, \"chr2\", 750, 900, 400 ) bed_intersect(x, y, z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 y 250 #> 2 chr1 100 500 150 400 100 z 250 #> 3 chr1 100 500 500 550 100 y 0 #> 4 chr1 100 500 500 550 100 z 0 #> 5 chr2 200 400 230 430 200 y 170 #> 6 chr2 200 400 230 430 200 z 170 #> 7 chr2 200 400 350 430 300 y 50 #> 8 chr2 300 500 230 430 200 y 130 #> 9 chr2 300 500 230 430 200 z 130 #> 10 chr2 300 500 350 430 300 y 80 #> 11 chr2 800 900 750 900 400 z 100 bed_intersect(x, exons = y, introns = z) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100 # a list of tbl_intervals can also be passed bed_intersect(x, list(exons = y, introns = z)) #> # A tibble: 11 × 8 #> chrom start.x end.x start.y end.y value.y .source .overlap #> #> 1 chr1 100 500 150 400 100 exons 250 #> 2 chr1 100 500 150 400 100 introns 250 #> 3 chr1 100 500 500 550 100 exons 0 #> 4 chr1 100 500 500 550 100 introns 0 #> 5 chr2 200 400 230 430 200 exons 170 #> 6 chr2 200 400 230 430 200 introns 170 #> 7 chr2 200 400 350 430 300 exons 50 #> 8 chr2 300 500 230 430 200 exons 130 #> 9 chr2 300 500 230 430 200 introns 130 #> 10 chr2 300 500 350 430 300 exons 80 #> 11 chr2 800 900 750 900 400 introns 100"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Quantifies extent overlap sets intervals terms base-pairs. Groups shared input used calculate statistic subsets data.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"bed_jaccard(x, y)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"x ivl_df y ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"tibble following columns: len_i length intersection base-pairs len_u length union base-pairs jaccard value jaccard statistic n_int number intersecting intervals x y inputs grouped, return value contain one set values per group.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"Jaccard statistic takes values [0,1] measured : $$ J(x,y) = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\bigcup y \\mid} = \\frac{\\mid x \\bigcap y \\mid} {\\mid x \\mid + \\mid y \\mid - \\mid x \\bigcap y \\mid} $$ Interval statistics can used combination dplyr::group_by() dplyr::() calculate statistics subsets data. See vignette('interval-stats') examples.","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_jaccard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Jaccard statistic for two sets of intervals. — bed_jaccard","text":"","code":"genome <- read_genome(valr_example(\"hg19.chrom.sizes.gz\")) x <- bed_random(genome, seed = 1010486) y <- bed_random(genome, seed = 9203911) bed_jaccard(x, y) #> # A tibble: 1 × 4 #> len_i len_u jaccard n #> #> 1 236184699 1708774142 0.160 399981 # calculate jaccard per chromosome bed_jaccard( dplyr::group_by(x, chrom), dplyr::group_by(y, chrom) ) #> # A tibble: 25 × 5 #> chrom len_i len_u jaccard n #> #> 1 chr1 18939046 137345996 0.160 32156 #> 2 chr10 10524360 75209830 0.163 17830 #> 3 chr11 10378246 74655177 0.161 17497 #> 4 chr12 10146255 73725046 0.160 17163 #> 5 chr13 8867024 63737541 0.162 14992 #> 6 chr14 8047103 59033144 0.158 13647 #> 7 chr15 7794057 56514322 0.160 13236 #> 8 chr16 6907575 49874077 0.161 11650 #> 9 chr17 6186446 44917522 0.160 10487 #> 10 chr18 6044900 43248877 0.162 10129 #> # ℹ 15 more rows"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":null,"dir":"Reference","previous_headings":"","what":"Divide intervals into new sub-intervals (","title":"Divide intervals into new sub-intervals (","text":"Divide intervals new sub-intervals (\"windows\").","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Divide intervals into new sub-intervals (","text":"","code":"bed_makewindows(x, win_size = 0, step_size = 0, num_win = 0, reverse = FALSE)"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Divide intervals into new sub-intervals (","text":"x ivl_df win_size divide intervals fixed-size windows step_size size step next window num_win divide intervals fixed number windows reverse reverse window numbers","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Divide intervals into new sub-intervals (","text":"ivl_df .win_id column contains numeric identifier window.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Divide intervals into new sub-intervals (","text":"name .win_id columns can used create new interval names (see 'namenum' example ) subsequent group_by operations (see vignette).","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_makewindows.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Divide intervals into new sub-intervals (","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, ~name, ~score, ~strand, \"chr1\", 100, 200, \"A\", \".\", \"+\" ) bed_glyph(bed_makewindows(x, num_win = 10), label = \".win_id\") # Fixed number of windows bed_makewindows(x, num_win = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size bed_makewindows(x, win_size = 10) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 110 120 A . + 2 #> 3 chr1 120 130 A . + 3 #> 4 chr1 130 140 A . + 4 #> 5 chr1 140 150 A . + 5 #> 6 chr1 150 160 A . + 6 #> 7 chr1 160 170 A . + 7 #> 8 chr1 170 180 A . + 8 #> 9 chr1 180 190 A . + 9 #> 10 chr1 190 200 A . + 10 # Fixed window size with overlaps bed_makewindows(x, win_size = 10, step_size = 5) #> # A tibble: 20 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 1 #> 2 chr1 105 115 A . + 2 #> 3 chr1 110 120 A . + 3 #> 4 chr1 115 125 A . + 4 #> 5 chr1 120 130 A . + 5 #> 6 chr1 125 135 A . + 6 #> 7 chr1 130 140 A . + 7 #> 8 chr1 135 145 A . + 8 #> 9 chr1 140 150 A . + 9 #> 10 chr1 145 155 A . + 10 #> 11 chr1 150 160 A . + 11 #> 12 chr1 155 165 A . + 12 #> 13 chr1 160 170 A . + 13 #> 14 chr1 165 175 A . + 14 #> 15 chr1 170 180 A . + 15 #> 16 chr1 175 185 A . + 16 #> 17 chr1 180 190 A . + 17 #> 18 chr1 185 195 A . + 18 #> 19 chr1 190 200 A . + 19 #> 20 chr1 195 200 A . + 20 # reverse win_id bed_makewindows(x, win_size = 10, reverse = TRUE) #> # A tibble: 10 × 7 #> chrom start end name score strand .win_id #> #> 1 chr1 100 110 A . + 10 #> 2 chr1 110 120 A . + 9 #> 3 chr1 120 130 A . + 8 #> 4 chr1 130 140 A . + 7 #> 5 chr1 140 150 A . + 6 #> 6 chr1 150 160 A . + 5 #> 7 chr1 160 170 A . + 4 #> 8 chr1 170 180 A . + 3 #> 9 chr1 180 190 A . + 2 #> 10 chr1 190 200 A . + 1 # bedtools 'namenum' wins <- bed_makewindows(x, win_size = 10) dplyr::mutate(wins, namenum = stringr::str_c(name, \"_\", .win_id)) #> # A tibble: 10 × 8 #> chrom start end name score strand .win_id namenum #> #> 1 chr1 100 110 A . + 1 A_1 #> 2 chr1 110 120 A . + 2 A_2 #> 3 chr1 120 130 A . + 3 A_3 #> 4 chr1 130 140 A . + 4 A_4 #> 5 chr1 140 150 A . + 5 A_5 #> 6 chr1 150 160 A . + 6 A_6 #> 7 chr1 160 170 A . + 7 A_7 #> 8 chr1 170 180 A . + 8 A_8 #> 9 chr1 180 190 A . + 9 A_9 #> 10 chr1 190 200 A . + 10 A_10"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate summaries from overlapping intervals. — bed_map","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Apply functions like min() count() intersecting intervals. bed_map() uses bed_intersect() identify intersecting intervals, output columns suffixed .x .y. Expressions refer input columns x y columns must take suffixes account.","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"bed_map(x, y, ..., min_overlap = 1) concat(.data, sep = \",\") values_unique(.data, sep = \",\") values(.data, sep = \",\")"},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate summaries from overlapping intervals. — bed_map","text":"x ivl_df y ivl_df ... name-value pairs specifying column names expressions apply min_overlap minimum overlap intervals. .data data sep separator character","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate summaries from overlapping intervals. — bed_map","text":"ivl_df","code":""},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate summaries from overlapping intervals. — bed_map","text":"Book-ended intervals can included setting min_overlap = 0. Non-intersecting intervals x included result NA values. input tbls grouped chrom default, additional groups can added using dplyr::group_by(). example, grouping strand constrain analyses strand. compare opposing strands across two tbls, strands y tbl can first inverted using flip_strands().","code":""},{"path":[]},{"path":"https://rnabioco.github.io/valr/dev/reference/bed_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate summaries from overlapping intervals. — bed_map","text":"","code":"x <- tibble::tribble( ~chrom, ~start, ~end, 'chr1', 100, 250, 'chr2', 250, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~value, 'chr1', 100, 250, 10, 'chr1', 150, 250, 20, 'chr2', 250, 500, 500 ) bed_glyph(bed_map(x, y, value = sum(value)), label = 'value') # summary examples bed_map(x, y, .sum = sum(value)) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 bed_map(x, y, .min = min(value), .max = max(value)) #> # A tibble: 2 × 5 #> chrom start end .min .max #> #> 1 chr1 100 250 10 20 #> 2 chr2 250 500 500 500 # identify non-intersecting intervals to include in the result res <- bed_map(x, y, .sum = sum(value)) x_not <- bed_intersect(x, y, invert = TRUE) dplyr::bind_rows(res, x_not) #> # A tibble: 2 × 4 #> chrom start end .sum #> #> 1 chr1 100 250 30 #> 2 chr2 250 500 500 # create a list-column bed_map(x, y, .values = list(value)) #> # A tibble: 2 × 4 #> chrom start end .values #> #> 1 chr1 100 250 #> 2 chr2 250 500 # use `nth` family from dplyr bed_map(x, y, .first = dplyr::first(value)) #> # A tibble: 2 × 4 #> chrom start end .first #>
- #> 1 chr1 100 250