init
Browse files- Dockerfile +11 -3
- app.R +523 -54
- data.R +273 -0
- favicon.png +0 -0
- globals.R +98 -0
- penguins.csv +0 -345
- www/SVL_logo.webp +0 -0
- www/favicon.png +0 -0
- www/globals.js +9 -0
- www/rtemis_gray.png +0 -0
- www/rtemisbio_gray.png +0 -0
- www/rtemisbio_s.webp +0 -0
- www/rtemislive.scss +66 -0
- www/rtemislive_gray.png +0 -0
- www/svl.webp +0 -0
Dockerfile
CHANGED
@@ -4,13 +4,21 @@ WORKDIR /code
|
|
4 |
|
5 |
# Install stable packages from CRAN
|
6 |
RUN install2.r --error \
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
# Install development packages from GitHub
|
11 |
RUN installGithub.r \
|
12 |
rstudio/bslib \
|
13 |
-
rstudio/httpuv
|
|
|
|
|
14 |
|
15 |
COPY . .
|
16 |
|
|
|
4 |
|
5 |
# Install stable packages from CRAN
|
6 |
RUN install2.r --error \
|
7 |
+
shiny \
|
8 |
+
htmltools \
|
9 |
+
plotly \
|
10 |
+
bsicons \
|
11 |
+
sass \
|
12 |
+
shinyWidgets \
|
13 |
+
shinybusy \
|
14 |
+
listviewer
|
15 |
|
16 |
# Install development packages from GitHub
|
17 |
RUN installGithub.r \
|
18 |
rstudio/bslib \
|
19 |
+
rstudio/httpuv \
|
20 |
+
egenn/rtemis \
|
21 |
+
egenn/rtemisbio
|
22 |
|
23 |
COPY . .
|
24 |
|
app.R
CHANGED
@@ -1,58 +1,527 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
library(shiny)
|
2 |
library(bslib)
|
3 |
-
library(
|
4 |
-
library(
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
p <- ggplot(subsetted(), aes(!!input$xvar, !!input$yvar)) +
|
36 |
-
theme_light() +
|
37 |
-
list(
|
38 |
-
theme(legend.position = "bottom"),
|
39 |
-
if (input$by_species) aes(color = Species),
|
40 |
-
geom_point(),
|
41 |
-
if (input$smooth) geom_smooth()
|
42 |
-
)
|
43 |
-
|
44 |
-
if (input$show_margins) {
|
45 |
-
margin_type <- if (input$by_species) "density" else "histogram"
|
46 |
-
p <- p |> ggExtra::ggMarginal(
|
47 |
-
type = margin_type, margins = "both",
|
48 |
-
size = 8, groupColour = input$by_species, groupFill = input$by_species
|
49 |
-
)
|
50 |
-
}
|
51 |
-
|
52 |
-
p
|
53 |
-
},
|
54 |
-
res = 100
|
55 |
)
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
|
|
|
1 |
+
# rtemisseq
|
2 |
+
# ::rtemislive::
|
3 |
+
# 2024 EDG rtemis.org
|
4 |
+
|
5 |
+
# shiny::runApp("./")
|
6 |
+
# Setup
|
7 |
+
library(rtemis)
|
8 |
+
library(rtemisbio)
|
9 |
library(shiny)
|
10 |
library(bslib)
|
11 |
+
library(htmltools)
|
12 |
+
library(plotly)
|
13 |
+
source("globals.R")
|
14 |
+
source("data.R")
|
15 |
+
|
16 |
+
# Colors
|
17 |
+
primary <- "#72CDF4"
|
18 |
+
info <- helpcol <- "#FEB2E0"
|
19 |
+
success <- "#B4DC55"
|
20 |
+
|
21 |
+
#' Create protein visualization shinylive app
|
22 |
+
#'
|
23 |
+
#' Visualize protein amino acid sequence and annotations using
|
24 |
+
#' `dplot3_protein()`
|
25 |
+
#'
|
26 |
+
#' Set verbosity to 1 to monitor app progress
|
27 |
+
#'
|
28 |
+
#' @param default_theme Character: "dark" or "light" theme
|
29 |
+
#' @param verbosity Integer: 0 = silent, 1 = verbose
|
30 |
+
#'
|
31 |
+
#' @author EDG
|
32 |
+
#' @export
|
33 |
+
#' @return A shiny app that can be converted to a shinylive app
|
34 |
+
rtemisseq_version <- "0.2.6"
|
35 |
+
seqvizlive <- function(
|
36 |
+
default_theme = "dark",
|
37 |
+
protein_plotly_height = "900px",
|
38 |
+
jsonedit_height = "900px",
|
39 |
+
verbosity = 0) {
|
40 |
+
# Logo
|
41 |
+
logo <- base64enc::dataURI(
|
42 |
+
file = "./www/rtemisbio_gray.png", mime = "image/png"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
)
|
44 |
+
# Version
|
45 |
+
platform <- sessionInfo()[["platform"]]
|
46 |
+
svl <- paste0(
|
47 |
+
"rtemisseq v.", rtemisseq_version,
|
48 |
+
" | ", "rtemis v.0.97.3", utils::packageVersion("rtemis"), # doesn't work in shinylive
|
49 |
+
" | ", "rtemisbio v.", utils::packageVersion("rtemisbio"),
|
50 |
+
" | R v.", version$major, ".", version$minor,
|
51 |
+
" | running on ", platform
|
52 |
+
)
|
53 |
+
|
54 |
+
# Shinylive info
|
55 |
+
shinylive_info <- if (substr(platform, 1, 4) == "wasm") {
|
56 |
+
paste0(
|
57 |
+
"<br><br>This application has been compiled to ",
|
58 |
+
as.character(a("WebAssembly", href = "https://webassembly.org/", target = "_blank")),
|
59 |
+
" using ",
|
60 |
+
as.character(a("shinylive", href = "https://posit-dev.github.io/r-shinylive/", target = "_blank")),
|
61 |
+
"<br>and is best viewed with the latest version of Chrome."
|
62 |
+
)
|
63 |
+
} else {
|
64 |
+
NULL
|
65 |
+
}
|
66 |
+
|
67 |
+
# UI page_navbar ----
|
68 |
+
ui <- function(request) {
|
69 |
+
bslib::page_navbar(
|
70 |
+
# Title ----
|
71 |
+
title = list(
|
72 |
+
logo = a(
|
73 |
+
img(
|
74 |
+
src = logo,
|
75 |
+
width = "140px",
|
76 |
+
height = "auto",
|
77 |
+
alt = "rtemisbio"
|
78 |
+
),
|
79 |
+
href = "https://rtemis.org/rtemisbio",
|
80 |
+
)
|
81 |
+
),
|
82 |
+
id = "rtemisbio",
|
83 |
+
selected = "Welcome",
|
84 |
+
footer = span(
|
85 |
+
svl,
|
86 |
+
" © 2024 EDG",
|
87 |
+
style = "display: block; text-align: center; margin-top: 1em; margin-bottom: 1em;"
|
88 |
+
),
|
89 |
+
# Theme ----
|
90 |
+
theme = bslib::bs_theme(
|
91 |
+
bg = "#fff",
|
92 |
+
fg = "#000",
|
93 |
+
primary = primary,
|
94 |
+
secondary = "#704071",
|
95 |
+
success = success,
|
96 |
+
info = info,
|
97 |
+
`tooltip-bg` = "#303030",
|
98 |
+
`tooltip-color` = helpcol,
|
99 |
+
`tooltip-opacity` = 1,
|
100 |
+
`tooltip-border-radius` = "10px",
|
101 |
+
`tooltip-padding-x` = "1rem",
|
102 |
+
`tooltip-padding-y` = "1rem",
|
103 |
+
`tooltip-font-size` = "1rem"
|
104 |
+
# base_font = bslib::font_google("Inter"), # doesn't work in shinylive
|
105 |
+
# code_font = bslib::font_google("Fira Code")
|
106 |
+
) |>
|
107 |
+
bs_add_rules(sass::sass_file("www/rtemislive.scss")),
|
108 |
+
# Window title ----
|
109 |
+
window_title = "rtemisSeq",
|
110 |
+
# Language ----
|
111 |
+
lang = "en",
|
112 |
+
# tags$script(src = "globals.js"),
|
113 |
+
# Nav Panels ----
|
114 |
+
## [] Welcome ----
|
115 |
+
bslib::nav_panel(
|
116 |
+
title = "Welcome",
|
117 |
+
icon = bsicons::bs_icon("stars"),
|
118 |
+
bslib::card(
|
119 |
+
h4("Welcome to rtemisSeq", style = "text-align: center;"),
|
120 |
+
card_body(
|
121 |
+
class = "d-inline text-center",
|
122 |
+
HTML(paste0(
|
123 |
+
"rtemisSeq is a web interface for ",
|
124 |
+
as.character(a("rtemisbio", href = "https://rtemis.org/rtemisbio", target = "_blank")),
|
125 |
+
", <br>providing interactive visualization of sequence data.",
|
126 |
+
"<br>Created for the ", as.character(a("FTD CWOW", href = "https://cwow.ucsf.edu/", target = "_blank")),
|
127 |
+
".<br><br>",
|
128 |
+
rthelp_inline(
|
129 |
+
"To get started, use the navigation tabs at the top.",
|
130 |
+
title = "Welcome"
|
131 |
+
),
|
132 |
+
shinylive_info
|
133 |
+
)),
|
134 |
+
br(), br(),
|
135 |
+
bslib::card_image(
|
136 |
+
file = "./www/svl.webp",
|
137 |
+
alt = "rtemislive",
|
138 |
+
align = "center",
|
139 |
+
border_radius = "all",
|
140 |
+
fill = FALSE,
|
141 |
+
width = "40%",
|
142 |
+
class = "mx-auto"
|
143 |
+
)
|
144 |
+
)
|
145 |
+
)
|
146 |
+
), # /nav_panel Welcome
|
147 |
+
## [] Protein Visualization ----
|
148 |
+
bslib::nav_panel(
|
149 |
+
title = "Protein Visualization",
|
150 |
+
icon = bsicons::bs_icon("body-text"),
|
151 |
+
card(
|
152 |
+
full_screen = TRUE,
|
153 |
+
class = "p-0",
|
154 |
+
# allow items side by side ----
|
155 |
+
card_header(
|
156 |
+
class = "d-flex justify-content-end",
|
157 |
+
# tooltip UI output ----
|
158 |
+
uiOutput("ui_a3_tooltip"),
|
159 |
+
# popover UI output ----
|
160 |
+
uiOutput("ui_a3_popover")
|
161 |
+
),
|
162 |
+
layout_sidebar(
|
163 |
+
fillable = TRUE,
|
164 |
+
# Data Load Sidebar ----
|
165 |
+
sidebar = bslib::sidebar(
|
166 |
+
uiOutput("ui_a3_load_switch"), # Switch between file upload and built-in data
|
167 |
+
uiOutput("ui_a3_data_load"), # File upload or built-in data selection depending on switch
|
168 |
+
uiOutput("ui_a3_data_info"), # Shows dataset info
|
169 |
+
uiOutput("ui_a3_plot_button"), # Click to plot
|
170 |
+
# uiOutput("ui_a3_tooltip")
|
171 |
+
),
|
172 |
+
# Plot Output ----
|
173 |
+
# for shinylive, do not use plotlyOutput directly in ui !!
|
174 |
+
# fails when no plot is rendered, unlike shiny
|
175 |
+
uiOutput("ui_dplot3_protein")
|
176 |
+
)
|
177 |
+
)
|
178 |
+
# bslib::navset_card_tab(
|
179 |
+
# full_screen = TRUE,
|
180 |
+
# # []] Sequence Viewer ----
|
181 |
+
# bslib::nav_panel(
|
182 |
+
# title = "Sequence Viewer",
|
183 |
+
# layout_sidebar(
|
184 |
+
# # Data Load Sidebar ----
|
185 |
+
# sidebar = bslib::sidebar(
|
186 |
+
# uiOutput("ui_a3_load_switch"), # Switch between file upload and built-in data
|
187 |
+
# uiOutput("ui_a3_data_load"), # File upload or built-in data selection depending on switch
|
188 |
+
# uiOutput("ui_a3_data_info"), # Shows dataset info
|
189 |
+
# uiOutput("ui_a3_plot_button") # Click to plot
|
190 |
+
# ),
|
191 |
+
# # Plot Output ----
|
192 |
+
# # for shinylive, do not use plotlyOutput directly in ui !!
|
193 |
+
# # fails when no plot is rendered, unlike shiny
|
194 |
+
# uiOutput("ui_dplot3_protein")
|
195 |
+
# )
|
196 |
+
# ),
|
197 |
+
# # []] jsonedit ----
|
198 |
+
# bslib::nav_panel(
|
199 |
+
# title = "Raw Data",
|
200 |
+
# bslib::card(
|
201 |
+
# bslib::card_title("Sequence & Annotation data"),
|
202 |
+
# uiOutput("ui_jsonedit")
|
203 |
+
# )
|
204 |
+
# ) # /nav_panel jsonedit
|
205 |
+
# ) # /navset_card_tab
|
206 |
+
), # /nav_panel Protein Visualization
|
207 |
+
## [] About ----
|
208 |
+
bslib::nav_panel(
|
209 |
+
title = "About",
|
210 |
+
icon = bsicons::bs_icon("info-square"),
|
211 |
+
bslib::card(
|
212 |
+
card_image(
|
213 |
+
file = "./www/rtemisbio_s.webp",
|
214 |
+
href = "https://rtemis.org/rtemisbio",
|
215 |
+
alt = "rtemislive",
|
216 |
+
align = "center",
|
217 |
+
border_radius = "all",
|
218 |
+
fill = FALSE,
|
219 |
+
width = "54%",
|
220 |
+
class = "mx-auto"
|
221 |
+
),
|
222 |
+
div(
|
223 |
+
class = "d-inline text-center",
|
224 |
+
HTML(paste0(
|
225 |
+
"Created by the ",
|
226 |
+
as.character(a("FTD CWOW", href = "https://cwow.ucsf.edu/", target = "_blank")),
|
227 |
+
" Genomics & Transcriptomics core.<br/>",
|
228 |
+
"Powered by rtemis & rtemisbio (",
|
229 |
+
as.character(a("rtemis.org", href = "https://rtemis.org", target = "_blank")),
|
230 |
+
")."
|
231 |
+
)),
|
232 |
+
br(), br(),
|
233 |
+
a(
|
234 |
+
img(
|
235 |
+
src = "rtemis_gray.png",
|
236 |
+
alt = "rtemis",
|
237 |
+
align = "center",
|
238 |
+
width = "190px"
|
239 |
+
),
|
240 |
+
href = "https://rtemis.org",
|
241 |
+
target = "_blank"
|
242 |
+
),
|
243 |
+
align = "center"
|
244 |
+
)
|
245 |
+
)
|
246 |
+
), # /nav_panel About
|
247 |
+
bslib::nav_spacer(),
|
248 |
+
bslib::nav_item(input_dark_mode(id = "dark_mode", mode = default_theme)),
|
249 |
+
header = list(
|
250 |
+
# busy indicators ----
|
251 |
+
shinybusy::add_busy_spinner(
|
252 |
+
spin = "orbit",
|
253 |
+
# color = "#72CDF4",
|
254 |
+
color = "#00ffff",
|
255 |
+
timeout = 200,
|
256 |
+
position = "bottom-left",
|
257 |
+
onstart = FALSE
|
258 |
+
)
|
259 |
+
)
|
260 |
+
) # /ui /bslib::page_navbar
|
261 |
+
} # /ui function
|
262 |
+
|
263 |
+
# Server ----
|
264 |
+
server <- function(input, output, session) {
|
265 |
+
# UI a3 load switch ----
|
266 |
+
output$ui_a3_load_switch <- shiny::renderUI({
|
267 |
+
if (verbosity > 0) {
|
268 |
+
message("Rendering ui_a3_load_switch")
|
269 |
+
}
|
270 |
+
# Radio buttons: built-in data vs upload file ----
|
271 |
+
shiny::radioButtons(
|
272 |
+
inputId = "a3_load_switch",
|
273 |
+
label = "Data source",
|
274 |
+
choices = list(
|
275 |
+
`Built-in datasets` = "builtin",
|
276 |
+
`File upload` = "upload"
|
277 |
+
),
|
278 |
+
selected = "builtin"
|
279 |
+
)
|
280 |
+
})
|
281 |
+
|
282 |
+
# UI a3 Data ----
|
283 |
+
output$ui_a3_data_load <- shiny::renderUI({
|
284 |
+
req(input$a3_load_switch)
|
285 |
+
if (input$a3_load_switch == "upload") {
|
286 |
+
# Upload a3 JSON file
|
287 |
+
if (verbosity > 0) {
|
288 |
+
message("Rendering ui_a3_data_load for file upload")
|
289 |
+
}
|
290 |
+
shiny::fileInput(
|
291 |
+
inputId = "a3_file",
|
292 |
+
label = "Upload a3 JSON file",
|
293 |
+
buttonLabel = "Browse local files...",
|
294 |
+
)
|
295 |
+
} else {
|
296 |
+
# Select built-in data stored in ./data/ directory
|
297 |
+
if (verbosity > 0) {
|
298 |
+
message("Rendering ui_a3_data_load for built-in data selection")
|
299 |
+
}
|
300 |
+
shiny::selectizeInput(
|
301 |
+
inputId = "a3_builtin_data",
|
302 |
+
label = "Select built-in a3 dataset",
|
303 |
+
choices = c("mapt_annot", "mapt_clv"),
|
304 |
+
selected = "mapt_annot"
|
305 |
+
)
|
306 |
+
}
|
307 |
+
}) # /ui_a3_data_load
|
308 |
+
|
309 |
+
# UI for a3 data info ----
|
310 |
+
output$ui_a3_data_info <- shiny::renderUI({
|
311 |
+
req(a3_obj())
|
312 |
+
if (verbosity > 0) {
|
313 |
+
message("Rendering ui_a3_data_info")
|
314 |
+
}
|
315 |
+
bslib::card(
|
316 |
+
bslib::card_title("a3 Dataset Info", container = htmltools::h6),
|
317 |
+
bslib::card_body(
|
318 |
+
# HTML("Sequence length:", paste0("<b>", length(a3_obj()$Sequence), "</b>")),
|
319 |
+
# if (length(a3_obj()$UniprotID) > 0) {
|
320 |
+
# HTML("Uniprot ID:", paste0("<b>", a3_obj()$UniprotID, "</b>"))
|
321 |
+
# },
|
322 |
+
# if (length(a3_obj()$Reference) > 0) {
|
323 |
+
# a("Reference", href = a3_obj()$Reference, target = "_blank")
|
324 |
+
# },
|
325 |
+
summarize_a3(a3_obj()),
|
326 |
+
fillable = FALSE
|
327 |
+
) # /card_body
|
328 |
+
) # /card
|
329 |
+
}) # /ui_a3_data_info
|
330 |
+
|
331 |
+
# UI for plot action button ----
|
332 |
+
output$ui_a3_plot_button <- shiny::renderUI({
|
333 |
+
req(a3_obj())
|
334 |
+
if (verbosity > 0) {
|
335 |
+
message("Rendering ui_a3_plot_button")
|
336 |
+
}
|
337 |
+
bslib::input_task_button(
|
338 |
+
"a3_plot_button",
|
339 |
+
"Plot dataset",
|
340 |
+
icon = bsicons::bs_icon("magic"),
|
341 |
+
label_busy = "Drawing...",
|
342 |
+
icon_busy = bsicons::bs_icon("clock-history"),
|
343 |
+
type = "primary",
|
344 |
+
auto_reset = TRUE
|
345 |
+
)
|
346 |
+
}) # /ui_a3_plot_button
|
347 |
+
|
348 |
+
# Load Dataset ----
|
349 |
+
a3_obj <- shiny::reactive({
|
350 |
+
req(input$a3_load_switch)
|
351 |
+
if (input$a3_load_switch == "upload") {
|
352 |
+
req(input$a3_file)
|
353 |
+
if (verbosity > 0) {
|
354 |
+
message("Loading a3 JSON file '", input$a3_file$datapath, "'")
|
355 |
+
}
|
356 |
+
dat <- read.a3json(input$a3_file$datapath)
|
357 |
+
if (verbosity > 0) {
|
358 |
+
message("Loaded dataset of class '", class(dat)[1], "'")
|
359 |
+
}
|
360 |
+
return(dat)
|
361 |
+
} else {
|
362 |
+
# Load built-in data from data.R objects
|
363 |
+
req(input$a3_builtin_data)
|
364 |
+
if (verbosity > 0) {
|
365 |
+
message("Loading built-in a3 dataset '", input$a3_builtin_data, "'")
|
366 |
+
}
|
367 |
+
# read.3.json from data folder works fine in shiny app, not shinylive,
|
368 |
+
# use objects from data.R instead
|
369 |
+
# assign to dat object of name input$a3_builtin_data
|
370 |
+
dat <- get(input$a3_builtin_data)
|
371 |
+
if (verbosity > 0) {
|
372 |
+
message("Loaded dataset of class '", class(dat)[1], "'")
|
373 |
+
}
|
374 |
+
return(dat)
|
375 |
+
}
|
376 |
+
}) # /a3_obj
|
377 |
+
|
378 |
+
# dplot3 theme is "white" or "black" ----
|
379 |
+
dplot3_theme <- shiny::reactive({
|
380 |
+
req(input$dark_mode)
|
381 |
+
if (input$dark_mode == "dark") {
|
382 |
+
"black"
|
383 |
+
} else {
|
384 |
+
"white"
|
385 |
+
}
|
386 |
+
}) # /dplot3_theme
|
387 |
+
|
388 |
+
# Render plotly ----
|
389 |
+
output$dplot3_protein <- plotly::renderPlotly({
|
390 |
+
req(a3_obj())
|
391 |
+
if (verbosity > 0) {
|
392 |
+
message("Rendering dplot3_protein of object with class '", class(a3_obj())[1], "'")
|
393 |
+
}
|
394 |
+
plot(
|
395 |
+
a3_obj(),
|
396 |
+
theme = dplot3_theme(),
|
397 |
+
marker.size = input$marker.size,
|
398 |
+
font.size = input$font.size,
|
399 |
+
ptm.marker.size = input$ptm.marker.size,
|
400 |
+
clv.marker.size = input$clv.marker.size,
|
401 |
+
bg = input$plot.bg, # legend.bg defaults to transparent, this sets paper bg
|
402 |
+
plot.bg = input$plot.bg,
|
403 |
+
marker.col = input$marker.col,
|
404 |
+
n.per.row = if (input$n.per.row == "auto") NULL else as.integer(input$n.per.row)
|
405 |
+
)
|
406 |
+
}) |> # /dplot3_protein
|
407 |
+
bindEvent(input$a3_plot_button, input$a3_plot_update_button)
|
408 |
+
|
409 |
+
# Create variable clicked that is TRUE after input$a3_plot_button is clicked
|
410 |
+
clicked <- shiny::reactiveVal(FALSE)
|
411 |
+
shiny::observeEvent(input$a3_plot_button, {
|
412 |
+
clicked(TRUE)
|
413 |
+
})
|
414 |
+
|
415 |
+
# UI a3 tooltip ----
|
416 |
+
output$ui_a3_tooltip <- shiny::renderUI({
|
417 |
+
if (clicked()) {
|
418 |
+
bslib::tooltip(
|
419 |
+
trigger = span(
|
420 |
+
"Plot help", bsicons::bs_icon("info-circle", class = "text-info"),
|
421 |
+
style = "text-align: right;",
|
422 |
+
class = "rtanihi"
|
423 |
+
),
|
424 |
+
div(
|
425 |
+
# HTML(
|
426 |
+
# paste0(
|
427 |
+
# "<ul>",
|
428 |
+
# "<li>Hover over plot to see annotations.",
|
429 |
+
# "<li>Click on legend items to toggle visibility of annotations.",
|
430 |
+
# "<li>Double-click on legend items to isolate a single annotation type.",
|
431 |
+
# "<li>Click on top-right gear icon to change plot settings.",
|
432 |
+
# "</ul>"
|
433 |
+
# )
|
434 |
+
# ),
|
435 |
+
rhelplist(
|
436 |
+
c(
|
437 |
+
"Hover over plot to see annotations.",
|
438 |
+
"Click on legend items to toggle visibility of annotations.",
|
439 |
+
"Double-click on legend items to isolate a single annotation type.",
|
440 |
+
"Click on top-right gear icon to change plot settings."
|
441 |
+
)
|
442 |
+
),
|
443 |
+
style = "text-align: left;"
|
444 |
+
), # /div rt-tooltip
|
445 |
+
placement = "bottom"
|
446 |
+
) # /tooltip
|
447 |
+
}
|
448 |
+
}) # /ui_a3_tooltip
|
449 |
+
|
450 |
+
# UI a3 popover ----
|
451 |
+
output$ui_a3_popover <- shiny::renderUI({
|
452 |
+
if (clicked()) {
|
453 |
+
popover(
|
454 |
+
trigger = bsicons::bs_icon("gear", class = "ms-auto"),
|
455 |
+
# trigger = span(
|
456 |
+
# "Plot settings", bsicons::bs_icon("gear", class = "ms-auto"),
|
457 |
+
# style = "text-align: right;"
|
458 |
+
# shiny::selectizeInput("a3.theme", label = "Theme", choices = c("dark", "light"), selected = default_theme),
|
459 |
+
shiny::sliderInput("marker.size", label = "Marker size", min = 1, max = 100, value = 28),
|
460 |
+
shiny::sliderInput("font.size", label = "Font size", min = 1, max = 72, value = 18),
|
461 |
+
if (length(a3_obj()$Annotations$PTM) > 0) shiny::sliderInput("ptm.marker.size", label = "PTM Marker size", min = .1, max = 36, value = 28 / 4.5),
|
462 |
+
if (length(a3_obj()$Annotations$Cleavage_site) > 0) shiny::sliderInput("clv.marker.size", label = "Cleavage Site Marker size", min = .1, max = 36, value = 28 / 4),
|
463 |
+
shinyWidgets::colorPickr(
|
464 |
+
"plot.bg",
|
465 |
+
label = "Plot background",
|
466 |
+
selected = ifelse(input$dark_mode == "dark", "#191919", "#FFFFFF")
|
467 |
+
),
|
468 |
+
shinyWidgets::colorPickr(
|
469 |
+
"marker.col",
|
470 |
+
label = "Marker color",
|
471 |
+
selected = ifelse(input$dark_mode == "dark", "#3f3f3f", "#dfdfdf")
|
472 |
+
),
|
473 |
+
textInput("n.per.row", "Number of AAs per row", value = "auto"),
|
474 |
+
# tags$i("Click on 'Plot dataset' to update render after changing settings."),
|
475 |
+
bslib::input_task_button(
|
476 |
+
"a3_plot_update_button",
|
477 |
+
"Update rendering",
|
478 |
+
icon = bsicons::bs_icon("arrow-clockwise"),
|
479 |
+
label_busy = "Drawing...",
|
480 |
+
icon_busy = bsicons::bs_icon("clock-history"),
|
481 |
+
type = "primary",
|
482 |
+
auto_reset = TRUE
|
483 |
+
),
|
484 |
+
title = "Plot settings",
|
485 |
+
placement = "auto"
|
486 |
+
# options = list(trigger = "hover focus click")
|
487 |
+
) # /popover
|
488 |
+
}
|
489 |
+
}) # /ui_a3_popover
|
490 |
+
|
491 |
+
|
492 |
+
# UI dplot3_protein ----
|
493 |
+
output$ui_dplot3_protein <- renderUI({
|
494 |
+
if (clicked() == FALSE || is.null(a3_obj())) {
|
495 |
+
rthelp(
|
496 |
+
"Select Data Source and Click 'Plot dataset' on the left.",
|
497 |
+
title = "Protein Visualization "
|
498 |
+
)
|
499 |
+
} else {
|
500 |
+
plotly::plotlyOutput(
|
501 |
+
"dplot3_protein",
|
502 |
+
width = "100%",
|
503 |
+
height = protein_plotly_height
|
504 |
+
)
|
505 |
+
}
|
506 |
+
}) # /ui_dplot3_protein
|
507 |
+
|
508 |
+
# Render JSON ----
|
509 |
+
output$jsonedit <- listviewer::renderJsonedit({
|
510 |
+
req(a3_obj())
|
511 |
+
listviewer::jsonedit(a3_obj())
|
512 |
+
}) # /json
|
513 |
+
|
514 |
+
# UI jsonedit ----
|
515 |
+
output$ui_jsonedit <- shiny::renderUI({
|
516 |
+
listviewer::jsoneditOutput(
|
517 |
+
"jsonedit",
|
518 |
+
height = jsonedit_height
|
519 |
+
)
|
520 |
+
})
|
521 |
+
} # /server
|
522 |
+
|
523 |
+
# Shiny app ----
|
524 |
+
shiny::shinyApp(ui = ui, server = server, enableBookmarking = "url")
|
525 |
+
} # seqvizlive
|
526 |
|
527 |
+
seqvizlive()
|
data.R
ADDED
@@ -0,0 +1,273 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# mapt_annot ----
|
2 |
+
# library(rtemisbio)
|
3 |
+
# mapt_annot <- read.a3json("./seqvizlive_app_fl/data/mapt_annot.json")
|
4 |
+
# mapt_annot
|
5 |
+
# dput(mapt_annot)
|
6 |
+
mapt_annot <- structure(list(
|
7 |
+
Sequence = c(
|
8 |
+
"M", "A", "E", "P", "R", "Q", "E",
|
9 |
+
"F", "E", "V", "M", "E", "D", "H", "A", "G", "T", "Y", "G", "L",
|
10 |
+
"G", "D", "R", "K", "D", "Q", "G", "G", "Y", "T", "M", "H", "Q",
|
11 |
+
"D", "Q", "E", "G", "D", "T", "D", "A", "G", "L", "K", "E", "S",
|
12 |
+
"P", "L", "Q", "T", "P", "T", "E", "D", "G", "S", "E", "E", "P",
|
13 |
+
"G", "S", "E", "T", "S", "D", "A", "K", "S", "T", "P", "T", "A",
|
14 |
+
"E", "D", "V", "T", "A", "P", "L", "V", "D", "E", "G", "A", "P",
|
15 |
+
"G", "K", "Q", "A", "A", "A", "Q", "P", "H", "T", "E", "I", "P",
|
16 |
+
"E", "G", "T", "T", "A", "E", "E", "A", "G", "I", "G", "D", "T",
|
17 |
+
"P", "S", "L", "E", "D", "E", "A", "A", "G", "H", "V", "T", "Q",
|
18 |
+
"A", "R", "M", "V", "S", "K", "S", "K", "D", "G", "T", "G", "S",
|
19 |
+
"D", "D", "K", "K", "A", "K", "G", "A", "D", "G", "K", "T", "K",
|
20 |
+
"I", "A", "T", "P", "R", "G", "A", "A", "P", "P", "G", "Q", "K",
|
21 |
+
"G", "Q", "A", "N", "A", "T", "R", "I", "P", "A", "K", "T", "P",
|
22 |
+
"P", "A", "P", "K", "T", "P", "P", "S", "S", "G", "E", "P", "P",
|
23 |
+
"K", "S", "G", "D", "R", "S", "G", "Y", "S", "S", "P", "G", "S",
|
24 |
+
"P", "G", "T", "P", "G", "S", "R", "S", "R", "T", "P", "S", "L",
|
25 |
+
"P", "T", "P", "P", "T", "R", "E", "P", "K", "K", "V", "A", "V",
|
26 |
+
"V", "R", "T", "P", "P", "K", "S", "P", "S", "S", "A", "K", "S",
|
27 |
+
"R", "L", "Q", "T", "A", "P", "V", "P", "M", "P", "D", "L", "K",
|
28 |
+
"N", "V", "K", "S", "K", "I", "G", "S", "T", "E", "N", "L", "K",
|
29 |
+
"H", "Q", "P", "G", "G", "G", "K", "V", "Q", "I", "I", "N", "K",
|
30 |
+
"K", "L", "D", "L", "S", "N", "V", "Q", "S", "K", "C", "G", "S",
|
31 |
+
"K", "D", "N", "I", "K", "H", "V", "P", "G", "G", "G", "S", "V",
|
32 |
+
"Q", "I", "V", "Y", "K", "P", "V", "D", "L", "S", "K", "V", "T",
|
33 |
+
"S", "K", "C", "G", "S", "L", "G", "N", "I", "H", "H", "K", "P",
|
34 |
+
"G", "G", "G", "Q", "V", "E", "V", "K", "S", "E", "K", "L", "D",
|
35 |
+
"F", "K", "D", "R", "V", "Q", "S", "K", "I", "G", "S", "L", "D",
|
36 |
+
"N", "I", "T", "H", "V", "P", "G", "G", "G", "N", "K", "K", "I",
|
37 |
+
"E", "T", "H", "K", "L", "T", "F", "R", "E", "N", "A", "K", "A",
|
38 |
+
"K", "T", "D", "H", "G", "A", "E", "I", "V", "Y", "K", "S", "P",
|
39 |
+
"V", "V", "S", "G", "D", "T", "S", "P", "R", "H", "L", "S", "N",
|
40 |
+
"V", "S", "S", "T", "G", "S", "I", "D", "M", "V", "D", "S", "P",
|
41 |
+
"Q", "L", "A", "T", "L", "A", "D", "E", "V", "S", "A", "S", "L",
|
42 |
+
"A", "K", "Q", "G", "L"
|
43 |
+
), Annotations = list(
|
44 |
+
Site = list(
|
45 |
+
Disease_associated_variant = c(
|
46 |
+
4L,
|
47 |
+
5L, 14L, 17L, 18L, 30L, 39L, 41L, 55L, 75L, 86L, 90L, 152L, 176L,
|
48 |
+
178L, 200L, 203L, 211L, 224L, 227L, 239L, 255L, 257L, 260L, 266L,
|
49 |
+
272L, 273L, 279L, 280L, 284L, 285L, 287L, 291L, 296L, 300L, 301L,
|
50 |
+
303L, 305L, 320L, 332L, 335L, 336L, 337L, 342L, 352L, 356L, 360L,
|
51 |
+
363L, 364L, 366L, 369L, 372L, 389L, 406L, 410L, 427L, 441L
|
52 |
+
),
|
53 |
+
`N-terminal Repeat` = 45:86, `Microtubule Binding Domain (R1, R3, R4)` = c(
|
54 |
+
244L,
|
55 |
+
245L, 246L, 247L, 248L, 249L, 250L, 251L, 252L, 253L, 254L,
|
56 |
+
255L, 256L, 257L, 258L, 259L, 260L, 261L, 262L, 263L, 264L,
|
57 |
+
265L, 266L, 267L, 268L, 269L, 270L, 271L, 272L, 273L, 274L,
|
58 |
+
306L, 307L, 308L, 309L, 310L, 311L, 312L, 313L, 314L, 315L,
|
59 |
+
316L, 317L, 318L, 319L, 320L, 321L, 322L, 323L, 324L, 325L,
|
60 |
+
326L, 327L, 328L, 329L, 330L, 331L, 332L, 333L, 334L, 335L,
|
61 |
+
336L, 337L, 338L, 339L, 340L, 341L, 342L, 343L, 344L, 345L,
|
62 |
+
346L, 347L, 348L, 349L, 350L, 351L, 352L, 353L, 354L, 355L,
|
63 |
+
356L, 357L, 358L, 359L, 360L, 361L, 362L, 363L, 364L, 365L,
|
64 |
+
366L, 367L, 368L
|
65 |
+
), `Microtubule Binding Domain (R2)` = 274:305
|
66 |
+
),
|
67 |
+
Region = list(
|
68 |
+
KXGS = list(259:262, 290:293, 321:324, 353:356),
|
69 |
+
`Canonical KFERQ` = list(336:340, 347:351), `Potential KFERQ` = list(
|
70 |
+
240:244, 280:284, 307:311, 343:347
|
71 |
+
), Phosphodegron = list(
|
72 |
+
46:51, 149:154, 195:200, 208:213, 231:236, 400:405
|
73 |
+
)
|
74 |
+
),
|
75 |
+
PTM = list(Phosphorylation = c(
|
76 |
+
17L, 18L, 29L, 30L, 39L, 46L,
|
77 |
+
50L, 52L, 56L, 61L, 63L, 64L, 68L, 69L, 71L, 76L, 95L, 101L,
|
78 |
+
102L, 111L, 113L, 123L, 129L, 131L, 135L, 137L, 149L, 153L,
|
79 |
+
169L, 175L, 181L, 184L, 185L, 191L, 195L, 197L, 198L, 199L,
|
80 |
+
202L, 205L, 208L, 210L, 217L, 212L, 214L, 220L, 229L, 235L,
|
81 |
+
231L, 232L, 235L, 236L, 237L, 238L, 241L, 245L, 258L, 262L,
|
82 |
+
263L, 285L, 289L, 293L, 305L, 316L, 319L, 320L, 321L, 324L,
|
83 |
+
336L, 341L, 352L, 356L, 361L, 362L, 366L, 370L, 373L, 380L,
|
84 |
+
382L, 383L, 385L, 386L, 394L, 396L, 403L, 409L, 400L, 404L,
|
85 |
+
412L, 413L, 414L, 416L, 435L, 427L, 433L, 422L
|
86 |
+
), Acetylation = c(
|
87 |
+
148L,
|
88 |
+
150L, 163L, 174L, 180L, 224L, 225L, 234L, 240L, 254L, 257L,
|
89 |
+
259L, 267L, 274L, 280L, 281L, 290L, 294L, 298L, 311L, 317L,
|
90 |
+
321L, 331L, 343L, 347L, 353L, 369L, 370L, 375L, 383L, 385L,
|
91 |
+
395L
|
92 |
+
), Methylation = c(
|
93 |
+
24L, 44L, 67L, 87L, 126L, 148L, 150L,
|
94 |
+
155L, 163L, 174L, 180L, 190L, 234L, 240L, 254L, 259L, 267L,
|
95 |
+
281L, 290L, 311L, 317L, 331L, 349L, 353L, 369L, 370L, 375L,
|
96 |
+
385L, 395L
|
97 |
+
), Glycation = c(
|
98 |
+
67L, 87L, 132L, 148L, 150L, 163L,
|
99 |
+
174L, 180L, 190L, 225L, 234L, 259L, 267L, 274L, 280L, 281L,
|
100 |
+
290L, 298L, 311L, 321L, 331L, 340L, 343L, 347L, 353L, 369L,
|
101 |
+
370L, 375L, 383L, 385L, 395L
|
102 |
+
), Ubiquitination = c(
|
103 |
+
44L, 254L,
|
104 |
+
259L, 267L, 281L, 290L, 298L, 311L, 317L, 321L, 331L, 343L,
|
105 |
+
347L, 353L, 369L, 375L, 385L
|
106 |
+
), `O-Glycosilation` = c(
|
107 |
+
123L,
|
108 |
+
208L, 238L, 400L, 412L, 413L
|
109 |
+
), SUMOylation = 340L), Cleavage_site = structure(list(), names = character(0)),
|
110 |
+
Variant = structure(list(), names = character(0))
|
111 |
+
), UniprotID = "P10636",
|
112 |
+
Reference = "https://www.frontiersin.org/journals/neurology/articles/10.3389/fneur.2020.595532"
|
113 |
+
), class = c(
|
114 |
+
"a3",
|
115 |
+
"list"
|
116 |
+
))
|
117 |
+
mapt_annot
|
118 |
+
|
119 |
+
|
120 |
+
# mapt_clv ----
|
121 |
+
# mapt_clv <- read.a3json("./seqvizlive_app_fl/data/mapt_clv.json")
|
122 |
+
# mapt_clv
|
123 |
+
# dput(mapt_clv)
|
124 |
+
mapt_clv <- structure(list(
|
125 |
+
Sequence = c(
|
126 |
+
"M", "A", "E", "P", "R", "Q", "E",
|
127 |
+
"F", "E", "V", "M", "E", "D", "H", "A", "G", "T", "Y", "G", "L",
|
128 |
+
"G", "D", "R", "K", "D", "Q", "G", "G", "Y", "T", "M", "H", "Q",
|
129 |
+
"D", "Q", "E", "G", "D", "T", "D", "A", "G", "L", "K", "E", "S",
|
130 |
+
"P", "L", "Q", "T", "P", "T", "E", "D", "G", "S", "E", "E", "P",
|
131 |
+
"G", "S", "E", "T", "S", "D", "A", "K", "S", "T", "P", "T", "A",
|
132 |
+
"E", "D", "V", "T", "A", "P", "L", "V", "D", "E", "G", "A", "P",
|
133 |
+
"G", "K", "Q", "A", "A", "A", "Q", "P", "H", "T", "E", "I", "P",
|
134 |
+
"E", "G", "T", "T", "A", "E", "E", "A", "G", "I", "G", "D", "T",
|
135 |
+
"P", "S", "L", "E", "D", "E", "A", "A", "G", "H", "V", "T", "Q",
|
136 |
+
"E", "P", "E", "S", "G", "K", "V", "V", "Q", "E", "G", "F", "L",
|
137 |
+
"R", "E", "P", "G", "P", "P", "G", "L", "S", "H", "Q", "L", "M",
|
138 |
+
"S", "G", "M", "P", "G", "A", "P", "L", "L", "P", "E", "G", "P",
|
139 |
+
"R", "E", "A", "T", "R", "Q", "P", "S", "G", "T", "G", "P", "E",
|
140 |
+
"D", "T", "E", "G", "G", "R", "H", "A", "P", "E", "L", "L", "K",
|
141 |
+
"H", "Q", "L", "L", "G", "D", "L", "H", "Q", "E", "G", "P", "P",
|
142 |
+
"L", "K", "G", "A", "G", "G", "K", "E", "R", "P", "G", "S", "K",
|
143 |
+
"E", "E", "V", "D", "E", "D", "R", "D", "V", "D", "E", "S", "S",
|
144 |
+
"P", "Q", "D", "S", "P", "P", "S", "K", "A", "S", "P", "A", "Q",
|
145 |
+
"D", "G", "R", "P", "P", "Q", "T", "A", "A", "R", "E", "A", "T",
|
146 |
+
"S", "I", "P", "G", "F", "P", "A", "E", "G", "A", "I", "P", "L",
|
147 |
+
"P", "V", "D", "F", "L", "S", "K", "V", "S", "T", "E", "I", "P",
|
148 |
+
"A", "S", "E", "P", "D", "G", "P", "S", "V", "G", "A", "A", "K",
|
149 |
+
"G", "Q", "D", "A", "P", "L", "E", "F", "T", "F", "H", "V", "E",
|
150 |
+
"I", "T", "P", "N", "V", "Q", "K", "E", "Q", "A", "H", "S", "E",
|
151 |
+
"E", "H", "A", "G", "R", "A", "A", "F", "P", "G", "A", "P", "G",
|
152 |
+
"E", "G", "P", "E", "A", "R", "G", "P", "S", "L", "G", "E", "D",
|
153 |
+
"T", "K", "E", "A", "D", "L", "P", "E", "P", "S", "E", "K", "Q",
|
154 |
+
"P", "A", "A", "A", "P", "R", "G", "K", "P", "V", "S", "R", "V",
|
155 |
+
"P", "Q", "L", "K", "A", "R", "M", "V", "S", "K", "S", "K", "D",
|
156 |
+
"G", "T", "G", "S", "D", "D", "K", "K", "A", "K", "T", "S", "T",
|
157 |
+
"R", "S", "S", "A", "K", "T", "L", "K", "N", "R", "P", "C", "L",
|
158 |
+
"S", "P", "K", "H", "P", "T", "P", "G", "S", "S", "D", "P", "L",
|
159 |
+
"I", "Q", "P", "S", "S", "P", "A", "V", "C", "P", "E", "P", "P",
|
160 |
+
"S", "S", "P", "K", "Y", "V", "S", "S", "V", "T", "S", "R", "T",
|
161 |
+
"G", "S", "S", "G", "A", "K", "E", "M", "K", "L", "K", "G", "A",
|
162 |
+
"D", "G", "K", "T", "K", "I", "A", "T", "P", "R", "G", "A", "A",
|
163 |
+
"P", "P", "G", "Q", "K", "G", "Q", "A", "N", "A", "T", "R", "I",
|
164 |
+
"P", "A", "K", "T", "P", "P", "A", "P", "K", "T", "P", "P", "S",
|
165 |
+
"S", "G", "E", "P", "P", "K", "S", "G", "D", "R", "S", "G", "Y",
|
166 |
+
"S", "S", "P", "G", "S", "P", "G", "T", "P", "G", "S", "R", "S",
|
167 |
+
"R", "T", "P", "S", "L", "P", "T", "P", "P", "T", "R", "E", "P",
|
168 |
+
"K", "K", "V", "A", "V", "V", "R", "T", "P", "P", "K", "S", "P",
|
169 |
+
"S", "S", "A", "K", "S", "R", "L", "Q", "T", "A", "P", "V", "P",
|
170 |
+
"M", "P", "D", "L", "K", "N", "V", "K", "S", "K", "I", "G", "S",
|
171 |
+
"T", "E", "N", "L", "K", "H", "Q", "P", "G", "G", "G", "K", "V",
|
172 |
+
"Q", "I", "I", "N", "K", "K", "L", "D", "L", "S", "N", "V", "Q",
|
173 |
+
"S", "K", "C", "G", "S", "K", "D", "N", "I", "K", "H", "V", "P",
|
174 |
+
"G", "G", "G", "S", "V", "Q", "I", "V", "Y", "K", "P", "V", "D",
|
175 |
+
"L", "S", "K", "V", "T", "S", "K", "C", "G", "S", "L", "G", "N",
|
176 |
+
"I", "H", "H", "K", "P", "G", "G", "G", "Q", "V", "E", "V", "K",
|
177 |
+
"S", "E", "K", "L", "D", "F", "K", "D", "R", "V", "Q", "S", "K",
|
178 |
+
"I", "G", "S", "L", "D", "N", "I", "T", "H", "V", "P", "G", "G",
|
179 |
+
"G", "N", "K", "K", "I", "E", "T", "H", "K", "L", "T", "F", "R",
|
180 |
+
"E", "N", "A", "K", "A", "K", "T", "D", "H", "G", "A", "E", "I",
|
181 |
+
"V", "Y", "K", "S", "P", "V", "V", "S", "G", "D", "T", "S", "P",
|
182 |
+
"R", "H", "L", "S", "N", "V", "S", "S", "T", "G", "S", "I", "D",
|
183 |
+
"M", "V", "D", "S", "P", "Q", "L", "A", "T", "L", "A", "D", "E",
|
184 |
+
"V", "S", "A", "S", "L", "A", "K", "Q", "G", "L"
|
185 |
+
), Annotations = list(
|
186 |
+
Site = structure(list(), names = character(0)), Region = structure(list(), names = character(0)),
|
187 |
+
PTM = structure(list(), names = character(0)), Cleavage_site = list(
|
188 |
+
CTSL_pH_4_5 = c(
|
189 |
+
1L, 9L, 11L, 13L, 19L, 21L, 30L, 44L,
|
190 |
+
49L, 54L, 67L, 71L, 76L, 81L, 116L, 129L, 173L, 198L,
|
191 |
+
227L, 229L, 244L, 254L, 256L, 257L, 261L, 267L, 281L,
|
192 |
+
283L, 300L, 307L, 310L, 314L, 316L, 319L, 326L, 340L,
|
193 |
+
340L, 341L, 351L, 355L, 377L, 379L, 379L, 394L, 395L,
|
194 |
+
402L, 405L, 417L, 419L, 421L, 426L, 427L, 429L, 433L,
|
195 |
+
437L, 438L
|
196 |
+
), CTSL_pH_5_5 = c(54L, 244L, 319L), CTSD_pH_3_4 = c(
|
197 |
+
340L,
|
198 |
+
391L, 426L
|
199 |
+
), CTSD_pH_4_5 = c(340L, 399L, 400L, 417L),
|
200 |
+
CTSB_pH_4_5 = c(
|
201 |
+
7L, 12L, 15L, 17L, 30L, 53L, 82L, 130L,
|
202 |
+
186L, 209L, 225L, 237L, 238L, 257L, 259L, 262L, 264L,
|
203 |
+
282L, 284L, 321L, 349L, 353L, 407L, 438L
|
204 |
+
), CTSB_pH_5_5 = c(
|
205 |
+
14L,
|
206 |
+
17L, 27L, 81L, 173L, 186L, 209L, 225L, 238L, 253L, 256L,
|
207 |
+
257L, 259L, 262L, 264L, 284L, 290L, 338L, 349L, 353L,
|
208 |
+
400L, 407L, 419L, 419L, 424L, 425L
|
209 |
+
), CTSK_pH_4_5 = c(
|
210 |
+
1L,
|
211 |
+
21L, 30L, 44L, 109L, 184L, 184L, 214L, 244L, 254L, 261L,
|
212 |
+
319L, 326L, 343L, 355L, 377L, 399L, 421L
|
213 |
+
), CTSF_pH_4_5 = c(
|
214 |
+
300L,
|
215 |
+
402L
|
216 |
+
), CTSV_pH_3_4 = c(
|
217 |
+
248L, 254L, 276L, 285L, 307L,
|
218 |
+
314L, 316L, 340L, 351L, 361L, 395L, 433L
|
219 |
+
), CTSV_pH_4_5 = c(
|
220 |
+
1L,
|
221 |
+
11L, 21L, 30L, 30L, 44L, 244L, 254L, 256L, 257L, 276L,
|
222 |
+
283L, 285L, 288L, 307L, 310L, 316L, 326L, 340L, 340L,
|
223 |
+
351L, 361L, 379L, 381L, 394L, 395L, 407L, 425L, 426L,
|
224 |
+
429L, 433L
|
225 |
+
), CTSE_pH_3_4 = c(
|
226 |
+
8L, 9L, 11L, 21L, 30L, 44L,
|
227 |
+
73L, 81L, 109L, 129L, 244L, 254L, 257L, 261L, 283L, 288L,
|
228 |
+
307L, 310L, 319L, 326L, 340L, 351L, 355L, 395L, 418L,
|
229 |
+
419L, 419L, 425L, 426L, 433L
|
230 |
+
), CTSE_pH_4_5 = c(
|
231 |
+
8L, 111L,
|
232 |
+
307L, 322L, 419L, 425L
|
233 |
+
), CTSS_pH_4_5 = c(
|
234 |
+
1L, 5L, 7L,
|
235 |
+
9L, 12L, 30L, 44L, 49L, 67L, 72L, 76L, 80L, 95L, 105L,
|
236 |
+
109L, 115L, 116L, 129L, 212L, 243L, 244L, 254L, 257L,
|
237 |
+
267L, 276L, 283L, 288L, 307L, 308L, 309L, 310L, 316L,
|
238 |
+
339L, 345L, 351L, 355L, 361L, 391L, 394L, 395L, 400L,
|
239 |
+
407L, 411L, 412L, 420L, 425L, 426L, 427L, 429L, 433L
|
240 |
+
),
|
241 |
+
CTSS_pH_5_5 = c(
|
242 |
+
1L, 11L, 12L, 30L, 30L, 44L, 49L, 67L,
|
243 |
+
72L, 76L, 80L, 92L, 95L, 109L, 115L, 129L, 243L, 244L,
|
244 |
+
254L, 256L, 257L, 261L, 267L, 283L, 288L, 307L, 308L,
|
245 |
+
310L, 316L, 319L, 326L, 339L, 351L, 355L, 355L, 361L,
|
246 |
+
379L, 379L, 391L, 394L, 395L, 400L, 407L, 411L, 412L,
|
247 |
+
423L, 425L, 426L, 427L, 429L, 430L, 433L, 433L
|
248 |
+
), CTSO_pH_5_5 = c(
|
249 |
+
92L,
|
250 |
+
212L, 339L, 430L
|
251 |
+
), AEP_pH_4_5 = c(
|
252 |
+
40L, 49L, 54L, 54L,
|
253 |
+
67L, 116L, 209L, 212L, 252L, 255L, 265L, 279L, 286L,
|
254 |
+
327L, 339L, 345L, 361L, 368L, 368L, 381L, 402L, 418L,
|
255 |
+
423L, 430L, 430L
|
256 |
+
), AEP_pH_5_5 = c(
|
257 |
+
67L, 92L, 265L, 284L,
|
258 |
+
339L, 345L, 368L, 423L, 430L
|
259 |
+
), CTSX_pH_3_4 = c(
|
260 |
+
16L, 41L,
|
261 |
+
67L, 112L, 212L, 339L, 345L, 402L, 423L, 430L
|
262 |
+
), CTSX_pH_4_5 = c(
|
263 |
+
3L,
|
264 |
+
16L, 67L, 212L, 339L, 345L, 355L, 355L, 394L, 432L, 433L
|
265 |
+
), CTSA_pH_4_5 = c(48L, 55L, 67L, 73L, 339L, 430L)
|
266 |
+
),
|
267 |
+
Variant = structure(list(), names = character(0))
|
268 |
+
), UniprotID = NULL,
|
269 |
+
Reference = "https://molecularneurodegeneration.biomedcentral.com/articles/10.1186/s13024-023-00621-8"
|
270 |
+
), class = c(
|
271 |
+
"a3",
|
272 |
+
"list"
|
273 |
+
))
|
favicon.png
ADDED
globals.R
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# globals.R
|
2 |
+
# seqvizlive
|
3 |
+
# EDG rtemis.org
|
4 |
+
|
5 |
+
# Themes ----
|
6 |
+
# {bg_dark, bg_light} also used by plot.bg
|
7 |
+
bg_dark <- "#191919"
|
8 |
+
bg_light <- "#ffffff"
|
9 |
+
primary_dark <- "#72CDF4"
|
10 |
+
primary_light <- "#1295D8"
|
11 |
+
seconday_dark <- "#808080"
|
12 |
+
secondary_light <- "#808080"
|
13 |
+
info_dark <- "#FEB2E0"
|
14 |
+
info_light <- "#E44C9A"
|
15 |
+
success_dark <- "#B4DC55"
|
16 |
+
success_light <- "#84C234"
|
17 |
+
|
18 |
+
bslib_dark <- bslib::bs_theme(
|
19 |
+
bg = bg_dark,
|
20 |
+
fg = "#fff",
|
21 |
+
primary = primary_dark,
|
22 |
+
secondary = seconday_dark,
|
23 |
+
success = success_dark,
|
24 |
+
info = info_dark,
|
25 |
+
`tooltip-bg` = "#bbbbbb",
|
26 |
+
`tooltip-color` = info_dark,
|
27 |
+
`tooltip-opacity` = .95
|
28 |
+
) |>
|
29 |
+
bslib::bs_add_rules(sass::sass_file("www/rtemislive.scss"))
|
30 |
+
|
31 |
+
bslib_light <- bslib::bs_theme(
|
32 |
+
bg = bg_light,
|
33 |
+
fg = "#000",
|
34 |
+
primary = primary_light,
|
35 |
+
secondary = secondary_light,
|
36 |
+
success = success_light,
|
37 |
+
info = info_light,
|
38 |
+
`tooltip-bg` = "#303030",
|
39 |
+
`tooltip-color` = info_light,
|
40 |
+
`tooltip-opacity` = .95
|
41 |
+
) |>
|
42 |
+
bslib::bs_add_rules(sass::sass_file("www/rtemislive.scss"))
|
43 |
+
|
44 |
+
# from rtemislive
|
45 |
+
rthelp <- function(..., title = NULL, class = "rthelp") {
|
46 |
+
div(
|
47 |
+
div(HTML(paste0(title, " Instructions")),
|
48 |
+
style = "color: #808080; font-weight: 300; padding-bottom:.5em;"
|
49 |
+
),
|
50 |
+
HTML(paste0("<i>", paste(..., sep = "<br>")), "</i>"),
|
51 |
+
class = class
|
52 |
+
)
|
53 |
+
} # rtemislive::rthelp
|
54 |
+
|
55 |
+
rthelp_inline <- function(..., title = NULL, class = "rthelp-inline") {
|
56 |
+
rthelp(..., title = title, class = class)
|
57 |
+
} # rtemislive::rthelp_inline
|
58 |
+
|
59 |
+
bold <- function(x) {
|
60 |
+
paste0("<b>", x, "</b>")
|
61 |
+
}
|
62 |
+
|
63 |
+
hilite <- function(x) {
|
64 |
+
paste0("<span style='color: #72CDF4;font-weight: bold;'>", x, "</span>")
|
65 |
+
}
|
66 |
+
|
67 |
+
#' Summarize a3 object in HTML
|
68 |
+
#'
|
69 |
+
#' @param x a3 object
|
70 |
+
#'
|
71 |
+
#' @return HTML string
|
72 |
+
#' @author EDG
|
73 |
+
summarize_a3 <- function(x) {
|
74 |
+
htmltools::HTML(
|
75 |
+
paste0(
|
76 |
+
if (!is.null(x$UniprotID)) paste0("Uniprot ID: ", hilite(x$UniprotID), "<br>"),
|
77 |
+
paste0("Sequence length: ", hilite(length(x$Sequence)), "<br>"),
|
78 |
+
"<ul>",
|
79 |
+
if (length(x$Annotations$Site) > 0) paste("<li>", hilite(length(x$Annotations$Site)), "site annotations<br>"),
|
80 |
+
if (length(x$Annotations$Region) > 0) paste("<li>", hilite(length(x$Annotations$Region)), "region annotations<br>"),
|
81 |
+
if (length(x$Annotations$PTM) > 0) paste("<li>", hilite(length(x$Annotations$PTM)), "PTM annotations<br>"),
|
82 |
+
if (length(x$Annotations$Cleavage_site) > 0) paste("<li>", hilite(length(x$Annotations$Cleavage_site)), " cleavage site annotations<br>"),
|
83 |
+
if (length(x$Annotations$Variant) > 0) paste("<li>", hilite(length(x$Annotations$Variant)), "variant annotations<br>"),
|
84 |
+
"</ul>",
|
85 |
+
if (!is.null(x$Reference)) a("Reference", href = x$Reference, target = "_blank")
|
86 |
+
)
|
87 |
+
)
|
88 |
+
} # seqvizlive::summarize_a3
|
89 |
+
|
90 |
+
|
91 |
+
# Create list using custom bullet
|
92 |
+
rhelplist <- function(x, bullet = bsicons::bs_icon("arrow-right-short")) {
|
93 |
+
htmltools::HTML(
|
94 |
+
paste0(
|
95 |
+
bullet, "<i>", x, "</i>", "<br>"
|
96 |
+
)
|
97 |
+
)
|
98 |
+
} # seqvizlive::rtlist
|
penguins.csv
DELETED
@@ -1,345 +0,0 @@
|
|
1 |
-
Species,Island,Bill Length (mm),Bill Depth (mm),Flipper Length (mm),Body Mass (g),Sex,Year
|
2 |
-
Adelie,Torgersen,39.1,18.7,181,3750,male,2007
|
3 |
-
Adelie,Torgersen,39.5,17.4,186,3800,female,2007
|
4 |
-
Adelie,Torgersen,40.3,18,195,3250,female,2007
|
5 |
-
Adelie,Torgersen,NA,NA,NA,NA,NA,2007
|
6 |
-
Adelie,Torgersen,36.7,19.3,193,3450,female,2007
|
7 |
-
Adelie,Torgersen,39.3,20.6,190,3650,male,2007
|
8 |
-
Adelie,Torgersen,38.9,17.8,181,3625,female,2007
|
9 |
-
Adelie,Torgersen,39.2,19.6,195,4675,male,2007
|
10 |
-
Adelie,Torgersen,34.1,18.1,193,3475,NA,2007
|
11 |
-
Adelie,Torgersen,42,20.2,190,4250,NA,2007
|
12 |
-
Adelie,Torgersen,37.8,17.1,186,3300,NA,2007
|
13 |
-
Adelie,Torgersen,37.8,17.3,180,3700,NA,2007
|
14 |
-
Adelie,Torgersen,41.1,17.6,182,3200,female,2007
|
15 |
-
Adelie,Torgersen,38.6,21.2,191,3800,male,2007
|
16 |
-
Adelie,Torgersen,34.6,21.1,198,4400,male,2007
|
17 |
-
Adelie,Torgersen,36.6,17.8,185,3700,female,2007
|
18 |
-
Adelie,Torgersen,38.7,19,195,3450,female,2007
|
19 |
-
Adelie,Torgersen,42.5,20.7,197,4500,male,2007
|
20 |
-
Adelie,Torgersen,34.4,18.4,184,3325,female,2007
|
21 |
-
Adelie,Torgersen,46,21.5,194,4200,male,2007
|
22 |
-
Adelie,Biscoe,37.8,18.3,174,3400,female,2007
|
23 |
-
Adelie,Biscoe,37.7,18.7,180,3600,male,2007
|
24 |
-
Adelie,Biscoe,35.9,19.2,189,3800,female,2007
|
25 |
-
Adelie,Biscoe,38.2,18.1,185,3950,male,2007
|
26 |
-
Adelie,Biscoe,38.8,17.2,180,3800,male,2007
|
27 |
-
Adelie,Biscoe,35.3,18.9,187,3800,female,2007
|
28 |
-
Adelie,Biscoe,40.6,18.6,183,3550,male,2007
|
29 |
-
Adelie,Biscoe,40.5,17.9,187,3200,female,2007
|
30 |
-
Adelie,Biscoe,37.9,18.6,172,3150,female,2007
|
31 |
-
Adelie,Biscoe,40.5,18.9,180,3950,male,2007
|
32 |
-
Adelie,Dream,39.5,16.7,178,3250,female,2007
|
33 |
-
Adelie,Dream,37.2,18.1,178,3900,male,2007
|
34 |
-
Adelie,Dream,39.5,17.8,188,3300,female,2007
|
35 |
-
Adelie,Dream,40.9,18.9,184,3900,male,2007
|
36 |
-
Adelie,Dream,36.4,17,195,3325,female,2007
|
37 |
-
Adelie,Dream,39.2,21.1,196,4150,male,2007
|
38 |
-
Adelie,Dream,38.8,20,190,3950,male,2007
|
39 |
-
Adelie,Dream,42.2,18.5,180,3550,female,2007
|
40 |
-
Adelie,Dream,37.6,19.3,181,3300,female,2007
|
41 |
-
Adelie,Dream,39.8,19.1,184,4650,male,2007
|
42 |
-
Adelie,Dream,36.5,18,182,3150,female,2007
|
43 |
-
Adelie,Dream,40.8,18.4,195,3900,male,2007
|
44 |
-
Adelie,Dream,36,18.5,186,3100,female,2007
|
45 |
-
Adelie,Dream,44.1,19.7,196,4400,male,2007
|
46 |
-
Adelie,Dream,37,16.9,185,3000,female,2007
|
47 |
-
Adelie,Dream,39.6,18.8,190,4600,male,2007
|
48 |
-
Adelie,Dream,41.1,19,182,3425,male,2007
|
49 |
-
Adelie,Dream,37.5,18.9,179,2975,NA,2007
|
50 |
-
Adelie,Dream,36,17.9,190,3450,female,2007
|
51 |
-
Adelie,Dream,42.3,21.2,191,4150,male,2007
|
52 |
-
Adelie,Biscoe,39.6,17.7,186,3500,female,2008
|
53 |
-
Adelie,Biscoe,40.1,18.9,188,4300,male,2008
|
54 |
-
Adelie,Biscoe,35,17.9,190,3450,female,2008
|
55 |
-
Adelie,Biscoe,42,19.5,200,4050,male,2008
|
56 |
-
Adelie,Biscoe,34.5,18.1,187,2900,female,2008
|
57 |
-
Adelie,Biscoe,41.4,18.6,191,3700,male,2008
|
58 |
-
Adelie,Biscoe,39,17.5,186,3550,female,2008
|
59 |
-
Adelie,Biscoe,40.6,18.8,193,3800,male,2008
|
60 |
-
Adelie,Biscoe,36.5,16.6,181,2850,female,2008
|
61 |
-
Adelie,Biscoe,37.6,19.1,194,3750,male,2008
|
62 |
-
Adelie,Biscoe,35.7,16.9,185,3150,female,2008
|
63 |
-
Adelie,Biscoe,41.3,21.1,195,4400,male,2008
|
64 |
-
Adelie,Biscoe,37.6,17,185,3600,female,2008
|
65 |
-
Adelie,Biscoe,41.1,18.2,192,4050,male,2008
|
66 |
-
Adelie,Biscoe,36.4,17.1,184,2850,female,2008
|
67 |
-
Adelie,Biscoe,41.6,18,192,3950,male,2008
|
68 |
-
Adelie,Biscoe,35.5,16.2,195,3350,female,2008
|
69 |
-
Adelie,Biscoe,41.1,19.1,188,4100,male,2008
|
70 |
-
Adelie,Torgersen,35.9,16.6,190,3050,female,2008
|
71 |
-
Adelie,Torgersen,41.8,19.4,198,4450,male,2008
|
72 |
-
Adelie,Torgersen,33.5,19,190,3600,female,2008
|
73 |
-
Adelie,Torgersen,39.7,18.4,190,3900,male,2008
|
74 |
-
Adelie,Torgersen,39.6,17.2,196,3550,female,2008
|
75 |
-
Adelie,Torgersen,45.8,18.9,197,4150,male,2008
|
76 |
-
Adelie,Torgersen,35.5,17.5,190,3700,female,2008
|
77 |
-
Adelie,Torgersen,42.8,18.5,195,4250,male,2008
|
78 |
-
Adelie,Torgersen,40.9,16.8,191,3700,female,2008
|
79 |
-
Adelie,Torgersen,37.2,19.4,184,3900,male,2008
|
80 |
-
Adelie,Torgersen,36.2,16.1,187,3550,female,2008
|
81 |
-
Adelie,Torgersen,42.1,19.1,195,4000,male,2008
|
82 |
-
Adelie,Torgersen,34.6,17.2,189,3200,female,2008
|
83 |
-
Adelie,Torgersen,42.9,17.6,196,4700,male,2008
|
84 |
-
Adelie,Torgersen,36.7,18.8,187,3800,female,2008
|
85 |
-
Adelie,Torgersen,35.1,19.4,193,4200,male,2008
|
86 |
-
Adelie,Dream,37.3,17.8,191,3350,female,2008
|
87 |
-
Adelie,Dream,41.3,20.3,194,3550,male,2008
|
88 |
-
Adelie,Dream,36.3,19.5,190,3800,male,2008
|
89 |
-
Adelie,Dream,36.9,18.6,189,3500,female,2008
|
90 |
-
Adelie,Dream,38.3,19.2,189,3950,male,2008
|
91 |
-
Adelie,Dream,38.9,18.8,190,3600,female,2008
|
92 |
-
Adelie,Dream,35.7,18,202,3550,female,2008
|
93 |
-
Adelie,Dream,41.1,18.1,205,4300,male,2008
|
94 |
-
Adelie,Dream,34,17.1,185,3400,female,2008
|
95 |
-
Adelie,Dream,39.6,18.1,186,4450,male,2008
|
96 |
-
Adelie,Dream,36.2,17.3,187,3300,female,2008
|
97 |
-
Adelie,Dream,40.8,18.9,208,4300,male,2008
|
98 |
-
Adelie,Dream,38.1,18.6,190,3700,female,2008
|
99 |
-
Adelie,Dream,40.3,18.5,196,4350,male,2008
|
100 |
-
Adelie,Dream,33.1,16.1,178,2900,female,2008
|
101 |
-
Adelie,Dream,43.2,18.5,192,4100,male,2008
|
102 |
-
Adelie,Biscoe,35,17.9,192,3725,female,2009
|
103 |
-
Adelie,Biscoe,41,20,203,4725,male,2009
|
104 |
-
Adelie,Biscoe,37.7,16,183,3075,female,2009
|
105 |
-
Adelie,Biscoe,37.8,20,190,4250,male,2009
|
106 |
-
Adelie,Biscoe,37.9,18.6,193,2925,female,2009
|
107 |
-
Adelie,Biscoe,39.7,18.9,184,3550,male,2009
|
108 |
-
Adelie,Biscoe,38.6,17.2,199,3750,female,2009
|
109 |
-
Adelie,Biscoe,38.2,20,190,3900,male,2009
|
110 |
-
Adelie,Biscoe,38.1,17,181,3175,female,2009
|
111 |
-
Adelie,Biscoe,43.2,19,197,4775,male,2009
|
112 |
-
Adelie,Biscoe,38.1,16.5,198,3825,female,2009
|
113 |
-
Adelie,Biscoe,45.6,20.3,191,4600,male,2009
|
114 |
-
Adelie,Biscoe,39.7,17.7,193,3200,female,2009
|
115 |
-
Adelie,Biscoe,42.2,19.5,197,4275,male,2009
|
116 |
-
Adelie,Biscoe,39.6,20.7,191,3900,female,2009
|
117 |
-
Adelie,Biscoe,42.7,18.3,196,4075,male,2009
|
118 |
-
Adelie,Torgersen,38.6,17,188,2900,female,2009
|
119 |
-
Adelie,Torgersen,37.3,20.5,199,3775,male,2009
|
120 |
-
Adelie,Torgersen,35.7,17,189,3350,female,2009
|
121 |
-
Adelie,Torgersen,41.1,18.6,189,3325,male,2009
|
122 |
-
Adelie,Torgersen,36.2,17.2,187,3150,female,2009
|
123 |
-
Adelie,Torgersen,37.7,19.8,198,3500,male,2009
|
124 |
-
Adelie,Torgersen,40.2,17,176,3450,female,2009
|
125 |
-
Adelie,Torgersen,41.4,18.5,202,3875,male,2009
|
126 |
-
Adelie,Torgersen,35.2,15.9,186,3050,female,2009
|
127 |
-
Adelie,Torgersen,40.6,19,199,4000,male,2009
|
128 |
-
Adelie,Torgersen,38.8,17.6,191,3275,female,2009
|
129 |
-
Adelie,Torgersen,41.5,18.3,195,4300,male,2009
|
130 |
-
Adelie,Torgersen,39,17.1,191,3050,female,2009
|
131 |
-
Adelie,Torgersen,44.1,18,210,4000,male,2009
|
132 |
-
Adelie,Torgersen,38.5,17.9,190,3325,female,2009
|
133 |
-
Adelie,Torgersen,43.1,19.2,197,3500,male,2009
|
134 |
-
Adelie,Dream,36.8,18.5,193,3500,female,2009
|
135 |
-
Adelie,Dream,37.5,18.5,199,4475,male,2009
|
136 |
-
Adelie,Dream,38.1,17.6,187,3425,female,2009
|
137 |
-
Adelie,Dream,41.1,17.5,190,3900,male,2009
|
138 |
-
Adelie,Dream,35.6,17.5,191,3175,female,2009
|
139 |
-
Adelie,Dream,40.2,20.1,200,3975,male,2009
|
140 |
-
Adelie,Dream,37,16.5,185,3400,female,2009
|
141 |
-
Adelie,Dream,39.7,17.9,193,4250,male,2009
|
142 |
-
Adelie,Dream,40.2,17.1,193,3400,female,2009
|
143 |
-
Adelie,Dream,40.6,17.2,187,3475,male,2009
|
144 |
-
Adelie,Dream,32.1,15.5,188,3050,female,2009
|
145 |
-
Adelie,Dream,40.7,17,190,3725,male,2009
|
146 |
-
Adelie,Dream,37.3,16.8,192,3000,female,2009
|
147 |
-
Adelie,Dream,39,18.7,185,3650,male,2009
|
148 |
-
Adelie,Dream,39.2,18.6,190,4250,male,2009
|
149 |
-
Adelie,Dream,36.6,18.4,184,3475,female,2009
|
150 |
-
Adelie,Dream,36,17.8,195,3450,female,2009
|
151 |
-
Adelie,Dream,37.8,18.1,193,3750,male,2009
|
152 |
-
Adelie,Dream,36,17.1,187,3700,female,2009
|
153 |
-
Adelie,Dream,41.5,18.5,201,4000,male,2009
|
154 |
-
Gentoo,Biscoe,46.1,13.2,211,4500,female,2007
|
155 |
-
Gentoo,Biscoe,50,16.3,230,5700,male,2007
|
156 |
-
Gentoo,Biscoe,48.7,14.1,210,4450,female,2007
|
157 |
-
Gentoo,Biscoe,50,15.2,218,5700,male,2007
|
158 |
-
Gentoo,Biscoe,47.6,14.5,215,5400,male,2007
|
159 |
-
Gentoo,Biscoe,46.5,13.5,210,4550,female,2007
|
160 |
-
Gentoo,Biscoe,45.4,14.6,211,4800,female,2007
|
161 |
-
Gentoo,Biscoe,46.7,15.3,219,5200,male,2007
|
162 |
-
Gentoo,Biscoe,43.3,13.4,209,4400,female,2007
|
163 |
-
Gentoo,Biscoe,46.8,15.4,215,5150,male,2007
|
164 |
-
Gentoo,Biscoe,40.9,13.7,214,4650,female,2007
|
165 |
-
Gentoo,Biscoe,49,16.1,216,5550,male,2007
|
166 |
-
Gentoo,Biscoe,45.5,13.7,214,4650,female,2007
|
167 |
-
Gentoo,Biscoe,48.4,14.6,213,5850,male,2007
|
168 |
-
Gentoo,Biscoe,45.8,14.6,210,4200,female,2007
|
169 |
-
Gentoo,Biscoe,49.3,15.7,217,5850,male,2007
|
170 |
-
Gentoo,Biscoe,42,13.5,210,4150,female,2007
|
171 |
-
Gentoo,Biscoe,49.2,15.2,221,6300,male,2007
|
172 |
-
Gentoo,Biscoe,46.2,14.5,209,4800,female,2007
|
173 |
-
Gentoo,Biscoe,48.7,15.1,222,5350,male,2007
|
174 |
-
Gentoo,Biscoe,50.2,14.3,218,5700,male,2007
|
175 |
-
Gentoo,Biscoe,45.1,14.5,215,5000,female,2007
|
176 |
-
Gentoo,Biscoe,46.5,14.5,213,4400,female,2007
|
177 |
-
Gentoo,Biscoe,46.3,15.8,215,5050,male,2007
|
178 |
-
Gentoo,Biscoe,42.9,13.1,215,5000,female,2007
|
179 |
-
Gentoo,Biscoe,46.1,15.1,215,5100,male,2007
|
180 |
-
Gentoo,Biscoe,44.5,14.3,216,4100,NA,2007
|
181 |
-
Gentoo,Biscoe,47.8,15,215,5650,male,2007
|
182 |
-
Gentoo,Biscoe,48.2,14.3,210,4600,female,2007
|
183 |
-
Gentoo,Biscoe,50,15.3,220,5550,male,2007
|
184 |
-
Gentoo,Biscoe,47.3,15.3,222,5250,male,2007
|
185 |
-
Gentoo,Biscoe,42.8,14.2,209,4700,female,2007
|
186 |
-
Gentoo,Biscoe,45.1,14.5,207,5050,female,2007
|
187 |
-
Gentoo,Biscoe,59.6,17,230,6050,male,2007
|
188 |
-
Gentoo,Biscoe,49.1,14.8,220,5150,female,2008
|
189 |
-
Gentoo,Biscoe,48.4,16.3,220,5400,male,2008
|
190 |
-
Gentoo,Biscoe,42.6,13.7,213,4950,female,2008
|
191 |
-
Gentoo,Biscoe,44.4,17.3,219,5250,male,2008
|
192 |
-
Gentoo,Biscoe,44,13.6,208,4350,female,2008
|
193 |
-
Gentoo,Biscoe,48.7,15.7,208,5350,male,2008
|
194 |
-
Gentoo,Biscoe,42.7,13.7,208,3950,female,2008
|
195 |
-
Gentoo,Biscoe,49.6,16,225,5700,male,2008
|
196 |
-
Gentoo,Biscoe,45.3,13.7,210,4300,female,2008
|
197 |
-
Gentoo,Biscoe,49.6,15,216,4750,male,2008
|
198 |
-
Gentoo,Biscoe,50.5,15.9,222,5550,male,2008
|
199 |
-
Gentoo,Biscoe,43.6,13.9,217,4900,female,2008
|
200 |
-
Gentoo,Biscoe,45.5,13.9,210,4200,female,2008
|
201 |
-
Gentoo,Biscoe,50.5,15.9,225,5400,male,2008
|
202 |
-
Gentoo,Biscoe,44.9,13.3,213,5100,female,2008
|
203 |
-
Gentoo,Biscoe,45.2,15.8,215,5300,male,2008
|
204 |
-
Gentoo,Biscoe,46.6,14.2,210,4850,female,2008
|
205 |
-
Gentoo,Biscoe,48.5,14.1,220,5300,male,2008
|
206 |
-
Gentoo,Biscoe,45.1,14.4,210,4400,female,2008
|
207 |
-
Gentoo,Biscoe,50.1,15,225,5000,male,2008
|
208 |
-
Gentoo,Biscoe,46.5,14.4,217,4900,female,2008
|
209 |
-
Gentoo,Biscoe,45,15.4,220,5050,male,2008
|
210 |
-
Gentoo,Biscoe,43.8,13.9,208,4300,female,2008
|
211 |
-
Gentoo,Biscoe,45.5,15,220,5000,male,2008
|
212 |
-
Gentoo,Biscoe,43.2,14.5,208,4450,female,2008
|
213 |
-
Gentoo,Biscoe,50.4,15.3,224,5550,male,2008
|
214 |
-
Gentoo,Biscoe,45.3,13.8,208,4200,female,2008
|
215 |
-
Gentoo,Biscoe,46.2,14.9,221,5300,male,2008
|
216 |
-
Gentoo,Biscoe,45.7,13.9,214,4400,female,2008
|
217 |
-
Gentoo,Biscoe,54.3,15.7,231,5650,male,2008
|
218 |
-
Gentoo,Biscoe,45.8,14.2,219,4700,female,2008
|
219 |
-
Gentoo,Biscoe,49.8,16.8,230,5700,male,2008
|
220 |
-
Gentoo,Biscoe,46.2,14.4,214,4650,NA,2008
|
221 |
-
Gentoo,Biscoe,49.5,16.2,229,5800,male,2008
|
222 |
-
Gentoo,Biscoe,43.5,14.2,220,4700,female,2008
|
223 |
-
Gentoo,Biscoe,50.7,15,223,5550,male,2008
|
224 |
-
Gentoo,Biscoe,47.7,15,216,4750,female,2008
|
225 |
-
Gentoo,Biscoe,46.4,15.6,221,5000,male,2008
|
226 |
-
Gentoo,Biscoe,48.2,15.6,221,5100,male,2008
|
227 |
-
Gentoo,Biscoe,46.5,14.8,217,5200,female,2008
|
228 |
-
Gentoo,Biscoe,46.4,15,216,4700,female,2008
|
229 |
-
Gentoo,Biscoe,48.6,16,230,5800,male,2008
|
230 |
-
Gentoo,Biscoe,47.5,14.2,209,4600,female,2008
|
231 |
-
Gentoo,Biscoe,51.1,16.3,220,6000,male,2008
|
232 |
-
Gentoo,Biscoe,45.2,13.8,215,4750,female,2008
|
233 |
-
Gentoo,Biscoe,45.2,16.4,223,5950,male,2008
|
234 |
-
Gentoo,Biscoe,49.1,14.5,212,4625,female,2009
|
235 |
-
Gentoo,Biscoe,52.5,15.6,221,5450,male,2009
|
236 |
-
Gentoo,Biscoe,47.4,14.6,212,4725,female,2009
|
237 |
-
Gentoo,Biscoe,50,15.9,224,5350,male,2009
|
238 |
-
Gentoo,Biscoe,44.9,13.8,212,4750,female,2009
|
239 |
-
Gentoo,Biscoe,50.8,17.3,228,5600,male,2009
|
240 |
-
Gentoo,Biscoe,43.4,14.4,218,4600,female,2009
|
241 |
-
Gentoo,Biscoe,51.3,14.2,218,5300,male,2009
|
242 |
-
Gentoo,Biscoe,47.5,14,212,4875,female,2009
|
243 |
-
Gentoo,Biscoe,52.1,17,230,5550,male,2009
|
244 |
-
Gentoo,Biscoe,47.5,15,218,4950,female,2009
|
245 |
-
Gentoo,Biscoe,52.2,17.1,228,5400,male,2009
|
246 |
-
Gentoo,Biscoe,45.5,14.5,212,4750,female,2009
|
247 |
-
Gentoo,Biscoe,49.5,16.1,224,5650,male,2009
|
248 |
-
Gentoo,Biscoe,44.5,14.7,214,4850,female,2009
|
249 |
-
Gentoo,Biscoe,50.8,15.7,226,5200,male,2009
|
250 |
-
Gentoo,Biscoe,49.4,15.8,216,4925,male,2009
|
251 |
-
Gentoo,Biscoe,46.9,14.6,222,4875,female,2009
|
252 |
-
Gentoo,Biscoe,48.4,14.4,203,4625,female,2009
|
253 |
-
Gentoo,Biscoe,51.1,16.5,225,5250,male,2009
|
254 |
-
Gentoo,Biscoe,48.5,15,219,4850,female,2009
|
255 |
-
Gentoo,Biscoe,55.9,17,228,5600,male,2009
|
256 |
-
Gentoo,Biscoe,47.2,15.5,215,4975,female,2009
|
257 |
-
Gentoo,Biscoe,49.1,15,228,5500,male,2009
|
258 |
-
Gentoo,Biscoe,47.3,13.8,216,4725,NA,2009
|
259 |
-
Gentoo,Biscoe,46.8,16.1,215,5500,male,2009
|
260 |
-
Gentoo,Biscoe,41.7,14.7,210,4700,female,2009
|
261 |
-
Gentoo,Biscoe,53.4,15.8,219,5500,male,2009
|
262 |
-
Gentoo,Biscoe,43.3,14,208,4575,female,2009
|
263 |
-
Gentoo,Biscoe,48.1,15.1,209,5500,male,2009
|
264 |
-
Gentoo,Biscoe,50.5,15.2,216,5000,female,2009
|
265 |
-
Gentoo,Biscoe,49.8,15.9,229,5950,male,2009
|
266 |
-
Gentoo,Biscoe,43.5,15.2,213,4650,female,2009
|
267 |
-
Gentoo,Biscoe,51.5,16.3,230,5500,male,2009
|
268 |
-
Gentoo,Biscoe,46.2,14.1,217,4375,female,2009
|
269 |
-
Gentoo,Biscoe,55.1,16,230,5850,male,2009
|
270 |
-
Gentoo,Biscoe,44.5,15.7,217,4875,NA,2009
|
271 |
-
Gentoo,Biscoe,48.8,16.2,222,6000,male,2009
|
272 |
-
Gentoo,Biscoe,47.2,13.7,214,4925,female,2009
|
273 |
-
Gentoo,Biscoe,NA,NA,NA,NA,NA,2009
|
274 |
-
Gentoo,Biscoe,46.8,14.3,215,4850,female,2009
|
275 |
-
Gentoo,Biscoe,50.4,15.7,222,5750,male,2009
|
276 |
-
Gentoo,Biscoe,45.2,14.8,212,5200,female,2009
|
277 |
-
Gentoo,Biscoe,49.9,16.1,213,5400,male,2009
|
278 |
-
Chinstrap,Dream,46.5,17.9,192,3500,female,2007
|
279 |
-
Chinstrap,Dream,50,19.5,196,3900,male,2007
|
280 |
-
Chinstrap,Dream,51.3,19.2,193,3650,male,2007
|
281 |
-
Chinstrap,Dream,45.4,18.7,188,3525,female,2007
|
282 |
-
Chinstrap,Dream,52.7,19.8,197,3725,male,2007
|
283 |
-
Chinstrap,Dream,45.2,17.8,198,3950,female,2007
|
284 |
-
Chinstrap,Dream,46.1,18.2,178,3250,female,2007
|
285 |
-
Chinstrap,Dream,51.3,18.2,197,3750,male,2007
|
286 |
-
Chinstrap,Dream,46,18.9,195,4150,female,2007
|
287 |
-
Chinstrap,Dream,51.3,19.9,198,3700,male,2007
|
288 |
-
Chinstrap,Dream,46.6,17.8,193,3800,female,2007
|
289 |
-
Chinstrap,Dream,51.7,20.3,194,3775,male,2007
|
290 |
-
Chinstrap,Dream,47,17.3,185,3700,female,2007
|
291 |
-
Chinstrap,Dream,52,18.1,201,4050,male,2007
|
292 |
-
Chinstrap,Dream,45.9,17.1,190,3575,female,2007
|
293 |
-
Chinstrap,Dream,50.5,19.6,201,4050,male,2007
|
294 |
-
Chinstrap,Dream,50.3,20,197,3300,male,2007
|
295 |
-
Chinstrap,Dream,58,17.8,181,3700,female,2007
|
296 |
-
Chinstrap,Dream,46.4,18.6,190,3450,female,2007
|
297 |
-
Chinstrap,Dream,49.2,18.2,195,4400,male,2007
|
298 |
-
Chinstrap,Dream,42.4,17.3,181,3600,female,2007
|
299 |
-
Chinstrap,Dream,48.5,17.5,191,3400,male,2007
|
300 |
-
Chinstrap,Dream,43.2,16.6,187,2900,female,2007
|
301 |
-
Chinstrap,Dream,50.6,19.4,193,3800,male,2007
|
302 |
-
Chinstrap,Dream,46.7,17.9,195,3300,female,2007
|
303 |
-
Chinstrap,Dream,52,19,197,4150,male,2007
|
304 |
-
Chinstrap,Dream,50.5,18.4,200,3400,female,2008
|
305 |
-
Chinstrap,Dream,49.5,19,200,3800,male,2008
|
306 |
-
Chinstrap,Dream,46.4,17.8,191,3700,female,2008
|
307 |
-
Chinstrap,Dream,52.8,20,205,4550,male,2008
|
308 |
-
Chinstrap,Dream,40.9,16.6,187,3200,female,2008
|
309 |
-
Chinstrap,Dream,54.2,20.8,201,4300,male,2008
|
310 |
-
Chinstrap,Dream,42.5,16.7,187,3350,female,2008
|
311 |
-
Chinstrap,Dream,51,18.8,203,4100,male,2008
|
312 |
-
Chinstrap,Dream,49.7,18.6,195,3600,male,2008
|
313 |
-
Chinstrap,Dream,47.5,16.8,199,3900,female,2008
|
314 |
-
Chinstrap,Dream,47.6,18.3,195,3850,female,2008
|
315 |
-
Chinstrap,Dream,52,20.7,210,4800,male,2008
|
316 |
-
Chinstrap,Dream,46.9,16.6,192,2700,female,2008
|
317 |
-
Chinstrap,Dream,53.5,19.9,205,4500,male,2008
|
318 |
-
Chinstrap,Dream,49,19.5,210,3950,male,2008
|
319 |
-
Chinstrap,Dream,46.2,17.5,187,3650,female,2008
|
320 |
-
Chinstrap,Dream,50.9,19.1,196,3550,male,2008
|
321 |
-
Chinstrap,Dream,45.5,17,196,3500,female,2008
|
322 |
-
Chinstrap,Dream,50.9,17.9,196,3675,female,2009
|
323 |
-
Chinstrap,Dream,50.8,18.5,201,4450,male,2009
|
324 |
-
Chinstrap,Dream,50.1,17.9,190,3400,female,2009
|
325 |
-
Chinstrap,Dream,49,19.6,212,4300,male,2009
|
326 |
-
Chinstrap,Dream,51.5,18.7,187,3250,male,2009
|
327 |
-
Chinstrap,Dream,49.8,17.3,198,3675,female,2009
|
328 |
-
Chinstrap,Dream,48.1,16.4,199,3325,female,2009
|
329 |
-
Chinstrap,Dream,51.4,19,201,3950,male,2009
|
330 |
-
Chinstrap,Dream,45.7,17.3,193,3600,female,2009
|
331 |
-
Chinstrap,Dream,50.7,19.7,203,4050,male,2009
|
332 |
-
Chinstrap,Dream,42.5,17.3,187,3350,female,2009
|
333 |
-
Chinstrap,Dream,52.2,18.8,197,3450,male,2009
|
334 |
-
Chinstrap,Dream,45.2,16.6,191,3250,female,2009
|
335 |
-
Chinstrap,Dream,49.3,19.9,203,4050,male,2009
|
336 |
-
Chinstrap,Dream,50.2,18.8,202,3800,male,2009
|
337 |
-
Chinstrap,Dream,45.6,19.4,194,3525,female,2009
|
338 |
-
Chinstrap,Dream,51.9,19.5,206,3950,male,2009
|
339 |
-
Chinstrap,Dream,46.8,16.5,189,3650,female,2009
|
340 |
-
Chinstrap,Dream,45.7,17,195,3650,female,2009
|
341 |
-
Chinstrap,Dream,55.8,19.8,207,4000,male,2009
|
342 |
-
Chinstrap,Dream,43.5,18.1,202,3400,female,2009
|
343 |
-
Chinstrap,Dream,49.6,18.2,193,3775,male,2009
|
344 |
-
Chinstrap,Dream,50.8,19,210,4100,male,2009
|
345 |
-
Chinstrap,Dream,50.2,18.7,198,3775,female,2009
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
www/SVL_logo.webp
ADDED
www/favicon.png
ADDED
www/globals.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// highlight object on load using CSS animation
|
2 |
+
// window.addEventListener("load", function () {
|
3 |
+
// const elementToHighlight = document.querySelector(".rthelp"); // Replace with your element's CSS selector
|
4 |
+
|
5 |
+
// if (elementToHighlight) {
|
6 |
+
// elementToHighlight.style.borderColor = "transparent"; // Set initial transparent border
|
7 |
+
// elementToHighlight.classList.add("highlight-animation"); // Add animation class
|
8 |
+
// }
|
9 |
+
// });
|
www/rtemis_gray.png
ADDED
www/rtemisbio_gray.png
ADDED
www/rtemisbio_s.webp
ADDED
www/rtemislive.scss
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* rtemislive.scss */
|
2 |
+
|
3 |
+
/* rthelp */
|
4 |
+
.rthelp {
|
5 |
+
position: fixed !important;
|
6 |
+
top: 33% !important;
|
7 |
+
left: 50% !important;
|
8 |
+
transform: translate(-50%, -50%);
|
9 |
+
color: $info !important;
|
10 |
+
margin: 11px;
|
11 |
+
border: 0.5px solid transparent;
|
12 |
+
border-radius: 10px;
|
13 |
+
padding: 11px;
|
14 |
+
}
|
15 |
+
|
16 |
+
.rthelp-inline {
|
17 |
+
display: inline-block;
|
18 |
+
color: $info !important;
|
19 |
+
margin: 11px;
|
20 |
+
border: 0.5px solid transparent;
|
21 |
+
border-radius: 10px;
|
22 |
+
padding: 11px;
|
23 |
+
text-align: left;
|
24 |
+
}
|
25 |
+
|
26 |
+
// modify bs link color only for body links
|
27 |
+
// card-body a {
|
28 |
+
// color: $primary !important;
|
29 |
+
// }
|
30 |
+
|
31 |
+
.rt-tooltip {
|
32 |
+
background-color: #282828aa;
|
33 |
+
color: orange;
|
34 |
+
border-radius: 10px;
|
35 |
+
}
|
36 |
+
|
37 |
+
// Border animation
|
38 |
+
.rthelp,
|
39 |
+
.rthelp-inline {
|
40 |
+
// animation: highlight-border 1s ease-in-out forwards;
|
41 |
+
animation-name: highlight-border;
|
42 |
+
animation-duration: 6s;
|
43 |
+
animation-timing-function: ease-in-out;
|
44 |
+
// animation-fill-mode: forwards;
|
45 |
+
animation-iteration-count: infinite;
|
46 |
+
}
|
47 |
+
|
48 |
+
@keyframes highlight-border {
|
49 |
+
0% {
|
50 |
+
border-color: transparent;
|
51 |
+
}
|
52 |
+
|
53 |
+
50% {
|
54 |
+
border-color: $info;
|
55 |
+
}
|
56 |
+
|
57 |
+
100% {
|
58 |
+
border-color: transparent;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
// theme switch
|
63 |
+
#lightson {
|
64 |
+
margin-top: auto;
|
65 |
+
margin-bottom: auto;
|
66 |
+
}
|
www/rtemislive_gray.png
ADDED
www/svl.webp
ADDED