takakioka commited on
Commit
8e8619e
·
verified ·
1 Parent(s): 374da5a

Upload 33 files

Browse files
Dockerfile CHANGED
@@ -1,17 +1,33 @@
1
- FROM rocker/shiny-verse:latest
2
-
3
- WORKDIR /code
4
-
5
- # Install stable packages from CRAN
6
- RUN install2.r --error \
7
- ggExtra \
8
- shiny
9
-
10
- # Install development packages from GitHub
11
- RUN installGithub.r \
12
- rstudio/bslib \
13
- rstudio/httpuv
14
-
15
- COPY . .
16
-
17
- CMD ["R", "--quiet", "-e", "shiny::runApp(host='0.0.0.0', port=7860)"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM bioconductor/bioconductor_docker:RELEASE_3_19
2
+
3
+ # Update apt-get and install necessary libraries
4
+ RUN apt-get update \
5
+ && apt-get install -y libcurl4-openssl-dev libxml2-dev openjdk-11-jdk \
6
+ libcairo2-dev libxt-dev \
7
+ && apt-get clean \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Install R packages
11
+ # Install R packages
12
+ RUN R -e "install.packages(c('shinyjqui','BiocManager','remotes', 'devtools', 'shiny','shinyscreenshot', 'readr', 'shinyAce', 'ggplot2', 'dplyr', 'shinythemes', 'openintro', 'plotly', 'DT', 'ggprism', 'ggbeeswarm', 'shinyFiles', 'stringr', 'shinyBS', 'shinydashboard', 'shinyWidgets', 'tidyr', 'pheatmap', 'grid', 'gridExtra', 'ggeasy', 'ggtext', 'colorspace', 'shinyjqui', 'tidyverse', 'gprofiler2', 'colourpicker', 'shinydashboardPlus', 'jsonlite', 'reshape2'))"
13
+ RUN R -e 'BiocManager::install("graph")'
14
+ RUN R -e "source('https://install-github.me/dreamRs/esquisse')"
15
+
16
+ # Install plumber and cyjshiny
17
+ RUN R -e "install.packages(c('plumber','cyjShiny','svglite'))"
18
+
19
+ COPY ./app/ui.R /srv/app/
20
+ COPY ./app/server.R /srv/app/
21
+ COPY ./app/plumber.R /srv/app/
22
+ COPY ./app/R /srv/app/modules/
23
+ COPY ./app/data /srv/app/pathwaymap/
24
+ COPY ./app/svg /srv/app/svg/
25
+ COPY ./app/www /srv/app/www/
26
+ COPY ./scripts/start.sh /usr/local/bin/start.sh
27
+
28
+ RUN chmod +x /usr/local/bin/start.sh
29
+
30
+ EXPOSE 9000
31
+ EXPOSE 1028
32
+
33
+ CMD ["sh", "/usr/local/bin/start.sh"]
LICENCE ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2024, Takaki OKA
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
README.md CHANGED
@@ -1,12 +1,53 @@
1
- ---
2
- title: Msdial2cytoscape
3
- emoji: 📚
4
- colorFrom: blue
5
- colorTo: yellow
6
- sdk: docker
7
- pinned: false
8
- license: mit
9
- short_description: test
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # msdial2cytoscape4lipidomics
2
+
3
+ <!-- badges: start -->
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+
7
+ <!-- badges: end -->
8
+
9
+ ## Overview
10
+
11
+ This Shiny application is designed to facilitate the analysis of non-targeted lipidomics data. It allows users to easily upload alignment result tables generated by MS-DIAL and, optionally, integrate sample class information for further data exploration. The application provides interactive data visualizations, enabling users to inspect lipid species distributions, compare sample groups, and generate pathway analysis diagrams.
12
+
13
+ Key features include:
14
+
15
+ - Simple file upload interface for MS-DIAL alignment results
16
+ - Integration of sample metadata for enhanced analysis
17
+ - Interactive visualizations for exploring lipid species across samples
18
+ - Customizable generation of pathway analysis diagrams with Cytoscape desktop app
19
+
20
+
21
+
22
+ ## Run msdial2cytoscape4lipidomics locally
23
+
24
+ ### Step 1: Clone this repository
25
+
26
+ Open the terminal and run:
27
+
28
+ ``` bash
29
+ git clone "https://github.com/systemsomicslab/msdial2cytoscape-for-lipidomics.git"
30
+ ```
31
+
32
+ ### Step 2: Bulid Docker image
33
+
34
+ ``` bash
35
+ docker build -t msdial2cytoscape4lipidomics .
36
+ ```
37
+
38
+ ### Step 3: Run Docker image
39
+
40
+ Run the container on your terminal once it has been bulied.
41
+
42
+ ``` bash
43
+ docker run --rm -p 1028:1028 -p 9000:9000 msdial2cytoscape4lipidomics
44
+ ```
45
+
46
+ ### Step 4: Run msdial2cytoscape for lipidomics in your browser
47
+
48
+ Open your browser and paste `http://localhost:1028`.
49
+
50
+ ## Code of Conduct
51
+
52
+
53
+
app/R/data_processing.R ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##' Checking duplicated metabolites from alignment table
2
+ ##'
3
+ ##' @title Checking duplicated metabolites from alignment table
4
+ ##' @param data Lipidomics alignment file form MS-DIAL analysis
5
+ ##' @return The alignment table with duplicated metabolites removed.
6
+ ##' @examples
7
+ ##' data <- read.csv("D:/100cells/20240222/lipid_metabolome.csv",header = F)
8
+ ##' result <- Metabolite_duplicate_check(data)
9
+ ##' @references
10
+ ##' @author Takaki Oka
11
+ ##' @export
12
+ Metabolite_duplicate_check <- function(data){
13
+ # convert rownames to column for row index
14
+
15
+ ontology_column <- 12
16
+ batch_id_row <- 2
17
+ peakinfo_column <- 1:35
18
+ header_row <- 5
19
+ peaktable <- data[, !data[batch_id_row, ] %in% NA, drop = FALSE]
20
+ originalcolnum <- colnames(peaktable)
21
+ peaktable <- peaktable %>%
22
+ setNames(peaktable[5,]) %>%
23
+ rownames_to_column()
24
+
25
+ # Find rows with max 'Fill %' for each 'Metabolite name'
26
+ check_duplicates <- peaktable %>%
27
+ group_by(`Metabolite name`) %>%
28
+ slice_max(`Fill %`,n=1) %>%
29
+ ungroup()
30
+
31
+ id <- check_duplicates$rowname
32
+ datav2 <- peaktable %>%
33
+ filter(rowname %in% c(id, 1:5)) %>%
34
+ dplyr::select(-rowname)
35
+ colnames(datav2) <- originalcolnum
36
+ return(datav2)
37
+ }
38
+
39
+ ##' Converting alignment file
40
+ ##'
41
+ ##' @title Converting alignment file to dataframe
42
+ ##' @param data alignment file form MS-DIAL analysis
43
+ ##' @return dataframe of alignment file
44
+ ##' @examples
45
+ ##' process_alignment_file(data)
46
+ ##' @references
47
+ ##' @author Takaki OKA
48
+ ##' @export
49
+ process_alignment_file <- function(data) {
50
+ ontology_column <- 12
51
+ batch_id_row <- 2
52
+ peakinfo_column <- 1:35
53
+ header_row <- 5
54
+ data <- Metabolite_duplicate_check(data)
55
+ #data <- Median_normalize_to_alignment_format(data)
56
+ peaktable <- data[, !data[batch_id_row, ] %in% NA, drop = FALSE]
57
+ peaktable <- peaktable[, peaktable[batch_id_row, ] == "Sample", drop = FALSE]
58
+ sample_info <- data.frame(name = unlist(peaktable[5, ]),
59
+ Class = unlist(peaktable[1, ]))
60
+
61
+ peaktable <- cbind(data[, peakinfo_column], peaktable)
62
+ colnames(peaktable) <- peaktable[header_row, ]
63
+ peaktable <- peaktable[-c(1:header_row), ]
64
+
65
+ peaktable[, -peakinfo_column] <- data.frame(lapply(peaktable[, -peakinfo_column], as.numeric))
66
+ peaktable <- distinct(peaktable,`Metabolite name`,.keep_all = TRUE)
67
+ lipid_info <- peaktable[, colnames(peaktable) %in% c("Metabolite name","Ontology",sample_info$name)]
68
+ peak_info <- peaktable[, !colnames(peaktable) %in% c("Metabolite name", sample_info$name)]
69
+
70
+ return(list(lipid_info,sample_info,peak_info))
71
+ }
72
+
73
+ ##' Median normalizeing of alignment table wuth retaining alignment format
74
+ ##'
75
+ ##' @title Median normalizeing of alignment table
76
+ ##' @param data Lipidomics alignment file form MS-DIAL analysis
77
+ ##' @return Median normalized data with alignment format
78
+ ##' @examples
79
+ ##' data <- read.csv("D:/100cells/20240222/lipid_metabolome.csv",header = F)
80
+ ##' result <- Median_normalize(data)
81
+ ##' @references
82
+ ##' @author Nami Sakamoto, Takaki Oka
83
+ ##' @export
84
+ Median_normalize_to_alignment_format <- function(data){
85
+
86
+ # Extract lipidontinf
87
+ peakinfo <- data[5:nrow(data), c(1:35)]
88
+ lipidontinf <- data[5:nrow(data), c(4, 12)]
89
+ colnames(lipidontinf) <- lipidontinf[1,]
90
+ lipidontinf <- lipidontinf[-1,]
91
+ rownames(lipidontinf) <- NULL
92
+
93
+ # Extract sample information
94
+ sampleinf <- t(data[1:4, 35:ncol(data)])
95
+ sampledata <- t(data[5:nrow(data), 36:ncol(data)])
96
+ Metabolitename <- t(data[-c(1:4), 4])
97
+
98
+ # Combine sample information
99
+ colnames(sampledata) <- colnames(Metabolitename)
100
+ datav2_v2 <- cbind(data.frame(sampleinf, rbind(data.frame(Metabolitename), data.frame(sampledata))))
101
+ colnames(datav2_v2) <- datav2_v2[1,]
102
+ datav2_v2 <- datav2_v2[-1,]
103
+ rownames(datav2_v2) <- NULL
104
+ names(datav2_v2)[5] <- "name"
105
+
106
+ # Filter out 'Batch ID' values and process numeric data
107
+ lipidmetabolomedata_all <- datav2_v2 %>%
108
+ filter(!`Batch ID` %in% c('Average', 'Stdev'))
109
+ numericdata <- lipidmetabolomedata_all[, -c(1:4)]
110
+ rownames(numericdata) <- NULL
111
+ numericdatax <- as.data.frame(sapply(numericdata[, -1], as.numeric))
112
+ rownames(numericdatax) <- lipidmetabolomedata_all$name
113
+ numericdatax2 <- numericdatax %>%
114
+ tibble::rownames_to_column() %>%
115
+ dplyr::rename(sampleid = rowname) %>%
116
+ pivot_longer(!sampleid, names_to = "lipidname", values_to = "value")
117
+
118
+ log2value <- numericdatax2 %>%
119
+ mutate(log2value = log2(value)) %>%
120
+ dplyr::select(-value) %>%
121
+ pivot_wider(names_from = "lipidname", values_from = "log2value") %>%
122
+ column_to_rownames(var = "sampleid")
123
+
124
+ samplemedian <- log2value %>% apply(1,median) %>% as.data.frame()
125
+ colnames(samplemedian) <- "median"
126
+
127
+ mean_forsamplemedian <- mean(samplemedian$median)
128
+
129
+ log2mediannormalizedata <- rownames_to_column(log2value) %>%
130
+ dplyr::rename(sampleid = rowname) %>%
131
+ left_join(rownames_to_column(samplemedian), by = c("sampleid" = "rowname")) %>%
132
+ pivot_longer(!c(sampleid, median), names_to = "lipidname", values_to = "log2value") %>%
133
+ mutate(mediannormvalue = log2value - median + mean_forsamplemedian) %>%
134
+ dplyr::select(-c(log2value, median)) %>%
135
+ pivot_wider(names_from = "lipidname", values_from = "mediannormvalue") %>%
136
+ column_to_rownames(var = "sampleid")
137
+
138
+ log2_2xmediannormalizedata <- 2^log2mediannormalizedata
139
+ log2_2xmediannormalizedata_0 <- lipidmetabolomedata_all[, c(1:5)] %>%
140
+ left_join(rownames_to_column(log2_2xmediannormalizedata), by = c("name" = "rowname")) %>% t() %>% data.frame()%>% rownames_to_column("V0")
141
+ aligntable <- right_join(peakinfo,log2_2xmediannormalizedata_0,by = c("V4" = "V0"))
142
+ headerrow <- tail(aligntable,n = 5)
143
+ aligntable <- rbind(headerrow,aligntable)
144
+ aligntable[1:5,1:35] <- data[1:5,1:35]
145
+ aligntable <- filter(aligntable,is.na(V1)==F)
146
+ return(aligntable)
147
+ }
148
+ ##' Converting alignment file to expression data of lipid class
149
+ ##'
150
+ ##' @title Converting alignment file to dataframe
151
+ ##' @param data alignment file form MS-DIAL analysis
152
+ ##' @return Expression data of lipid class and sample meta data
153
+ ##' @examples
154
+ ##' convert_msdial_export_to_lipid_class_dataframe(data)
155
+ ##' @references
156
+ ##' @author Takaki OKA
157
+ ##' @export
158
+ convert_msdial_export_to_lipid_class_dataframe <- function(data) {
159
+ data_frame <- process_alignment_file(data)
160
+ lipid_info <- data_frame[[1]]
161
+ sample_info <- data_frame[[2]]
162
+
163
+ lipidtable <- lipid_info[,colnames(lipid_info) %in% c("Metabolite name","Ontology", sample_info$name)] %>% pivot_longer(cols = -(1:2))
164
+ lipidtable <- lipidtable %>%
165
+ group_by(name, Ontology) %>%
166
+ mutate(mean = mean(value)) %>%
167
+ ungroup() %>%
168
+ distinct(name, Ontology, .keep_all = TRUE) %>%
169
+ dplyr::select(-c("Metabolite name", value)) %>%
170
+ pivot_wider(values_from = mean, names_from = Ontology)
171
+ return(list(lipidtable,sample_info))
172
+ }
173
+
174
+ ##' Converting alignment file to expression data of lipid molecules
175
+ ##'
176
+ ##' @title Converting alignment file to dataframe
177
+ ##' @param data alignment file form MS-DIAL analysis
178
+ ##' @return Expression data of lipid molecules and sample meta data
179
+ ##' @examples
180
+ ##' convert_msdial_export_to_lipid_molecules_dataframe(data)
181
+ ##' @references
182
+ ##' @author Takaki OKA
183
+ ##' @export
184
+ convert_msdial_export_to_lipid_molecules_dataframe <- function(data) {
185
+ data_frame <- process_alignment_file(data)
186
+ lipid_info <- data_frame[[1]]
187
+ sample_info <- data_frame[[2]]
188
+
189
+ lipidtable <- lipid_info[,colnames(lipid_info) %in% c("Metabolite name", sample_info$name)] %>% pivot_longer(cols = -(1)) %>% pivot_wider(names_from = `Metabolite name`,values_from = value)
190
+ return(list(lipidtable,sample_info))
191
+ }
192
+
193
+ ##' Updating select input with file upload
194
+ ##'
195
+ ##' @title Updating select input with file upload
196
+ ##' @param data alignment file form MS-DIAL analysis
197
+ ##' @return Expression data of lipid molecules and sample meta data
198
+ ##' @examples
199
+ ##' convert_msdial_export_to_lipid_molecules_dataframe(data)
200
+ ##' @references
201
+ ##' @author Takaki OKA
202
+ ##' @export
203
+ processAndUpdateInputs <- function(data, session, metadata, metainfocol) {
204
+ shiny::updateSelectInput(session, "y", selected = paste(colnames(data)[c(metainfocol + 1)]), choices = colnames(data)[-c(1:metainfocol)])
205
+ shiny::updateSelectInput(session, "w", selected = "Class", choices = colnames(data)[c(2:metainfocol)])
206
+ shiny::updateSelectInput(session, "z", selected = "Class", choices = colnames(data)[c(2:metainfocol)])
207
+ }
208
+
209
+ processAndUpdateInputs2 <- function(data, session, metadata, metainfocol) {
210
+ #shiny::updateSelectInput(session, "y", selected = paste(colnames(data)[c(metainfocol + 1)]), choices = colnames(data)[-c(1:metainfocol)])
211
+ shiny::updateSelectInput(session, "X1", selected = paste(colnames(data)[c(metainfocol + 1)]), choices = colnames(data)[-c(1:metainfocol)])
212
+ shiny::updateSelectInput(session, "X2", selected = paste(colnames(data)[c(metainfocol + 1)]), choices = colnames(data)[-c(1:metainfocol)])
213
+ #shiny::updateSelectInput(session, "z", selected = "Class", choices = colnames(data)[c(2:metainfocol)])
214
+ }
215
+ # update_select_input <- function(input,session) {
216
+ #
217
+ #
218
+ #
219
+ # }
220
+
221
+ scale_rows <- function(x) {
222
+ t(apply(x, 1, function(row) scales::rescale(row, to = c(-2, 2))))
223
+ }
224
+
225
+ lipidmeancalforgroupnode <- function(data, metadata, selectclass) {
226
+ Ontology_column <- 12
227
+ BatchID_row <- 2
228
+ peakinfo_column <- 1:35
229
+ header_row <- 5
230
+ processed_data <- process_alignment_file(data)
231
+ lipid_data_classmean <- processed_data[[1]]
232
+ sampleinfo <- processed_data[[2]]
233
+ lipid_data_lipidclassmean <- pivot_longer(lipid_data_classmean, cols = -c(1:2)) %>%
234
+ dplyr::select(`Metabolite name`, Ontology, name, value) %>%
235
+ inner_join(metadata, by = "name") %>%
236
+ dplyr::select(`Metabolite name`,Ontology ,selectclass, name, value) %>%
237
+ group_by(`Metabolite name`, across(all_of(selectclass))) %>%
238
+ mutate(mean = mean(value)) %>%
239
+ ungroup() %>%
240
+ distinct(`Metabolite name`,across(all_of(selectclass)), .keep_all = TRUE) %>%
241
+ dplyr::select(`Metabolite name`, Ontology, selectclass, mean) %>%
242
+ pivot_wider(names_from = selectclass, values_from = mean)
243
+ return(lipid_data_lipidclassmean)
244
+ }
245
+
246
+ processSampleInRows <- function(originaldata, session, input) {
247
+ colnames(originaldata) <- originaldata[1,]
248
+ originaldata <- originaldata[-1,]
249
+ originaldata[, -c(1:2)] <- apply(originaldata[, -c(1:2)], 2, as.numeric)
250
+ lipidont <- read.csv(input$ontfile$datapath, check.names = FALSE)
251
+ colnames(lipidont)[1] <- "lipid"
252
+ colnames(originaldata)[1] <- "name"
253
+ if (length(input$file2) != 0) {
254
+ metadata <- read.csv(input$file2$datapath)
255
+ colnames(metadata)[1] <- "name"
256
+ data <- originaldata %>%
257
+ pivot_longer(cols = -c(1:2), names_to = "lipid") %>%
258
+ inner_join(lipidont, by = c("lipid")) %>%
259
+ group_by(name, Ontology) %>%
260
+ mutate(mean = mean(value)) %>%
261
+ ungroup() %>%
262
+ distinct(name, Ontology, .keep_all = TRUE) %>%
263
+ dplyr::select(1, 2, 5, 6) %>%
264
+ pivot_wider(names_from = "Ontology", values_from = "mean")
265
+ data <- inner_join(metadata, data, by = c("name" = "name"))
266
+ } else {
267
+ metadata <- data.frame(name = originaldata[,1],Class = originaldata[,2])
268
+ data <- originaldata %>%
269
+ pivot_longer(cols = -c(1:2), names_to = "lipid") %>%
270
+ inner_join(lipidont, by = c("lipid")) %>%
271
+ group_by(name, Ontology) %>%
272
+ mutate(mean = mean(value)) %>%
273
+ ungroup() %>%
274
+ distinct(name, Ontology, .keep_all = TRUE) %>%
275
+ dplyr::select(1, 5, 6) %>%
276
+ pivot_wider(names_from = "Ontology", values_from = "mean")
277
+ data <- inner_join(metadata, data, by = c("name" = "name"))
278
+ }
279
+ return(list(data,metadata))
280
+ }
281
+
282
+ processMSDIALExport <- function(originaldata, session, input) {
283
+ if (length(input$file2) != 0) {
284
+ tablelist <- originaldata %>% convert_msdial_export_to_lipid_class_dataframe()
285
+ data <- tablelist[[1]]
286
+ metadata <- read.csv(input$file2$datapath)
287
+ colnames(metadata)[1] <- "name"
288
+ metadata <- inner_join(tablelist[[2]], metadata, by = c("name"))
289
+ data <- inner_join(metadata, data, by = c("name" = "name"))
290
+ metainfocol <- ncol(metadata)
291
+ } else {
292
+ tablelist <- originaldata %>% convert_msdial_export_to_lipid_class_dataframe()
293
+ data <- tablelist[[1]]
294
+ metadata <- tablelist[[2]]
295
+ metainfocol <- ncol(metadata)
296
+ data <- inner_join(metadata, data, by = c("name" = "name"))
297
+ }
298
+ return(list(data,metadata))
299
+ }
300
+
301
+ processMSDIALExporttomoldata <- function(originaldata, session, input) {
302
+ if (length(input$file2) != 0) {
303
+ tablelist <- originaldata %>% convert_msdial_export_to_lipid_molecules_dataframe()
304
+ data <- tablelist[[1]]
305
+ metadata <- read.csv(input$file2$datapath)
306
+ colnames(metadata)[1] <- "name"
307
+ metadata <- inner_join(tablelist[[2]], metadata, by = c("name"))
308
+ data <- inner_join(metadata, data, by = c("name" = "name"))
309
+ metainfocol <- ncol(metadata)
310
+ } else {
311
+ tablelist <- originaldata %>% convert_msdial_export_to_lipid_molecules_dataframe()
312
+ data <- tablelist[[1]]
313
+ metadata <- tablelist[[2]]
314
+ metainfocol <- ncol(metadata)
315
+ data <- inner_join(metadata, data, by = c("name" = "name"))
316
+ }
317
+ return(list(data,metadata))
318
+ }
319
+
320
+ processSampleInRowstomoldata <- function(originaldata, session, input) {
321
+ moldata <- originaldata
322
+ colnames(moldata) <- moldata[1,]
323
+ moldata <- moldata[, !duplicated(colnames(moldata))]
324
+ moldata <- moldata[-1,]
325
+ moldata[,-c(1,2)] <- apply(moldata[,-c(1,2)],2,as.numeric) %>% data.frame()
326
+ colnames(moldata)[1] <- "name"
327
+ if (length(input$file2) != 0) {
328
+ metadata <- read.csv(input$file2$datapath)
329
+ colnames(metadata)[1] <- "name"
330
+ data <- inner_join(metadata, moldata, by = c("name" = "name"))
331
+ } else {
332
+ metadata <- data.frame(name = originaldata[,1],Class = originaldata[,2])
333
+ data <- moldata
334
+ }
335
+ return(list(data,metadata))
336
+ }
337
+
338
+ read_graph_json <- function(file_path) {
339
+ tryCatch({
340
+ paste(readLines(file_path), collapse = "")
341
+ }, error = function(e) {
342
+ message("Error reading graph JSON file: ", e$message)
343
+ return(NULL)
344
+ })
345
+ }
346
+
347
+
348
+ pvaluecheckbox =reactiveVal()
349
+ pvaluecheckbox <<- ""
app/R/heatmap_utils.R ADDED
@@ -0,0 +1,568 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ groupnodeheatmap <- function(lipidclassproperties,data,metadata,class,levels,inputclass,input){
2
+ # lipidclassproperties
3
+ if(input$filetype == "MS-DIAL export"){
4
+ lipid_data_classmean <<- right_join(lipidclassproperties,lipidmeancalforgroupnode(data,metadata,input$w) ,by = c("LbmClass"="Ontology"))
5
+ }
6
+
7
+ if(input$filetype == "Sample in rows"){
8
+ colnames(data) <- data[1,]
9
+ data <- data[-1,]
10
+ data[, -c(1:2)] <- apply(data[, -c(1:2)], 2, as.numeric)
11
+ colnames(data)[1] <- "name"
12
+ colnames(metadata)[1] <- "name"
13
+ lipid <- data %>% pivot_longer(cols = -c(1:2),names_to = "Metabolite name") %>%
14
+ inner_join(metadata,by = c("name","Class")) %>%
15
+ select(c(paste(input$w,"",sep=""),`Metabolite name`,name,value)) %>%
16
+ group_by_at(c("Metabolite name",input$w)) %>%
17
+ mutate(mean = mean(value)) %>%
18
+ ungroup() %>%
19
+ distinct(`Metabolite name`,!!as.symbol(input$w),.keep_all = T) %>%
20
+ select(c(1,2,5)) %>%
21
+ pivot_wider(names_from = paste(input$w,"",sep=""),values_from = mean)
22
+ lipidont <- read.csv(input$ontfile$datapath,check.names = F)
23
+ lipid <- inner_join(lipidont,lipid,by =c("lipid" = "Metabolite name"))
24
+ lipid <- rename(lipid,`Metabolite name` = lipid)
25
+ lipid_data_classmean <- right_join(lipidclassproperties,lipid,by = c("LbmClass"="Ontology")) %>% filter(TotalChain != 0)# %>% filter(`Annotation tag (VS1.0)` == "410")
26
+ }
27
+
28
+ #lipid_data_classmean <- right_join(lipidclassproperties,lipidmeancalforgroupnode(data,metadata,paste(class,"",sep="")) ,by = c("LbmClass"="Ontology")) # %>% filter(`Annotation tag (VS1.0)` == "410")
29
+ lipid_data_classmean <- filter(lipid_data_classmean,LbmClass == inputclass)
30
+ if(unique(lipid_data_classmean$TotalChain) == "1"){
31
+ targetmonoacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
32
+ monoacyl <- lipid_data_classmean %>% filter(TotalChain == "1") %>% filter(!LbmClass %in% c("AHexCS","AHexSTS"))
33
+ targetlipidclass <- monoacyl$LbmClass %>% unique()
34
+ monoacyl <- monoacyl[,-c(2:7)]
35
+ if(input$acylfilter == T){
36
+
37
+ acyllist <- list()
38
+ for (i in 1:nrow(monoacyl)) {
39
+ a <- unlist(str_split(monoacyl$`Metabolite name`[i],pattern = " "))[2]
40
+
41
+ if (str_detect(a,pattern = ";") == TRUE){
42
+ acyl <- a %>% str_split(pattern = ";") %>% unlist()
43
+ if(str_detect(acyl[1],pattern = "-")){
44
+ acyl <- acyl[1] %>% str_split(pattern = "-") %>% unlist()
45
+ acyllist[i] <- a[2]
46
+ }else{
47
+ acyllist[i] <- acyl[1]
48
+ }
49
+
50
+ }else if(str_detect(a,pattern = "/")==TRUE){
51
+ acyl <- a %>% str_split(pattern = "/") %>% unlist()
52
+ acyllist[i] <- acyl[2]
53
+ }else{
54
+ if(str_detect(a,pattern = "-")){
55
+ acyl <- a %>% str_split(pattern = "-") %>% unlist()
56
+ acyllist[i] <- acyl[2]
57
+ }else{
58
+ acyllist[i] <- a
59
+ }
60
+ }
61
+ }
62
+
63
+
64
+
65
+ monoacyl$acyl <- unlist(acyllist)
66
+ #
67
+ targetmonoacyllipid <- monoacyl %>% filter(acyl %in% targetmonoacylchain) %>% select(-c(acyl))
68
+ }
69
+ else{
70
+ targetmonoacyllipid <- monoacyl
71
+ }
72
+ targetlipidclass <- unique(targetmonoacyllipid$LbmClass)
73
+ monoacyl <- targetmonoacyllipid
74
+
75
+ Lipidclassdata<- filter(monoacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
76
+ if(length(Lipidclassdata$LbmClass) != 0){
77
+ d <- Lipidclassdata
78
+ rowname <- as.matrix((d$`Metabolite name`))
79
+ d <- select(d,-c(LbmClass))
80
+ n <- nrow(d)
81
+ BreaksList <- seq(-2,2, by = 0.5)
82
+ height <- n*0.9
83
+ list <- c(-2,0,2)
84
+ lipid <- d
85
+ lipid <- lipid[,-1]
86
+ rownames(lipid) <- rowname
87
+ lipid <- scale_rows(lipid) %>% as.data.frame()
88
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
89
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
90
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
91
+
92
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
93
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
94
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
95
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 0),axis.text = element_text(size = input$Fontsize))
96
+ print(ghm)
97
+ }}
98
+ if(unique(lipid_data_classmean$TotalChain) == "2"&& unique(lipid_data_classmean$Categories) != "Sphingolipids" && unique(lipid_data_classmean$Categories) != "Sterol Lipids"){
99
+ targetdiacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
100
+ diacyl <- lipid_data_classmean %>% filter(TotalChain == "2", Categories != "Sphingolipids")
101
+ targetlipidclass <- diacyl$LbmClass %>% unique()
102
+ diacyl <- diacyl[,-c(3:7)]
103
+ if(input$acylfilter == T){
104
+ acyl1list <- list()
105
+ acyl2list <- list()
106
+ for (i in 1:nrow(diacyl) ) {
107
+ if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
108
+ a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ") %>% unlist()
109
+ if(str_detect(a[2],pattern = "_") == TRUE){
110
+ a <- a[2] %>% str_split(pattern = "_") %>% unlist()
111
+ if(str_detect(a[1],pattern = "-") == TRUE){
112
+ acyl1 <- a[1] %>% str_split(pattern = "-") %>% unlist()
113
+ acyl1list[i] <- acyl1[2]
114
+ }else{
115
+ acyl1list[i] <- a[1]
116
+ }
117
+ if(str_detect(a[2],pattern = ";") == TRUE){
118
+ acyl2 <- a[2] %>% str_split(pattern = ";") %>% unlist()
119
+ acyl2list[i] <- acyl2[1]
120
+ }else{
121
+ acyl2list[i] <- a[2]
122
+ }
123
+ }else{
124
+ a <- unlist(a)[2] %>% str_split(pattern = "\\)") %>% unlist()
125
+ acyl1 <- a[1] %>% str_split(pattern = " ") %>% unlist()
126
+ acyl1list[i] <- acyl1[2]
127
+ acyl2list[i] <- a[2]
128
+ }
129
+ }
130
+ else{
131
+ acyl1list[i] <- NA
132
+ acyl2list[i] <- NA
133
+ }
134
+ }
135
+
136
+ diacyl$acyl1 <- unlist(acyl1list)
137
+ diacyl$acyl2 <- unlist(acyl2list)
138
+
139
+ targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetdiacylchain, acyl2 %in% targetdiacylchain)
140
+
141
+ # if(input$sn == T){
142
+ # targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl1," (sn-1)",sep ="")
143
+ # targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl2," (sn-2)",sep ="")
144
+ # targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
145
+ # sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
146
+ # colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
147
+ # sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
148
+ # colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
149
+ # diacyl <- rbind(sn1,sn2) %>% pivot_wider(names_from = "name",values_from = "value") #%>% data.frame()
150
+ # }
151
+
152
+
153
+ diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
154
+
155
+ }
156
+ else{}
157
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
158
+ if(length(Lipidclassdata$LbmClass) != 0){
159
+ d <- Lipidclassdata
160
+ rowname <- as.matrix((d$`Metabolite name`))
161
+ d <- select(d,-c(`Metabolite name`,LbmClass))
162
+ BreaksList <- seq(-2,2, by = 0.5)
163
+ # print(d)
164
+ n <- nrow(d)
165
+ height <- n/10*3
166
+ list <- c(-2,0,2)
167
+ lipid <- d
168
+ lipid <- lipid[,-1]
169
+ rownames(lipid) <- rowname
170
+ lipid <- scale_rows(lipid) %>% as.data.frame()
171
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
172
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
173
+
174
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
175
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
176
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
177
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
178
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
179
+ print(ghm)
180
+ }}
181
+
182
+ if(unique(lipid_data_classmean$TotalChain) == "2"&& unique(lipid_data_classmean$Categories) == "Sterol Lipids" && unique(lipid_data_classmean$LbmClass) != "WE"){
183
+ targetdiacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
184
+ diacyl <- lipid_data_classmean %>% filter(TotalChain == "2", LbmClass != "WE")# %>%
185
+ targetlipidclass <- diacyl$LbmClass %>% unique()
186
+ diacyl <- diacyl[,-c(3:7)]
187
+ if(input$acylfilter == T){
188
+ acyl1list <- list()
189
+ acyl2list <- list()
190
+ for (i in 1:nrow(diacyl) ) {
191
+
192
+ if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
193
+ a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ") %>% unlist()
194
+ if(str_detect(a[2],pattern = "/") == TRUE){
195
+ a <- a[2] %>% str_split(pattern = "/") %>% unlist()
196
+ acyl1list[i] <- a[1]
197
+ acyl2list[i] <- a[2]
198
+ }
199
+ }
200
+ else{
201
+ acyl1list[i] <- NA
202
+ acyl2list[i] <- NA
203
+ }
204
+ }
205
+ diacyl$acyl1 <- unlist(acyl1list)
206
+ diacyl$acyl2 <- unlist(acyl2list)
207
+
208
+ targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetdiacylchain, acyl2 %in% targetdiacylchain)
209
+
210
+ # if(input$sn == T){
211
+ # targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl1," (sn-1)",sep ="")
212
+ # targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl2," (sn-2)",sep ="")
213
+ # targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
214
+ # sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
215
+ # colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
216
+ # sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
217
+ # colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
218
+ # diacyl <- rbind(sn1,sn2) %>% pivot_wider(names_from = "name",values_from = "value") #%>% data.frame()
219
+ # }
220
+
221
+
222
+ diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
223
+
224
+ }
225
+ else{}
226
+
227
+
228
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
229
+ if(length(Lipidclassdata$LbmClass) != 0){
230
+ d <- Lipidclassdata
231
+ rowname <- as.matrix((d$`Metabolite name`))
232
+ d <- select(d,-c(`Metabolite name`,LbmClass))
233
+
234
+ BreaksList <- seq(-2,2, by = 0.5)
235
+ n <- nrow(d)
236
+ height <- n/10*3
237
+ list <- c(-2,0,2)
238
+ lipid <- d
239
+ lipid <- lipid[,-1]
240
+ rownames(lipid) <- rowname
241
+ lipid <- scale_rows(lipid) %>% as.data.frame()
242
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
243
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
244
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
245
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
246
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
247
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
248
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
249
+ print(ghm)
250
+ }}
251
+
252
+ if(unique(lipid_data_classmean$TotalChain) == "2"&&unique(lipid_data_classmean$Categories) == "Sphingolipids"&&unique(lipid_data_classmean$LbmClass) != "ASM"){
253
+ targetSphingoidBase <- c("18:0;O2","18:1;O2","18:2;O2","18:0;O3","18:0;2O","18:1;2O","18:2;2O","18:0;3O")
254
+ targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
255
+ epidermalacylceramide <- c("Cer_EODS","Cer_EOS","Cer_EBDS","HexCer_EOS")
256
+ epidermalacylceramidetargetacylchain <- c("18:2")
257
+ diacyl <- lipid_data_classmean %>% filter(TotalChain == "2",Categories == "Sphingolipids",LbmClass != "ASM")
258
+ targetlipidclass <- diacyl$LbmClass %>% unique()
259
+ diacyl <- diacyl[,-c(3:7)]
260
+
261
+ if(input$acylfilter == T){
262
+ acyl1list <- list()
263
+ acyl2list <- list()
264
+ for (i in 1:nrow(diacyl)) {
265
+ if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
266
+ a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
267
+ if(str_detect(unlist(a)[2],pattern = "/") == TRUE){
268
+ a <- unlist(a)[2] %>% str_split(pattern = "/") %>% unlist()
269
+ acyl1list[i] <- a[1]
270
+ if(str_detect(a[2],pattern = ";") == TRUE){
271
+
272
+ acyl2 <- a[2] %>% str_split(pattern = ";") %>% unlist()
273
+ acyl2list[i] <- acyl2[1]
274
+ }
275
+ else if(str_detect(a[2],pattern = "\\(") == TRUE){
276
+ acyl2 <- a[2] %>% str_split(pattern = "\\(") %>% unlist()
277
+ acyl2list[i] <- acyl2[1]
278
+ }
279
+ else{
280
+ acyl2list[i] <- a[2]
281
+ }
282
+ }
283
+ else{
284
+ acyl1list[i] <- NA
285
+ acyl2list[i] <- NA
286
+ }
287
+ }
288
+ else{
289
+ acyl1list[i] <- NA
290
+ acyl2list[i] <- NA
291
+ }
292
+ }
293
+ diacyl$acyl1 <- unlist(acyl1list)
294
+ diacyl$acyl2 <- unlist(acyl2list)
295
+ targetdiacyllipidnotEOS <- diacyl %>% filter(!Categories %in% epidermalacylceramide) %>% filter(acyl1 %in% targetSphingoidBase, acyl2 %in% targetnacylchain)
296
+ targetdiacyllipidEOS <- diacyl %>% filter(Categories %in% epidermalacylceramide) %>% filter(acyl1 %in% targetSphingoidBase, acyl2 %in% epidermalacylceramidetargetacylchain)
297
+ targetdiacyllipid <- rbind(targetdiacyllipidEOS,targetdiacyllipidnotEOS)
298
+ targetlipidclass <- unique(targetdiacyllipid$LbmClass)
299
+
300
+ # if(input$sn == T){
301
+ # targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," C",targetdiacyllipid$acyl1,sep ="")
302
+ # targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," C",targetdiacyllipid$acyl2,sep ="")
303
+ # targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
304
+ # sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
305
+ # colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
306
+ # sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
307
+ # colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
308
+ # diacyl <- sn2 %>% pivot_wider(names_from = "name",values_from = "value")
309
+ # }
310
+
311
+
312
+ diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
313
+
314
+
315
+ }
316
+ else{
317
+ }
318
+
319
+
320
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
321
+ if(length(Lipidclassdata$LbmClass) != 0){
322
+ d <- Lipidclassdata
323
+ rowname <- as.matrix((d$`Metabolite name`))
324
+ d <- select(d,-c(`Metabolite name`,LbmClass))
325
+ n <- nrow(d)
326
+ BreaksList <- seq(-2,2, by = 0.5)
327
+ n <- nrow(d)
328
+ height <- n/10*3
329
+ list <- c(-2,0,2)
330
+ lipid <- d
331
+ lipid <- lipid[,-1]
332
+ rownames(lipid) <- rowname
333
+ lipid <- scale_rows(lipid) %>% as.data.frame()
334
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
335
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
336
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
337
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
338
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
339
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
340
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
341
+ print(ghm)
342
+
343
+ }}
344
+
345
+ if(unique(lipid_data_classmean$LbmClass) == "ASM"){
346
+ targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
347
+ diacyl <- lipid_data_classmean %>% filter(LbmClass == "ASM")# %>%
348
+ targetlipidclass <- diacyl$LbmClass %>% unique()
349
+ diacyl <- diacyl[,-c(3:7)]
350
+
351
+ if(input$acylfilter == T){
352
+
353
+ acyl1list <- list()
354
+ for (i in 1:nrow(diacyl)) {
355
+ if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\(") == TRUE){
356
+ a <- str_split(diacyl$`Metabolite name`[i],pattern = "\\(") %>% unlist()
357
+ a1 <- a[2] %>% str_split(pattern = "\\)") %>% unlist()
358
+ a2 <- a1[1] %>% str_split(pattern = " ") %>% unlist()
359
+ acyl1list[i] <- a2[2]
360
+ }
361
+ else{
362
+ acyl1list[i] <- NA
363
+ }
364
+ }
365
+
366
+ diacyl$acyl1 <- unlist(acyl1list)
367
+ targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetnacylchain) %>% select(-c(Categories))
368
+
369
+ targetlipidclass <- unique(targetdiacyllipid$LbmClass)
370
+
371
+
372
+
373
+ diacyl <- targetdiacyllipid %>% select(-c(acyl1))
374
+
375
+
376
+
377
+ }
378
+ else{
379
+
380
+ }
381
+
382
+
383
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
384
+ if(length(Lipidclassdata$LbmClass) != 0){
385
+ d <- Lipidclassdata
386
+ rowname <- as.matrix((d$`Metabolite name`))
387
+ d <- select(d,-c(`Metabolite name`,LbmClass))
388
+ n <- nrow(d)
389
+ BreaksList <- seq(-2,2, by = 0.5)
390
+ n <- nrow(d)
391
+ height <- n/10*3
392
+ list <- c(-2,0,2)
393
+ lipid <- d
394
+ lipid <- lipid[,-1]
395
+ rownames(lipid) <- rowname
396
+ lipid <- scale_rows(lipid) %>% as.data.frame()
397
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
398
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
399
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
400
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
401
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
402
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
403
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
404
+ print(ghm)
405
+
406
+ }
407
+ }
408
+ if(unique(lipid_data_classmean$TotalChain) == "0"){
409
+ targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
410
+ diacyl <- lipid_data_classmean %>% filter(TotalChain == "0")# %>%
411
+ targetlipidclass <- diacyl$LbmClass %>% unique()
412
+ diacyl <- diacyl[,-c(3:7)]
413
+ if(input$acylfilter == T){
414
+
415
+ acyl1list <- list()
416
+ acyl2list <- list()
417
+
418
+ for (i in 1:nrow(diacyl)) {
419
+ acyl1list[i] <- NA
420
+ }
421
+
422
+ diacyl$acyl1 <- unlist(acyl1list)
423
+ targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetnacylchain) %>% select(-c(Categories))
424
+ targetlipidclass <- unique(targetdiacyllipid$LbmClass)
425
+
426
+ namelist <- list()
427
+ pathlist <- list()
428
+
429
+ diacyl <- targetdiacyllipid %>% select(-c(acyl1))
430
+
431
+
432
+
433
+ }
434
+ else{
435
+
436
+ }
437
+
438
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
439
+ if(length(Lipidclassdata$LbmClass) != 0){
440
+ d <- Lipidclassdata
441
+ rowname <- as.matrix((d$`Metabolite name`))
442
+ d <- select(d,-c(`Metabolite name`,LbmClass))
443
+ n <- nrow(d)
444
+ BreaksList <- seq(-2,2, by = 0.5)
445
+ n <- nrow(d)
446
+ height <- n/10*3
447
+ list <- c(-2,0,2)
448
+ lipid <- d
449
+ lipid <- lipid[,-1]
450
+ rownames(lipid) <- rowname
451
+ lipid <- scale_rows(lipid) %>% as.data.frame()
452
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
453
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
454
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
455
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
456
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
457
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
458
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
459
+ print(ghm)
460
+
461
+ }}
462
+ if(unique(lipid_data_classmean$TotalChain) > 2 && unique(lipid_data_classmean$LbmClass) %in% c("TG","OxTG","HBMP","EtherTG")){
463
+ targettriacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
464
+ Triacyl <- lipid_data_classmean %>% filter(TotalChain > 2, LbmClass %in% c("TG","OxTG","HBMP","EtherTG"))
465
+ targetlipidclass <- Triacyl$LbmClass %>% unique()
466
+ Triacyl <- Triacyl[,-c(3:7)]
467
+ if(input$acylfilter == T){
468
+ acyllist1 <- list()
469
+ acyllist2 <- list()
470
+ acyllist3 <- list()
471
+ for (i in 1:nrow(Triacyl)) {
472
+ if(Triacyl$LbmClass[i] == "TG"){
473
+
474
+ a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
475
+ a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
476
+ acyllist1[i] <- a[1]
477
+ acyllist2[i] <- a[2]
478
+ acyllist3[i] <- a[3]
479
+ }else if(Triacyl$LbmClass[i] =="OxTG"){
480
+
481
+ a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
482
+ a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
483
+ acyllist1[i] <- a[1]
484
+ acyllist2[i] <- a[2]
485
+ b <- a[3] %>% str_split(pattern = ";") %>% unlist()
486
+ acyllist3[i] <- b[1]
487
+ }else if(Triacyl$LbmClass[i] =="HBMP"){
488
+ a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
489
+ a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
490
+ b <- a[1] %>% str_split(pattern = "/") %>% unlist()
491
+ acyllist1[i] <- b[1]
492
+ acyllist2[i] <- b[2]
493
+ acyllist3[i] <- a[2]
494
+ }else if(Triacyl$LbmClass[i] =="EtherTG"){
495
+ a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
496
+ a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
497
+ acyl <- a[1] %>% str_split(pattern = "-") %>% unlist()
498
+ acyllist1[i] <- acyl[2]
499
+ acyllist2[i] <- a[2]
500
+ acyllist3[i]<- a[3]
501
+ }
502
+ }
503
+
504
+ Triacyl$acyl1 <- unlist(acyllist1)
505
+ Triacyl$acyl2 <- unlist(acyllist2)
506
+ Triacyl$acyl3 <- unlist(acyllist3)
507
+
508
+ targettriacyllipid <- Triacyl %>% filter(acyl1 %in% targettriacylchain, acyl2 %in% targettriacylchain,acyl3 %in% targettriacylchain) %>% select(-c(acyl1,acyl2,acyl3,Categories))
509
+ }
510
+ else{
511
+ targettriacyllipid <- Triacyl
512
+ }
513
+ Triacyl <- targettriacyllipid
514
+ # i <-
515
+ Lipidclassdata<- filter(Triacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
516
+ if(length(Lipidclassdata$LbmClass) != 0){
517
+ d <- Lipidclassdata
518
+ rowname <- as.matrix((d$`Metabolite name`))
519
+ d <- select(d,-c(`Metabolite name`,LbmClass))
520
+ BreaksList <- seq(-2,2, by = 0.5)
521
+ n <- nrow(d)
522
+ height <- n/10*3
523
+ list <- c(-2,0,2)
524
+ lipid <- d
525
+ lipid <- lipid[,-1]
526
+ rownames(lipid) <- rowname
527
+ lipid <- scale_rows(lipid) %>% as.data.frame()
528
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
529
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
530
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
531
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
532
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
533
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
534
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
535
+ print(ghm)
536
+
537
+ }}
538
+ if(unique(lipid_data_classmean$TotalChain) > 2 && ! unique(lipid_data_classmean$LbmClass) %in% c("TG","OxTG","HBMP","EtherTG")){
539
+ Triacyl <- lipid_data_classmean %>% filter(TotalChain > 2, ! LbmClass %in% c("TG","OxTG","HBMP","EtherTG"))
540
+ targetlipidclass <- Triacyl$LbmClass %>% unique()
541
+ Triacyl <- Triacyl[,-c(3:7)]
542
+ diacyl <- Triacyl
543
+ Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
544
+ if(length(Lipidclassdata$LbmClass) != 0){
545
+ d <- Lipidclassdata
546
+ rowname <- as.matrix((d$`Metabolite name`))
547
+ d <- d <- select(d,-c(`Metabolite name`,LbmClass))
548
+ n <- nrow(d)
549
+ BreaksList <- seq(-2,2, by = 0.5)
550
+ n <- nrow(d)
551
+ height <- n/10*3
552
+ list <- c(-2,0,2)
553
+ lipid <- d
554
+ lipid <- lipid[,-1]
555
+ rownames(lipid) <- rowname
556
+ lipid <- scale_rows(lipid) %>% as.data.frame()
557
+ lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
558
+ lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
559
+ lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
560
+ ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
561
+ ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
562
+ colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
563
+ ) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
564
+ print(ghm)
565
+
566
+ }}
567
+
568
+ }
app/R/librarys.R ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ library(shiny)
2
+ library(readr)
3
+ library(shinyAce)
4
+ library(ggplot2)
5
+ library(dplyr)
6
+ library(shinythemes)
7
+ library(openintro)
8
+ library(plotly)
9
+ library(DT)
10
+ library(ggprism)
11
+ library(ggbeeswarm)
12
+ library(reshape2)
13
+ library(shinyFiles)
14
+ library(stringr)
15
+ library(shinyBS)
16
+ library(shinyjs)
17
+ library(shinydashboard)
18
+ library(shinyWidgets)
19
+ library(svglite)
20
+ library(tidyr)
21
+ library(pheatmap)
22
+ library(grid)
23
+ library(gridExtra)
24
+ #library(RCy3)
25
+ # library(rcdk)
26
+ library(ggeasy)
27
+ library(ggtext)
28
+ library(colorspace)
29
+ library(shinyjqui)
30
+ library(tidyverse)
31
+ library(gprofiler2)
32
+ library(colourpicker)
33
+ library(shinydashboardPlus)
34
+ library(shiny)
35
+ library(cyjShiny)
36
+ library(graph)
37
+ library(jsonlite)
38
+ library(dplyr)
39
+ library(reshape2)
40
+ library(shinyjqui)
app/R/modaldialog_utils.R ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ShowtestModaldialog = function(data,input,col){
2
+ showModal(modalDialog(
3
+ h2("Appearance setting"),
4
+
5
+ div( class = "dynamicSI",
6
+ lapply(1:length(names(col)), function(i){
7
+
8
+ column(3,
9
+ colorPickr(paste0(names(col)[i],"_selectcolor"),theme = "monolith",label = paste0(names(col)[i],""), selected = col[i],interaction = list(
10
+ clear = T,
11
+ save = T,
12
+ RGBA = TRUE,
13
+ input=TRUE,
14
+ hex =TRUE
15
+
16
+ ))
17
+
18
+ )})),
19
+ br(),
20
+ br(),
21
+ br(),
22
+ br(),
23
+ br(),
24
+ easyClose = TRUE,
25
+ footer = NULL
26
+ ))
27
+ }
28
+
29
+ ShowtestModaldialog2 = function(data,input,col){
30
+ showModal(modalDialog(
31
+ title = "Plot in Dialog",
32
+ plotOutput("mappingraph"),
33
+ actionButton("actionplottest","pathway mapping",onclick = "$(tab).removeClass('disabled')"),
34
+ easyClose = TRUE,
35
+ footer = NULL
36
+ ))
37
+ }
app/R/plot_utils.R ADDED
@@ -0,0 +1,487 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ create_boxplot <- function(data, x_var, y_var, col, alpha, size, ylab_text, ggtitle_text) {
2
+ p <- ggplot(data,aes_string(x = x_var, y = y_var, fill = x_var)) +
3
+ geom_boxplot(color = "black", lwd = 1, alpha = alpha) +
4
+ ggbeeswarm::geom_beeswarm(aes(text = name), dodge.width = 0.1,
5
+ cex = 0.1,
6
+ shape = 21,
7
+ size = size) +
8
+ ylab(ylab_text) +
9
+ ggtitle(paste(ggtitle_text, "", sep = "")) +
10
+ scale_fill_manual(values = unlist(col))
11
+ p
12
+
13
+ }
14
+
15
+ process_boxplot <- function(input,yval,dataa,col) {
16
+
17
+ y <- yval %>% as.character()
18
+ p <- create_boxplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
19
+ if (input$q != "" && input$pvaluecheck == TRUE) {
20
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
21
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
22
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
23
+ limits = c(min(tukey_result$y.min.position), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
24
+ )
25
+ }
26
+ p <- p + theme_classic() + theme(
27
+ axis.text.x = element_text(angle = 90, hjust = 1),
28
+ axis.title.x = element_blank(),
29
+ aspect.ratio = 0.75,
30
+ text = element_text(size = input$Fontsize)
31
+ )
32
+ ggplotly(p,tooltip = c("name","x"))
33
+ }
34
+
35
+ process_boxplot_diagram <- function(input,yval,dataa,col) {
36
+
37
+ y <- yval %>% as.character()
38
+ p <- create_boxplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
39
+ p <- p + theme_prism(
40
+ base_fontface = "plain",
41
+ base_line_size = 0.9,
42
+ base_family = "Arial"
43
+ ) +
44
+ scale_x_discrete(
45
+ guide = guide_prism_bracket(width = 0.1),
46
+ labels = scales::wrap_format(5)
47
+ ) +
48
+ theme(
49
+ legend.position = "none",
50
+ axis.title.x = element_blank(),
51
+ aspect.ratio = 1.0,
52
+ text = element_text(size = input$Fontsize)
53
+ )
54
+ if (input$q != "" && input$pvaluecheck == TRUE) {
55
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
56
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
57
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
58
+ limits = c(min(dataa[[y]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
59
+ )
60
+ }
61
+ p
62
+ }
63
+
64
+ process_action_boxplot <- function(input,dataa,metainfocol,svg_path,col,output) {
65
+
66
+ withProgress(message = 'Calculation in progress', detail = 'This may take a while...', value = 1, {
67
+ startnum <- 1 + metainfocol
68
+ for (i in startnum:ncol(dataa)) {
69
+ yval <- colnames(dataa)[i]
70
+ p <- create_boxplot(dataa, input$w, dataa[[yval]], col, input$alpha, input$size, input$yAxisLabel, "")
71
+ p <- p + theme_prism(
72
+ base_fontface = "plain",
73
+ base_line_size = 0.9,
74
+ base_family = "Arial"
75
+ ) +
76
+ scale_x_discrete(
77
+ guide = guide_prism_bracket(width = 0.1),
78
+ labels = scales::wrap_format(5)
79
+ ) +
80
+ theme(
81
+ legend.position = "none",
82
+ axis.title.x = element_blank(),
83
+ aspect.ratio = 1.0,
84
+ text = element_text(size = input$Fontsize)
85
+ )
86
+ if (input$q != "" && input$pvaluecheck == TRUE) {
87
+ tukey_result <- process_tukey_result(input,yval,input$q,p,dataa,0.05,input$Fontsize)
88
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
89
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
90
+ limits = c(min(dataa[[yval]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
91
+ )
92
+ }
93
+ svg(paste("./svg/",colnames(dataa)[i], ".svg", sep = ""))
94
+ plot(p)
95
+ dev.off()
96
+ incProgress(1 / ncol(dataa))
97
+ Sys.sleep(0.25)
98
+ }
99
+ })
100
+ data.frame(name = colnames(dataa)[-c(1:metainfocol)], path = paste("file:/", svg_path, "/", colnames(dataa)[-c(1:metainfocol)], ".svg", sep = "")) %>% write.csv("./svg/path.csv")
101
+ output$testtext1 <- renderText({
102
+ "Finish"
103
+ })
104
+ }
105
+
106
+ create_barplot <- function(data, x_var, y_var, col, alpha, size, ylab_text, ggtitle_text) {
107
+ p <- ggplot(data, aes_string(x = x_var, y = y_var, fill = x_var)) +
108
+ geom_bar(color = "black", stat = "summary",fun = "mean",lwd = 1.2,width = 0.6) +
109
+ ylab(ylab_text) +
110
+ ggtitle(paste(ggtitle_text, "", sep = "")) +
111
+ scale_fill_manual(values = unlist(col))
112
+
113
+ p
114
+ }
115
+
116
+ process_barplot <- function(input,yval,dataa,col) {
117
+ y <- yval %>% as.character()
118
+ p <- create_barplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
119
+ if (input$q != "" && input$pvaluecheck == TRUE) {
120
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
121
+ p <- p + add_pvalue(tukey_result,remove.bracket = TRUE,
122
+ bracket.size = 0.000001,
123
+ label = "{symbol}",
124
+ tip.length = 0,
125
+ label.size = tukey_result$size,inherit.aes = FALSE,y.position = tukey_result$y.position_barplot)
126
+ }
127
+ p <- p + theme(
128
+ axis.text.x = element_text(angle = 90, hjust = 1),
129
+ axis.title.x = element_blank(),
130
+ aspect.ratio = 0.75,
131
+ text = element_text(size = input$Fontsize)
132
+ )
133
+ ggplotly(p)
134
+ }
135
+
136
+
137
+ process_barplot_diagram <- function(input,yval,dataa,col) {
138
+
139
+ y <- yval %>% as.character()
140
+ p <- create_barplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
141
+ p <- p + theme_prism(
142
+ base_fontface = "plain",
143
+ base_line_size = 0.9,
144
+ base_family = "Arial") +
145
+ scale_x_discrete(
146
+ guide = guide_prism_bracket(width = 0.1),
147
+ labels = scales::wrap_format(5)) +
148
+ theme(
149
+ legend.position = "none",
150
+ axis.title.x = element_blank(),
151
+ aspect.ratio = 1.0,
152
+ text = element_text(size = input$Fontsize))
153
+ if (input$q != "" && input$pvaluecheck == TRUE) {
154
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
155
+ p <- p + add_pvalue(tukey_result,remove.bracket = TRUE,
156
+ bracket.size = 0.000001,
157
+ label = "{symbol}",
158
+ tip.length = 0,
159
+ label.size = tukey_result$size,inherit.aes = FALSE,y.position = tukey_result$y.position_barplot)
160
+ }
161
+ p
162
+ }
163
+
164
+
165
+
166
+ process_action_barplot <- function(input,dataa,metainfocol,svg_path,col,output) {
167
+ withProgress(message = 'Calculation in progress', detail = 'This may take a while...', value = 1, {
168
+ startnum <- 1 + metainfocol
169
+ for (i in startnum:ncol(dataa)) {
170
+ yval <- colnames(dataa)[i]
171
+ p <- create_barplot(dataa, input$w, dataa[[yval]], col, input$alpha, input$size, input$yAxisLabel, "")
172
+ p <- p + theme_prism(
173
+ base_fontface = "plain",
174
+ base_line_size = 0.9,
175
+ base_family = "Arial") +
176
+ scale_x_discrete(
177
+ guide = guide_prism_bracket(width = 0.1),
178
+ labels = scales::wrap_format(5)) +
179
+ theme(
180
+ legend.position = "none",
181
+ axis.title.x = element_blank(),
182
+ aspect.ratio = 1.0,
183
+ text = element_text(size = input$Fontsize))
184
+ if (input$q!= "" && input$pvaluecheck == TRUE) {
185
+ tukey_result <- process_tukey_result(input,yval,input$q,p,dataa,0.05,input$Fontsize)
186
+ p <- p + add_pvalue(tukey_result,remove.bracket = TRUE,
187
+ bracket.size = 0.000001,
188
+ label = "{symbol}",
189
+ tip.length = 0,
190
+ label.size = tukey_result$size,inherit.aes = FALSE,y.position = tukey_result$y.position_barplot)
191
+ }
192
+ svg(paste("./svg/",colnames(dataa)[i], ".svg", sep = ""))
193
+ plot(p)
194
+ dev.off()
195
+ }
196
+ incProgress(1 / ncol(dataa))
197
+ Sys.sleep(0.25)
198
+ })
199
+ data.frame(name = colnames(dataa)[-c(1:metainfocol)], path = paste("file:/", svg_path, "/", colnames(dataa)[-c(1:metainfocol)], ".svg", sep = "")) %>% write.csv("./svg/path.csv")
200
+ output$testtext1 <- renderText({
201
+ "Finish"
202
+ })
203
+ }
204
+
205
+ process_violinplot <- function(input,yval,dataa,col) {
206
+
207
+ y <- yval %>% as.character()
208
+ p <- create_violinplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
209
+ if (input$q != "" &&input$pvaluecheck == TRUE) {
210
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
211
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
212
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
213
+ limits = c(min(dataa[[y]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
214
+ )
215
+ }
216
+ p <- p + theme(
217
+ #legend.position = "none",
218
+ axis.text.x = element_text(angle = 90, hjust = 1),
219
+ axis.title.x = element_blank(),
220
+ aspect.ratio = 0.75,
221
+ text = element_text(size = input$Fontsize)
222
+ )
223
+ ggplotly(p)
224
+ # }
225
+ }
226
+
227
+
228
+ create_violinplot <- function(data, x_var, y_var, col, alpha, size, ylab_text, ggtitle_text) {
229
+ p <- ggplot(data, aes_string(x = x_var, y = y_var, fill = x_var)) +
230
+ geom_violin(adjust = 2,trim = FALSE) +
231
+ ylab(ylab_text) +
232
+ ggtitle(paste(ggtitle_text, "", sep = "")) +
233
+ scale_fill_manual(values = unlist(col))+
234
+ stat_summary(fun = "mean",geom = "crossbar",color = "black",linewidth = 0.5, width = 0.5)
235
+
236
+ p
237
+ }
238
+
239
+ process_violinplot_diagram <- function(input,yval,dataa,col) {
240
+
241
+ y <- yval %>% as.character()
242
+ p <- create_violinplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
243
+ p <- p + theme_prism(
244
+ base_fontface = "plain",
245
+ base_line_size = 0.9,
246
+ base_family = "Arial") +
247
+ scale_x_discrete(
248
+ guide = guide_prism_bracket(width = 0.1),
249
+ labels = scales::wrap_format(5)) +
250
+ theme(
251
+ legend.position = "none",
252
+ axis.title.x = element_blank(),
253
+ aspect.ratio = 1.0,
254
+ text = element_text(size = input$Fontsize))
255
+ if (input$q != "" &&input$pvaluecheck == TRUE) {
256
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
257
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
258
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
259
+ limits = c(min(dataa[[y]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
260
+ )
261
+ }
262
+ p
263
+ }
264
+
265
+ process_action_violinplot <- function(input,dataa,metainfocol,svg_path,col,output) {
266
+ withProgress(message = 'Calculation in progress', detail = 'This may take a while...', value = 1, {
267
+ startnum <- 1 + metainfocol
268
+ for (i in startnum:ncol(dataa)) {
269
+ yval <- colnames(dataa)[i]
270
+ p <- create_violinplot(dataa, input$w, dataa[[yval]], col, input$alpha, input$size, input$yAxisLabel, "")
271
+ p <- p + theme_prism(
272
+ base_fontface = "plain",
273
+ base_line_size = 0.9,
274
+ base_family = "Arial") +
275
+ scale_x_discrete(
276
+ guide = guide_prism_bracket(width = 0.1),
277
+ labels = scales::wrap_format(5)) +
278
+ theme(
279
+ legend.position = "none",
280
+ axis.title.x = element_blank(),
281
+ aspect.ratio = 1.0,
282
+ text = element_text(size = input$Fontsize))
283
+ if (input$q!= "" && input$pvaluecheck == TRUE) {
284
+ tukey_result <- process_tukey_result(input,yval,input$q,p,dataa,0.05,input$Fontsize)
285
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
286
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
287
+ limits = c(min(dataa[[yval]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
288
+ )
289
+ }
290
+ svg(paste("./svg/",colnames(dataa)[i], ".svg", sep = ""))
291
+ plot(p)
292
+ dev.off()
293
+ }
294
+ incProgress(1 / ncol(dataa))
295
+ Sys.sleep(0.25)
296
+ })
297
+ data.frame(name = colnames(dataa)[-c(1:metainfocol)], path = paste("file:/", svg_path, "/", colnames(dataa)[-c(1:metainfocol)], ".svg", sep = "")) %>% write.csv("./svg/path.csv")
298
+ output$testtext1 <- renderText({
299
+ "Finish"
300
+ })
301
+ }
302
+ process_polarplot <- function(input,yval,dataa,col) {
303
+
304
+ # if(is.na(unique(select(dataa,input$w))) != TRUE){
305
+ y <- yval %>% as.character()
306
+ p <- create_polarplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y, input$Fontsize)
307
+ if (input$q != "" && input$pvaluecheck == TRUE) {
308
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
309
+ p <- p + add_pvalue(tukey_result,remove.bracket = TRUE,
310
+ bracket.size = 0.000001,
311
+ label = "{symbol}",
312
+ tip.length = 0,
313
+ label.size = tukey_result$size,inherit.aes = FALSE,y.position = tukey_result$y.position_barplot)
314
+ }
315
+ plot(p)
316
+ # }
317
+ }
318
+
319
+ create_polarplot <- function(data, x_var, y_var, col, alpha, size, ylab_text, ggtitle_text, Fontsize) {
320
+ p <- ggplot(data, aes_string(x = x_var, y = y_var, fill = x_var)) +
321
+ geom_bar(color = "black", stat = "summary",fun = "mean",lwd = 1.2,width = 0.6) +
322
+ coord_polar()+
323
+ scale_fill_manual(values = unlist(col))+
324
+ labs(
325
+ x="",
326
+ y="")+
327
+ theme_minimal(10) +
328
+ theme(
329
+ axis.text.x = element_text(size = Fontsize, angle = 360,hjust=0.8),
330
+ axis.title.x = element_blank(),
331
+ panel.grid.minor = element_blank(),
332
+ axis.ticks.y = element_blank())+
333
+ easy_remove_axes()
334
+
335
+ return(p)
336
+ }
337
+
338
+
339
+
340
+ process_dotplot <- function(input,yval,dataa,col) {
341
+ y <- yval %>% as.character()
342
+ p <- create_dotplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
343
+ if (input$q != "" && input$pvaluecheck == TRUE) {
344
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
345
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
346
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
347
+ limits = c(min(tukey_result$y.min.position), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
348
+ )
349
+ }
350
+ p <- p + theme(
351
+ axis.title.x = element_blank(),
352
+ aspect.ratio = 0.2,
353
+ axis.text.x = element_text(angle = 90, hjust = 1),
354
+ text = element_text(size = input$Fontsize)
355
+ )
356
+ ggplotly(p,tooltip = c("name","x"))
357
+ }
358
+
359
+
360
+ create_dotplot <- function(data, x_var, y_var, col, alpha, size, ylab_text, ggtitle_text) {
361
+ p <- ggplot(data,aes_string(x = x_var, y = y_var, fill = x_var)) +
362
+ ggbeeswarm::geom_beeswarm(aes(text = name),
363
+ cex = 0.1,
364
+ shape = 21,
365
+ size = size)+stat_summary(fun = "mean",geom = "crossbar",color = "red",linewidth = 0.5, width = 0.5)+
366
+ ylab(ylab_text) +
367
+ ggtitle(paste(ggtitle_text, "", sep = "")) +
368
+ theme_classic() +
369
+ theme(aspect.ratio = 1.0)+
370
+ scale_fill_manual(values = unlist(col))
371
+ p
372
+ }
373
+
374
+ process_dotplot_diagram <- function(input,yval,dataa,col) {
375
+
376
+
377
+ y <- yval %>% as.character()
378
+ p <- create_dotplot(dataa, input$w, y, col, input$alpha, input$size, input$yAxisLabel, y)
379
+ p <- p + theme_prism(
380
+ base_fontface = "plain",
381
+ base_line_size = 0.9,
382
+ base_family = "Arial"
383
+ ) +
384
+ scale_x_discrete(
385
+ guide = guide_prism_bracket(width = 0.1),
386
+ labels = scales::wrap_format(5)
387
+ ) +
388
+ theme(
389
+ legend.position = "none",
390
+ axis.title.x = element_blank(),
391
+ aspect.ratio = 1.0,
392
+ text = element_text(size = input$Fontsize)
393
+ )
394
+ if (input$q != "" && input$pvaluecheck == TRUE) {
395
+ tukey_result <- process_tukey_result(input,y,input$q,p,dataa,0.05,input$Fontsize)
396
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
397
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
398
+ limits = c(min(dataa[[y]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
399
+ )
400
+ }
401
+ p
402
+ }
403
+
404
+ process_action_dotplot <- function(input,dataa,metainfocol,svg_path,col,output) {
405
+
406
+ withProgress(message = 'Calculation in progress', detail = 'This may take a while...', value = 1, {
407
+ startnum <- 1 + metainfocol
408
+ for (i in startnum:ncol(dataa)) {
409
+ yval <- colnames(dataa)[i]
410
+ p <- create_dotplot(dataa, input$w, dataa[[yval]], col, input$alpha, input$size, input$yAxisLabel, "")
411
+ p <- p + theme_prism(
412
+ base_fontface = "plain",
413
+ base_line_size = 0.9,
414
+ base_family = "Arial"
415
+ ) +
416
+ scale_x_discrete(
417
+ guide = guide_prism_bracket(width = 0.1),
418
+ labels = scales::wrap_format(5)
419
+ ) +
420
+ theme(
421
+ legend.position = "none",
422
+ axis.title.x = element_blank(),
423
+ aspect.ratio = 1.0,
424
+ text = element_text(size = input$Fontsize)
425
+ )
426
+ if (input$q != "" && input$pvaluecheck == TRUE) {
427
+ tukey_result <- process_tukey_result(input,yval,input$q,p,dataa,0.05,input$Fontsize)
428
+ p <- p + add_pvalue(tukey_result, remove.bracket = TRUE, bracket.size = 0.000001, label = "{symbol}", tip.length = 0,
429
+ label.size = tukey_result$size, inherit.aes = FALSE,y.position = tukey_result$y.position_boxplot) + scale_y_continuous(
430
+ limits = c(min(dataa[[yval]]), (max(tukey_result$y.position_boxplot) + max(tukey_result$y.position_boxplot) / 30))
431
+ )
432
+ }
433
+ svg(paste("./svg/",colnames(dataa)[i], ".svg", sep = ""))
434
+ plot(p)
435
+ dev.off()
436
+ incProgress(1 / ncol(dataa))
437
+ Sys.sleep(0.25)
438
+ }
439
+ })
440
+ data.frame(name = colnames(dataa)[-c(1:metainfocol)], path = paste("file:/", svg_path, "/", colnames(dataa)[-c(1:metainfocol)], ".svg", sep = "")) %>% write.csv("./svg/path.csv")
441
+ output$testtext1 <- renderText({
442
+ "Finish"
443
+ })
444
+ }
445
+
446
+ process_select_color_input <- function(input,data) {
447
+ if (length(grep(paste0(unique(as.matrix(select(data, input$w)))[1], "_selectcolor"), names(input), value = TRUE)) != 0) {
448
+ inputlist <- grep("selectcolor", names(input), value = TRUE)
449
+ for (input_name in inputlist) {
450
+ collist[str_remove_all(input_name, pattern = "_selectcolor")] <- input[[input_name]]
451
+ }
452
+ cola <<- unlist(collist)
453
+ cola <- cola[c(unique(data[[input$w]]))]
454
+ return(cola)
455
+ }
456
+ }
457
+
458
+
459
+
460
+ process_tukey_result <- function(input,yval, q,plot_obj, dataa, p_adj_threshold, Fontsize) {
461
+ yval <- gsub("`","",yval)
462
+ y <- dataa %>% pull(as.symbol(yval))
463
+ w <- dataa %>% pull(as.symbol(input$w))
464
+ tukey_result <- TukeyHSD(aov(y ~ w, data = dataa))
465
+ tukey_result <- data.frame(tukey_result$w)
466
+ a <- str_split_fixed(rownames(tukey_result), "-", 2)
467
+ colnames(a) <- c("Class1", "Class2")
468
+
469
+ tukey_result <- cbind(a, tukey_result)
470
+ maxvalue <- select(dataa,input$w,yval) %>%
471
+ group_by_(input$w) %>%
472
+ mutate(Mean = mean(!!as.symbol(yval))) %>%
473
+ ungroup() %>%
474
+ distinct(!!as.symbol(input$w),.keep_all = TRUE )
475
+
476
+ maxvalue <- max(maxvalue$Mean)
477
+ tukey_result <- filter(tukey_result, Class1 %in% q | Class2 %in% q) %>%
478
+ mutate(group2 = ifelse(Class1 == q, Class2, Class1)) %>%
479
+ mutate(group1 = paste0(q)) %>%
480
+ mutate(symbol = ifelse(p.adj < p_adj_threshold, "*", "")) %>%
481
+ select(group1, group2, p.adj, symbol) %>%
482
+ mutate(y.position_boxplot = max(dataa[[yval]])) %>%
483
+ mutate(y.position_barplot = maxvalue-maxvalue/15 ) %>%
484
+ mutate(y.min.position = min(dataa[[yval]])) %>%
485
+ mutate(size = ifelse(symbol != "*", 0, Fontsize))
486
+ return(tukey_result)
487
+ }
app/R/runShinyApp.R ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ shiny::runApp(appDir = getwd())
2
+
app/R/runplumber.R ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ library(plumber)
2
+ # 'plumber.R' is the location of the file shown above
3
+ #
4
+ # RUN = "TRUE"
5
+ # while(RUN == "TRUE"){
6
+ # a <- readLines("./runShinyApp.Rout")
7
+ # b <- grepl("Close the program", a)
8
+ # if(TRUE %in% b) {
9
+ # RUN = "FALSE"
10
+ # stop()
11
+ # }
12
+ # }
13
+ pr("./shiny/plumber.R") %>%
14
+ pr_run()
15
+
16
+
17
+ # library(plumbplumb)
18
+ # library(plumber)
19
+ #
20
+ # .state <- new.env(parent = emptyenv()) #create .state when package is first loaded
21
+ #
22
+ # start_plumber3 <- function(path) {
23
+ # trml <- rstudioapi::terminalCreate(show = FALSE)
24
+ # rstudioapi::terminalSend(trml, "R\n")
25
+ # Sys.sleep(2)
26
+ # cmd <- sprintf('plumber::plumb("%s")$run()\n', path)
27
+ # rstudioapi::terminalSend(trml, cmd)
28
+ #
29
+ # .state[["trml"]] <- trml #store terminal name
30
+ # invisible(trml)
31
+ # }
32
+ #
33
+ # kill_plumber <- function() {
34
+ # rstudioapi::terminalKill(.state[["trml"]]) #access terminal name
35
+ # }
36
+ #
37
+ #
38
+ #
39
+ # plumber_path <- system.file("./shiny/plumber.R", package = "plumbplumb")
40
+ # start_plumber3(plumber_path)
41
+
42
+ # while (TRUE) {
43
+ # a <- readLines("./runShinyApp.Rout")
44
+ # b <- grepl("Close the program", a)
45
+ # print("ccccc")
46
+ # if (TRUE %in% b) {
47
+ # message("Stopping the loop...")
48
+ # future::plan("sequential")
49
+ # quit()
50
+ # }
51
+ # Sys.sleep(1)
52
+ # }
app/R/selectcolor_utils.R ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ collist <- list()
2
+ colset <- function(input,col){
3
+ if(length(grep("selectcolor", names(input), value = TRUE)) != 0){
4
+ inputlist<- grep("selectcolor", names(input), value = TRUE)
5
+ for (input_name in inputlist) {
6
+
7
+ collist[str_remove_all(input_name,pattern = "_selectcolor")] <- input[[input_name]]
8
+
9
+ }
10
+ col <<- unlist(collist)
11
+ col <<- col[c(unique(data[[input$x]]))]
12
+ }}
app/R/ui_modules.R ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ library(shinyjs)
2
+ plotTabAppearanceUI <- function(
3
+ title, imgSrc, width, height, outputId, outputId2, textOutputId
4
+ ) {
5
+ mainPanel(
6
+ width = 10,
7
+ h3(title),
8
+ wellPanel(
9
+ plotlyOutput(outputId, width = "100%", height = "600px")
10
+ ),
11
+ selectInput(
12
+ inputId = "mol",
13
+ label = "molecule:",
14
+ choices = NULL
15
+ ),
16
+ wellPanel(
17
+ plotlyOutput(outputId2, width = "100%", height = "600px")
18
+ ),
19
+ textOutput(outputId = textOutputId),
20
+ br(), br(), br(), br()
21
+ )
22
+ }
23
+
24
+
25
+ footer <- dashboardFooter(
26
+ left = tagList(
27
+ # Define shared style for dropdown buttons and container
28
+ tags$head(tags$style(HTML("
29
+ #Colorpicker, #exportgraph {
30
+ background-color: #3D3D3D;
31
+ border-color: #3D3D3D;
32
+ }
33
+ .button-container {
34
+ display: flex;
35
+ flex-direction: row;
36
+ align-items: center;
37
+ gap: 10px; /* 間隔を調整 */
38
+ }
39
+ "))),
40
+
41
+ # Container for buttons
42
+ div(class = "button-container",
43
+ # Color Picker Dropdown Button
44
+ dropdownButton(
45
+ inputId = "Colorpicker",
46
+ circle = TRUE,
47
+ status = "danger",
48
+ icon = icon("palette"),
49
+ width = "500px",
50
+ tooltip = tooltipOptions(title = "Color option!")
51
+ ),
52
+
53
+ # Export Graph Dropdown Button
54
+ dropdownButton(
55
+ inputId = "exportgraph",
56
+ circle = TRUE,
57
+ status = "danger",
58
+ icon = icon("diagram-project"),
59
+ width = "500px",
60
+ tooltip = tooltipOptions(title = "Mapping option!")
61
+ )
62
+ )
63
+ )
64
+ )
65
+
66
+
67
+ createCustomSidebar <- function(y_id, w_id, z_id, alpha_id, size_id, fontsize_id,orderInputId, pValueCheckId, qInputId) {
68
+ sidebarPanel(
69
+ width = 2,
70
+ tags$h2("Plot setting"),
71
+ h3("Plot type"),
72
+ esquisse::dropInput(
73
+ inputId = "mydrop",
74
+ choicesNames = tagList(
75
+ list(img(
76
+ src = "./boxplot.png",
77
+ style = "margin-left: 5px; margin-bottom: 4px; margin-top: 0px; width: 50px; height: 50px;"
78
+ ), style = "width: 100px;"),
79
+ list(img(
80
+ src = "./barplot.png",
81
+ style = "margin-left: 5px; margin-bottom: 4px; margin-top: 0px; width: 50px; height: 50px;"
82
+ ), style = "width: 100px;"),
83
+ list(img(
84
+ src = "./violin2.png",
85
+ style = "margin-left: 5px; margin-bottom: 4px; margin-top: 0px; width: 50px; height: 50px;"
86
+ ), style = "width: 100px;"),
87
+ list(img(
88
+ src = "./dotplot.png",
89
+ style = "margin-left: 5px; margin-bottom: 4px; margin-top: 0px; width: 50px; height: 50px;"
90
+ ), style = "width: 100px;")
91
+ ),
92
+ choicesValues = c("box", "bar", "violin", "coding"),
93
+ dropWidth = "220px"
94
+ ),
95
+ selectInput(inputId = y_id, label = "Y-axis:", choices = NULL),
96
+ selectInput(inputId = w_id, label = "X-axis:", choices = c("Class"), selected = "Class"),
97
+ sliderInput(inputId = alpha_id, label = "Alpha:", min = 0, max = 1, value = 1),
98
+ chooseSliderSkin("Round", color = "DarkTurquoise"),
99
+ sliderInput(inputId = size_id, label = "Size:", min = 0, max = 10, value = 5),
100
+ numericInput(inputId = fontsize_id, label = "Fontsize:", value = 20, min = 1, max = 30),
101
+ textInput("yAxisLabel", "Enter y-axis label:", "Normalized expression"),
102
+ orderInput(
103
+ inputId = orderInputId,
104
+ label = "Factor level order",
105
+ items = c(""),
106
+ width = "100%"
107
+ ),
108
+ checkboxInput(
109
+ inputId = pValueCheckId,
110
+ label = "Add p-value",
111
+ value = FALSE
112
+ ),
113
+ selectInput(
114
+ inputId = qInputId,
115
+ label = "p-value (Tukey-Kramer test) from:",
116
+ choices = c(""),
117
+ selected = ""
118
+ ),
119
+ br(),
120
+ br(),
121
+ h5("Ver 1.20240906"),
122
+ br(),
123
+ footer
124
+ )
125
+ }
126
+
127
+ transcriptomeuploadpanel <- wellPanel(
128
+ h3("Other Omics Data", style = "color: #2c3e50; border-bottom: 2px solid #2c3e50; padding-bottom: 10px;"),
129
+ selectInput(
130
+ inputId = "transcriptomefiletype",
131
+ label = "Input format:",
132
+ choices = c("Sample in cols"),
133
+ selected = "Sample in cols"
134
+ ),
135
+ fileInput(
136
+ inputId = "transcriptomefile",
137
+ label = "Input transcriptome data:",
138
+ accept = c("text/csv", "text/comma-separated-values,text/plain", ".csv")
139
+ ),
140
+ hr(),
141
+ h3("Input Meta Data", style = "color: #2c3e50; border-bottom: 2px solid #2c3e50; padding-bottom: 10px;"),
142
+ h5("If necessary, you can add class information.", style = "font-style: italic; color: #7f8c8d;"),
143
+ fileInput(
144
+ inputId = "file2",
145
+ label = "Input meta data file:",
146
+ accept = c("text/csv", "text/comma-separated-values,text/plain", ".csv")
147
+ )
148
+ )
149
+
150
+ uploadpanel <- tabPanel(
151
+ value = "uploadtab",
152
+ tagList(
153
+ div(
154
+ style = "display: flex; align-items: center; justify-content: center; margin-bottom: 15px;",
155
+ img(src = "./upload.png", style = "width: 50px; height: 50px; margin-right: 10px;"),
156
+ div(style = "font-size: 18px; color: #000000; font-weight: bold;", "Data Upload")
157
+ )
158
+ ),
159
+ fluidRow(
160
+ column(
161
+ width = 3,
162
+ wellPanel(
163
+ h3("Input Metabolome Table (.csv)", style = "color: #2c3e50; border-bottom: 2px solid #2c3e50; padding-bottom: 10px;"),
164
+ selectInput(
165
+ inputId = "filetype",
166
+ label = "Input format:",
167
+ choices = c("MS-DIAL export", "Sample in rows"),
168
+ selected = "MS-DIAL export"
169
+ ),
170
+ fileInput(
171
+ inputId = "file1",
172
+ label = "Input peak table:",
173
+ accept = c("text/csv", "text/comma-separated-values,text/plain", ".csv")
174
+ ),
175
+ fileInput(
176
+ inputId = "ontfile",
177
+ label = "Input ontology file:",
178
+ accept = c("text/csv", "text/comma-separated-values,text/plain", ".csv")
179
+ ),
180
+ hr(),
181
+ h3("Try Our Test Data", style = "color: #2c3e50; border-bottom: 2px solid #2c3e50; padding-bottom: 10px;"),
182
+ fluidRow(
183
+ column(2, radioButtons("radio", "", choices = c(" "))),
184
+ column(10, downloadLink(outputId = "downloadData", label = "Download Aging Mouse Data", class = "btn btn-info btn-block"))
185
+ ),
186
+ div(style = "margin-top: 20px;",
187
+ actionButton(
188
+ inputId = "submit",
189
+ label = "Submit Data",
190
+ class = "btn-primary",
191
+ style = "font-size: 16px; padding: 8px 24px; width: auto;"
192
+ )
193
+ )
194
+ )
195
+ ),
196
+ column(
197
+ width = 3,
198
+ transcriptomeuploadpanel
199
+ )
200
+ )
201
+ )
202
+
203
+ originalplotTabAppearanceUI <- tabPanel(
204
+ value = "test",
205
+ tagList(
206
+ img(
207
+ src = "./cord.png",
208
+ style = "margin-left: 5px; margin-bottom: 4px; margin-top: 0px; width: 50px; height: 50px;"
209
+ ),
210
+ div(
211
+ style = "font-size: 10px; color: #000000; text-align: center;",
212
+ HTML(' '), "coding", HTML(' ')
213
+ )
214
+ ),
215
+ mainPanel(
216
+ width = 10,
217
+ h3("original"),
218
+ fluidRow(
219
+ column(
220
+ width = 6,
221
+ aceEditor(
222
+ "code",
223
+ value = "p <- ggplot(data = data, aes(y = Yvariable, x = Class)) +
224
+ ggbeeswarm::geom_beeswarm(aes(fill = Class),
225
+ dodge.width = 0.1,
226
+ shape = 21,
227
+ size = 3,
228
+ cex = 1
229
+ ) +
230
+ stat_summary(
231
+ geom = \"crossbar\",
232
+ aes(fill = Class),
233
+ fun = mean,
234
+ position = position_dodge(0.9),
235
+ colour = \"red\",
236
+ linewidth = 0.5, width = 0.7,
237
+ show.legend = FALSE
238
+ ) +
239
+ theme_prism(
240
+ base_fontface = \"plain\",
241
+ base_line_size = 0.9,
242
+ base_family = \"Arial\"
243
+ ) +
244
+ scale_x_discrete(
245
+ guide = guide_prism_bracket(width = 0.1),
246
+ labels = scales::wrap_format(5)
247
+ ) +
248
+ theme(aspect.ratio = 1.0)
249
+ p"
250
+ ),
251
+ actionButton("runButton", "Run Code")
252
+ ),
253
+ column(
254
+ width = 6,
255
+ plotOutput("plot"),
256
+ downloadButton("downloadPlot", "Download Plot")
257
+ )
258
+ )
259
+ )
260
+ )
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
app/data/background.svg ADDED
app/data/ceramidepathway.cyjs ADDED
@@ -0,0 +1,2528 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version" : "1.0",
3
+ "generated_by" : "cytoscape-3.10.0",
4
+ "target_cytoscapejs_version" : "~2.1",
5
+ "data" : {
6
+ "shared_name" : "Network(1)",
7
+ "name" : "Network(1)",
8
+ "SUID" : 51687,
9
+ "__Annotations" : [ "" ],
10
+ "selected" : true
11
+ },
12
+ "elements" : {
13
+ "nodes" : [ {
14
+ "data" : {
15
+ "id" : "60361",
16
+ "Shape" : "Ellipse",
17
+ "Fillcolor" : "#ffffff",
18
+ "Color" : "",
19
+ "label" : " ",
20
+ "Label_size" : 1,
21
+ "shared_name" : "Node 18",
22
+ "LabelFont" : "",
23
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
24
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
25
+ "name" : "Node 18",
26
+ "Ensembl_ID" : "",
27
+ "SUID" : 60361,
28
+ "Height" : 1,
29
+ "Width" : 1,
30
+ "selected" : false
31
+ },
32
+ "position" : {
33
+ "x" : -772.3715110031136,
34
+ "y" : -442.24842702277897
35
+ },
36
+ "selected" : false
37
+ }, {
38
+ "data" : {
39
+ "id" : "59880",
40
+ "Shape" : "Ellipse",
41
+ "Fillcolor" : "#ffffff",
42
+ "Color" : "",
43
+ "label" : " ",
44
+ "Label_size" : 1,
45
+ "shared_name" : "Node 13",
46
+ "LabelFont" : "",
47
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
48
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
49
+ "name" : "Node 13",
50
+ "Ensembl_ID" : "",
51
+ "SUID" : 59880,
52
+ "Height" : 1,
53
+ "Width" : 1,
54
+ "selected" : false
55
+ },
56
+ "position" : {
57
+ "x" : -1180.4239308066317,
58
+ "y" : -358.0486505034973
59
+ },
60
+ "selected" : false
61
+ }, {
62
+ "data" : {
63
+ "id" : "59874",
64
+ "Shape" : "Ellipse",
65
+ "Fillcolor" : "#ffffff",
66
+ "Color" : "",
67
+ "label" : " ",
68
+ "Label_size" : 1,
69
+ "shared_name" : "Node 2",
70
+ "LabelFont" : "",
71
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
72
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
73
+ "name" : "Node 2",
74
+ "Ensembl_ID" : "",
75
+ "SUID" : 59874,
76
+ "Height" : 1,
77
+ "Width" : 1,
78
+ "selected" : false
79
+ },
80
+ "position" : {
81
+ "x" : -1182.4911756886006,
82
+ "y" : 111.7836490135568
83
+ },
84
+ "selected" : false
85
+ }, {
86
+ "data" : {
87
+ "id" : "59832",
88
+ "Shape" : "Ellipse",
89
+ "Fillcolor" : "#ffffff",
90
+ "Color" : "",
91
+ "label" : " ",
92
+ "Label_size" : 1,
93
+ "shared_name" : "Node 6",
94
+ "LabelFont" : "",
95
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
96
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
97
+ "name" : "Node 6",
98
+ "Ensembl_ID" : "",
99
+ "SUID" : 59832,
100
+ "Height" : 1,
101
+ "Width" : 1,
102
+ "selected" : false
103
+ },
104
+ "position" : {
105
+ "x" : -937.4993548517596,
106
+ "y" : -50.61982027825535
107
+ },
108
+ "selected" : false
109
+ }, {
110
+ "data" : {
111
+ "id" : "59829",
112
+ "Shape" : "Ellipse",
113
+ "Fillcolor" : "#ffffff",
114
+ "Color" : "",
115
+ "label" : " ",
116
+ "Label_size" : 1,
117
+ "shared_name" : "Node 4",
118
+ "LabelFont" : "",
119
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
120
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
121
+ "name" : "Node 4",
122
+ "Ensembl_ID" : "",
123
+ "SUID" : 59829,
124
+ "Height" : 1,
125
+ "Width" : 1,
126
+ "selected" : false
127
+ },
128
+ "position" : {
129
+ "x" : -937.6842371049761,
130
+ "y" : 59.53152187837176
131
+ },
132
+ "selected" : false
133
+ }, {
134
+ "data" : {
135
+ "id" : "59826",
136
+ "Shape" : "Ellipse",
137
+ "Fillcolor" : "#ffffff",
138
+ "Color" : "",
139
+ "label" : " ",
140
+ "Label_size" : 1,
141
+ "shared_name" : "Node 5",
142
+ "LabelFont" : "",
143
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
144
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
145
+ "name" : "Node 5",
146
+ "Ensembl_ID" : "",
147
+ "SUID" : 59826,
148
+ "Height" : 1,
149
+ "Width" : 1,
150
+ "selected" : false
151
+ },
152
+ "position" : {
153
+ "x" : -937.8691193581923,
154
+ "y" : 1.6323068569296595
155
+ },
156
+ "selected" : false
157
+ }, {
158
+ "data" : {
159
+ "id" : "59782",
160
+ "Shape" : "Ellipse",
161
+ "Fillcolor" : "#ffffff",
162
+ "Color" : "",
163
+ "label" : " ",
164
+ "Label_size" : 1,
165
+ "shared_name" : "Node 10",
166
+ "LabelFont" : "",
167
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
168
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
169
+ "name" : "Node 10",
170
+ "Ensembl_ID" : "",
171
+ "SUID" : 59782,
172
+ "Height" : 1,
173
+ "Width" : 1,
174
+ "selected" : false
175
+ },
176
+ "position" : {
177
+ "x" : -935.98675672944,
178
+ "y" : -244.3174653425818
179
+ },
180
+ "selected" : false
181
+ }, {
182
+ "data" : {
183
+ "id" : "59768",
184
+ "Shape" : "Ellipse",
185
+ "Fillcolor" : "#ffffff",
186
+ "Color" : "",
187
+ "label" : " ",
188
+ "Label_size" : 1,
189
+ "shared_name" : "Node 11",
190
+ "LabelFont" : "",
191
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
192
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
193
+ "name" : "Node 11",
194
+ "Ensembl_ID" : "",
195
+ "SUID" : 59768,
196
+ "Height" : 1,
197
+ "Width" : 1,
198
+ "selected" : false
199
+ },
200
+ "position" : {
201
+ "x" : -937.4993548517598,
202
+ "y" : -189.8132110722118
203
+ },
204
+ "selected" : false
205
+ }, {
206
+ "data" : {
207
+ "id" : "59754",
208
+ "Shape" : "Ellipse",
209
+ "Fillcolor" : "#ffffff",
210
+ "Color" : "",
211
+ "label" : " ",
212
+ "Label_size" : 1,
213
+ "shared_name" : "Node 9",
214
+ "LabelFont" : "",
215
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
216
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
217
+ "name" : "Node 9",
218
+ "Ensembl_ID" : "",
219
+ "SUID" : 59754,
220
+ "Height" : 1,
221
+ "Width" : 1,
222
+ "selected" : false
223
+ },
224
+ "position" : {
225
+ "x" : -939.0119529740795,
226
+ "y" : -301.6620336043749
227
+ },
228
+ "selected" : false
229
+ }, {
230
+ "data" : {
231
+ "id" : "59731",
232
+ "Shape" : "Ellipse",
233
+ "Fillcolor" : "#ffffff",
234
+ "Color" : "",
235
+ "label" : " ",
236
+ "Label_size" : 1,
237
+ "shared_name" : "Node 1",
238
+ "LabelFont" : "",
239
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
240
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
241
+ "name" : "Node 1",
242
+ "Ensembl_ID" : "",
243
+ "SUID" : 59731,
244
+ "Height" : 1,
245
+ "Width" : 1,
246
+ "selected" : false
247
+ },
248
+ "position" : {
249
+ "x" : -826.1533756487528,
250
+ "y" : 321.0374351715994
251
+ },
252
+ "selected" : false
253
+ }, {
254
+ "data" : {
255
+ "id" : "59711",
256
+ "Shape" : "Ellipse",
257
+ "Fillcolor" : "#ffffff",
258
+ "Color" : "",
259
+ "label" : " ",
260
+ "Label_size" : 1,
261
+ "shared_name" : "Node 21",
262
+ "LabelFont" : "",
263
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
264
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
265
+ "name" : "Node 21",
266
+ "Ensembl_ID" : "",
267
+ "SUID" : 59711,
268
+ "Height" : 1,
269
+ "Width" : 1,
270
+ "selected" : false
271
+ },
272
+ "position" : {
273
+ "x" : -85.86704966181715,
274
+ "y" : -408.69424405568736
275
+ },
276
+ "selected" : false
277
+ }, {
278
+ "data" : {
279
+ "id" : "59691",
280
+ "Shape" : "Ellipse",
281
+ "Fillcolor" : "#ffffff",
282
+ "Color" : "",
283
+ "label" : " ",
284
+ "Label_size" : 1,
285
+ "shared_name" : "Node 32",
286
+ "LabelFont" : "",
287
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
288
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
289
+ "name" : "Node 32",
290
+ "Ensembl_ID" : "",
291
+ "SUID" : 59691,
292
+ "Height" : 1,
293
+ "Width" : 1,
294
+ "selected" : false
295
+ },
296
+ "position" : {
297
+ "x" : 842.8395980096204,
298
+ "y" : 226.348298648013
299
+ },
300
+ "selected" : false
301
+ }, {
302
+ "data" : {
303
+ "id" : "51860",
304
+ "Shape" : "Rectangle",
305
+ "Fillcolor" : "#ffffff",
306
+ "Color" : "Black",
307
+ "label" : "UGCG",
308
+ "Label_size" : 30,
309
+ "shared_name" : "UGCG",
310
+ "LabelFont" : "",
311
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000028381.svg",
312
+ "pathpng" : "http://localhost:9000/png?str2=(UGCG).png",
313
+ "name" : "UGCG",
314
+ "Ensembl_ID" : "ENSMUSG00000028381",
315
+ "SUID" : 51860,
316
+ "Height" : 140,
317
+ "Width" : 140,
318
+ "selected" : false
319
+ },
320
+ "position" : {
321
+ "x" : -128.31694440868472,
322
+ "y" : 98.3709826174738
323
+ },
324
+ "selected" : false
325
+ }, {
326
+ "data" : {
327
+ "id" : "51858",
328
+ "Shape" : "Rectangle",
329
+ "Fillcolor" : "#ffffff",
330
+ "Color" : "Black",
331
+ "label" : "UGT8a",
332
+ "Label_size" : 30,
333
+ "shared_name" : "UGT8a",
334
+ "LabelFont" : "",
335
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000032854.svg",
336
+ "pathpng" : "http://localhost:9000/png?str2=(UGT8a).png",
337
+ "name" : "UGT8a",
338
+ "Ensembl_ID" : "ENSMUSG00000032854",
339
+ "SUID" : 51858,
340
+ "Height" : 140,
341
+ "Width" : 140,
342
+ "selected" : false
343
+ },
344
+ "position" : {
345
+ "x" : -838.4846509098612,
346
+ "y" : -520.2093054254817
347
+ },
348
+ "selected" : false
349
+ }, {
350
+ "data" : {
351
+ "id" : "51856",
352
+ "Shape" : "",
353
+ "Fillcolor" : "",
354
+ "Color" : "",
355
+ "label" : "St3gal3",
356
+ "Label_size" : 30,
357
+ "shared_name" : "St3gal3",
358
+ "LabelFont" : "",
359
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000028538.svg",
360
+ "pathpng" : "http://localhost:9000/png?str2=(St3gal3).png",
361
+ "name" : "St3gal3",
362
+ "Ensembl_ID" : "ENSMUSG00000028538",
363
+ "SUID" : 51856,
364
+ "Height" : 140,
365
+ "Width" : 140,
366
+ "selected" : false
367
+ },
368
+ "position" : {
369
+ "x" : 918.0,
370
+ "y" : 227.45683602223994
371
+ },
372
+ "selected" : false
373
+ }, {
374
+ "data" : {
375
+ "id" : "51854",
376
+ "Shape" : "Rectangle",
377
+ "Fillcolor" : "#ffffff",
378
+ "Color" : "Black",
379
+ "label" : "St3gal2",
380
+ "Label_size" : 30,
381
+ "shared_name" : "St3gal2",
382
+ "LabelFont" : "",
383
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000031749.svg",
384
+ "pathpng" : "http://localhost:9000/png?str2=(St3gal2).png",
385
+ "name" : "St3gal2",
386
+ "Ensembl_ID" : "ENSMUSG00000031749",
387
+ "SUID" : 51854,
388
+ "Height" : 140,
389
+ "Width" : 140,
390
+ "selected" : false
391
+ },
392
+ "position" : {
393
+ "x" : 1066.0,
394
+ "y" : 227.45683602223994
395
+ },
396
+ "selected" : false
397
+ }, {
398
+ "data" : {
399
+ "id" : "51852",
400
+ "Shape" : "Ellipse",
401
+ "Fillcolor" : "#ffffff",
402
+ "Color" : "",
403
+ "label" : " ",
404
+ "Label_size" : 1,
405
+ "shared_name" : "Node 30",
406
+ "LabelFont" : "",
407
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
408
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
409
+ "name" : "Node 30",
410
+ "Ensembl_ID" : "",
411
+ "SUID" : 51852,
412
+ "Height" : 1,
413
+ "Width" : 1,
414
+ "selected" : false
415
+ },
416
+ "position" : {
417
+ "x" : 712.2568469936117,
418
+ "y" : 30.87794773775253
419
+ },
420
+ "selected" : false
421
+ }, {
422
+ "data" : {
423
+ "id" : "51850",
424
+ "Shape" : "",
425
+ "Fillcolor" : "",
426
+ "Color" : "",
427
+ "label" : "GM2",
428
+ "Label_size" : 30,
429
+ "shared_name" : "GM2",
430
+ "LabelFont" : "",
431
+ "path" : "http://localhost:9000/plot?str1=GM2.svg",
432
+ "pathpng" : "http://localhost:9000/png?str2=(GM2).png",
433
+ "name" : "GM2",
434
+ "Ensembl_ID" : "",
435
+ "SUID" : 51850,
436
+ "Height" : 140,
437
+ "Width" : 140,
438
+ "selected" : false
439
+ },
440
+ "position" : {
441
+ "x" : 710.8013297662593,
442
+ "y" : -58.53729771875898
443
+ },
444
+ "selected" : false
445
+ }, {
446
+ "data" : {
447
+ "id" : "51848",
448
+ "Shape" : "",
449
+ "Fillcolor" : "",
450
+ "Color" : "",
451
+ "label" : "ACER3",
452
+ "Label_size" : 30,
453
+ "shared_name" : "ACER3",
454
+ "LabelFont" : "",
455
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000030760.svg",
456
+ "pathpng" : "http://localhost:9000/png?str2=(ACER3).png",
457
+ "name" : "ACER3",
458
+ "Ensembl_ID" : "ENSMUSG00000030760",
459
+ "SUID" : 51848,
460
+ "Height" : 140,
461
+ "Width" : 140,
462
+ "selected" : false
463
+ },
464
+ "position" : {
465
+ "x" : -28.602905499490483,
466
+ "y" : -410.3040365280741
467
+ },
468
+ "selected" : false
469
+ }, {
470
+ "data" : {
471
+ "id" : "51846",
472
+ "Shape" : "Rectangle",
473
+ "Fillcolor" : "#ffffff",
474
+ "Color" : "Black",
475
+ "label" : "ACER2",
476
+ "Label_size" : 30,
477
+ "shared_name" : "ACER2",
478
+ "LabelFont" : "",
479
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000038007.svg",
480
+ "pathpng" : "http://localhost:9000/png?str2=(ACER2).png",
481
+ "name" : "ACER2",
482
+ "Ensembl_ID" : "ENSMUSG00000038007",
483
+ "SUID" : 51846,
484
+ "Height" : 140,
485
+ "Width" : 140,
486
+ "selected" : false
487
+ },
488
+ "position" : {
489
+ "x" : -27.350146993003058,
490
+ "y" : -558.8546303570583
491
+ },
492
+ "selected" : false
493
+ }, {
494
+ "data" : {
495
+ "id" : "51844",
496
+ "Shape" : "",
497
+ "Fillcolor" : "",
498
+ "Color" : "",
499
+ "label" : "ACER1",
500
+ "Label_size" : 30,
501
+ "shared_name" : "ACER1",
502
+ "LabelFont" : "",
503
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000045019.svg",
504
+ "pathpng" : "http://localhost:9000/png?str2=(ACER1).png",
505
+ "name" : "ACER1",
506
+ "Ensembl_ID" : "ENSMUSG00000045019",
507
+ "SUID" : 51844,
508
+ "Height" : 140,
509
+ "Width" : 140,
510
+ "selected" : false
511
+ },
512
+ "position" : {
513
+ "x" : -27.768898554351985,
514
+ "y" : -702.0171272343605
515
+ },
516
+ "selected" : false
517
+ }, {
518
+ "data" : {
519
+ "id" : "51842",
520
+ "Shape" : "",
521
+ "Fillcolor" : "",
522
+ "Color" : "",
523
+ "label" : "ASAH2",
524
+ "Label_size" : 30,
525
+ "shared_name" : "ASAH2",
526
+ "LabelFont" : "",
527
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000024887.svg",
528
+ "pathpng" : "http://localhost:9000/png?str2=(ASAH2).png",
529
+ "name" : "ASAH2",
530
+ "Ensembl_ID" : "ENSMUSG00000024887",
531
+ "SUID" : 51842,
532
+ "Height" : 140,
533
+ "Width" : 140,
534
+ "selected" : false
535
+ },
536
+ "position" : {
537
+ "x" : 121.93133234060159,
538
+ "y" : -410.56913517883123
539
+ },
540
+ "selected" : false
541
+ }, {
542
+ "data" : {
543
+ "id" : "51840",
544
+ "Shape" : "",
545
+ "Fillcolor" : "",
546
+ "Color" : "",
547
+ "label" : "CerS6",
548
+ "Label_size" : 30,
549
+ "shared_name" : "CerS6",
550
+ "LabelFont" : "",
551
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000027035.svg",
552
+ "pathpng" : "http://localhost:9000/png?str2=(CerS6).png",
553
+ "name" : "CerS6",
554
+ "Ensembl_ID" : "ENSMUSG00000027035",
555
+ "SUID" : 51840,
556
+ "Height" : 140,
557
+ "Width" : 140,
558
+ "selected" : false
559
+ },
560
+ "position" : {
561
+ "x" : -454.0,
562
+ "y" : 393.45683602223994
563
+ },
564
+ "selected" : false
565
+ }, {
566
+ "data" : {
567
+ "id" : "51838",
568
+ "Shape" : "",
569
+ "Fillcolor" : "",
570
+ "Color" : "",
571
+ "label" : "CerS3",
572
+ "Label_size" : 30,
573
+ "shared_name" : "CerS3",
574
+ "LabelFont" : "",
575
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000030510.svg",
576
+ "pathpng" : "http://localhost:9000/png?str2=(CerS3).png",
577
+ "name" : "CerS3",
578
+ "Ensembl_ID" : "ENSMUSG00000030510",
579
+ "SUID" : 51838,
580
+ "Height" : 140,
581
+ "Width" : 140,
582
+ "selected" : false
583
+ },
584
+ "position" : {
585
+ "x" : -901.0,
586
+ "y" : 394.45683602223994
587
+ },
588
+ "selected" : false
589
+ }, {
590
+ "data" : {
591
+ "id" : "51836",
592
+ "Shape" : "",
593
+ "Fillcolor" : "",
594
+ "Color" : "",
595
+ "label" : "CerS5",
596
+ "Label_size" : 30,
597
+ "shared_name" : "CerS5",
598
+ "LabelFont" : "",
599
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000023021.svg",
600
+ "pathpng" : "http://localhost:9000/png?str2=(CerS5).png",
601
+ "name" : "CerS5",
602
+ "Ensembl_ID" : "ENSMUSG00000023021",
603
+ "SUID" : 51836,
604
+ "Height" : 140,
605
+ "Width" : 140,
606
+ "selected" : false
607
+ },
608
+ "position" : {
609
+ "x" : -604.0,
610
+ "y" : 395.45683602223994
611
+ },
612
+ "selected" : false
613
+ }, {
614
+ "data" : {
615
+ "id" : "51834",
616
+ "Shape" : "",
617
+ "Fillcolor" : "",
618
+ "Color" : "",
619
+ "label" : "CerS4",
620
+ "Label_size" : 30,
621
+ "shared_name" : "CerS4",
622
+ "LabelFont" : "",
623
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000008206.svg",
624
+ "pathpng" : "http://localhost:9000/png?str2=(Cers4).png",
625
+ "name" : "CerS4",
626
+ "Ensembl_ID" : "ENSMUSG00000008206",
627
+ "SUID" : 51834,
628
+ "Height" : 140,
629
+ "Width" : 140,
630
+ "selected" : false
631
+ },
632
+ "position" : {
633
+ "x" : -754.0,
634
+ "y" : 396.45683602223994
635
+ },
636
+ "selected" : false
637
+ }, {
638
+ "data" : {
639
+ "id" : "51832",
640
+ "Shape" : "",
641
+ "Fillcolor" : "",
642
+ "Color" : "",
643
+ "label" : "CerS1",
644
+ "Label_size" : 30,
645
+ "shared_name" : "CerS1",
646
+ "LabelFont" : "",
647
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000087408.svg",
648
+ "pathpng" : "http://localhost:9000/png?str2=(Cers1).png",
649
+ "name" : "CerS1",
650
+ "Ensembl_ID" : "ENSMUSG00000087408",
651
+ "SUID" : 51832,
652
+ "Height" : 140,
653
+ "Width" : 140,
654
+ "selected" : false
655
+ },
656
+ "position" : {
657
+ "x" : -1193.0,
658
+ "y" : 393.45683602223994
659
+ },
660
+ "selected" : false
661
+ }, {
662
+ "data" : {
663
+ "id" : "51830",
664
+ "NumChildren" : 2,
665
+ "Shape" : "",
666
+ "Fillcolor" : "",
667
+ "Color" : "",
668
+ "label" : "DHSph",
669
+ "Label_size" : 30,
670
+ "shared_name" : "DHSph",
671
+ "LabelFont" : "",
672
+ "path" : "http://localhost:9000/plot?str1=DHSph.svg",
673
+ "NumDescendents" : 2,
674
+ "pathpng" : "http://localhost:9000/png?str2=(DHSph).png",
675
+ "name" : "DHSph",
676
+ "Ensembl_ID" : "",
677
+ "SUID" : 51830,
678
+ "Height" : 140,
679
+ "Width" : 140,
680
+ "selected" : false
681
+ },
682
+ "position" : {
683
+ "x" : -1037.0,
684
+ "y" : -127.0
685
+ },
686
+ "selected" : false
687
+ }, {
688
+ "data" : {
689
+ "id" : "51828",
690
+ "NumChildren" : 2,
691
+ "Shape" : "",
692
+ "Fillcolor" : "",
693
+ "Color" : "",
694
+ "label" : "HexCer_HS",
695
+ "Label_size" : 30,
696
+ "shared_name" : "HexCer_HS",
697
+ "LabelFont" : "",
698
+ "path" : "http://localhost:9000/plot?str1=HexCer_HS.svg",
699
+ "NumDescendents" : 2,
700
+ "pathpng" : "http://localhost:9000/png?str2=(HexCer_HS).png",
701
+ "name" : "HexCer_HS",
702
+ "Ensembl_ID" : "",
703
+ "SUID" : 51828,
704
+ "Height" : 140,
705
+ "Width" : 140,
706
+ "selected" : false
707
+ },
708
+ "position" : {
709
+ "x" : 51.0,
710
+ "y" : -6.0
711
+ },
712
+ "selected" : false
713
+ }, {
714
+ "data" : {
715
+ "id" : "51826",
716
+ "NumChildren" : 2,
717
+ "Shape" : "",
718
+ "Fillcolor" : "",
719
+ "Color" : "",
720
+ "label" : "SHexCer",
721
+ "Label_size" : 30,
722
+ "shared_name" : "SHexCer",
723
+ "LabelFont" : "",
724
+ "path" : "http://localhost:9000/plot?str1=SHexCer.svg",
725
+ "NumDescendents" : 2,
726
+ "pathpng" : "http://localhost:9000/png?str2=(SHexCer).png",
727
+ "name" : "SHexCer",
728
+ "Ensembl_ID" : "",
729
+ "SUID" : 51826,
730
+ "Height" : 140,
731
+ "Width" : 140,
732
+ "selected" : false
733
+ },
734
+ "position" : {
735
+ "x" : 374.0,
736
+ "y" : -5.0
737
+ },
738
+ "selected" : false
739
+ }, {
740
+ "data" : {
741
+ "id" : "51824",
742
+ "NumChildren" : 2,
743
+ "Shape" : "",
744
+ "Fillcolor" : "",
745
+ "Color" : "",
746
+ "label" : "GM1",
747
+ "Label_size" : 30,
748
+ "shared_name" : "GM1",
749
+ "LabelFont" : "",
750
+ "path" : "http://localhost:9000/plot?str1=GM1.svg",
751
+ "NumDescendents" : 2,
752
+ "pathpng" : "http://localhost:9000/png?str2=(GM1).png",
753
+ "name" : "GM1",
754
+ "Ensembl_ID" : "",
755
+ "SUID" : 51824,
756
+ "Height" : 140,
757
+ "Width" : 140,
758
+ "selected" : false
759
+ },
760
+ "position" : {
761
+ "x" : 712.0,
762
+ "y" : 134.0
763
+ },
764
+ "selected" : false
765
+ }, {
766
+ "data" : {
767
+ "id" : "51822",
768
+ "NumChildren" : 2,
769
+ "Shape" : "",
770
+ "Fillcolor" : "",
771
+ "Color" : "",
772
+ "label" : "Cer_NDS",
773
+ "Label_size" : 30,
774
+ "shared_name" : "Cer_NDS",
775
+ "LabelFont" : "",
776
+ "path" : "http://localhost:9000/plot?str1=Cer_NDS.svg",
777
+ "NumDescendents" : 2,
778
+ "pathpng" : "http://localhost:9000/png?str2=(Cer_NDS).png",
779
+ "name" : "Cer_NDS",
780
+ "Ensembl_ID" : "",
781
+ "SUID" : 51822,
782
+ "Height" : 140,
783
+ "Width" : 140,
784
+ "selected" : false
785
+ },
786
+ "position" : {
787
+ "x" : -633.0,
788
+ "y" : -246.0
789
+ },
790
+ "selected" : false
791
+ }, {
792
+ "data" : {
793
+ "id" : "51820",
794
+ "Shape" : "Ellipse",
795
+ "Fillcolor" : "#ffffff",
796
+ "Color" : "",
797
+ "label" : " ",
798
+ "Label_size" : 1,
799
+ "shared_name" : "Node 28",
800
+ "LabelFont" : "",
801
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
802
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
803
+ "name" : "Node 28",
804
+ "Ensembl_ID" : "",
805
+ "SUID" : 51820,
806
+ "Height" : 1,
807
+ "Width" : 1,
808
+ "selected" : false
809
+ },
810
+ "position" : {
811
+ "x" : 537.4846159314478,
812
+ "y" : -248.25741099855094
813
+ },
814
+ "selected" : false
815
+ }, {
816
+ "data" : {
817
+ "id" : "51818",
818
+ "Shape" : "Rectangle",
819
+ "Fillcolor" : "#ffffff",
820
+ "Color" : "Black",
821
+ "label" : "St3gal5",
822
+ "Label_size" : 30,
823
+ "shared_name" : "St3gal5",
824
+ "LabelFont" : "",
825
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000056091.svg",
826
+ "pathpng" : "http://localhost:9000/png?str2=(St3gal5).png",
827
+ "name" : "St3gal5",
828
+ "Ensembl_ID" : "ENSMUSG00000056091",
829
+ "SUID" : 51818,
830
+ "Height" : 140,
831
+ "Width" : 140,
832
+ "selected" : false
833
+ },
834
+ "position" : {
835
+ "x" : 536.1206531286184,
836
+ "y" : -422.89211563760074
837
+ },
838
+ "selected" : false
839
+ }, {
840
+ "data" : {
841
+ "id" : "51816",
842
+ "Shape" : "Ellipse",
843
+ "Fillcolor" : "#ffffff",
844
+ "Color" : "",
845
+ "label" : " ",
846
+ "Label_size" : 1,
847
+ "shared_name" : "Node 31",
848
+ "LabelFont" : "",
849
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
850
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
851
+ "name" : "Node 31",
852
+ "Ensembl_ID" : "",
853
+ "SUID" : 51816,
854
+ "Height" : 1,
855
+ "Width" : 1,
856
+ "selected" : false
857
+ },
858
+ "position" : {
859
+ "x" : 715.7134520976327,
860
+ "y" : 224.83570052569328
861
+ },
862
+ "selected" : false
863
+ }, {
864
+ "data" : {
865
+ "id" : "51814",
866
+ "Shape" : "Ellipse",
867
+ "Fillcolor" : "#ffffff",
868
+ "Color" : "",
869
+ "label" : " ",
870
+ "Label_size" : 1,
871
+ "shared_name" : "Node 29",
872
+ "LabelFont" : "",
873
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
874
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
875
+ "name" : "Node 29",
876
+ "Ensembl_ID" : "",
877
+ "SUID" : 51814,
878
+ "Height" : 1,
879
+ "Width" : 1,
880
+ "selected" : false
881
+ },
882
+ "position" : {
883
+ "x" : 711.0171129468636,
884
+ "y" : -158.08177102153573
885
+ },
886
+ "selected" : false
887
+ }, {
888
+ "data" : {
889
+ "id" : "51812",
890
+ "Shape" : "Ellipse",
891
+ "Fillcolor" : "#ffffff",
892
+ "Color" : "",
893
+ "label" : " ",
894
+ "Label_size" : 1,
895
+ "shared_name" : "Node 26",
896
+ "LabelFont" : "",
897
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
898
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
899
+ "name" : "Node 26",
900
+ "Ensembl_ID" : "",
901
+ "SUID" : 51812,
902
+ "Height" : 1,
903
+ "Width" : 1,
904
+ "selected" : false
905
+ },
906
+ "position" : {
907
+ "x" : 205.8461959794227,
908
+ "y" : -128.45541144886855
909
+ },
910
+ "selected" : false
911
+ }, {
912
+ "data" : {
913
+ "id" : "51810",
914
+ "Shape" : "Ellipse",
915
+ "Fillcolor" : "#ffffff",
916
+ "Color" : "",
917
+ "label" : " ",
918
+ "Label_size" : 1,
919
+ "shared_name" : "Node 20",
920
+ "LabelFont" : "",
921
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
922
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
923
+ "name" : "Node 20",
924
+ "Ensembl_ID" : "",
925
+ "SUID" : 51810,
926
+ "Height" : 1,
927
+ "Width" : 1,
928
+ "selected" : false
929
+ },
930
+ "position" : {
931
+ "x" : -245.28290671112362,
932
+ "y" : -381.4074033568216
933
+ },
934
+ "selected" : false
935
+ }, {
936
+ "data" : {
937
+ "id" : "51808",
938
+ "Shape" : "Ellipse",
939
+ "Fillcolor" : "#ffffff",
940
+ "Color" : "",
941
+ "label" : " ",
942
+ "Label_size" : 1,
943
+ "shared_name" : "Node 19",
944
+ "LabelFont" : "",
945
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
946
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
947
+ "name" : "Node 19",
948
+ "Ensembl_ID" : "",
949
+ "SUID" : 51808,
950
+ "Height" : 1,
951
+ "Width" : 1,
952
+ "selected" : false
953
+ },
954
+ "position" : {
955
+ "x" : -351.640839725702,
956
+ "y" : -380.60267525686004
957
+ },
958
+ "selected" : false
959
+ }, {
960
+ "data" : {
961
+ "id" : "51806",
962
+ "Shape" : "Ellipse",
963
+ "Fillcolor" : "#ffffff",
964
+ "Color" : "",
965
+ "label" : " ",
966
+ "Label_size" : 1,
967
+ "shared_name" : "Node 17",
968
+ "LabelFont" : "",
969
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
970
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
971
+ "name" : "Node 17",
972
+ "Ensembl_ID" : "",
973
+ "SUID" : 51806,
974
+ "Height" : 1,
975
+ "Width" : 1,
976
+ "selected" : false
977
+ },
978
+ "position" : {
979
+ "x" : -634.2277691381489,
980
+ "y" : -379.7197200680567
981
+ },
982
+ "selected" : false
983
+ }, {
984
+ "data" : {
985
+ "id" : "51804",
986
+ "Shape" : "Ellipse",
987
+ "Fillcolor" : "#ffffff",
988
+ "Color" : "",
989
+ "label" : " ",
990
+ "Label_size" : 1,
991
+ "shared_name" : "Node 27",
992
+ "LabelFont" : "",
993
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
994
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
995
+ "name" : "Node 27",
996
+ "Ensembl_ID" : "",
997
+ "SUID" : 51804,
998
+ "Height" : 1,
999
+ "Width" : 1,
1000
+ "selected" : false
1001
+ },
1002
+ "position" : {
1003
+ "x" : 207.30374036030787,
1004
+ "y" : -248.03144762034643
1005
+ },
1006
+ "selected" : false
1007
+ }, {
1008
+ "data" : {
1009
+ "id" : "51802",
1010
+ "Shape" : "Ellipse",
1011
+ "Fillcolor" : "#ffffff",
1012
+ "Color" : "",
1013
+ "label" : " ",
1014
+ "Label_size" : 1,
1015
+ "shared_name" : "Node 24",
1016
+ "LabelFont" : "",
1017
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1018
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1019
+ "name" : "Node 24",
1020
+ "Ensembl_ID" : "",
1021
+ "SUID" : 51802,
1022
+ "Height" : 1,
1023
+ "Width" : 1,
1024
+ "selected" : false
1025
+ },
1026
+ "position" : {
1027
+ "x" : -129.7286610550886,
1028
+ "y" : 234.4914630047503
1029
+ },
1030
+ "selected" : false
1031
+ }, {
1032
+ "data" : {
1033
+ "id" : "51800",
1034
+ "NumChildren" : 2,
1035
+ "Shape" : "",
1036
+ "Fillcolor" : "",
1037
+ "Color" : "",
1038
+ "label" : "HexCer_AP",
1039
+ "Label_size" : 30,
1040
+ "shared_name" : "HexCer_AP",
1041
+ "LabelFont" : "",
1042
+ "path" : "http://localhost:9000/plot?str1=HexCer_AP.svg",
1043
+ "NumDescendents" : 2,
1044
+ "pathpng" : "http://localhost:9000/png?str2=(HexCer_AP).png",
1045
+ "name" : "HexCer_AP",
1046
+ "Ensembl_ID" : "",
1047
+ "SUID" : 51800,
1048
+ "Height" : 140,
1049
+ "Width" : 140,
1050
+ "selected" : false
1051
+ },
1052
+ "position" : {
1053
+ "x" : 53.0,
1054
+ "y" : 236.0
1055
+ },
1056
+ "selected" : false
1057
+ }, {
1058
+ "data" : {
1059
+ "id" : "51798",
1060
+ "Shape" : "Rectangle",
1061
+ "Fillcolor" : "#ffffff",
1062
+ "Color" : "Black",
1063
+ "label" : "B4galt5",
1064
+ "Label_size" : 30,
1065
+ "shared_name" : "B4galt5",
1066
+ "LabelFont" : "",
1067
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000017929.svg",
1068
+ "pathpng" : "http://localhost:9000/png?str2=(B4galt5).png",
1069
+ "name" : "B4galt5",
1070
+ "Ensembl_ID" : "ENSMUSG00000017929",
1071
+ "SUID" : 51798,
1072
+ "Height" : 140,
1073
+ "Width" : 140,
1074
+ "selected" : false
1075
+ },
1076
+ "position" : {
1077
+ "x" : 299.71569534150717,
1078
+ "y" : -417.0840363882634
1079
+ },
1080
+ "selected" : false
1081
+ }, {
1082
+ "data" : {
1083
+ "id" : "51794",
1084
+ "Shape" : "Rectangle",
1085
+ "Fillcolor" : "#ffffff",
1086
+ "Color" : "Black",
1087
+ "label" : "Gal3st1",
1088
+ "Label_size" : 30,
1089
+ "shared_name" : "Gal3st1",
1090
+ "LabelFont" : "",
1091
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000049721.svg",
1092
+ "pathpng" : "http://localhost:9000/png?str2=(Gal3st1).png",
1093
+ "name" : "Gal3st1",
1094
+ "Ensembl_ID" : "ENSMUSG00000049721",
1095
+ "SUID" : 51794,
1096
+ "Height" : 140,
1097
+ "Width" : 140,
1098
+ "selected" : false
1099
+ },
1100
+ "position" : {
1101
+ "x" : 207.8254163374965,
1102
+ "y" : 109.52609444387052
1103
+ },
1104
+ "selected" : false
1105
+ }, {
1106
+ "data" : {
1107
+ "id" : "51792",
1108
+ "NumChildren" : 2,
1109
+ "Shape" : "",
1110
+ "Fillcolor" : "",
1111
+ "Color" : "",
1112
+ "label" : "Cer_AS",
1113
+ "Label_size" : 30,
1114
+ "shared_name" : "Cer_AS",
1115
+ "LabelFont" : "",
1116
+ "path" : "http://localhost:9000/plot?str1=Cer_AS.svg",
1117
+ "NumDescendents" : 2,
1118
+ "pathpng" : "http://localhost:9000/png?str2=(Cer_AS).png",
1119
+ "name" : "Cer_AS",
1120
+ "Ensembl_ID" : "",
1121
+ "SUID" : 51792,
1122
+ "Height" : 140,
1123
+ "Width" : 140,
1124
+ "selected" : false
1125
+ },
1126
+ "position" : {
1127
+ "x" : -290.0,
1128
+ "y" : -3.0
1129
+ },
1130
+ "selected" : false
1131
+ }, {
1132
+ "data" : {
1133
+ "id" : "51790",
1134
+ "Shape" : "Ellipse",
1135
+ "Fillcolor" : "#ffffff",
1136
+ "Color" : "",
1137
+ "label" : "",
1138
+ "Label_size" : 1,
1139
+ "shared_name" : "Node 22",
1140
+ "LabelFont" : "",
1141
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1142
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1143
+ "name" : "Node 22",
1144
+ "Ensembl_ID" : "",
1145
+ "SUID" : 51790,
1146
+ "Height" : 1,
1147
+ "Width" : 1,
1148
+ "selected" : false
1149
+ },
1150
+ "position" : {
1151
+ "x" : -132.25481786636925,
1152
+ "y" : -250.48009122993926
1153
+ },
1154
+ "selected" : false
1155
+ }, {
1156
+ "data" : {
1157
+ "id" : "51788",
1158
+ "Shape" : "Rectangle",
1159
+ "Fillcolor" : "#ffffff",
1160
+ "Color" : "Black",
1161
+ "label" : "UGT8a",
1162
+ "Label_size" : 30,
1163
+ "shared_name" : "UGT8a",
1164
+ "LabelFont" : "",
1165
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000032854.svg",
1166
+ "pathpng" : "http://localhost:9000/png?str2=(UGT8a).png",
1167
+ "name" : "UGT8a",
1168
+ "Ensembl_ID" : "ENSMUSG00000032854",
1169
+ "SUID" : 51788,
1170
+ "Height" : 140,
1171
+ "Width" : 140,
1172
+ "selected" : false
1173
+ },
1174
+ "position" : {
1175
+ "x" : -131.58652339306036,
1176
+ "y" : -128.9895133819647
1177
+ },
1178
+ "selected" : false
1179
+ }, {
1180
+ "data" : {
1181
+ "id" : "51786",
1182
+ "Shape" : "Ellipse",
1183
+ "Fillcolor" : "#ffffff",
1184
+ "Color" : "",
1185
+ "label" : "",
1186
+ "Label_size" : 1,
1187
+ "shared_name" : "Node 14",
1188
+ "LabelFont" : "",
1189
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1190
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1191
+ "name" : "Node 14",
1192
+ "Ensembl_ID" : "",
1193
+ "SUID" : 51786,
1194
+ "Height" : 1,
1195
+ "Width" : 1,
1196
+ "selected" : false
1197
+ },
1198
+ "position" : {
1199
+ "x" : -467.2544855814592,
1200
+ "y" : 117.53585173280345
1201
+ },
1202
+ "selected" : false
1203
+ }, {
1204
+ "data" : {
1205
+ "id" : "51784",
1206
+ "NumChildren" : 2,
1207
+ "Shape" : "",
1208
+ "Fillcolor" : "",
1209
+ "Color" : "",
1210
+ "label" : "Sph",
1211
+ "Label_size" : 30,
1212
+ "shared_name" : "Sph",
1213
+ "LabelFont" : "",
1214
+ "path" : "http://localhost:9000/plot?str1=Sph.svg",
1215
+ "NumDescendents" : 2,
1216
+ "pathpng" : "http://localhost:9000/png?str2=(Sph).png",
1217
+ "name" : "Sph",
1218
+ "Ensembl_ID" : "",
1219
+ "SUID" : 51784,
1220
+ "Height" : 140,
1221
+ "Width" : 140,
1222
+ "selected" : false
1223
+ },
1224
+ "position" : {
1225
+ "x" : -195.0,
1226
+ "y" : -540.0
1227
+ },
1228
+ "selected" : false
1229
+ }, {
1230
+ "data" : {
1231
+ "id" : "51782",
1232
+ "Shape" : "Ellipse",
1233
+ "Fillcolor" : "#ffffff",
1234
+ "Color" : "",
1235
+ "label" : "",
1236
+ "Label_size" : 1,
1237
+ "shared_name" : "Node 15",
1238
+ "LabelFont" : "",
1239
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1240
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1241
+ "name" : "Node 15",
1242
+ "Ensembl_ID" : "",
1243
+ "SUID" : 51782,
1244
+ "Height" : 1,
1245
+ "Width" : 1,
1246
+ "selected" : false
1247
+ },
1248
+ "position" : {
1249
+ "x" : -464.9905742180447,
1250
+ "y" : -7.607705371300975
1251
+ },
1252
+ "selected" : false
1253
+ }, {
1254
+ "data" : {
1255
+ "id" : "51780",
1256
+ "NumChildren" : 2,
1257
+ "Shape" : "",
1258
+ "Fillcolor" : "",
1259
+ "Color" : "",
1260
+ "label" : "GM3",
1261
+ "Label_size" : 30,
1262
+ "shared_name" : "GM3",
1263
+ "LabelFont" : "",
1264
+ "path" : "http://localhost:9000/plot?str1=GM3.svg",
1265
+ "NumDescendents" : 2,
1266
+ "pathpng" : "http://localhost:9000/png?str2=(GM3).png",
1267
+ "name" : "GM3",
1268
+ "Ensembl_ID" : "",
1269
+ "SUID" : 51780,
1270
+ "Height" : 140,
1271
+ "Width" : 140,
1272
+ "selected" : false
1273
+ },
1274
+ "position" : {
1275
+ "x" : 710.0,
1276
+ "y" : -249.0
1277
+ },
1278
+ "selected" : false
1279
+ }, {
1280
+ "data" : {
1281
+ "id" : "51778",
1282
+ "Shape" : "Ellipse",
1283
+ "Fillcolor" : "#ffffff",
1284
+ "Color" : "",
1285
+ "label" : "",
1286
+ "Label_size" : 1,
1287
+ "shared_name" : "Node 16",
1288
+ "LabelFont" : "",
1289
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1290
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1291
+ "name" : "Node 16",
1292
+ "Ensembl_ID" : "",
1293
+ "SUID" : 51778,
1294
+ "Height" : 1,
1295
+ "Width" : 1,
1296
+ "selected" : false
1297
+ },
1298
+ "position" : {
1299
+ "x" : -463.4940895638944,
1300
+ "y" : -249.3506164628149
1301
+ },
1302
+ "selected" : false
1303
+ }, {
1304
+ "data" : {
1305
+ "id" : "51776",
1306
+ "NumChildren" : 2,
1307
+ "Shape" : "",
1308
+ "Fillcolor" : "",
1309
+ "Color" : "",
1310
+ "label" : "Cer_NS",
1311
+ "Label_size" : 30,
1312
+ "shared_name" : "Cer_NS",
1313
+ "LabelFont" : "",
1314
+ "path" : "http://localhost:9000/plot?str1=Cer_NS.svg",
1315
+ "NumDescendents" : 2,
1316
+ "pathpng" : "http://localhost:9000/png?str2=(Cer_NS).png",
1317
+ "name" : "Cer_NS",
1318
+ "Ensembl_ID" : "",
1319
+ "SUID" : 51776,
1320
+ "Height" : 140,
1321
+ "Width" : 140,
1322
+ "selected" : false
1323
+ },
1324
+ "position" : {
1325
+ "x" : -290.0,
1326
+ "y" : -246.0
1327
+ },
1328
+ "selected" : false
1329
+ }, {
1330
+ "data" : {
1331
+ "id" : "51774",
1332
+ "Shape" : "Ellipse",
1333
+ "Fillcolor" : "#ffffff",
1334
+ "Color" : "",
1335
+ "label" : "",
1336
+ "Label_size" : 1,
1337
+ "shared_name" : "Node 7",
1338
+ "LabelFont" : "",
1339
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1340
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1341
+ "name" : "Node 7",
1342
+ "Ensembl_ID" : "",
1343
+ "SUID" : 51774,
1344
+ "Height" : 1,
1345
+ "Width" : 1,
1346
+ "selected" : false
1347
+ },
1348
+ "position" : {
1349
+ "x" : -827.9922261951708,
1350
+ "y" : 2.887864566243465
1351
+ },
1352
+ "selected" : false
1353
+ }, {
1354
+ "data" : {
1355
+ "id" : "51772",
1356
+ "Shape" : "Rectangle",
1357
+ "Fillcolor" : "#ffffff",
1358
+ "Color" : "Black",
1359
+ "label" : "SGMS1",
1360
+ "Label_size" : 30,
1361
+ "shared_name" : "SGMS1",
1362
+ "LabelFont" : "",
1363
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000040451.svg",
1364
+ "pathpng" : "http://localhost:9000/png?str2=(SGMS1).png",
1365
+ "name" : "SGMS1",
1366
+ "Ensembl_ID" : "ENSMUSG00000040451",
1367
+ "SUID" : 51772,
1368
+ "Height" : 140,
1369
+ "Width" : 140,
1370
+ "selected" : false
1371
+ },
1372
+ "position" : {
1373
+ "x" : -478.3970198679425,
1374
+ "y" : -376.4290322995306
1375
+ },
1376
+ "selected" : false
1377
+ }, {
1378
+ "data" : {
1379
+ "id" : "51770",
1380
+ "Shape" : "Ellipse",
1381
+ "Fillcolor" : "#ffffff",
1382
+ "Color" : "",
1383
+ "label" : "",
1384
+ "Label_size" : 1,
1385
+ "shared_name" : "Node 8",
1386
+ "LabelFont" : "",
1387
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1388
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1389
+ "name" : "Node 8",
1390
+ "Ensembl_ID" : "",
1391
+ "SUID" : 51770,
1392
+ "Height" : 1,
1393
+ "Width" : 1,
1394
+ "selected" : false
1395
+ },
1396
+ "position" : {
1397
+ "x" : -826.7933659354836,
1398
+ "y" : -243.76281858293285
1399
+ },
1400
+ "selected" : false
1401
+ }, {
1402
+ "data" : {
1403
+ "id" : "51768",
1404
+ "Shape" : "Rectangle",
1405
+ "Fillcolor" : "#ffffff",
1406
+ "Color" : "Black",
1407
+ "label" : "DEGS2",
1408
+ "Label_size" : 30,
1409
+ "shared_name" : "DEGS2",
1410
+ "LabelFont" : "",
1411
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000021263.svg",
1412
+ "pathpng" : "http://localhost:9000/png?str2=(DEGS2).png",
1413
+ "name" : "DEGS2",
1414
+ "Ensembl_ID" : "ENSMUSG00000021263",
1415
+ "SUID" : 51768,
1416
+ "Height" : 140,
1417
+ "Width" : 140,
1418
+ "selected" : false
1419
+ },
1420
+ "position" : {
1421
+ "x" : -636.4474900692869,
1422
+ "y" : 229.24947575028722
1423
+ },
1424
+ "selected" : false
1425
+ }, {
1426
+ "data" : {
1427
+ "id" : "51764",
1428
+ "Shape" : "Rectangle",
1429
+ "Fillcolor" : "#ffffff",
1430
+ "Color" : "Black",
1431
+ "label" : "DEGS1",
1432
+ "Label_size" : 30,
1433
+ "shared_name" : "DEGS1",
1434
+ "LabelFont" : "",
1435
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000038633.svg",
1436
+ "pathpng" : "http://localhost:9000/png?str2=(DEGS1).png",
1437
+ "name" : "DEGS1",
1438
+ "Ensembl_ID" : "ENSMUSG00000038633",
1439
+ "SUID" : 51764,
1440
+ "Height" : 140,
1441
+ "Width" : 140,
1442
+ "selected" : false
1443
+ },
1444
+ "position" : {
1445
+ "x" : -464.5168443455404,
1446
+ "y" : -132.41313881546006
1447
+ },
1448
+ "selected" : false
1449
+ }, {
1450
+ "data" : {
1451
+ "id" : "51760",
1452
+ "Shape" : "Ellipse",
1453
+ "Fillcolor" : "#ffffff",
1454
+ "Color" : "",
1455
+ "label" : "",
1456
+ "Label_size" : 1,
1457
+ "shared_name" : "Node 3",
1458
+ "LabelFont" : "",
1459
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1460
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1461
+ "name" : "Node 3",
1462
+ "Ensembl_ID" : "",
1463
+ "SUID" : 51760,
1464
+ "Height" : 1,
1465
+ "Width" : 1,
1466
+ "selected" : false
1467
+ },
1468
+ "position" : {
1469
+ "x" : -1181.129760559344,
1470
+ "y" : -132.5450208053768
1471
+ },
1472
+ "selected" : false
1473
+ }, {
1474
+ "data" : {
1475
+ "id" : "51758",
1476
+ "Shape" : "Rectangle",
1477
+ "Fillcolor" : "#ffffff",
1478
+ "Color" : "Black",
1479
+ "label" : "CerS2",
1480
+ "Label_size" : 30,
1481
+ "shared_name" : "CerS2",
1482
+ "LabelFont" : "",
1483
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000015714.svg",
1484
+ "pathpng" : "http://localhost:9000/png?str2=(CerS2).png",
1485
+ "name" : "CerS2",
1486
+ "Ensembl_ID" : "ENSMUSG00000015714",
1487
+ "SUID" : 51758,
1488
+ "Height" : 140,
1489
+ "Width" : 140,
1490
+ "selected" : false
1491
+ },
1492
+ "position" : {
1493
+ "x" : -1046.0,
1494
+ "y" : 395.45683602223994
1495
+ },
1496
+ "selected" : false
1497
+ }, {
1498
+ "data" : {
1499
+ "id" : "51756",
1500
+ "Shape" : "Rectangle",
1501
+ "Fillcolor" : "#ffffff",
1502
+ "Color" : "Black",
1503
+ "label" : "FA2H",
1504
+ "Label_size" : 30,
1505
+ "shared_name" : "FA2H",
1506
+ "LabelFont" : "",
1507
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000033579.svg",
1508
+ "pathpng" : "http://localhost:9000/png?str2=(FA2H).png",
1509
+ "name" : "FA2H",
1510
+ "Ensembl_ID" : "ENSMUSG00000033579",
1511
+ "SUID" : 51756,
1512
+ "Height" : 140,
1513
+ "Width" : 140,
1514
+ "selected" : false
1515
+ },
1516
+ "position" : {
1517
+ "x" : -1337.0106724152988,
1518
+ "y" : -132.149749673229
1519
+ },
1520
+ "selected" : false
1521
+ }, {
1522
+ "data" : {
1523
+ "id" : "51754",
1524
+ "NumChildren" : 2,
1525
+ "Shape" : "",
1526
+ "Fillcolor" : "",
1527
+ "Color" : "",
1528
+ "label" : "2OH-FA",
1529
+ "Label_size" : 30,
1530
+ "shared_name" : "2OH-FA",
1531
+ "LabelFont" : "",
1532
+ "path" : "http://localhost:9000/plot?str1=2OH-FA.svg",
1533
+ "NumDescendents" : 2,
1534
+ "pathpng" : "http://localhost:9000/png?str2=(2OH-FA).png",
1535
+ "name" : "2OH-FA",
1536
+ "Ensembl_ID" : "",
1537
+ "SUID" : 51754,
1538
+ "Height" : 140,
1539
+ "Width" : 140,
1540
+ "selected" : false
1541
+ },
1542
+ "position" : {
1543
+ "x" : -1036.0,
1544
+ "y" : 113.0
1545
+ },
1546
+ "selected" : false
1547
+ }, {
1548
+ "data" : {
1549
+ "id" : "51752",
1550
+ "NumChildren" : 2,
1551
+ "Shape" : "",
1552
+ "Fillcolor" : "",
1553
+ "Color" : "",
1554
+ "label" : "Cer_AP",
1555
+ "Label_size" : 30,
1556
+ "shared_name" : "Cer_AP",
1557
+ "LabelFont" : "",
1558
+ "path" : "http://localhost:9000/plot?str1=Cer_AP.svg",
1559
+ "NumDescendents" : 2,
1560
+ "pathpng" : "http://localhost:9000/png?str2=(Cer_AP).png",
1561
+ "name" : "Cer_AP",
1562
+ "Ensembl_ID" : "",
1563
+ "SUID" : 51752,
1564
+ "Height" : 140,
1565
+ "Width" : 140,
1566
+ "selected" : false
1567
+ },
1568
+ "position" : {
1569
+ "x" : -288.0,
1570
+ "y" : 235.0
1571
+ },
1572
+ "selected" : false
1573
+ }, {
1574
+ "data" : {
1575
+ "id" : "51750",
1576
+ "NumChildren" : 2,
1577
+ "Shape" : "",
1578
+ "Fillcolor" : "",
1579
+ "Color" : "",
1580
+ "label" : "Cer_ADS",
1581
+ "Label_size" : 30,
1582
+ "shared_name" : "Cer_ADS",
1583
+ "LabelFont" : "",
1584
+ "path" : "http://localhost:9000/plot?str1=Cer_ADS.svg",
1585
+ "NumDescendents" : 2,
1586
+ "pathpng" : "http://localhost:9000/png?str2=(Cer_ADS).png",
1587
+ "name" : "Cer_ADS",
1588
+ "Ensembl_ID" : "",
1589
+ "SUID" : 51750,
1590
+ "Height" : 140,
1591
+ "Width" : 140,
1592
+ "selected" : false
1593
+ },
1594
+ "position" : {
1595
+ "x" : -638.0,
1596
+ "y" : -4.0
1597
+ },
1598
+ "selected" : false
1599
+ }, {
1600
+ "data" : {
1601
+ "id" : "51748",
1602
+ "NumChildren" : 2,
1603
+ "Shape" : "",
1604
+ "Fillcolor" : "",
1605
+ "Color" : "",
1606
+ "label" : "SM",
1607
+ "Label_size" : 30,
1608
+ "shared_name" : "SM",
1609
+ "LabelFont" : "",
1610
+ "path" : "http://localhost:9000/plot?str1=SM.svg",
1611
+ "NumDescendents" : 2,
1612
+ "pathpng" : "http://localhost:9000/png?str2=(SM).png",
1613
+ "name" : "SM",
1614
+ "Ensembl_ID" : "",
1615
+ "SUID" : 51748,
1616
+ "Height" : 140,
1617
+ "Width" : 140,
1618
+ "selected" : false
1619
+ },
1620
+ "position" : {
1621
+ "x" : -424.0,
1622
+ "y" : -538.0
1623
+ },
1624
+ "selected" : false
1625
+ }, {
1626
+ "data" : {
1627
+ "id" : "51746",
1628
+ "NumChildren" : 2,
1629
+ "Shape" : "",
1630
+ "Fillcolor" : "",
1631
+ "Color" : "",
1632
+ "label" : "HexCer_NS",
1633
+ "Label_size" : 30,
1634
+ "shared_name" : "HexCer_NS",
1635
+ "LabelFont" : "",
1636
+ "path" : "http://localhost:9000/plot?str1=HexCer_NS.svg",
1637
+ "NumDescendents" : 2,
1638
+ "pathpng" : "http://localhost:9000/png?str2=(HexCer_NS).png",
1639
+ "name" : "HexCer_NS",
1640
+ "Ensembl_ID" : "",
1641
+ "SUID" : 51746,
1642
+ "Height" : 140,
1643
+ "Width" : 140,
1644
+ "selected" : false
1645
+ },
1646
+ "position" : {
1647
+ "x" : 50.0,
1648
+ "y" : -247.0
1649
+ },
1650
+ "selected" : false
1651
+ }, {
1652
+ "data" : {
1653
+ "id" : "51437",
1654
+ "Shape" : "Rectangle",
1655
+ "Fillcolor" : "#ffffff",
1656
+ "Color" : "Black",
1657
+ "label" : "B3galt4",
1658
+ "Label_size" : 30,
1659
+ "shared_name" : "B3galt4",
1660
+ "LabelFont" : "",
1661
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000067370.svg",
1662
+ "pathpng" : "http://localhost:9000/png?str2=(B3galt4).png",
1663
+ "name" : "B3galt4",
1664
+ "Ensembl_ID" : "ENSMUSG00000067370",
1665
+ "SUID" : 51437,
1666
+ "Height" : 140,
1667
+ "Width" : 140,
1668
+ "selected" : false
1669
+ },
1670
+ "position" : {
1671
+ "x" : 925.982401222997,
1672
+ "y" : 31.398956004524972
1673
+ },
1674
+ "selected" : false
1675
+ }, {
1676
+ "data" : {
1677
+ "id" : "51435",
1678
+ "Shape" : "Rectangle",
1679
+ "Fillcolor" : "#ffffff",
1680
+ "Color" : "Black",
1681
+ "label" : "B4galnt1",
1682
+ "Label_size" : 30,
1683
+ "shared_name" : "B4galnt1",
1684
+ "LabelFont" : "",
1685
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000006731.svg",
1686
+ "pathpng" : "http://localhost:9000/png?str2=(B4galnt1).png",
1687
+ "name" : "B4galnt1",
1688
+ "Ensembl_ID" : "ENSMUSG00000006731",
1689
+ "SUID" : 51435,
1690
+ "Height" : 140,
1691
+ "Width" : 140,
1692
+ "selected" : false
1693
+ },
1694
+ "position" : {
1695
+ "x" : 925.3093465824652,
1696
+ "y" : -158.82396183751564
1697
+ },
1698
+ "selected" : false
1699
+ }, {
1700
+ "data" : {
1701
+ "id" : "51738",
1702
+ "NumChildren" : 2,
1703
+ "Shape" : "",
1704
+ "Fillcolor" : "",
1705
+ "Color" : "",
1706
+ "label" : "FA",
1707
+ "Label_size" : 30,
1708
+ "shared_name" : "FA",
1709
+ "LabelFont" : "",
1710
+ "path" : "http://localhost:9000/plot?str1=FA.svg",
1711
+ "NumDescendents" : 2,
1712
+ "pathpng" : "http://localhost:9000/png?str2=(FA).png",
1713
+ "name" : "FA",
1714
+ "Ensembl_ID" : "",
1715
+ "SUID" : 51738,
1716
+ "Height" : 140,
1717
+ "Width" : 140,
1718
+ "selected" : false
1719
+ },
1720
+ "position" : {
1721
+ "x" : -1042.0,
1722
+ "y" : -361.0
1723
+ },
1724
+ "selected" : false
1725
+ }, {
1726
+ "data" : {
1727
+ "id" : "51736",
1728
+ "NumChildren" : 2,
1729
+ "Shape" : "",
1730
+ "Fillcolor" : "",
1731
+ "Color" : "",
1732
+ "label" : "AHexCer",
1733
+ "Label_size" : 30,
1734
+ "shared_name" : "AHexCer",
1735
+ "LabelFont" : "",
1736
+ "path" : "http://localhost:9000/plot?str1=AHexCer.svg",
1737
+ "NumDescendents" : 2,
1738
+ "pathpng" : "http://localhost:9000/png?str2=(AHexCer).png",
1739
+ "name" : "AHexCer",
1740
+ "Ensembl_ID" : "",
1741
+ "SUID" : 51736,
1742
+ "Height" : 140,
1743
+ "Width" : 140,
1744
+ "selected" : false
1745
+ },
1746
+ "position" : {
1747
+ "x" : 372.0,
1748
+ "y" : 251.0
1749
+ },
1750
+ "selected" : false
1751
+ }, {
1752
+ "data" : {
1753
+ "id" : "51734",
1754
+ "NumChildren" : 2,
1755
+ "Shape" : "",
1756
+ "Fillcolor" : "",
1757
+ "Color" : "",
1758
+ "label" : "GD1a",
1759
+ "Label_size" : 30,
1760
+ "shared_name" : "GD1a",
1761
+ "LabelFont" : "",
1762
+ "path" : "http://localhost:9000/plot?str1=GD1a.svg",
1763
+ "NumDescendents" : 2,
1764
+ "pathpng" : "http://localhost:9000/png?str2=(GD1a).png",
1765
+ "name" : "GD1a",
1766
+ "Ensembl_ID" : "",
1767
+ "SUID" : 51734,
1768
+ "Height" : 140,
1769
+ "Width" : 140,
1770
+ "selected" : false
1771
+ },
1772
+ "position" : {
1773
+ "x" : 713.0,
1774
+ "y" : 329.0
1775
+ },
1776
+ "selected" : false
1777
+ }, {
1778
+ "data" : {
1779
+ "id" : "51732",
1780
+ "NumChildren" : 2,
1781
+ "Shape" : "",
1782
+ "Fillcolor" : "",
1783
+ "Color" : "",
1784
+ "label" : "HexCer_NDS",
1785
+ "Label_size" : 30,
1786
+ "shared_name" : "HexCer_NDS",
1787
+ "LabelFont" : "",
1788
+ "path" : "http://localhost:9000/plot?str1=HexCer_NDS.svg",
1789
+ "NumDescendents" : 2,
1790
+ "pathpng" : "http://localhost:9000/png?str2=(HexCer_NDS).png",
1791
+ "name" : "HexCer_NDS",
1792
+ "Ensembl_ID" : "",
1793
+ "SUID" : 51732,
1794
+ "Height" : 140,
1795
+ "Width" : 140,
1796
+ "selected" : false
1797
+ },
1798
+ "position" : {
1799
+ "x" : -633.0,
1800
+ "y" : -524.0
1801
+ },
1802
+ "selected" : false
1803
+ }, {
1804
+ "data" : {
1805
+ "id" : "51730",
1806
+ "NumChildren" : 2,
1807
+ "Shape" : "",
1808
+ "Fillcolor" : "",
1809
+ "Color" : "",
1810
+ "label" : "Hex2Cer",
1811
+ "Label_size" : 30,
1812
+ "shared_name" : "Hex2Cer",
1813
+ "LabelFont" : "",
1814
+ "path" : "http://localhost:9000/plot?str1=Hex2Cer.svg",
1815
+ "NumDescendents" : 2,
1816
+ "pathpng" : "http://localhost:9000/png?str2=(Hex2Cer).png",
1817
+ "name" : "Hex2Cer",
1818
+ "Ensembl_ID" : "",
1819
+ "SUID" : 51730,
1820
+ "Height" : 140,
1821
+ "Width" : 140,
1822
+ "selected" : false
1823
+ },
1824
+ "position" : {
1825
+ "x" : 373.0,
1826
+ "y" : -247.0
1827
+ },
1828
+ "selected" : false
1829
+ }, {
1830
+ "data" : {
1831
+ "id" : "51728",
1832
+ "Shape" : "Rectangle",
1833
+ "Fillcolor" : "#ffffff",
1834
+ "Color" : "Black",
1835
+ "label" : "UGCG",
1836
+ "Label_size" : 30,
1837
+ "shared_name" : "UGCG",
1838
+ "LabelFont" : "",
1839
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000028381.svg",
1840
+ "pathpng" : "http://localhost:9000/png?str2=(UGCG).png",
1841
+ "name" : "UGCG",
1842
+ "Ensembl_ID" : "ENSMUSG00000028381",
1843
+ "SUID" : 51728,
1844
+ "Height" : 140,
1845
+ "Width" : 140,
1846
+ "selected" : false
1847
+ },
1848
+ "position" : {
1849
+ "x" : -837.0,
1850
+ "y" : -369.48940274874997
1851
+ },
1852
+ "selected" : false
1853
+ }, {
1854
+ "data" : {
1855
+ "id" : "51726",
1856
+ "Shape" : "Rectangle",
1857
+ "Fillcolor" : "#ffffff",
1858
+ "Color" : "Black",
1859
+ "label" : "ASAH1",
1860
+ "Label_size" : 30,
1861
+ "shared_name" : "ASAH1",
1862
+ "LabelFont" : "",
1863
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000031591.svg",
1864
+ "pathpng" : "http://localhost:9000/png?str2=(ASAH1).png",
1865
+ "name" : "ASAH1",
1866
+ "Ensembl_ID" : "ENSMUSG00000031591",
1867
+ "SUID" : 51726,
1868
+ "Height" : 140,
1869
+ "Width" : 140,
1870
+ "selected" : false
1871
+ },
1872
+ "position" : {
1873
+ "x" : 123.47956988670943,
1874
+ "y" : -559.1189983803392
1875
+ },
1876
+ "selected" : false
1877
+ }, {
1878
+ "data" : {
1879
+ "id" : "51716",
1880
+ "Shape" : "Ellipse",
1881
+ "Fillcolor" : "#ffffff",
1882
+ "Color" : "",
1883
+ "label" : "",
1884
+ "Label_size" : 1,
1885
+ "shared_name" : "Node 25",
1886
+ "LabelFont" : "",
1887
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1888
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1889
+ "name" : "Node 25",
1890
+ "Ensembl_ID" : "",
1891
+ "SUID" : 51716,
1892
+ "Height" : 1,
1893
+ "Width" : 1,
1894
+ "selected" : false
1895
+ },
1896
+ "position" : {
1897
+ "x" : 206.57790990647788,
1898
+ "y" : -4.027725702126798
1899
+ },
1900
+ "selected" : false
1901
+ } ],
1902
+ "edges" : [ {
1903
+ "data" : {
1904
+ "id" : "60367",
1905
+ "source" : "60361",
1906
+ "target" : "51806",
1907
+ "shared_name" : "Node 17 (interacts with) Node 17",
1908
+ "shared_interaction" : "interacts with",
1909
+ "name" : "Node 17 (interacts with) Node 17",
1910
+ "interaction" : "interacts with",
1911
+ "SUID" : 60367,
1912
+ "selected" : false
1913
+ },
1914
+ "selected" : false
1915
+ }, {
1916
+ "data" : {
1917
+ "id" : "59899",
1918
+ "source" : "59880",
1919
+ "target" : "59874",
1920
+ "shared_name" : "Node 1 (interacts with) Node 1",
1921
+ "shared_interaction" : "interacts with",
1922
+ "name" : "Node 1 (interacts with) Node 1",
1923
+ "interaction" : "interacts with",
1924
+ "SUID" : 59899,
1925
+ "selected" : false
1926
+ },
1927
+ "selected" : false
1928
+ }, {
1929
+ "data" : {
1930
+ "id" : "59905",
1931
+ "source" : "59874",
1932
+ "target" : "51754",
1933
+ "shared_name" : "Node 1 (interacts with) 2OH-FA",
1934
+ "shared_interaction" : "interacts with",
1935
+ "name" : "Node 1 (interacts with) 2OH-FA",
1936
+ "interaction" : "interacts with",
1937
+ "SUID" : 59905,
1938
+ "selected" : false
1939
+ },
1940
+ "selected" : false
1941
+ }, {
1942
+ "data" : {
1943
+ "id" : "59862",
1944
+ "source" : "59832",
1945
+ "target" : "59826",
1946
+ "shared_name" : "Node 1 (interacts with) Node 1",
1947
+ "shared_interaction" : "interacts with",
1948
+ "name" : "Node 1 (interacts with) Node 1",
1949
+ "interaction" : "interacts with",
1950
+ "SUID" : 59862,
1951
+ "selected" : false
1952
+ },
1953
+ "selected" : false
1954
+ }, {
1955
+ "data" : {
1956
+ "id" : "59856",
1957
+ "source" : "59829",
1958
+ "target" : "59826",
1959
+ "shared_name" : "Node 1 (interacts with) Node 1",
1960
+ "shared_interaction" : "interacts with",
1961
+ "name" : "Node 1 (interacts with) Node 1",
1962
+ "interaction" : "interacts with",
1963
+ "SUID" : 59856,
1964
+ "selected" : false
1965
+ },
1966
+ "selected" : false
1967
+ }, {
1968
+ "data" : {
1969
+ "id" : "59868",
1970
+ "source" : "59826",
1971
+ "target" : "51750",
1972
+ "shared_name" : "Node 1 (interacts with) Cer_ADS",
1973
+ "shared_interaction" : "interacts with",
1974
+ "name" : "Node 1 (interacts with) Cer_ADS",
1975
+ "interaction" : "interacts with",
1976
+ "SUID" : 59868,
1977
+ "selected" : false
1978
+ },
1979
+ "selected" : false
1980
+ }, {
1981
+ "data" : {
1982
+ "id" : "59812",
1983
+ "source" : "59782",
1984
+ "target" : "51822",
1985
+ "shared_name" : "Node 1 (interacts with) Cer_NDS",
1986
+ "shared_interaction" : "interacts with",
1987
+ "name" : "Node 1 (interacts with) Cer_NDS",
1988
+ "interaction" : "interacts with",
1989
+ "SUID" : 59812,
1990
+ "selected" : false
1991
+ },
1992
+ "selected" : false
1993
+ }, {
1994
+ "data" : {
1995
+ "id" : "59806",
1996
+ "source" : "59768",
1997
+ "target" : "59782",
1998
+ "shared_name" : "Node 1 (interacts with) Node 1",
1999
+ "shared_interaction" : "interacts with",
2000
+ "name" : "Node 1 (interacts with) Node 1",
2001
+ "interaction" : "interacts with",
2002
+ "SUID" : 59806,
2003
+ "selected" : false
2004
+ },
2005
+ "selected" : false
2006
+ }, {
2007
+ "data" : {
2008
+ "id" : "59794",
2009
+ "source" : "59754",
2010
+ "target" : "59782",
2011
+ "shared_name" : "Node 1 (interacts with) Node 1",
2012
+ "shared_interaction" : "interacts with",
2013
+ "name" : "Node 1 (interacts with) Node 1",
2014
+ "interaction" : "interacts with",
2015
+ "SUID" : 59794,
2016
+ "selected" : false
2017
+ },
2018
+ "selected" : false
2019
+ }, {
2020
+ "data" : {
2021
+ "id" : "59743",
2022
+ "source" : "59731",
2023
+ "target" : "51770",
2024
+ "shared_name" : "Node 1 (interacts with) Node 1",
2025
+ "shared_interaction" : "interacts with",
2026
+ "name" : "Node 1 (interacts with) Node 1",
2027
+ "interaction" : "interacts with",
2028
+ "SUID" : 59743,
2029
+ "selected" : false
2030
+ },
2031
+ "selected" : false
2032
+ }, {
2033
+ "data" : {
2034
+ "id" : "59737",
2035
+ "source" : "59731",
2036
+ "target" : "51774",
2037
+ "shared_name" : "Node 1 (interacts with) Node 1",
2038
+ "shared_interaction" : "interacts with",
2039
+ "name" : "Node 1 (interacts with) Node 1",
2040
+ "interaction" : "interacts with",
2041
+ "SUID" : 59737,
2042
+ "selected" : false
2043
+ },
2044
+ "selected" : false
2045
+ }, {
2046
+ "data" : {
2047
+ "id" : "59725",
2048
+ "source" : "59711",
2049
+ "target" : "51810",
2050
+ "shared_name" : "Node 1 (interacts with) Node 1",
2051
+ "shared_interaction" : "interacts with",
2052
+ "name" : "Node 1 (interacts with) Node 1",
2053
+ "interaction" : "interacts with",
2054
+ "SUID" : 59725,
2055
+ "selected" : false
2056
+ },
2057
+ "selected" : false
2058
+ }, {
2059
+ "data" : {
2060
+ "id" : "59705",
2061
+ "source" : "59691",
2062
+ "target" : "51816",
2063
+ "shared_name" : "Node 1 (interacts with) Node 1",
2064
+ "shared_interaction" : "interacts with",
2065
+ "name" : "Node 1 (interacts with) Node 1",
2066
+ "interaction" : "interacts with",
2067
+ "SUID" : 59705,
2068
+ "selected" : false
2069
+ },
2070
+ "selected" : false
2071
+ }, {
2072
+ "data" : {
2073
+ "id" : "51942",
2074
+ "source" : "51850",
2075
+ "target" : "51824",
2076
+ "shared_name" : "GM2 (interacts with) GM1",
2077
+ "shared_interaction" : "interacts with",
2078
+ "name" : "GM2 (interacts with) GM1",
2079
+ "interaction" : "interacts with",
2080
+ "SUID" : 51942,
2081
+ "selected" : false
2082
+ },
2083
+ "selected" : false
2084
+ }, {
2085
+ "data" : {
2086
+ "id" : "59844",
2087
+ "source" : "51830",
2088
+ "target" : "59832",
2089
+ "shared_name" : "DHSph (interacts with) Node 1",
2090
+ "shared_interaction" : "interacts with",
2091
+ "name" : "DHSph (interacts with) Node 1",
2092
+ "interaction" : "interacts with",
2093
+ "SUID" : 59844,
2094
+ "selected" : false
2095
+ },
2096
+ "selected" : false
2097
+ }, {
2098
+ "data" : {
2099
+ "id" : "59800",
2100
+ "source" : "51830",
2101
+ "target" : "59768",
2102
+ "shared_name" : "DHSph (interacts with) Node 1",
2103
+ "shared_interaction" : "interacts with",
2104
+ "name" : "DHSph (interacts with) Node 1",
2105
+ "interaction" : "interacts with",
2106
+ "SUID" : 59800,
2107
+ "selected" : false
2108
+ },
2109
+ "selected" : false
2110
+ }, {
2111
+ "data" : {
2112
+ "id" : "51938",
2113
+ "source" : "51828",
2114
+ "target" : "51736",
2115
+ "shared_name" : "HexCer_HS (interacts with) AHexCer",
2116
+ "shared_interaction" : "interacts with",
2117
+ "name" : "HexCer_HS (interacts with) AHexCer",
2118
+ "interaction" : "interacts with",
2119
+ "SUID" : 51938,
2120
+ "selected" : false
2121
+ },
2122
+ "selected" : false
2123
+ }, {
2124
+ "data" : {
2125
+ "id" : "51936",
2126
+ "source" : "51828",
2127
+ "target" : "51826",
2128
+ "shared_name" : "HexCer_HS (interacts with) SHexCer",
2129
+ "shared_interaction" : "interacts with",
2130
+ "name" : "HexCer_HS (interacts with) SHexCer",
2131
+ "interaction" : "interacts with",
2132
+ "SUID" : 51936,
2133
+ "selected" : false
2134
+ },
2135
+ "selected" : false
2136
+ }, {
2137
+ "data" : {
2138
+ "id" : "51934",
2139
+ "source" : "51824",
2140
+ "target" : "51734",
2141
+ "shared_name" : "GM1 (interacts with) GD1a",
2142
+ "shared_interaction" : "interacts with",
2143
+ "name" : "GM1 (interacts with) GD1a",
2144
+ "interaction" : "interacts with",
2145
+ "SUID" : 51934,
2146
+ "selected" : false
2147
+ },
2148
+ "selected" : false
2149
+ }, {
2150
+ "data" : {
2151
+ "id" : "51932",
2152
+ "source" : "51822",
2153
+ "target" : "51776",
2154
+ "shared_name" : "Cer_NDS (interacts with) Cer_NS",
2155
+ "shared_interaction" : "interacts with",
2156
+ "name" : "Cer_NDS (interacts with) Cer_NS",
2157
+ "interaction" : "interacts with",
2158
+ "SUID" : 51932,
2159
+ "selected" : false
2160
+ },
2161
+ "selected" : false
2162
+ }, {
2163
+ "data" : {
2164
+ "id" : "51930",
2165
+ "source" : "51822",
2166
+ "target" : "51732",
2167
+ "shared_name" : "Cer_NDS (interacts with) HexCer_NDS",
2168
+ "shared_interaction" : "interacts with",
2169
+ "name" : "Cer_NDS (interacts with) HexCer_NDS",
2170
+ "interaction" : "interacts with",
2171
+ "SUID" : 51930,
2172
+ "selected" : false
2173
+ },
2174
+ "selected" : false
2175
+ }, {
2176
+ "data" : {
2177
+ "id" : "51928",
2178
+ "source" : "51818",
2179
+ "target" : "51820",
2180
+ "shared_name" : "St3gal5 (interacts with) Node 1",
2181
+ "shared_interaction" : "interacts with",
2182
+ "name" : "St3gal5 (interacts with) Node 1",
2183
+ "interaction" : "interacts with",
2184
+ "SUID" : 51928,
2185
+ "selected" : false
2186
+ },
2187
+ "selected" : false
2188
+ }, {
2189
+ "data" : {
2190
+ "id" : "51926",
2191
+ "source" : "51798",
2192
+ "target" : "51804",
2193
+ "shared_name" : "B4galt5 (interacts with) Node 1",
2194
+ "shared_interaction" : "interacts with",
2195
+ "name" : "B4galt5 (interacts with) Node 1",
2196
+ "interaction" : "interacts with",
2197
+ "SUID" : 51926,
2198
+ "selected" : false
2199
+ },
2200
+ "selected" : false
2201
+ }, {
2202
+ "data" : {
2203
+ "id" : "51924",
2204
+ "source" : "51794",
2205
+ "target" : "51812",
2206
+ "shared_name" : "Gal3st1 (interacts with) Node 1",
2207
+ "shared_interaction" : "interacts with",
2208
+ "name" : "Gal3st1 (interacts with) Node 1",
2209
+ "interaction" : "interacts with",
2210
+ "SUID" : 51924,
2211
+ "selected" : false
2212
+ },
2213
+ "selected" : false
2214
+ }, {
2215
+ "data" : {
2216
+ "id" : "51922",
2217
+ "source" : "51794",
2218
+ "target" : "51716",
2219
+ "shared_name" : "Gal3st1 (interacts with) Node 1",
2220
+ "shared_interaction" : "interacts with",
2221
+ "name" : "Gal3st1 (interacts with) Node 1",
2222
+ "interaction" : "interacts with",
2223
+ "SUID" : 51922,
2224
+ "selected" : false
2225
+ },
2226
+ "selected" : false
2227
+ }, {
2228
+ "data" : {
2229
+ "id" : "51920",
2230
+ "source" : "51792",
2231
+ "target" : "51828",
2232
+ "shared_name" : "Cer_AS (interacts with) HexCer_HS",
2233
+ "shared_interaction" : "interacts with",
2234
+ "name" : "Cer_AS (interacts with) HexCer_HS",
2235
+ "interaction" : "interacts with",
2236
+ "SUID" : 51920,
2237
+ "selected" : false
2238
+ },
2239
+ "selected" : false
2240
+ }, {
2241
+ "data" : {
2242
+ "id" : "51918",
2243
+ "source" : "51788",
2244
+ "target" : "51790",
2245
+ "shared_name" : "UGT8a (interacts with) Node 1",
2246
+ "shared_interaction" : "interacts with",
2247
+ "name" : "UGT8a (interacts with) Node 1",
2248
+ "interaction" : "interacts with",
2249
+ "SUID" : 51918,
2250
+ "selected" : false
2251
+ },
2252
+ "selected" : false
2253
+ }, {
2254
+ "data" : {
2255
+ "id" : "51914",
2256
+ "source" : "51788",
2257
+ "target" : "51802",
2258
+ "shared_name" : "UGT8a (interacts with) Node 1",
2259
+ "shared_interaction" : "interacts with",
2260
+ "name" : "UGT8a (interacts with) Node 1",
2261
+ "interaction" : "interacts with",
2262
+ "SUID" : 51914,
2263
+ "selected" : false
2264
+ },
2265
+ "selected" : false
2266
+ }, {
2267
+ "data" : {
2268
+ "id" : "51912",
2269
+ "source" : "51780",
2270
+ "target" : "51850",
2271
+ "shared_name" : "GM3 (interacts with) GM2",
2272
+ "shared_interaction" : "interacts with",
2273
+ "name" : "GM3 (interacts with) GM2",
2274
+ "interaction" : "interacts with",
2275
+ "SUID" : 51912,
2276
+ "selected" : false
2277
+ },
2278
+ "selected" : false
2279
+ }, {
2280
+ "data" : {
2281
+ "id" : "51910",
2282
+ "source" : "51776",
2283
+ "target" : "51784",
2284
+ "shared_name" : "Cer_NS (interacts with) Sph",
2285
+ "shared_interaction" : "interacts with",
2286
+ "name" : "Cer_NS (interacts with) Sph",
2287
+ "interaction" : "interacts with",
2288
+ "SUID" : 51910,
2289
+ "selected" : false
2290
+ },
2291
+ "selected" : false
2292
+ }, {
2293
+ "data" : {
2294
+ "id" : "51908",
2295
+ "source" : "51776",
2296
+ "target" : "51746",
2297
+ "shared_name" : "Cer_NS (interacts with) HexCer_NS",
2298
+ "shared_interaction" : "interacts with",
2299
+ "name" : "Cer_NS (interacts with) HexCer_NS",
2300
+ "interaction" : "interacts with",
2301
+ "SUID" : 51908,
2302
+ "selected" : false
2303
+ },
2304
+ "selected" : false
2305
+ }, {
2306
+ "data" : {
2307
+ "id" : "51906",
2308
+ "source" : "51776",
2309
+ "target" : "51748",
2310
+ "shared_name" : "Cer_NS (interacts with) SM",
2311
+ "shared_interaction" : "interacts with",
2312
+ "name" : "Cer_NS (interacts with) SM",
2313
+ "interaction" : "interacts with",
2314
+ "SUID" : 51906,
2315
+ "selected" : false
2316
+ },
2317
+ "selected" : false
2318
+ }, {
2319
+ "data" : {
2320
+ "id" : "51904",
2321
+ "source" : "51772",
2322
+ "target" : "51808",
2323
+ "shared_name" : "SMS (interacts with) Node 1",
2324
+ "shared_interaction" : "interacts with",
2325
+ "name" : "SMS (interacts with) Node 1",
2326
+ "interaction" : "interacts with",
2327
+ "SUID" : 51904,
2328
+ "selected" : false
2329
+ },
2330
+ "selected" : false
2331
+ }, {
2332
+ "data" : {
2333
+ "id" : "51902",
2334
+ "source" : "51768",
2335
+ "target" : "51786",
2336
+ "shared_name" : "DEGS2 (interacts with) Node 1",
2337
+ "shared_interaction" : "interacts with",
2338
+ "name" : "DEGS2 (interacts with) Node 1",
2339
+ "interaction" : "interacts with",
2340
+ "SUID" : 51902,
2341
+ "selected" : false
2342
+ },
2343
+ "selected" : false
2344
+ }, {
2345
+ "data" : {
2346
+ "id" : "51898",
2347
+ "source" : "51764",
2348
+ "target" : "51778",
2349
+ "shared_name" : "DEGS1 (interacts with) Node 1",
2350
+ "shared_interaction" : "interacts with",
2351
+ "name" : "DEGS1 (interacts with) Node 1",
2352
+ "interaction" : "interacts with",
2353
+ "SUID" : 51898,
2354
+ "selected" : false
2355
+ },
2356
+ "selected" : false
2357
+ }, {
2358
+ "data" : {
2359
+ "id" : "51896",
2360
+ "source" : "51764",
2361
+ "target" : "51782",
2362
+ "shared_name" : "DEGS1 (interacts with) Node 1",
2363
+ "shared_interaction" : "interacts with",
2364
+ "name" : "DEGS1 (interacts with) Node 1",
2365
+ "interaction" : "interacts with",
2366
+ "SUID" : 51896,
2367
+ "selected" : false
2368
+ },
2369
+ "selected" : false
2370
+ }, {
2371
+ "data" : {
2372
+ "id" : "51892",
2373
+ "source" : "51756",
2374
+ "target" : "51760",
2375
+ "shared_name" : "FA2H (interacts with) Node 1",
2376
+ "shared_interaction" : "interacts with",
2377
+ "name" : "FA2H (interacts with) Node 1",
2378
+ "interaction" : "interacts with",
2379
+ "SUID" : 51892,
2380
+ "selected" : false
2381
+ },
2382
+ "selected" : false
2383
+ }, {
2384
+ "data" : {
2385
+ "id" : "59850",
2386
+ "source" : "51754",
2387
+ "target" : "59829",
2388
+ "shared_name" : "2OH-FA (interacts with) Node 1",
2389
+ "shared_interaction" : "interacts with",
2390
+ "name" : "2OH-FA (interacts with) Node 1",
2391
+ "interaction" : "interacts with",
2392
+ "SUID" : 59850,
2393
+ "selected" : false
2394
+ },
2395
+ "selected" : false
2396
+ }, {
2397
+ "data" : {
2398
+ "id" : "51890",
2399
+ "source" : "51752",
2400
+ "target" : "51800",
2401
+ "shared_name" : "Cer_AP (interacts with) HexCer_AP",
2402
+ "shared_interaction" : "interacts with",
2403
+ "name" : "Cer_AP (interacts with) HexCer_AP",
2404
+ "interaction" : "interacts with",
2405
+ "SUID" : 51890,
2406
+ "selected" : false
2407
+ },
2408
+ "selected" : false
2409
+ }, {
2410
+ "data" : {
2411
+ "id" : "51888",
2412
+ "source" : "51750",
2413
+ "target" : "51752",
2414
+ "shared_name" : "Cer_ADS (interacts with) Cer_AP",
2415
+ "shared_interaction" : "interacts with",
2416
+ "name" : "Cer_ADS (interacts with) Cer_AP",
2417
+ "interaction" : "interacts with",
2418
+ "SUID" : 51888,
2419
+ "selected" : false
2420
+ },
2421
+ "selected" : false
2422
+ }, {
2423
+ "data" : {
2424
+ "id" : "51886",
2425
+ "source" : "51750",
2426
+ "target" : "51792",
2427
+ "shared_name" : "Cer_ADS (interacts with) Cer_AS",
2428
+ "shared_interaction" : "interacts with",
2429
+ "name" : "Cer_ADS (interacts with) Cer_AS",
2430
+ "interaction" : "interacts with",
2431
+ "SUID" : 51886,
2432
+ "selected" : false
2433
+ },
2434
+ "selected" : false
2435
+ }, {
2436
+ "data" : {
2437
+ "id" : "51884",
2438
+ "source" : "51746",
2439
+ "target" : "51730",
2440
+ "shared_name" : "HexCer_NS (interacts with) Hex2Cer",
2441
+ "shared_interaction" : "interacts with",
2442
+ "name" : "HexCer_NS (interacts with) Hex2Cer",
2443
+ "interaction" : "interacts with",
2444
+ "SUID" : 51884,
2445
+ "selected" : false
2446
+ },
2447
+ "selected" : false
2448
+ }, {
2449
+ "data" : {
2450
+ "id" : "51882",
2451
+ "source" : "51746",
2452
+ "target" : "51826",
2453
+ "shared_name" : "HexCer_NS (interacts with) SHexCer",
2454
+ "shared_interaction" : "interacts with",
2455
+ "name" : "HexCer_NS (interacts with) SHexCer",
2456
+ "interaction" : "interacts with",
2457
+ "SUID" : 51882,
2458
+ "selected" : false
2459
+ },
2460
+ "selected" : false
2461
+ }, {
2462
+ "data" : {
2463
+ "id" : "51880",
2464
+ "source" : "51437",
2465
+ "target" : "51852",
2466
+ "shared_name" : "B3galt4 (interacts with) Node 1",
2467
+ "shared_interaction" : "interacts with",
2468
+ "name" : "B3galt4 (interacts with) Node 1",
2469
+ "interaction" : "interacts with",
2470
+ "SUID" : 51880,
2471
+ "selected" : false
2472
+ },
2473
+ "selected" : false
2474
+ }, {
2475
+ "data" : {
2476
+ "id" : "51878",
2477
+ "source" : "51435",
2478
+ "target" : "51814",
2479
+ "shared_name" : "B4galnt1 (interacts with) Node 1",
2480
+ "shared_interaction" : "interacts with",
2481
+ "name" : "B4galnt1 (interacts with) Node 1",
2482
+ "interaction" : "interacts with",
2483
+ "SUID" : 51878,
2484
+ "selected" : false
2485
+ },
2486
+ "selected" : false
2487
+ }, {
2488
+ "data" : {
2489
+ "id" : "59893",
2490
+ "source" : "51738",
2491
+ "target" : "59880",
2492
+ "shared_name" : "FA (interacts with) Node 1",
2493
+ "shared_interaction" : "interacts with",
2494
+ "name" : "FA (interacts with) Node 1",
2495
+ "interaction" : "interacts with",
2496
+ "SUID" : 59893,
2497
+ "selected" : false
2498
+ },
2499
+ "selected" : false
2500
+ }, {
2501
+ "data" : {
2502
+ "id" : "59788",
2503
+ "source" : "51738",
2504
+ "target" : "59754",
2505
+ "shared_name" : "FA (interacts with) Node 1",
2506
+ "shared_interaction" : "interacts with",
2507
+ "name" : "FA (interacts with) Node 1",
2508
+ "interaction" : "interacts with",
2509
+ "SUID" : 59788,
2510
+ "selected" : false
2511
+ },
2512
+ "selected" : false
2513
+ }, {
2514
+ "data" : {
2515
+ "id" : "51872",
2516
+ "source" : "51730",
2517
+ "target" : "51780",
2518
+ "shared_name" : "Hex2Cer (interacts with) GM3",
2519
+ "shared_interaction" : "interacts with",
2520
+ "name" : "Hex2Cer (interacts with) GM3",
2521
+ "interaction" : "interacts with",
2522
+ "SUID" : 51872,
2523
+ "selected" : false
2524
+ },
2525
+ "selected" : false
2526
+ } ]
2527
+ }
2528
+ }
app/data/globalpathway.cyjs ADDED
The diff for this file is too large to render. See raw diff
 
app/data/lipidclassproperties.csv ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LbmClass,Categories,AcylChain,AlkylChain,SphingoChain,ExtraAcylChain,TotalChain
2
+ Undefined,Undefined,0,0,0,0,0
3
+ Others,Others,0,0,0,0,0
4
+ Unknown,Unknown,0,0,0,0,0
5
+ SPLASH,SPLASH,0,0,0,0,0
6
+ FA,Fatty acyls,1,0,0,0,1
7
+ FAHFA,Fatty acyls,1,0,0,1,1
8
+ OxFA,Fatty acyls,1,0,0,0,1
9
+ CAR,Fatty acyls,1,0,0,0,1
10
+ NAE,Fatty acyls,1,0,0,0,1
11
+ NAGly,Fatty acyls,1,0,0,1,1
12
+ NAGlySer,Fatty acyls,1,0,0,1,1
13
+ NAOrn,Fatty acyls,1,0,0,1,1
14
+ NAPhe,Fatty acyls,1,0,0,1,1
15
+ NATau,Fatty acyls,1,0,0,1,1
16
+ PA,Glycerophospholipids,2,0,0,0,2
17
+ PC,Glycerophospholipids,2,0,0,0,2
18
+ PE,Glycerophospholipids,2,0,0,0,2
19
+ PG,Glycerophospholipids,2,0,0,0,2
20
+ PI,Glycerophospholipids,2,0,0,0,2
21
+ PS,Glycerophospholipids,2,0,0,0,2
22
+ PT,Glycerophospholipids,2,0,0,0,2
23
+ BMP,Glycerophospholipids,2,0,0,0,2
24
+ HBMP,Glycerophospholipids,3,0,0,0,3
25
+ EtherPC,Glycerophospholipids,1,1,0,0,2
26
+ EtherPE,Glycerophospholipids,1,1,0,0,2
27
+ EtherPI,Glycerophospholipids,1,1,0,0,2
28
+ EtherPS,Glycerophospholipids,1,1,0,0,2
29
+ EtherPG,Glycerophospholipids,1,1,0,0,2
30
+ OxPA,Glycerophospholipids,2,0,0,0,2
31
+ OxPC,Glycerophospholipids,2,0,0,0,2
32
+ OxPS,Glycerophospholipids,2,0,0,0,2
33
+ OxPE,Glycerophospholipids,2,0,0,0,2
34
+ OxPG,Glycerophospholipids,2,0,0,0,2
35
+ OxPI,Glycerophospholipids,2,0,0,0,2
36
+ EtherOxPC,Glycerophospholipids,1,1,0,0,2
37
+ EtherOxPE,Glycerophospholipids,1,1,0,0,2
38
+ LPC,Glycerophospholipids,1,0,0,0,1
39
+ LPE,Glycerophospholipids,1,0,0,0,1
40
+ LPA,Glycerophospholipids,1,0,0,0,1
41
+ LPS,Glycerophospholipids,1,0,0,0,1
42
+ LPI,Glycerophospholipids,1,0,0,0,1
43
+ LPG,Glycerophospholipids,1,0,0,0,1
44
+ PMeOH,Glycerophospholipids,2,0,0,0,2
45
+ PEtOH,Glycerophospholipids,2,0,0,0,2
46
+ PBtOH,Glycerophospholipids,2,0,0,0,2
47
+ EtherLPC,Glycerophospholipids,0,1,0,0,1
48
+ EtherLPE,Glycerophospholipids,0,1,0,0,1
49
+ EtherLPG,Glycerophospholipids,0,1,0,0,1
50
+ EtherLPS,Glycerophospholipids,0,1,0,0,1
51
+ EtherLPI,Glycerophospholipids,0,1,0,0,1
52
+ LNAPE,Glycerophospholipids,2,0,0,0,2
53
+ LNAPS,Glycerophospholipids,2,0,0,0,2
54
+ MLCL,Glycerophospholipids,3,0,0,0,3
55
+ DLCL,Glycerophospholipids,2,0,0,0,2
56
+ CL,Glycerophospholipids,4,0,0,0,4
57
+ MG,Glycerolipids,1,0,0,0,1
58
+ DG,Glycerolipids,2,0,0,0,2
59
+ TG,Glycerolipids,3,0,0,0,3
60
+ MGDG,Glycerolipids,2,0,0,0,2
61
+ DGDG,Glycerolipids,2,0,0,0,2
62
+ SQDG,Glycerolipids,2,0,0,0,2
63
+ DGTS,Glycerolipids,2,0,0,0,2
64
+ DGTA,Glycerolipids,2,0,0,0,2
65
+ DGGA,Glycerolipids,2,0,0,0,2
66
+ ADGGA,Glycerolipids,3,0,0,0,3
67
+ LDGTS,Glycerolipids,1,0,0,0,1
68
+ LDGTA,Glycerolipids,1,0,0,0,1
69
+ LDGCC,Glycerolipids,1,0,0,0,1
70
+ DGCC,Glycerolipids,2,0,0,0,2
71
+ EtherMGDG,Glycerolipids,1,1,0,0,2
72
+ EtherDGDG,Glycerolipids,1,1,0,0,2
73
+ EtherTG,Glycerolipids,2,1,0,0,3
74
+ EtherDG,Glycerolipids,1,1,0,0,2
75
+ EtherSMGDG,Glycerolipids,1,1,0,0,2
76
+ SMGDG,Glycerolipids,2,0,0,0,2
77
+ Sph,Sphingolipids,1,0,0,0,1
78
+ DHSph,Sphingolipids,1,0,0,0,1
79
+ PhytoSph,Sphingolipids,1,0,0,0,1
80
+ SM,Sphingolipids,2,0,0,0,2
81
+ CerP,Sphingolipids,1,0,1,0,2
82
+ Cer_ADS,Sphingolipids,1,0,1,0,2
83
+ Cer_AS,Sphingolipids,1,0,1,0,2
84
+ Cer_BDS,Sphingolipids,1,0,1,0,2
85
+ Cer_BS,Sphingolipids,1,0,1,0,2
86
+ Cer_OS,Sphingolipids,1,0,1,0,2
87
+ Cer_EODS,Sphingolipids,1,0,1,1,2
88
+ Cer_EOS,Sphingolipids,1,0,1,1,2
89
+ Cer_NDS,Sphingolipids,1,0,1,0,2
90
+ Cer_NS,Sphingolipids,1,0,1,0,2
91
+ Cer_NP,Sphingolipids,1,0,1,0,2
92
+ Cer_AP,Sphingolipids,1,0,1,0,2
93
+ Cer_EBDS,Sphingolipids,1,0,1,1,2
94
+ Cer_HS,Sphingolipids,1,0,1,0,2
95
+ Cer_HDS,Sphingolipids,1,0,1,0,2
96
+ Cer_NDOS,Sphingolipids,1,0,1,0,2
97
+ HexCer_NS,Sphingolipids,1,0,1,0,2
98
+ HexCer_NDS,Sphingolipids,1,0,1,0,2
99
+ HexCer_AP,Sphingolipids,1,0,1,0,2
100
+ HexCer_HS,Sphingolipids,1,0,1,0,2
101
+ HexCer_HDS,Sphingolipids,1,0,1,0,2
102
+ HexCer_EOS,Sphingolipids,1,0,1,1,2
103
+ Hex2Cer,Sphingolipids,1,0,1,0,2
104
+ Hex3Cer,Sphingolipids,1,0,1,0,2
105
+ SHexCer,Sphingolipids,1,0,1,0,2
106
+ GM3,Sphingolipids,1,0,1,0,2
107
+ AHexCer,Sphingolipids,2,0,1,0,3
108
+ ASM,Sphingolipids,1,0,1,1,8
109
+ PE_Cer,Sphingolipids,2,0,0,0,2
110
+ PI_Cer,Sphingolipids,2,0,0,0,2
111
+ SL,Sphingolipids,2,0,0,0,2
112
+ Ac2PIM1,Glycerophospholipids,2,0,0,0,2
113
+ Ac2PIM2,Glycerophospholipids,2,0,0,0,2
114
+ Ac3PIM2,Glycerophospholipids,3,0,0,0,2
115
+ Ac4PIM2,Glycerophospholipids,4,0,0,0,2
116
+ LipidA,Saccharolipids,4,0,0,2,4
117
+ Vitamin_E,Prenol Lipids,0,0,0,0,0
118
+ Vitamin_D,Sterol Lipids,0,0,0,0,0
119
+ CoQ,Prenol Lipids,0,0,0,0,0
120
+ CE,Sterol Lipids,1,0,0,0,1
121
+ DCAE,Sterol Lipids,1,0,0,0,1
122
+ GDCAE,Sterol Lipids,1,0,0,0,1
123
+ GLCAE,Sterol Lipids,1,0,0,0,1
124
+ TDCAE,Sterol Lipids,1,0,0,0,1
125
+ TLCAE,Sterol Lipids,1,0,0,0,1
126
+ BileAcid,Sterol Lipids,0,0,0,0,0
127
+ VAE,Prenol Lipids,1,0,0,0,1
128
+ BRSE,Sterol Lipids,1,0,0,0,1
129
+ CASE,Sterol Lipids,1,0,0,0,1
130
+ SISE,Sterol Lipids,1,0,0,0,1
131
+ STSE,Sterol Lipids,1,0,0,0,1
132
+ AHexBRS,Sterol Lipids,1,0,0,0,1
133
+ AHexCAS,Sterol Lipids,1,0,0,0,1
134
+ AHexCS,Sterol Lipids,1,0,0,0,1
135
+ AHexSIS,Sterol Lipids,1,0,0,0,1
136
+ AHexSTS,Sterol Lipids,1,0,0,0,1
137
+ SPE,Unknown,0,0,0,0,0
138
+ SHex,Sterol Lipids,0,0,0,0,0
139
+ SPEHex,Unknown,0,0,0,0,0
140
+ SPGHex,Unknown,0,0,0,0,0
141
+ CSLPHex,Unknown,1,0,0,0,1
142
+ BRSLPHex,Unknown,1,0,0,0,1
143
+ CASLPHex,Unknown,1,0,0,0,1
144
+ SISLPHex,Unknown,1,0,0,0,1
145
+ STSLPHex,Unknown,1,0,0,0,1
146
+ CSPHex,Unknown,2,0,0,0,2
147
+ BRSPHex,Unknown,2,0,0,0,2
148
+ CASPHex,Unknown,2,0,0,0,2
149
+ SISPHex,Unknown,2,0,0,0,2
150
+ STSPHex,Unknown,2,0,0,0,2
151
+ SSulfate,Sterol Lipids,0,0,0,0,0
152
+ BAHex,Sterol Lipids,0,0,0,0,0
153
+ BASulfate,Sterol Lipids,0,0,0,0,0
154
+ LCAE,Sterol Lipids,1,0,0,0,1
155
+ KLCAE,Sterol Lipids,1,0,0,0,1
156
+ KDCAE,Sterol Lipids,1,0,0,0,1
157
+ MMPE,Glycerophospholipids,2,0,0,0,2
158
+ DMPE,Glycerophospholipids,2,0,0,0,2
159
+ MIPC,Unknown,2,0,0,0,2
160
+ EGSE,Sterol Lipids,1,0,0,0,1
161
+ DEGSE,Sterol Lipids,1,0,0,0,1
162
+ DSMSE,Sterol Lipids,1,0,0,0,1
163
+ OxTG,Glycerolipids,3,0,0,0,3
164
+ TG_EST,Glycerolipids,3,0,0,1,3
165
+ GPNAE,Glycerophospholipids,1,0,0,0,1
166
+ DGMG,Glycerolipids,2,0,0,0,2
167
+ MGMG,Glycerolipids,2,0,0,0,2
168
+ GD1a,Sphingolipids,2,0,0,0,2
169
+ GD1b,Sphingolipids,2,0,0,0,2
170
+ GD2,Sphingolipids,2,0,0,0,2
171
+ GD3,Sphingolipids,2,0,0,0,2
172
+ GM1,Sphingolipids,2,0,0,0,2
173
+ GQ1b,Sphingolipids,2,0,0,0,2
174
+ GT1b,Sphingolipids,2,0,0,0,2
175
+ NGcGM3,Sphingolipids,2,0,0,0,2
176
+ ST,Sterol Lipids,0,0,0,0,0
177
+ WE,Unknown,2,0,0,0,2
app/data/nodestyle1.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {"selector":"node", "css": {
3
+ "border-width": "1px",
4
+ "content": "data(id)",
5
+ "background-color": "gray",
6
+ "background-fit": "cover cover",
7
+ "shape" : "rectangle",
8
+ "background-image": "data(path)",
9
+ "label" : "data(shared_name)",
10
+ "height": "data(Height)",
11
+ "z-index" : 1,
12
+ "width": "data(Width)",
13
+ "background-fit": "cover cover",
14
+ "font-size" : "data(Label_size)"
15
+ }
16
+ },
17
+ {"selector":"node:selected", "css": {
18
+ "background-color": "white",
19
+ "width": 700,
20
+ "height": 700,
21
+ "background-image": "data(path)",
22
+ "background-fit": "contain",
23
+ "z-index" : 4
24
+
25
+ }
26
+ },
27
+ {"selector": "node[NumChildren<=1]", "css": {
28
+ "height": "10",
29
+ "width": "10"
30
+ }},
31
+ {"selector": "edge", "css": {
32
+ "line-color": "gray",
33
+ "label": "data(label)"
34
+ }}
35
+ ]
app/data/nodestyle2.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {"selector":"node", "css": {
3
+ "border-width": "1px",
4
+ "content": "data(id)",
5
+ "background-color": "data(color)",
6
+ "background-fit": "cover cover",
7
+ "shape" : "rectangle",
8
+ "background-image": "data(path)",
9
+ "label" : "data(shared_name)",
10
+ "height": "data(Height)",
11
+ "z-index" : 1,
12
+ "width": "data(Width)",
13
+ "background-fit": "cover cover",
14
+ "font-size" : "data(Label_size)"
15
+ }
16
+ },
17
+ {"selector":"node:selected", "css": {
18
+ "overlay-color": "white",
19
+ "border-width": "5px",
20
+ "overlay-opacity": 0.1,
21
+ "z-index" : 4
22
+ }
23
+ },
24
+ {"selector": "node[NumChildren<=1]", "css": {
25
+ "height": "10",
26
+ "width": "10"
27
+ }},
28
+ {"selector": "edge", "css": {
29
+ "line-color": "gray",
30
+ "label": "data(label)"
31
+ }}
32
+ ]
app/data/remodeling.cyjs ADDED
@@ -0,0 +1,2194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version" : "1.0",
3
+ "generated_by" : "cytoscape-3.10.0",
4
+ "target_cytoscapejs_version" : "~2.1",
5
+ "data" : {
6
+ "shared_name" : "Network",
7
+ "name" : "Network",
8
+ "SUID" : 1813,
9
+ "__Annotations" : [ "" ],
10
+ "selected" : true
11
+ },
12
+ "elements" : {
13
+ "nodes" : [ {
14
+ "data" : {
15
+ "id" : "9718",
16
+ "Shape" : "Ellipse",
17
+ "Fillcolor" : "#ffffff",
18
+ "Color" : "",
19
+ "label" : "",
20
+ "Label_size" : 1,
21
+ "shared_name" : "Node1",
22
+ "LabelFont" : "",
23
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
24
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
25
+ "name" : "Node1",
26
+ "Ensembl_ID" : "",
27
+ "SUID" : 9718,
28
+ "Height" : 1,
29
+ "Width" : 1,
30
+ "selected" : false
31
+ },
32
+ "position" : {
33
+ "x" : -273.9915188357254,
34
+ "y" : 234.15540471996576
35
+ },
36
+ "selected" : false
37
+ }, {
38
+ "data" : {
39
+ "id" : "9712",
40
+ "Shape" : "Ellipse",
41
+ "Fillcolor" : "#ffffff",
42
+ "Color" : "",
43
+ "label" : "",
44
+ "Label_size" : 1,
45
+ "shared_name" : "Node1",
46
+ "LabelFont" : "",
47
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
48
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
49
+ "name" : "Node1",
50
+ "Ensembl_ID" : "",
51
+ "SUID" : 9712,
52
+ "Height" : 1,
53
+ "Width" : 1,
54
+ "selected" : false
55
+ },
56
+ "position" : {
57
+ "x" : -576.9410734551657,
58
+ "y" : 236.94796169024704
59
+ },
60
+ "selected" : false
61
+ }, {
62
+ "data" : {
63
+ "id" : "2766",
64
+ "Shape" : "",
65
+ "Fillcolor" : "",
66
+ "Color" : "",
67
+ "label" : "CDP-DAG",
68
+ "Label_size" : 30,
69
+ "shared_name" : "CDP-DAG",
70
+ "LabelFont" : "",
71
+ "path" : "http://localhost:9000/plot?str1=CDP-DAG.svg",
72
+ "pathpng" : "http://localhost:9000/png?str2=(CDP-DAG).png",
73
+ "name" : "CDP-DAG",
74
+ "Ensembl_ID" : "",
75
+ "SUID" : 2766,
76
+ "Height" : 140,
77
+ "Width" : 140,
78
+ "selected" : false
79
+ },
80
+ "position" : {
81
+ "x" : 474.81548861645194,
82
+ "y" : 100.68548506718597
83
+ },
84
+ "selected" : false
85
+ }, {
86
+ "data" : {
87
+ "id" : "2733",
88
+ "NumChildren" : 2,
89
+ "Shape" : "",
90
+ "Fillcolor" : "",
91
+ "Color" : "",
92
+ "label" : "G3P",
93
+ "Label_size" : 30,
94
+ "shared_name" : "G3P",
95
+ "LabelFont" : "",
96
+ "path" : "http://localhost:9000/plot?str1=G3P.svg",
97
+ "NumDescendents" : 2,
98
+ "pathpng" : "http://localhost:9000/png?str2=(G3P).png",
99
+ "name" : "G3P",
100
+ "Ensembl_ID" : "",
101
+ "SUID" : 2733,
102
+ "Height" : 140,
103
+ "Width" : 140,
104
+ "selected" : false
105
+ },
106
+ "position" : {
107
+ "x" : -101.0,
108
+ "y" : -484.0
109
+ },
110
+ "selected" : false
111
+ }, {
112
+ "data" : {
113
+ "id" : "2700",
114
+ "NumChildren" : 2,
115
+ "Shape" : "",
116
+ "Fillcolor" : "",
117
+ "Color" : "",
118
+ "label" : "LPA",
119
+ "Label_size" : 30,
120
+ "shared_name" : "LPA",
121
+ "LabelFont" : "",
122
+ "path" : "http://localhost:9000/plot?str1=LPA.svg",
123
+ "NumDescendents" : 2,
124
+ "pathpng" : "http://localhost:9000/png?str2=(LPA).png",
125
+ "name" : "LPA",
126
+ "Ensembl_ID" : "",
127
+ "SUID" : 2700,
128
+ "Height" : 140,
129
+ "Width" : 140,
130
+ "selected" : false
131
+ },
132
+ "position" : {
133
+ "x" : -102.0,
134
+ "y" : -213.0
135
+ },
136
+ "selected" : false
137
+ }, {
138
+ "data" : {
139
+ "id" : "2667",
140
+ "NumChildren" : 2,
141
+ "Shape" : "",
142
+ "Fillcolor" : "",
143
+ "Color" : "",
144
+ "label" : "PA",
145
+ "Label_size" : 30,
146
+ "shared_name" : "PA",
147
+ "LabelFont" : "",
148
+ "path" : "http://localhost:9000/plot?str1=PA.svg",
149
+ "NumDescendents" : 2,
150
+ "pathpng" : "http://localhost:9000/png?str2=(PA).png",
151
+ "name" : "PA",
152
+ "Ensembl_ID" : "",
153
+ "SUID" : 2667,
154
+ "Height" : 140,
155
+ "Width" : 140,
156
+ "selected" : false
157
+ },
158
+ "position" : {
159
+ "x" : -97.0,
160
+ "y" : 99.4042444238604
161
+ },
162
+ "selected" : false
163
+ }, {
164
+ "data" : {
165
+ "id" : "2634",
166
+ "NumChildren" : 2,
167
+ "Shape" : "",
168
+ "Fillcolor" : "",
169
+ "Color" : "",
170
+ "label" : "DG",
171
+ "Label_size" : 30,
172
+ "shared_name" : "DG",
173
+ "LabelFont" : "",
174
+ "path" : "http://localhost:9000/plot?str1=DG.svg",
175
+ "NumDescendents" : 2,
176
+ "pathpng" : "http://localhost:9000/png?str2=(DG).png",
177
+ "name" : "DG",
178
+ "Ensembl_ID" : "",
179
+ "SUID" : 2634,
180
+ "Height" : 140,
181
+ "Width" : 140,
182
+ "selected" : false
183
+ },
184
+ "position" : {
185
+ "x" : -425.3298380139844,
186
+ "y" : 105.48855061769882
187
+ },
188
+ "selected" : false
189
+ }, {
190
+ "data" : {
191
+ "id" : "2601",
192
+ "NumChildren" : 2,
193
+ "Shape" : "",
194
+ "Fillcolor" : "",
195
+ "Color" : "",
196
+ "label" : "TG",
197
+ "Label_size" : 30,
198
+ "shared_name" : "TG",
199
+ "LabelFont" : "",
200
+ "path" : "http://localhost:9000/plot?str1=TG.svg",
201
+ "NumDescendents" : 2,
202
+ "pathpng" : "http://localhost:9000/png?str2=(TG).png",
203
+ "name" : "TG",
204
+ "Ensembl_ID" : "",
205
+ "SUID" : 2601,
206
+ "Height" : 140,
207
+ "Width" : 140,
208
+ "selected" : false
209
+ },
210
+ "position" : {
211
+ "x" : -913.7403237331314,
212
+ "y" : 109.4160849877864
213
+ },
214
+ "selected" : false
215
+ }, {
216
+ "data" : {
217
+ "id" : "2568",
218
+ "NumChildren" : 2,
219
+ "Shape" : "",
220
+ "Fillcolor" : "",
221
+ "Color" : "",
222
+ "label" : "PS",
223
+ "Label_size" : 30,
224
+ "shared_name" : "PS",
225
+ "LabelFont" : "",
226
+ "path" : "http://localhost:9000/plot?str1=PS.svg",
227
+ "NumDescendents" : 2,
228
+ "pathpng" : "http://localhost:9000/png?str2=(PS).png",
229
+ "name" : "PS",
230
+ "Ensembl_ID" : "",
231
+ "SUID" : 2568,
232
+ "Height" : 140,
233
+ "Width" : 140,
234
+ "selected" : false
235
+ },
236
+ "position" : {
237
+ "x" : -45.234103120544084,
238
+ "y" : 355.4797945083172
239
+ },
240
+ "selected" : false
241
+ }, {
242
+ "data" : {
243
+ "id" : "2535",
244
+ "NumChildren" : 2,
245
+ "Shape" : "",
246
+ "Fillcolor" : "",
247
+ "Color" : "",
248
+ "label" : "PI",
249
+ "Label_size" : 30,
250
+ "shared_name" : "PI",
251
+ "LabelFont" : "",
252
+ "path" : "http://localhost:9000/plot?str1=PI.svg",
253
+ "NumDescendents" : 2,
254
+ "pathpng" : "http://localhost:9000/png?str2=(PI).png",
255
+ "name" : "PI",
256
+ "Ensembl_ID" : "",
257
+ "SUID" : 2535,
258
+ "Height" : 140,
259
+ "Width" : 140,
260
+ "selected" : false
261
+ },
262
+ "position" : {
263
+ "x" : 415.2298114621793,
264
+ "y" : 365.26398275891654
265
+ },
266
+ "selected" : false
267
+ }, {
268
+ "data" : {
269
+ "id" : "2502",
270
+ "NumChildren" : 2,
271
+ "Shape" : "",
272
+ "Fillcolor" : "",
273
+ "Color" : "",
274
+ "label" : "PG",
275
+ "Label_size" : 30,
276
+ "shared_name" : "PG",
277
+ "LabelFont" : "",
278
+ "path" : "http://localhost:9000/plot?str1=PG.svg",
279
+ "NumDescendents" : 2,
280
+ "pathpng" : "http://localhost:9000/png?str2=(PG).png",
281
+ "name" : "PG",
282
+ "Ensembl_ID" : "",
283
+ "SUID" : 2502,
284
+ "Height" : 140,
285
+ "Width" : 140,
286
+ "selected" : false
287
+ },
288
+ "position" : {
289
+ "x" : 911.9564898996988,
290
+ "y" : 367.06648922866503
291
+ },
292
+ "selected" : false
293
+ }, {
294
+ "data" : {
295
+ "id" : "2469",
296
+ "NumChildren" : 2,
297
+ "Shape" : "",
298
+ "Fillcolor" : "",
299
+ "Color" : "",
300
+ "label" : "CL",
301
+ "Label_size" : 30,
302
+ "shared_name" : "CL",
303
+ "LabelFont" : "",
304
+ "path" : "http://localhost:9000/plot?str1=CL.svg",
305
+ "NumDescendents" : 2,
306
+ "pathpng" : "http://localhost:9000/png?str2=(CL).png",
307
+ "name" : "CL",
308
+ "Ensembl_ID" : "",
309
+ "SUID" : 2469,
310
+ "Height" : 140,
311
+ "Width" : 140,
312
+ "selected" : false
313
+ },
314
+ "position" : {
315
+ "x" : 1288.832117651606,
316
+ "y" : 365.8227465893218
317
+ },
318
+ "selected" : false
319
+ }, {
320
+ "data" : {
321
+ "id" : "2436",
322
+ "NumChildren" : 2,
323
+ "Shape" : "",
324
+ "Fillcolor" : "",
325
+ "Color" : "",
326
+ "label" : "LCL",
327
+ "Label_size" : 30,
328
+ "shared_name" : "LCL",
329
+ "LabelFont" : "",
330
+ "path" : "http://localhost:9000/plot?str1=LCL.svg",
331
+ "NumDescendents" : 2,
332
+ "pathpng" : "http://localhost:9000/png?str2=(LCL).png",
333
+ "name" : "LCL",
334
+ "Ensembl_ID" : "",
335
+ "SUID" : 2436,
336
+ "Height" : 140,
337
+ "Width" : 140,
338
+ "selected" : false
339
+ },
340
+ "position" : {
341
+ "x" : 1297.7467134346807,
342
+ "y" : 837.058085652
343
+ },
344
+ "selected" : false
345
+ }, {
346
+ "data" : {
347
+ "id" : "2403",
348
+ "NumChildren" : 2,
349
+ "Shape" : "",
350
+ "Fillcolor" : "",
351
+ "Color" : "",
352
+ "label" : "LPG",
353
+ "Label_size" : 30,
354
+ "shared_name" : "LPG",
355
+ "LabelFont" : "",
356
+ "path" : "http://localhost:9000/plot?str1=LPG.svg",
357
+ "NumDescendents" : 2,
358
+ "pathpng" : "http://localhost:9000/png?str2=(LPG).png",
359
+ "name" : "LPG",
360
+ "Ensembl_ID" : "",
361
+ "SUID" : 2403,
362
+ "Height" : 140,
363
+ "Width" : 140,
364
+ "selected" : false
365
+ },
366
+ "position" : {
367
+ "x" : 915.0,
368
+ "y" : 840.0
369
+ },
370
+ "selected" : false
371
+ }, {
372
+ "data" : {
373
+ "id" : "2370",
374
+ "NumChildren" : 2,
375
+ "Shape" : "",
376
+ "Fillcolor" : "",
377
+ "Color" : "",
378
+ "label" : "LPI",
379
+ "Label_size" : 30,
380
+ "shared_name" : "LPI",
381
+ "LabelFont" : "",
382
+ "path" : "http://localhost:9000/plot?str1=LPI.svg",
383
+ "NumDescendents" : 2,
384
+ "pathpng" : "http://localhost:9000/png?str2=(LPI).png",
385
+ "name" : "LPI",
386
+ "Ensembl_ID" : "",
387
+ "SUID" : 2370,
388
+ "Height" : 140,
389
+ "Width" : 140,
390
+ "selected" : false
391
+ },
392
+ "position" : {
393
+ "x" : 422.5101507741127,
394
+ "y" : 835.051231403835
395
+ },
396
+ "selected" : false
397
+ }, {
398
+ "data" : {
399
+ "id" : "2337",
400
+ "NumChildren" : 2,
401
+ "Shape" : "",
402
+ "Fillcolor" : "",
403
+ "Color" : "",
404
+ "label" : "LPS",
405
+ "Label_size" : 30,
406
+ "shared_name" : "LPS",
407
+ "LabelFont" : "",
408
+ "path" : "http://localhost:9000/plot?str1=LPS.svg",
409
+ "NumDescendents" : 2,
410
+ "pathpng" : "http://localhost:9000/png?str2=(LPS).png",
411
+ "name" : "LPS",
412
+ "Ensembl_ID" : "",
413
+ "SUID" : 2337,
414
+ "Height" : 140,
415
+ "Width" : 140,
416
+ "selected" : false
417
+ },
418
+ "position" : {
419
+ "x" : -38.58992827669451,
420
+ "y" : 858.4176835336768
421
+ },
422
+ "selected" : false
423
+ }, {
424
+ "data" : {
425
+ "id" : "2304",
426
+ "NumChildren" : 2,
427
+ "Shape" : "",
428
+ "Fillcolor" : "",
429
+ "Color" : "",
430
+ "label" : "PE",
431
+ "Label_size" : 30,
432
+ "shared_name" : "PE",
433
+ "LabelFont" : "",
434
+ "path" : "http://localhost:9000/plot?str1=PE.svg",
435
+ "NumDescendents" : 2,
436
+ "pathpng" : "http://localhost:9000/png?str2=(PE).png",
437
+ "name" : "PE",
438
+ "Ensembl_ID" : "",
439
+ "SUID" : 2304,
440
+ "Height" : 140,
441
+ "Width" : 140,
442
+ "selected" : false
443
+ },
444
+ "position" : {
445
+ "x" : -422.7657885698363,
446
+ "y" : 358.956914184162
447
+ },
448
+ "selected" : false
449
+ }, {
450
+ "data" : {
451
+ "id" : "2271",
452
+ "NumChildren" : 2,
453
+ "Shape" : "",
454
+ "Fillcolor" : "",
455
+ "Color" : "",
456
+ "label" : "LPE",
457
+ "Label_size" : 30,
458
+ "shared_name" : "LPE",
459
+ "LabelFont" : "",
460
+ "path" : "http://localhost:9000/plot?str1=LPE.svg",
461
+ "NumDescendents" : 2,
462
+ "pathpng" : "http://localhost:9000/png?str2=(LPE).png",
463
+ "name" : "LPE",
464
+ "Ensembl_ID" : "",
465
+ "SUID" : 2271,
466
+ "Height" : 140,
467
+ "Width" : 140,
468
+ "selected" : false
469
+ },
470
+ "position" : {
471
+ "x" : -419.56358051846837,
472
+ "y" : 858.0035663552187
473
+ },
474
+ "selected" : false
475
+ }, {
476
+ "data" : {
477
+ "id" : "2238",
478
+ "NumChildren" : 2,
479
+ "Shape" : "",
480
+ "Fillcolor" : "",
481
+ "Color" : "",
482
+ "label" : "PC",
483
+ "Label_size" : 30,
484
+ "shared_name" : "PC",
485
+ "LabelFont" : "",
486
+ "path" : "http://localhost:9000/plot?str1=PC.svg",
487
+ "NumDescendents" : 2,
488
+ "pathpng" : "http://localhost:9000/png?str2=(PC).png",
489
+ "name" : "PC",
490
+ "Ensembl_ID" : "",
491
+ "SUID" : 2238,
492
+ "Height" : 140,
493
+ "Width" : 140,
494
+ "selected" : false
495
+ },
496
+ "position" : {
497
+ "x" : -917.8982617905904,
498
+ "y" : 358.95640210560117
499
+ },
500
+ "selected" : false
501
+ }, {
502
+ "data" : {
503
+ "id" : "2205",
504
+ "NumChildren" : 2,
505
+ "Shape" : "",
506
+ "Fillcolor" : "",
507
+ "Color" : "",
508
+ "label" : "LPC",
509
+ "Label_size" : 30,
510
+ "shared_name" : "LPC",
511
+ "LabelFont" : "",
512
+ "path" : "http://localhost:9000/plot?str1=LPC.svg",
513
+ "NumDescendents" : 2,
514
+ "pathpng" : "http://localhost:9000/png?str2=(LPC).png",
515
+ "name" : "LPC",
516
+ "Ensembl_ID" : "",
517
+ "SUID" : 2205,
518
+ "Height" : 140,
519
+ "Width" : 140,
520
+ "selected" : false
521
+ },
522
+ "position" : {
523
+ "x" : -915.3385931081847,
524
+ "y" : 861.8137318171327
525
+ },
526
+ "selected" : false
527
+ }, {
528
+ "data" : {
529
+ "id" : "2164",
530
+ "NumChildren" : 4,
531
+ "Shape" : "",
532
+ "Fillcolor" : "",
533
+ "Color" : "",
534
+ "label" : "",
535
+ "Label_size" : 1,
536
+ "shared_name" : "Group1",
537
+ "LabelFont" : "",
538
+ "path" : "http://localhost:9000/plot?str1=Group1.svg",
539
+ "NumDescendents" : 4,
540
+ "pathpng" : "http://localhost:9000/png?str2=(Group1).png",
541
+ "name" : "Group1",
542
+ "Ensembl_ID" : "",
543
+ "SUID" : 2164,
544
+ "Height" : 1,
545
+ "Width" : 1,
546
+ "selected" : false
547
+ },
548
+ "position" : {
549
+ "x" : 338.66881667066093,
550
+ "y" : -352.5
551
+ },
552
+ "selected" : false
553
+ }, {
554
+ "data" : {
555
+ "id" : "2162",
556
+ "Shape" : "Ellipse",
557
+ "Fillcolor" : "#ffffff",
558
+ "Color" : "",
559
+ "label" : "",
560
+ "Label_size" : 1,
561
+ "shared_name" : "Node1",
562
+ "LabelFont" : "",
563
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
564
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
565
+ "name" : "Node1",
566
+ "Ensembl_ID" : "",
567
+ "SUID" : 2162,
568
+ "Height" : 1,
569
+ "Width" : 1,
570
+ "selected" : false
571
+ },
572
+ "position" : {
573
+ "x" : -99.25383902447582,
574
+ "y" : -348.321742099095
575
+ },
576
+ "selected" : false
577
+ }, {
578
+ "data" : {
579
+ "id" : "2118",
580
+ "NumChildren" : 5,
581
+ "Shape" : "",
582
+ "Fillcolor" : "",
583
+ "Color" : "",
584
+ "label" : "",
585
+ "Label_size" : 1,
586
+ "shared_name" : "Group2",
587
+ "LabelFont" : "",
588
+ "path" : "http://localhost:9000/plot?str1=Group2.svg",
589
+ "NumDescendents" : 5,
590
+ "pathpng" : "http://localhost:9000/png?str2=(Group2).png",
591
+ "name" : "Group2",
592
+ "Ensembl_ID" : "",
593
+ "SUID" : 2118,
594
+ "Height" : 1,
595
+ "Width" : 1,
596
+ "selected" : false
597
+ },
598
+ "position" : {
599
+ "x" : 418.33440833533047,
600
+ "y" : -64.5
601
+ },
602
+ "selected" : false
603
+ }, {
604
+ "data" : {
605
+ "id" : "2116",
606
+ "Shape" : "Ellipse",
607
+ "Fillcolor" : "#ffffff",
608
+ "Color" : "",
609
+ "label" : "",
610
+ "Label_size" : 1,
611
+ "shared_name" : "Node1",
612
+ "LabelFont" : "",
613
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
614
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
615
+ "name" : "Node1",
616
+ "Ensembl_ID" : "",
617
+ "SUID" : 2116,
618
+ "Height" : 1,
619
+ "Width" : 1,
620
+ "selected" : false
621
+ },
622
+ "position" : {
623
+ "x" : -100.82390858447873,
624
+ "y" : -58.32605874702458
625
+ },
626
+ "selected" : false
627
+ }, {
628
+ "data" : {
629
+ "id" : "2114",
630
+ "Shape" : "",
631
+ "Fillcolor" : "",
632
+ "Color" : "",
633
+ "label" : "AGPAT2",
634
+ "Label_size" : 30,
635
+ "shared_name" : "AGPAT2",
636
+ "LabelFont" : "",
637
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000026922.svg",
638
+ "pathpng" : "http://localhost:9000/png?str2=(AGPAT2).png",
639
+ "name" : "AGPAT2",
640
+ "Ensembl_ID" : "ENSMUSG00000026922",
641
+ "SUID" : 2114,
642
+ "Height" : 140,
643
+ "Width" : 140,
644
+ "selected" : false
645
+ },
646
+ "position" : {
647
+ "x" : 263.0,
648
+ "y" : -63.0
649
+ },
650
+ "selected" : false
651
+ }, {
652
+ "data" : {
653
+ "id" : "2112",
654
+ "Shape" : "",
655
+ "Fillcolor" : "",
656
+ "Color" : "",
657
+ "label" : "LPCAT1",
658
+ "Label_size" : 30,
659
+ "shared_name" : "LPCAT1",
660
+ "LabelFont" : "",
661
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000021608.svg",
662
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT1).png",
663
+ "name" : "LPCAT1",
664
+ "Ensembl_ID" : "ENSMUSG00000021608",
665
+ "SUID" : 2112,
666
+ "Height" : 140,
667
+ "Width" : 140,
668
+ "selected" : false
669
+ },
670
+ "position" : {
671
+ "x" : 572.1337633341321,
672
+ "y" : -66.0
673
+ },
674
+ "selected" : false
675
+ }, {
676
+ "data" : {
677
+ "id" : "2110",
678
+ "Shape" : "",
679
+ "Fillcolor" : "",
680
+ "Color" : "",
681
+ "label" : "LPCAT4",
682
+ "Label_size" : 30,
683
+ "shared_name" : "LPCAT4",
684
+ "LabelFont" : "",
685
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000027134.svg",
686
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
687
+ "name" : "LPCAT4",
688
+ "Ensembl_ID" : "ENSMUSG00000027134",
689
+ "SUID" : 2110,
690
+ "Height" : 140,
691
+ "Width" : 140,
692
+ "selected" : false
693
+ },
694
+ "position" : {
695
+ "x" : 725.6688166706609,
696
+ "y" : -65.53505333652873
697
+ },
698
+ "selected" : false
699
+ }, {
700
+ "data" : {
701
+ "id" : "2108",
702
+ "Shape" : "",
703
+ "Fillcolor" : "",
704
+ "Color" : "",
705
+ "label" : "AGPAT1",
706
+ "Label_size" : 30,
707
+ "shared_name" : "AGPAT1",
708
+ "LabelFont" : "",
709
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000034254.svg",
710
+ "pathpng" : "http://localhost:9000/png?str2=(AGPAT1).png",
711
+ "name" : "AGPAT1",
712
+ "Ensembl_ID" : "ENSMUSG00000034254",
713
+ "SUID" : 2108,
714
+ "Height" : 140,
715
+ "Width" : 140,
716
+ "selected" : false
717
+ },
718
+ "position" : {
719
+ "x" : 111.0,
720
+ "y" : -64.0
721
+ },
722
+ "selected" : false
723
+ }, {
724
+ "data" : {
725
+ "id" : "2106",
726
+ "Shape" : "",
727
+ "Fillcolor" : "",
728
+ "Color" : "",
729
+ "label" : "AGPAT3",
730
+ "Label_size" : 30,
731
+ "shared_name" : "AGPAT3",
732
+ "LabelFont" : "",
733
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000001211.svg",
734
+ "pathpng" : "http://localhost:9000/png?str2=(AGPAT3).png",
735
+ "name" : "AGPAT3",
736
+ "Ensembl_ID" : "ENSMUSG00000001211",
737
+ "SUID" : 2106,
738
+ "Height" : 140,
739
+ "Width" : 140,
740
+ "selected" : false
741
+ },
742
+ "position" : {
743
+ "x" : 420.0,
744
+ "y" : -64.0
745
+ },
746
+ "selected" : false
747
+ }, {
748
+ "data" : {
749
+ "id" : "2104",
750
+ "Shape" : "",
751
+ "Fillcolor" : "",
752
+ "Color" : "",
753
+ "label" : "GPAT3",
754
+ "Label_size" : 30,
755
+ "shared_name" : "GPAT3",
756
+ "LabelFont" : "",
757
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000029314.svg",
758
+ "pathpng" : "http://localhost:9000/png?str2=(GPAT3).png",
759
+ "name" : "GPAT3",
760
+ "Ensembl_ID" : "ENSMUSG00000029314",
761
+ "SUID" : 2104,
762
+ "Height" : 140,
763
+ "Width" : 140,
764
+ "selected" : false
765
+ },
766
+ "position" : {
767
+ "x" : 420.0,
768
+ "y" : -353.0
769
+ },
770
+ "selected" : false
771
+ }, {
772
+ "data" : {
773
+ "id" : "2102",
774
+ "Shape" : "",
775
+ "Fillcolor" : "",
776
+ "Color" : "",
777
+ "label" : "GPAT2",
778
+ "Label_size" : 30,
779
+ "shared_name" : "GPAT2",
780
+ "LabelFont" : "",
781
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000046338.svg",
782
+ "pathpng" : "http://localhost:9000/png?str2=(GPAT2).png",
783
+ "name" : "GPAT2",
784
+ "Ensembl_ID" : "ENSMUSG00000046338",
785
+ "SUID" : 2102,
786
+ "Height" : 140,
787
+ "Width" : 140,
788
+ "selected" : false
789
+ },
790
+ "position" : {
791
+ "x" : 260.0,
792
+ "y" : -353.0
793
+ },
794
+ "selected" : false
795
+ }, {
796
+ "data" : {
797
+ "id" : "2100",
798
+ "Shape" : "",
799
+ "Fillcolor" : "",
800
+ "Color" : "",
801
+ "label" : "GPAM",
802
+ "Label_size" : 30,
803
+ "shared_name" : "GPAM",
804
+ "LabelFont" : "",
805
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000024978.svg",
806
+ "pathpng" : "http://localhost:9000/png?str2=(GPAM).png",
807
+ "name" : "GPAM",
808
+ "Ensembl_ID" : "ENSMUSG00000024978",
809
+ "SUID" : 2100,
810
+ "Height" : 140,
811
+ "Width" : 140,
812
+ "selected" : false
813
+ },
814
+ "position" : {
815
+ "x" : 105.13376333413218,
816
+ "y" : -352.0
817
+ },
818
+ "selected" : false
819
+ }, {
820
+ "data" : {
821
+ "id" : "2098",
822
+ "Shape" : "",
823
+ "Fillcolor" : "",
824
+ "Color" : "",
825
+ "label" : "GPAT4",
826
+ "Label_size" : 30,
827
+ "shared_name" : "GPAT4",
828
+ "LabelFont" : "",
829
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000031545.svg",
830
+ "pathpng" : "http://localhost:9000/png?str2=(GPAT4).png",
831
+ "name" : "GPAT4",
832
+ "Ensembl_ID" : "ENSMUSG00000031545",
833
+ "SUID" : 2098,
834
+ "Height" : 140,
835
+ "Width" : 140,
836
+ "selected" : false
837
+ },
838
+ "position" : {
839
+ "x" : 572.2038700071896,
840
+ "y" : -352.40129000239654
841
+ },
842
+ "selected" : false
843
+ }, {
844
+ "data" : {
845
+ "id" : "2096",
846
+ "Shape" : "",
847
+ "Fillcolor" : "",
848
+ "Color" : "",
849
+ "label" : "LCLAT1",
850
+ "Label_size" : 30,
851
+ "shared_name" : "LCLAT1",
852
+ "LabelFont" : "",
853
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000054469.svg",
854
+ "pathpng" : "http://localhost:9000/png?str2=(LCLAT1).png",
855
+ "name" : "LCLAT1",
856
+ "Ensembl_ID" : "ENSMUSG00000054469",
857
+ "SUID" : 2096,
858
+ "Height" : 140,
859
+ "Width" : 140,
860
+ "selected" : false
861
+ },
862
+ "position" : {
863
+ "x" : 1134.3519353149259,
864
+ "y" : 577.9726862021414
865
+ },
866
+ "selected" : false
867
+ }, {
868
+ "data" : {
869
+ "id" : "2094",
870
+ "Shape" : "Ellipse",
871
+ "Fillcolor" : "#ffffff",
872
+ "Color" : "",
873
+ "label" : "",
874
+ "Label_size" : 1,
875
+ "shared_name" : "Node1",
876
+ "LabelFont" : "",
877
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
878
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
879
+ "name" : "Node1",
880
+ "Ensembl_ID" : "",
881
+ "SUID" : 2094,
882
+ "Height" : 1,
883
+ "Width" : 1,
884
+ "selected" : false
885
+ },
886
+ "position" : {
887
+ "x" : 1247.689408087844,
888
+ "y" : 578.6061939673187
889
+ },
890
+ "selected" : false
891
+ }, {
892
+ "data" : {
893
+ "id" : "2078",
894
+ "Shape" : "",
895
+ "Fillcolor" : "",
896
+ "Color" : "",
897
+ "label" : "LPGAT1",
898
+ "Label_size" : 30,
899
+ "shared_name" : "LPGAT1",
900
+ "LabelFont" : "",
901
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000026623.svg",
902
+ "pathpng" : "http://localhost:9000/png?str2=(LPGAT1).png",
903
+ "name" : "LPGAT1",
904
+ "Ensembl_ID" : "ENSMUSG00000026623",
905
+ "SUID" : 2078,
906
+ "Height" : 140,
907
+ "Width" : 140,
908
+ "selected" : false
909
+ },
910
+ "position" : {
911
+ "x" : 719.0,
912
+ "y" : 390.0
913
+ },
914
+ "selected" : false
915
+ }, {
916
+ "data" : {
917
+ "id" : "2080",
918
+ "Shape" : "",
919
+ "Fillcolor" : "",
920
+ "Color" : "",
921
+ "label" : "LPCAT1",
922
+ "Label_size" : 30,
923
+ "shared_name" : "LPCAT1",
924
+ "LabelFont" : "",
925
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000021608.svg",
926
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT1).png",
927
+ "name" : "LPCAT1",
928
+ "Ensembl_ID" : "ENSMUSG00000021608",
929
+ "SUID" : 2080,
930
+ "Height" : 140,
931
+ "Width" : 140,
932
+ "selected" : false
933
+ },
934
+ "position" : {
935
+ "x" : 717.0,
936
+ "y" : 537.0
937
+ },
938
+ "selected" : false
939
+ }, {
940
+ "data" : {
941
+ "id" : "2074",
942
+ "Shape" : "",
943
+ "Fillcolor" : "",
944
+ "Color" : "",
945
+ "label" : "LPCAT4",
946
+ "Label_size" : 30,
947
+ "shared_name" : "LPCAT4",
948
+ "LabelFont" : "",
949
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000027134.svg",
950
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
951
+ "name" : "LPCAT4",
952
+ "Ensembl_ID" : "ENSMUSG00000027134",
953
+ "SUID" : 2074,
954
+ "Height" : 140,
955
+ "Width" : 140,
956
+ "selected" : false
957
+ },
958
+ "position" : {
959
+ "x" : 717.0,
960
+ "y" : 682.0
961
+ },
962
+ "selected" : false
963
+ }, {
964
+ "data" : {
965
+ "id" : "2076",
966
+ "Shape" : "",
967
+ "Fillcolor" : "",
968
+ "Color" : "",
969
+ "label" : "LCLAT1",
970
+ "Label_size" : 30,
971
+ "shared_name" : "LCLAT1",
972
+ "LabelFont" : "",
973
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000054469.svg",
974
+ "pathpng" : "http://localhost:9000/png?str2=(LCLAT1).png",
975
+ "name" : "LCLAT1",
976
+ "Ensembl_ID" : "ENSMUSG00000054469",
977
+ "SUID" : 2076,
978
+ "Height" : 140,
979
+ "Width" : 140,
980
+ "selected" : false
981
+ },
982
+ "position" : {
983
+ "x" : 719.0,
984
+ "y" : 827.0
985
+ },
986
+ "selected" : false
987
+ }, {
988
+ "data" : {
989
+ "id" : "2045",
990
+ "NumChildren" : 4,
991
+ "Shape" : "",
992
+ "Fillcolor" : "",
993
+ "Color" : "",
994
+ "label" : "",
995
+ "Label_size" : 1,
996
+ "shared_name" : "Group3",
997
+ "LabelFont" : "",
998
+ "path" : "http://localhost:9000/plot?str1=Group3.svg",
999
+ "NumDescendents" : 4,
1000
+ "pathpng" : "http://localhost:9000/png?str2=(Group3).png",
1001
+ "name" : "",
1002
+ "Ensembl_ID" : "",
1003
+ "SUID" : 2045,
1004
+ "Height" : 1,
1005
+ "Width" : 1,
1006
+ "selected" : false
1007
+ },
1008
+ "position" : {
1009
+ "x" : 718.0,
1010
+ "y" : 608.5
1011
+ },
1012
+ "selected" : false
1013
+ }, {
1014
+ "data" : {
1015
+ "id" : "2043",
1016
+ "Shape" : "Ellipse",
1017
+ "Fillcolor" : "#ffffff",
1018
+ "Color" : "",
1019
+ "label" : "",
1020
+ "Label_size" : 1,
1021
+ "shared_name" : "Node1",
1022
+ "LabelFont" : "",
1023
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1024
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1025
+ "name" : "Node1",
1026
+ "Ensembl_ID" : "",
1027
+ "SUID" : 2043,
1028
+ "Height" : 1,
1029
+ "Width" : 1,
1030
+ "selected" : false
1031
+ },
1032
+ "position" : {
1033
+ "x" : 833.5669108130306,
1034
+ "y" : 607.5427832677703
1035
+ },
1036
+ "selected" : false
1037
+ }, {
1038
+ "data" : {
1039
+ "id" : "2028",
1040
+ "Shape" : "",
1041
+ "Fillcolor" : "",
1042
+ "Color" : "",
1043
+ "label" : "MBOAT7",
1044
+ "Label_size" : 30,
1045
+ "shared_name" : "MBOAT7",
1046
+ "LabelFont" : "",
1047
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000035596.svg",
1048
+ "pathpng" : "http://localhost:9000/png?str2=(MBOAT7).png",
1049
+ "name" : "MBOAT7",
1050
+ "Ensembl_ID" : "ENSMUSG00000035596",
1051
+ "SUID" : 2028,
1052
+ "Height" : 140,
1053
+ "Width" : 140,
1054
+ "selected" : false
1055
+ },
1056
+ "position" : {
1057
+ "x" : 244.41458983250155,
1058
+ "y" : 444.2437694975047
1059
+ },
1060
+ "selected" : false
1061
+ }, {
1062
+ "data" : {
1063
+ "id" : "2030",
1064
+ "Shape" : "",
1065
+ "Fillcolor" : "",
1066
+ "Color" : "",
1067
+ "label" : "LCLAT1",
1068
+ "Label_size" : 30,
1069
+ "shared_name" : "LCLAT1",
1070
+ "LabelFont" : "",
1071
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000054469.svg",
1072
+ "pathpng" : "http://localhost:9000/png?str2=(LCLAT1).png",
1073
+ "name" : "LCLAT1",
1074
+ "Ensembl_ID" : "ENSMUSG00000054469",
1075
+ "SUID" : 2030,
1076
+ "Height" : 140,
1077
+ "Width" : 140,
1078
+ "selected" : false
1079
+ },
1080
+ "position" : {
1081
+ "x" : 247.0,
1082
+ "y" : 592.0
1083
+ },
1084
+ "selected" : false
1085
+ }, {
1086
+ "data" : {
1087
+ "id" : "2032",
1088
+ "Shape" : "",
1089
+ "Fillcolor" : "",
1090
+ "Color" : "",
1091
+ "label" : "AGPAT3",
1092
+ "Label_size" : 30,
1093
+ "shared_name" : "AGPAT3",
1094
+ "LabelFont" : "",
1095
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000001211.svg",
1096
+ "pathpng" : "http://localhost:9000/png?str2=(AGPAT3).png",
1097
+ "name" : "AGPAT3",
1098
+ "Ensembl_ID" : "ENSMUSG00000001211",
1099
+ "SUID" : 2032,
1100
+ "Height" : 140,
1101
+ "Width" : 140,
1102
+ "selected" : false
1103
+ },
1104
+ "position" : {
1105
+ "x" : 247.06094237437617,
1106
+ "y" : 738.231762709373
1107
+ },
1108
+ "selected" : false
1109
+ }, {
1110
+ "data" : {
1111
+ "id" : "1999",
1112
+ "NumChildren" : 3,
1113
+ "Shape" : "",
1114
+ "Fillcolor" : "",
1115
+ "Color" : "",
1116
+ "label" : "",
1117
+ "Label_size" : 1,
1118
+ "shared_name" : "Group4",
1119
+ "LabelFont" : "",
1120
+ "path" : "http://localhost:9000/plot?str1=Group4.svg",
1121
+ "NumDescendents" : 3,
1122
+ "pathpng" : "http://localhost:9000/png?str2=(Group4).png",
1123
+ "name" : "",
1124
+ "Ensembl_ID" : "",
1125
+ "SUID" : 1999,
1126
+ "Height" : 1,
1127
+ "Width" : 1,
1128
+ "selected" : false
1129
+ },
1130
+ "position" : {
1131
+ "x" : 245.73776610343884,
1132
+ "y" : 591.2377661034388
1133
+ },
1134
+ "selected" : false
1135
+ }, {
1136
+ "data" : {
1137
+ "id" : "1997",
1138
+ "Shape" : "Ellipse",
1139
+ "Fillcolor" : "#ffffff",
1140
+ "Color" : "",
1141
+ "label" : "",
1142
+ "Label_size" : 1,
1143
+ "shared_name" : "Node1",
1144
+ "LabelFont" : "",
1145
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1146
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1147
+ "name" : "Node1",
1148
+ "Ensembl_ID" : "",
1149
+ "SUID" : 1997,
1150
+ "Height" : 1,
1151
+ "Width" : 1,
1152
+ "selected" : false
1153
+ },
1154
+ "position" : {
1155
+ "x" : 355.7662005285219,
1156
+ "y" : 592.57779267581
1157
+ },
1158
+ "selected" : false
1159
+ }, {
1160
+ "data" : {
1161
+ "id" : "1982",
1162
+ "Shape" : "",
1163
+ "Fillcolor" : "",
1164
+ "Color" : "",
1165
+ "label" : "LPCAT3",
1166
+ "Label_size" : 30,
1167
+ "shared_name" : "LPCAT3",
1168
+ "LabelFont" : "",
1169
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000004270.svg",
1170
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT3).png",
1171
+ "name" : "LPCAT3",
1172
+ "Ensembl_ID" : "ENSMUSG00000004270",
1173
+ "SUID" : 1982,
1174
+ "Height" : 140,
1175
+ "Width" : 140,
1176
+ "selected" : false
1177
+ },
1178
+ "position" : {
1179
+ "x" : -225.0,
1180
+ "y" : 469.0
1181
+ },
1182
+ "selected" : false
1183
+ }, {
1184
+ "data" : {
1185
+ "id" : "1984",
1186
+ "Shape" : "",
1187
+ "Fillcolor" : "",
1188
+ "Color" : "",
1189
+ "label" : "LPCAT4",
1190
+ "Label_size" : 30,
1191
+ "shared_name" : "LPCAT4",
1192
+ "LabelFont" : "",
1193
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000020646.svg",
1194
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
1195
+ "name" : "LPCAT4",
1196
+ "Ensembl_ID" : "ENSMUSG00000027134",
1197
+ "SUID" : 1984,
1198
+ "Height" : 140,
1199
+ "Width" : 140,
1200
+ "selected" : false
1201
+ },
1202
+ "position" : {
1203
+ "x" : -224.0,
1204
+ "y" : 614.0
1205
+ },
1206
+ "selected" : false
1207
+ }, {
1208
+ "data" : {
1209
+ "id" : "1986",
1210
+ "Shape" : "",
1211
+ "Fillcolor" : "",
1212
+ "Color" : "",
1213
+ "label" : "MBOAT2",
1214
+ "Label_size" : 30,
1215
+ "shared_name" : "MBOAT2",
1216
+ "LabelFont" : "",
1217
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000020646.svg",
1218
+ "pathpng" : "http://localhost:9000/png?str2=(MBOAT2).png",
1219
+ "name" : "MBOAT2",
1220
+ "Ensembl_ID" : "ENSMUSG00000020646",
1221
+ "SUID" : 1986,
1222
+ "Height" : 140,
1223
+ "Width" : 140,
1224
+ "selected" : false
1225
+ },
1226
+ "position" : {
1227
+ "x" : -225.0,
1228
+ "y" : 760.0
1229
+ },
1230
+ "selected" : false
1231
+ }, {
1232
+ "data" : {
1233
+ "id" : "1953",
1234
+ "NumChildren" : 3,
1235
+ "Shape" : "",
1236
+ "Fillcolor" : "",
1237
+ "Color" : "",
1238
+ "label" : "",
1239
+ "Label_size" : 1,
1240
+ "shared_name" : "Group5",
1241
+ "LabelFont" : "",
1242
+ "path" : "http://localhost:9000/plot?str1=Group5.svg",
1243
+ "NumDescendents" : 3,
1244
+ "pathpng" : "http://localhost:9000/png?str2=(Group5).png",
1245
+ "name" : "",
1246
+ "Ensembl_ID" : "",
1247
+ "SUID" : 1953,
1248
+ "Height" : 1,
1249
+ "Width" : 1,
1250
+ "selected" : false
1251
+ },
1252
+ "position" : {
1253
+ "x" : -224.5,
1254
+ "y" : 614.5
1255
+ },
1256
+ "selected" : false
1257
+ }, {
1258
+ "data" : {
1259
+ "id" : "1951",
1260
+ "Shape" : "Ellipse",
1261
+ "Fillcolor" : "#ffffff",
1262
+ "Color" : "",
1263
+ "label" : "",
1264
+ "Label_size" : 1,
1265
+ "shared_name" : "Node1",
1266
+ "LabelFont" : "",
1267
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1268
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1269
+ "name" : "Node1",
1270
+ "Ensembl_ID" : "",
1271
+ "SUID" : 1951,
1272
+ "Height" : 1,
1273
+ "Width" : 1,
1274
+ "selected" : false
1275
+ },
1276
+ "position" : {
1277
+ "x" : -100.50348103529801,
1278
+ "y" : 614.0205496082189
1279
+ },
1280
+ "selected" : false
1281
+ }, {
1282
+ "data" : {
1283
+ "id" : "1937",
1284
+ "Shape" : "",
1285
+ "Fillcolor" : "",
1286
+ "Color" : "",
1287
+ "label" : "LPCAT3",
1288
+ "Label_size" : 30,
1289
+ "shared_name" : "LPCAT3",
1290
+ "LabelFont" : "",
1291
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000004270.svg",
1292
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT3).png",
1293
+ "name" : "LPCAT3",
1294
+ "Ensembl_ID" : "ENSMUSG00000004270",
1295
+ "SUID" : 1937,
1296
+ "Height" : 140,
1297
+ "Width" : 140,
1298
+ "selected" : false
1299
+ },
1300
+ "position" : {
1301
+ "x" : -647.0,
1302
+ "y" : 393.0
1303
+ },
1304
+ "selected" : false
1305
+ }, {
1306
+ "data" : {
1307
+ "id" : "1931",
1308
+ "Shape" : "",
1309
+ "Fillcolor" : "",
1310
+ "Color" : "",
1311
+ "label" : "LPCAT4",
1312
+ "Label_size" : 30,
1313
+ "shared_name" : "LPCAT4",
1314
+ "LabelFont" : "",
1315
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000027134.svg",
1316
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
1317
+ "name" : "LPCAT4",
1318
+ "Ensembl_ID" : "ENSMUSG00000027134",
1319
+ "SUID" : 1931,
1320
+ "Height" : 140,
1321
+ "Width" : 140,
1322
+ "selected" : false
1323
+ },
1324
+ "position" : {
1325
+ "x" : -646.0,
1326
+ "y" : 544.3536474581254
1327
+ },
1328
+ "selected" : false
1329
+ }, {
1330
+ "data" : {
1331
+ "id" : "1935",
1332
+ "Shape" : "",
1333
+ "Fillcolor" : "",
1334
+ "Color" : "",
1335
+ "label" : "MBOAT1",
1336
+ "Label_size" : 30,
1337
+ "shared_name" : "MBOAT1",
1338
+ "LabelFont" : "",
1339
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000038732.svg",
1340
+ "pathpng" : "http://localhost:9000/png?str2=(MBOAT1).png",
1341
+ "name" : "MBOAT1",
1342
+ "Ensembl_ID" : "ENSMUSG00000038732",
1343
+ "SUID" : 1935,
1344
+ "Height" : 140,
1345
+ "Width" : 140,
1346
+ "selected" : false
1347
+ },
1348
+ "position" : {
1349
+ "x" : -644.0,
1350
+ "y" : 695.0
1351
+ },
1352
+ "selected" : false
1353
+ }, {
1354
+ "data" : {
1355
+ "id" : "1933",
1356
+ "Shape" : "",
1357
+ "Fillcolor" : "",
1358
+ "Color" : "",
1359
+ "label" : "MBOAT2",
1360
+ "Label_size" : 30,
1361
+ "shared_name" : "MBOAT2",
1362
+ "LabelFont" : "",
1363
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000020646.svg",
1364
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
1365
+ "name" : "MBOAT2",
1366
+ "Ensembl_ID" : "ENSMUSG00000020646",
1367
+ "SUID" : 1933,
1368
+ "Height" : 140,
1369
+ "Width" : 140,
1370
+ "selected" : false
1371
+ },
1372
+ "position" : {
1373
+ "x" : -645.0,
1374
+ "y" : 840.0
1375
+ },
1376
+ "selected" : false
1377
+ }, {
1378
+ "data" : {
1379
+ "id" : "1902",
1380
+ "NumChildren" : 4,
1381
+ "Shape" : "",
1382
+ "Fillcolor" : "",
1383
+ "Color" : "",
1384
+ "label" : "",
1385
+ "Label_size" : 1,
1386
+ "shared_name" : "Group6",
1387
+ "LabelFont" : "",
1388
+ "path" : "http://localhost:9000/plot?str1=Group6.svg",
1389
+ "NumDescendents" : 4,
1390
+ "pathpng" : "http://localhost:9000/png?str2=(Group6).png",
1391
+ "name" : "",
1392
+ "Ensembl_ID" : "",
1393
+ "SUID" : 1902,
1394
+ "Height" : 1,
1395
+ "Width" : 1,
1396
+ "selected" : false
1397
+ },
1398
+ "position" : {
1399
+ "x" : -645.5,
1400
+ "y" : 616.5
1401
+ },
1402
+ "selected" : false
1403
+ }, {
1404
+ "data" : {
1405
+ "id" : "1900",
1406
+ "Shape" : "Ellipse",
1407
+ "Fillcolor" : "#ffffff",
1408
+ "Color" : "",
1409
+ "label" : "",
1410
+ "Label_size" : 1,
1411
+ "shared_name" : "Node1",
1412
+ "LabelFont" : "",
1413
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1414
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1415
+ "name" : "Node1",
1416
+ "Ensembl_ID" : "",
1417
+ "SUID" : 1900,
1418
+ "Height" : 1,
1419
+ "Width" : 1,
1420
+ "selected" : false
1421
+ },
1422
+ "position" : {
1423
+ "x" : -498.6028452985973,
1424
+ "y" : 612.5473960844482
1425
+ },
1426
+ "selected" : false
1427
+ }, {
1428
+ "data" : {
1429
+ "id" : "1877",
1430
+ "Shape" : "",
1431
+ "Fillcolor" : "",
1432
+ "Color" : "",
1433
+ "label" : "LPCAT1",
1434
+ "Label_size" : 30,
1435
+ "shared_name" : "LPCAT1",
1436
+ "LabelFont" : "",
1437
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000021608.svg",
1438
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT1).png",
1439
+ "name" : "LPCAT1",
1440
+ "Ensembl_ID" : "ENSMUSG00000021608",
1441
+ "SUID" : 1877,
1442
+ "Height" : 140,
1443
+ "Width" : 140,
1444
+ "selected" : false
1445
+ },
1446
+ "position" : {
1447
+ "x" : -1166.7072949162507,
1448
+ "y" : 328.2437694975047
1449
+ },
1450
+ "selected" : false
1451
+ }, {
1452
+ "data" : {
1453
+ "id" : "1883",
1454
+ "Shape" : "",
1455
+ "Fillcolor" : "",
1456
+ "Color" : "",
1457
+ "label" : "LPCAT2",
1458
+ "Label_size" : 30,
1459
+ "shared_name" : "LPCAT2",
1460
+ "LabelFont" : "",
1461
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000033192.svg",
1462
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT2).png",
1463
+ "name" : "LPCAT2",
1464
+ "Ensembl_ID" : "ENSMUSG00000033192",
1465
+ "SUID" : 1883,
1466
+ "Height" : 140,
1467
+ "Width" : 140,
1468
+ "selected" : false
1469
+ },
1470
+ "position" : {
1471
+ "x" : -1166.0,
1472
+ "y" : 472.0
1473
+ },
1474
+ "selected" : false
1475
+ }, {
1476
+ "data" : {
1477
+ "id" : "1881",
1478
+ "Shape" : "",
1479
+ "Fillcolor" : "",
1480
+ "Color" : "",
1481
+ "label" : "LPCAT3",
1482
+ "Label_size" : 30,
1483
+ "shared_name" : "LPCAT3",
1484
+ "LabelFont" : "",
1485
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000004270.svg",
1486
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT3).png",
1487
+ "name" : "LPCAT3",
1488
+ "Ensembl_ID" : "ENSMUSG00000004270",
1489
+ "SUID" : 1881,
1490
+ "Height" : 140,
1491
+ "Width" : 140,
1492
+ "selected" : false
1493
+ },
1494
+ "position" : {
1495
+ "x" : -1165.2975525257189,
1496
+ "y" : 621.4682983161874
1497
+ },
1498
+ "selected" : false
1499
+ }, {
1500
+ "data" : {
1501
+ "id" : "1875",
1502
+ "Shape" : "",
1503
+ "Fillcolor" : "",
1504
+ "Color" : "",
1505
+ "label" : "LPCAT4",
1506
+ "Label_size" : 30,
1507
+ "shared_name" : "LPCAT4",
1508
+ "LabelFont" : "",
1509
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000027134.svg",
1510
+ "pathpng" : "http://localhost:9000/png?str2=(LPCAT4).png",
1511
+ "name" : "LPCAT4",
1512
+ "Ensembl_ID" : "ENSMUSG00000027134",
1513
+ "SUID" : 1875,
1514
+ "Height" : 140,
1515
+ "Width" : 140,
1516
+ "selected" : false
1517
+ },
1518
+ "position" : {
1519
+ "x" : -1166.5317016838126,
1520
+ "y" : 770.1707457904686
1521
+ },
1522
+ "selected" : false
1523
+ }, {
1524
+ "data" : {
1525
+ "id" : "1879",
1526
+ "Shape" : "",
1527
+ "Fillcolor" : "",
1528
+ "Color" : "",
1529
+ "label" : "MBOAT2",
1530
+ "Label_size" : 30,
1531
+ "shared_name" : "MBOAT2",
1532
+ "LabelFont" : "",
1533
+ "path" : "http://localhost:9000/plot?str1=ENSMUSG00000020646.svg",
1534
+ "pathpng" : "http://localhost:9000/png?str2=(MBOAT2).png",
1535
+ "name" : "MBOAT2",
1536
+ "Ensembl_ID" : "ENSMUSG00000020646",
1537
+ "SUID" : 1879,
1538
+ "Height" : 140,
1539
+ "Width" : 140,
1540
+ "selected" : false
1541
+ },
1542
+ "position" : {
1543
+ "x" : -1165.7658508419063,
1544
+ "y" : 917.4682983161874
1545
+ },
1546
+ "selected" : false
1547
+ }, {
1548
+ "data" : {
1549
+ "id" : "1846",
1550
+ "NumChildren" : 5,
1551
+ "Shape" : "",
1552
+ "Fillcolor" : "",
1553
+ "Color" : "",
1554
+ "label" : "",
1555
+ "Label_size" : 1,
1556
+ "shared_name" : "Group7",
1557
+ "LabelFont" : "",
1558
+ "path" : "http://localhost:9000/plot?str1=Group7.svg",
1559
+ "NumDescendents" : 5,
1560
+ "pathpng" : "http://localhost:9000/png?str2=(Group7).png",
1561
+ "name" : "",
1562
+ "Ensembl_ID" : "",
1563
+ "SUID" : 1846,
1564
+ "Height" : 1,
1565
+ "Width" : 1,
1566
+ "selected" : false
1567
+ },
1568
+ "position" : {
1569
+ "x" : -1166.0024237209848,
1570
+ "y" : 622.856033906846
1571
+ },
1572
+ "selected" : false
1573
+ }, {
1574
+ "data" : {
1575
+ "id" : "1844",
1576
+ "Shape" : "Ellipse",
1577
+ "Fillcolor" : "#ffffff",
1578
+ "Color" : "",
1579
+ "label" : "",
1580
+ "Label_size" : 1,
1581
+ "shared_name" : "Node1",
1582
+ "LabelFont" : "",
1583
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1584
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1585
+ "name" : "Node1",
1586
+ "Ensembl_ID" : "",
1587
+ "SUID" : 1844,
1588
+ "Height" : 1,
1589
+ "Width" : 1,
1590
+ "selected" : false
1591
+ },
1592
+ "position" : {
1593
+ "x" : -1008.2308324449074,
1594
+ "y" : 621.4062849319714
1595
+ },
1596
+ "selected" : false
1597
+ }, {
1598
+ "data" : {
1599
+ "id" : "1842",
1600
+ "Shape" : "",
1601
+ "Fillcolor" : "",
1602
+ "Color" : "",
1603
+ "label" : "PLA2",
1604
+ "Label_size" : 30,
1605
+ "shared_name" : "PLA2",
1606
+ "LabelFont" : "",
1607
+ "path" : "http://localhost:9000/plot?str1=PLA2.svg",
1608
+ "pathpng" : "http://localhost:9000/png?str2=(PLA2).png",
1609
+ "name" : "PLA2",
1610
+ "Ensembl_ID" : "",
1611
+ "SUID" : 1842,
1612
+ "Height" : 140,
1613
+ "Width" : 140,
1614
+ "selected" : false
1615
+ },
1616
+ "position" : {
1617
+ "x" : 1573.4187714213497,
1618
+ "y" : 574.1173632836538
1619
+ },
1620
+ "selected" : false
1621
+ }, {
1622
+ "data" : {
1623
+ "id" : "1840",
1624
+ "Shape" : "Ellipse",
1625
+ "Fillcolor" : "#ffffff",
1626
+ "Color" : "",
1627
+ "label" : "",
1628
+ "Label_size" : 1,
1629
+ "shared_name" : "Node1",
1630
+ "LabelFont" : "",
1631
+ "path" : "http://localhost:9000/plot?str1=Node1.svg",
1632
+ "pathpng" : "http://localhost:9000/png?str2=(Node1).png",
1633
+ "name" : "Node1",
1634
+ "Ensembl_ID" : "",
1635
+ "SUID" : 1840,
1636
+ "Height" : 1,
1637
+ "Width" : 1,
1638
+ "selected" : false
1639
+ },
1640
+ "position" : {
1641
+ "x" : 1294.4207456949275,
1642
+ "y" : 578.4252070476188
1643
+ },
1644
+ "selected" : false
1645
+ } ],
1646
+ "edges" : [ {
1647
+ "data" : {
1648
+ "id" : "9738",
1649
+ "source" : "9718",
1650
+ "target" : "2568",
1651
+ "shared_name" : "Node1 (interacts with) PS",
1652
+ "name" : "Node1 (interacts with) PS",
1653
+ "interaction" : "interacts with",
1654
+ "SUID" : 9738,
1655
+ "shared_interaction" : "interacts with",
1656
+ "selected" : false
1657
+ },
1658
+ "selected" : false
1659
+ }, {
1660
+ "data" : {
1661
+ "id" : "9732",
1662
+ "source" : "9712",
1663
+ "target" : "9718",
1664
+ "shared_name" : "Node1 (interacts with) Node1",
1665
+ "name" : "Node1 (interacts with) Node1",
1666
+ "interaction" : "interacts with",
1667
+ "SUID" : 9732,
1668
+ "shared_interaction" : "interacts with",
1669
+ "selected" : false
1670
+ },
1671
+ "selected" : false
1672
+ }, {
1673
+ "data" : {
1674
+ "id" : "2846",
1675
+ "source" : "2766",
1676
+ "target" : "2568",
1677
+ "shared_name" : "CDP-DAG (interacts with) PS",
1678
+ "name" : "CDP-DAG (interacts with) PS",
1679
+ "interaction" : "interacts with",
1680
+ "SUID" : 2846,
1681
+ "shared_interaction" : "interacts with",
1682
+ "selected" : false
1683
+ },
1684
+ "selected" : false
1685
+ }, {
1686
+ "data" : {
1687
+ "id" : "2844",
1688
+ "source" : "2766",
1689
+ "target" : "2535",
1690
+ "shared_name" : "CDP-DAG (interacts with) PI",
1691
+ "name" : "CDP-DAG (interacts with) PI",
1692
+ "interaction" : "interacts with",
1693
+ "SUID" : 2844,
1694
+ "shared_interaction" : "interacts with",
1695
+ "selected" : false
1696
+ },
1697
+ "selected" : false
1698
+ }, {
1699
+ "data" : {
1700
+ "id" : "2842",
1701
+ "source" : "2766",
1702
+ "target" : "2502",
1703
+ "shared_name" : "CDP-DAG (interacts with) PG",
1704
+ "name" : "CDP-DAG (interacts with) PG",
1705
+ "interaction" : "interacts with",
1706
+ "SUID" : 2842,
1707
+ "shared_interaction" : "interacts with",
1708
+ "selected" : false
1709
+ },
1710
+ "selected" : false
1711
+ }, {
1712
+ "data" : {
1713
+ "id" : "2840",
1714
+ "source" : "2733",
1715
+ "target" : "2700",
1716
+ "shared_name" : "G3P (interacts with) LPA",
1717
+ "name" : "G3P (interacts with) LPA",
1718
+ "interaction" : "interacts with",
1719
+ "SUID" : 2840,
1720
+ "shared_interaction" : "interacts with",
1721
+ "selected" : false
1722
+ },
1723
+ "selected" : false
1724
+ }, {
1725
+ "data" : {
1726
+ "id" : "2838",
1727
+ "source" : "2700",
1728
+ "target" : "2667",
1729
+ "shared_name" : "LPA (interacts with) PA",
1730
+ "name" : "LPA (interacts with) PA",
1731
+ "interaction" : "interacts with",
1732
+ "SUID" : 2838,
1733
+ "shared_interaction" : "interacts with",
1734
+ "selected" : false
1735
+ },
1736
+ "selected" : false
1737
+ }, {
1738
+ "data" : {
1739
+ "id" : "2836",
1740
+ "source" : "2667",
1741
+ "target" : "2766",
1742
+ "shared_name" : "PA (interacts with) CDP-DAG",
1743
+ "name" : "PA (interacts with) CDP-DAG",
1744
+ "interaction" : "interacts with",
1745
+ "SUID" : 2836,
1746
+ "shared_interaction" : "interacts with",
1747
+ "selected" : false
1748
+ },
1749
+ "selected" : false
1750
+ }, {
1751
+ "data" : {
1752
+ "id" : "2834",
1753
+ "source" : "2667",
1754
+ "target" : "2634",
1755
+ "shared_name" : "PA (interacts with) DG",
1756
+ "name" : "PA (interacts with) DG",
1757
+ "interaction" : "interacts with",
1758
+ "SUID" : 2834,
1759
+ "shared_interaction" : "interacts with",
1760
+ "selected" : false
1761
+ },
1762
+ "selected" : false
1763
+ }, {
1764
+ "data" : {
1765
+ "id" : "2832",
1766
+ "source" : "2634",
1767
+ "target" : "2601",
1768
+ "shared_name" : "DG (interacts with) TG",
1769
+ "name" : "DG (interacts with) TG",
1770
+ "interaction" : "interacts with",
1771
+ "SUID" : 2832,
1772
+ "shared_interaction" : "interacts with",
1773
+ "selected" : false
1774
+ },
1775
+ "selected" : false
1776
+ }, {
1777
+ "data" : {
1778
+ "id" : "2830",
1779
+ "source" : "2634",
1780
+ "target" : "2304",
1781
+ "shared_name" : "DG (interacts with) PE",
1782
+ "name" : "DG (interacts with) PE",
1783
+ "interaction" : "interacts with",
1784
+ "SUID" : 2830,
1785
+ "shared_interaction" : "interacts with",
1786
+ "selected" : false
1787
+ },
1788
+ "selected" : false
1789
+ }, {
1790
+ "data" : {
1791
+ "id" : "2828",
1792
+ "source" : "2634",
1793
+ "target" : "2238",
1794
+ "shared_name" : "DG (interacts with) PC",
1795
+ "name" : "DG (interacts with) PC",
1796
+ "interaction" : "interacts with",
1797
+ "SUID" : 2828,
1798
+ "shared_interaction" : "interacts with",
1799
+ "selected" : false
1800
+ },
1801
+ "selected" : false
1802
+ }, {
1803
+ "data" : {
1804
+ "id" : "2826",
1805
+ "source" : "2568",
1806
+ "target" : "2337",
1807
+ "shared_name" : "PS (interacts with) LPS",
1808
+ "name" : "PS (interacts with) LPS",
1809
+ "interaction" : "interacts with",
1810
+ "SUID" : 2826,
1811
+ "shared_interaction" : "interacts with",
1812
+ "selected" : false
1813
+ },
1814
+ "selected" : false
1815
+ }, {
1816
+ "data" : {
1817
+ "id" : "2824",
1818
+ "source" : "2535",
1819
+ "target" : "2370",
1820
+ "shared_name" : "PI (interacts with) LPI",
1821
+ "name" : "PI (interacts with) LPI",
1822
+ "interaction" : "interacts with",
1823
+ "SUID" : 2824,
1824
+ "shared_interaction" : "interacts with",
1825
+ "selected" : false
1826
+ },
1827
+ "selected" : false
1828
+ }, {
1829
+ "data" : {
1830
+ "id" : "2822",
1831
+ "source" : "2502",
1832
+ "target" : "2469",
1833
+ "shared_name" : "PG (interacts with) CL",
1834
+ "name" : "PG (interacts with) CL",
1835
+ "interaction" : "interacts with",
1836
+ "SUID" : 2822,
1837
+ "shared_interaction" : "interacts with",
1838
+ "selected" : false
1839
+ },
1840
+ "selected" : false
1841
+ }, {
1842
+ "data" : {
1843
+ "id" : "2820",
1844
+ "source" : "2502",
1845
+ "target" : "2403",
1846
+ "shared_name" : "PG (interacts with) PG",
1847
+ "name" : "PG (interacts with) PG",
1848
+ "interaction" : "interacts with",
1849
+ "SUID" : 2820,
1850
+ "shared_interaction" : "interacts with",
1851
+ "selected" : false
1852
+ },
1853
+ "selected" : false
1854
+ }, {
1855
+ "data" : {
1856
+ "id" : "2818",
1857
+ "source" : "2469",
1858
+ "target" : "2436",
1859
+ "shared_name" : "CL (interacts with) LCL",
1860
+ "name" : "CL (interacts with) LCL",
1861
+ "interaction" : "interacts with",
1862
+ "SUID" : 2818,
1863
+ "shared_interaction" : "interacts with",
1864
+ "selected" : false
1865
+ },
1866
+ "selected" : false
1867
+ }, {
1868
+ "data" : {
1869
+ "id" : "2816",
1870
+ "source" : "2436",
1871
+ "target" : "2094",
1872
+ "shared_name" : "LCL (interacts with) Node1",
1873
+ "name" : "LCL (interacts with) Node1",
1874
+ "interaction" : "interacts with",
1875
+ "SUID" : 2816,
1876
+ "shared_interaction" : "interacts with",
1877
+ "selected" : false
1878
+ },
1879
+ "selected" : false
1880
+ }, {
1881
+ "data" : {
1882
+ "id" : "2814",
1883
+ "source" : "2403",
1884
+ "target" : "2043",
1885
+ "shared_name" : "LPG (interacts with) Node1",
1886
+ "name" : "LPG (interacts with) Node1",
1887
+ "interaction" : "interacts with",
1888
+ "SUID" : 2814,
1889
+ "shared_interaction" : "interacts with",
1890
+ "selected" : false
1891
+ },
1892
+ "selected" : false
1893
+ }, {
1894
+ "data" : {
1895
+ "id" : "2812",
1896
+ "source" : "2370",
1897
+ "target" : "1997",
1898
+ "shared_name" : "LPI (interacts with) Node1",
1899
+ "name" : "LPI (interacts with) Node1",
1900
+ "interaction" : "interacts with",
1901
+ "SUID" : 2812,
1902
+ "shared_interaction" : "interacts with",
1903
+ "selected" : false
1904
+ },
1905
+ "selected" : false
1906
+ }, {
1907
+ "data" : {
1908
+ "id" : "2810",
1909
+ "source" : "2337",
1910
+ "target" : "1951",
1911
+ "shared_name" : "LPS (interacts with) Node1",
1912
+ "name" : "LPS (interacts with) Node1",
1913
+ "interaction" : "interacts with",
1914
+ "SUID" : 2810,
1915
+ "shared_interaction" : "interacts with",
1916
+ "selected" : false
1917
+ },
1918
+ "selected" : false
1919
+ }, {
1920
+ "data" : {
1921
+ "id" : "2808",
1922
+ "source" : "2304",
1923
+ "target" : "2568",
1924
+ "shared_name" : "PE (interacts with) PS",
1925
+ "name" : "PE (interacts with) PS",
1926
+ "interaction" : "interacts with",
1927
+ "SUID" : 2808,
1928
+ "shared_interaction" : "interacts with",
1929
+ "selected" : false
1930
+ },
1931
+ "selected" : false
1932
+ }, {
1933
+ "data" : {
1934
+ "id" : "2806",
1935
+ "source" : "2304",
1936
+ "target" : "2271",
1937
+ "shared_name" : "PE (interacts with) LPE",
1938
+ "name" : "PE (interacts with) LPE",
1939
+ "interaction" : "interacts with",
1940
+ "SUID" : 2806,
1941
+ "shared_interaction" : "interacts with",
1942
+ "selected" : false
1943
+ },
1944
+ "selected" : false
1945
+ }, {
1946
+ "data" : {
1947
+ "id" : "2804",
1948
+ "source" : "2271",
1949
+ "target" : "1900",
1950
+ "shared_name" : "LPE (interacts with) Node1",
1951
+ "name" : "LPE (interacts with) Node1",
1952
+ "interaction" : "interacts with",
1953
+ "SUID" : 2804,
1954
+ "shared_interaction" : "interacts with",
1955
+ "selected" : false
1956
+ },
1957
+ "selected" : false
1958
+ }, {
1959
+ "data" : {
1960
+ "id" : "9726",
1961
+ "source" : "2238",
1962
+ "target" : "9712",
1963
+ "shared_name" : "PC (interacts with) Node1",
1964
+ "name" : "PC (interacts with) Node1",
1965
+ "interaction" : "interacts with",
1966
+ "SUID" : 9726,
1967
+ "shared_interaction" : "interacts with",
1968
+ "selected" : false
1969
+ },
1970
+ "selected" : false
1971
+ }, {
1972
+ "data" : {
1973
+ "id" : "2800",
1974
+ "source" : "2238",
1975
+ "target" : "2205",
1976
+ "shared_name" : "PC (interacts with) LPC",
1977
+ "name" : "PC (interacts with) LPC",
1978
+ "interaction" : "interacts with",
1979
+ "SUID" : 2800,
1980
+ "shared_interaction" : "interacts with",
1981
+ "selected" : false
1982
+ },
1983
+ "selected" : false
1984
+ }, {
1985
+ "data" : {
1986
+ "id" : "2798",
1987
+ "source" : "2205",
1988
+ "target" : "1844",
1989
+ "shared_name" : "LPC (interacts with) Node1",
1990
+ "name" : "LPC (interacts with) Node1",
1991
+ "interaction" : "interacts with",
1992
+ "SUID" : 2798,
1993
+ "shared_interaction" : "interacts with",
1994
+ "selected" : false
1995
+ },
1996
+ "selected" : false
1997
+ }, {
1998
+ "data" : {
1999
+ "id" : "2796",
2000
+ "source" : "2164",
2001
+ "target" : "2162",
2002
+ "shared_name" : "Group1 (interacts with) Node1",
2003
+ "name" : "Group1 (interacts with) Node1",
2004
+ "interaction" : "interacts with",
2005
+ "SUID" : 2796,
2006
+ "shared_interaction" : "interacts with",
2007
+ "selected" : false
2008
+ },
2009
+ "selected" : false
2010
+ }, {
2011
+ "data" : {
2012
+ "id" : "2794",
2013
+ "source" : "2118",
2014
+ "target" : "2116",
2015
+ "shared_name" : "Group2 (interacts with) Node1",
2016
+ "name" : "Group2 (interacts with) Node1",
2017
+ "interaction" : "interacts with",
2018
+ "SUID" : 2794,
2019
+ "shared_interaction" : "interacts with",
2020
+ "selected" : false
2021
+ },
2022
+ "selected" : false
2023
+ }, {
2024
+ "data" : {
2025
+ "id" : "2792",
2026
+ "source" : "2096",
2027
+ "target" : "2094",
2028
+ "shared_name" : "LCCAT1 (interacts with) Node1",
2029
+ "name" : "LCCAT1 (interacts with) Node1",
2030
+ "interaction" : "interacts with",
2031
+ "SUID" : 2792,
2032
+ "shared_interaction" : "interacts with",
2033
+ "selected" : false
2034
+ },
2035
+ "selected" : false
2036
+ }, {
2037
+ "data" : {
2038
+ "id" : "2790",
2039
+ "source" : "2094",
2040
+ "target" : "2469",
2041
+ "shared_name" : "Node1 (interacts with) CL",
2042
+ "name" : "Node1 (interacts with) CL",
2043
+ "interaction" : "interacts with",
2044
+ "SUID" : 2790,
2045
+ "shared_interaction" : "interacts with",
2046
+ "selected" : false
2047
+ },
2048
+ "selected" : false
2049
+ }, {
2050
+ "data" : {
2051
+ "id" : "2788",
2052
+ "source" : "2045",
2053
+ "target" : "2043",
2054
+ "shared_name" : "Group3 (interacts with) Node1",
2055
+ "name" : "Group3 (interacts with) Node1",
2056
+ "interaction" : "interacts with",
2057
+ "SUID" : 2788,
2058
+ "shared_interaction" : "interacts with",
2059
+ "selected" : false
2060
+ },
2061
+ "selected" : false
2062
+ }, {
2063
+ "data" : {
2064
+ "id" : "2786",
2065
+ "source" : "2043",
2066
+ "target" : "2502",
2067
+ "shared_name" : "Node1 (interacts with) PG",
2068
+ "name" : "Node1 (interacts with) PG",
2069
+ "interaction" : "interacts with",
2070
+ "SUID" : 2786,
2071
+ "shared_interaction" : "interacts with",
2072
+ "selected" : false
2073
+ },
2074
+ "selected" : false
2075
+ }, {
2076
+ "data" : {
2077
+ "id" : "2784",
2078
+ "source" : "1999",
2079
+ "target" : "1997",
2080
+ "shared_name" : "Group4 (interacts with) Node1",
2081
+ "name" : "Group4 (interacts with) Node1",
2082
+ "interaction" : "interacts with",
2083
+ "SUID" : 2784,
2084
+ "shared_interaction" : "interacts with",
2085
+ "selected" : false
2086
+ },
2087
+ "selected" : false
2088
+ }, {
2089
+ "data" : {
2090
+ "id" : "2782",
2091
+ "source" : "1997",
2092
+ "target" : "2535",
2093
+ "shared_name" : "Node1 (interacts with) PI",
2094
+ "name" : "Node1 (interacts with) PI",
2095
+ "interaction" : "interacts with",
2096
+ "SUID" : 2782,
2097
+ "shared_interaction" : "interacts with",
2098
+ "selected" : false
2099
+ },
2100
+ "selected" : false
2101
+ }, {
2102
+ "data" : {
2103
+ "id" : "2780",
2104
+ "source" : "1953",
2105
+ "target" : "1951",
2106
+ "shared_name" : "Group5 (interacts with) Node1",
2107
+ "name" : "Group5 (interacts with) Node1",
2108
+ "interaction" : "interacts with",
2109
+ "SUID" : 2780,
2110
+ "shared_interaction" : "interacts with",
2111
+ "selected" : false
2112
+ },
2113
+ "selected" : false
2114
+ }, {
2115
+ "data" : {
2116
+ "id" : "2778",
2117
+ "source" : "1951",
2118
+ "target" : "2568",
2119
+ "shared_name" : "Node1 (interacts with) PS",
2120
+ "name" : "Node1 (interacts with) PS",
2121
+ "interaction" : "interacts with",
2122
+ "SUID" : 2778,
2123
+ "shared_interaction" : "interacts with",
2124
+ "selected" : false
2125
+ },
2126
+ "selected" : false
2127
+ }, {
2128
+ "data" : {
2129
+ "id" : "2776",
2130
+ "source" : "1902",
2131
+ "target" : "1900",
2132
+ "shared_name" : "Group6 (interacts with) Node1",
2133
+ "name" : "Group6 (interacts with) Node1",
2134
+ "interaction" : "interacts with",
2135
+ "SUID" : 2776,
2136
+ "shared_interaction" : "interacts with",
2137
+ "selected" : false
2138
+ },
2139
+ "selected" : false
2140
+ }, {
2141
+ "data" : {
2142
+ "id" : "2774",
2143
+ "source" : "1900",
2144
+ "target" : "2304",
2145
+ "shared_name" : "Node1 (interacts with) PE",
2146
+ "name" : "Node1 (interacts with) PE",
2147
+ "interaction" : "interacts with",
2148
+ "SUID" : 2774,
2149
+ "shared_interaction" : "interacts with",
2150
+ "selected" : false
2151
+ },
2152
+ "selected" : false
2153
+ }, {
2154
+ "data" : {
2155
+ "id" : "2772",
2156
+ "source" : "1846",
2157
+ "target" : "1844",
2158
+ "shared_name" : "Group7 (interacts with) Node1",
2159
+ "name" : "Group7 (interacts with) Node1",
2160
+ "interaction" : "interacts with",
2161
+ "SUID" : 2772,
2162
+ "shared_interaction" : "interacts with",
2163
+ "selected" : false
2164
+ },
2165
+ "selected" : false
2166
+ }, {
2167
+ "data" : {
2168
+ "id" : "2770",
2169
+ "source" : "1844",
2170
+ "target" : "2238",
2171
+ "shared_name" : "Node1 (interacts with) PC",
2172
+ "name" : "Node1 (interacts with) PC",
2173
+ "interaction" : "interacts with",
2174
+ "SUID" : 2770,
2175
+ "shared_interaction" : "interacts with",
2176
+ "selected" : false
2177
+ },
2178
+ "selected" : false
2179
+ }, {
2180
+ "data" : {
2181
+ "id" : "2768",
2182
+ "source" : "1842",
2183
+ "target" : "1840",
2184
+ "shared_name" : "Node1 (interacts with) Node1",
2185
+ "name" : "Node1 (interacts with) Node1",
2186
+ "interaction" : "interacts with",
2187
+ "SUID" : 2768,
2188
+ "shared_interaction" : "interacts with",
2189
+ "selected" : false
2190
+ },
2191
+ "selected" : false
2192
+ } ]
2193
+ }
2194
+ }
app/data/styles.xml ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <vizmap id="VizMap-2024_08_27-19_52" documentVersion="3.1">
3
+ <visualStyle name="default_1_0">
4
+ <network>
5
+ <visualProperty default="true" name="NETWORK_EDGE_SELECTION"/>
6
+ <visualProperty default="550.0" name="NETWORK_SIZE"/>
7
+ <visualProperty default="false" name="NETWORK_NODE_LABEL_SELECTION"/>
8
+ <visualProperty default="0.0" name="NETWORK_DEPTH"/>
9
+ <visualProperty default="0.0" name="NETWORK_CENTER_Y_LOCATION"/>
10
+ <visualProperty default="true" name="NETWORK_NODE_SELECTION"/>
11
+ <visualProperty default="550.0" name="NETWORK_WIDTH"/>
12
+ <visualProperty default="false" name="NETWORK_FORCE_HIGH_DETAIL"/>
13
+ <visualProperty default="false" name="NETWORK_ANNOTATION_SELECTION"/>
14
+ <visualProperty default="#FFFFFF" name="NETWORK_BACKGROUND_PAINT"/>
15
+ <visualProperty default="1.0" name="NETWORK_SCALE_FACTOR"/>
16
+ <visualProperty default="400.0" name="NETWORK_HEIGHT"/>
17
+ <visualProperty default="0.0" name="NETWORK_CENTER_Z_LOCATION"/>
18
+ <visualProperty default="0.0" name="NETWORK_CENTER_X_LOCATION"/>
19
+ <visualProperty default="" name="NETWORK_TITLE"/>
20
+ </network>
21
+ <node>
22
+ <dependency value="true" name="nodeCustomGraphicsSizeSync"/>
23
+ <dependency value="false" name="nodeSizeLocked"/>
24
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_9"/>
25
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_9, name=Node Custom Paint 9)" name="NODE_CUSTOMPAINT_9"/>
26
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_3"/>
27
+ <visualProperty default="SansSerif.plain,plain,12" name="NODE_LABEL_FONT_FACE"/>
28
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_6, name=Node Custom Paint 6)" name="NODE_CUSTOMPAINT_6"/>
29
+ <visualProperty default="RECTANGLE" name="NODE_SHAPE"/>
30
+ <visualProperty default="NONE" name="NODE_LABEL_BACKGROUND_SHAPE"/>
31
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_7"/>
32
+ <visualProperty default="15" name="NODE_LABEL_FONT_SIZE"/>
33
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_7"/>
34
+ <visualProperty default="255" name="NODE_TRANSPARENCY"/>
35
+ <visualProperty default="#F7FCF5" name="NODE_FILL_COLOR"/>
36
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_6"/>
37
+ <visualProperty default="200.0" name="NODE_LABEL_WIDTH"/>
38
+ <visualProperty default="ROUND_RECTANGLE" name="COMPOUND_NODE_SHAPE"/>
39
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_4"/>
40
+ <visualProperty default="0.0" name="NODE_Y_LOCATION"/>
41
+ <visualProperty default="5.0" name="NODE_BORDER_WIDTH"/>
42
+ <visualProperty default="#252525" name="NODE_BORDER_PAINT"/>
43
+ <visualProperty default="#1E90FF" name="NODE_PAINT"/>
44
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_5, name=Node Custom Paint 5)" name="NODE_CUSTOMPAINT_5"/>
45
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_4"/>
46
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_6"/>
47
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_3"/>
48
+ <visualProperty default="140.0" name="NODE_HEIGHT">
49
+ <passthroughMapping attributeName="Height" attributeType="float"/>
50
+ </visualProperty>
51
+ <visualProperty default="35.0" name="NODE_SIZE"/>
52
+ <visualProperty default="0.0" name="NODE_DEPTH"/>
53
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_7"/>
54
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_2"/>
55
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_6"/>
56
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_4"/>
57
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_9"/>
58
+ <visualProperty default="255" name="NODE_BORDER_TRANSPARENCY"/>
59
+ <visualProperty default="140.0" name="NODE_WIDTH">
60
+ <passthroughMapping attributeName="Width" attributeType="float"/>
61
+ </visualProperty>
62
+ <visualProperty default="" name="NODE_TOOLTIP"/>
63
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_2, name=Node Custom Paint 2)" name="NODE_CUSTOMPAINT_2"/>
64
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_1">
65
+ <passthroughMapping attributeName="path" attributeType="string"/>
66
+ </visualProperty>
67
+ <visualProperty default="#B6B6B6" name="NODE_LABEL_BACKGROUND_COLOR"/>
68
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_8"/>
69
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_8"/>
70
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_5"/>
71
+ <visualProperty default="SOLID" name="NODE_BORDER_STROKE"/>
72
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_7, name=Node Custom Paint 7)" name="NODE_CUSTOMPAINT_7"/>
73
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_3"/>
74
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_5"/>
75
+ <visualProperty default="255" name="NODE_LABEL_BACKGROUND_TRANSPARENCY"/>
76
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_3, name=Node Custom Paint 3)" name="NODE_CUSTOMPAINT_3"/>
77
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_1, name=Node Custom Paint 1)" name="NODE_CUSTOMPAINT_1"/>
78
+ <visualProperty default="10.0" name="COMPOUND_NODE_PADDING"/>
79
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_5"/>
80
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_8, name=Node Custom Paint 8)" name="NODE_CUSTOMPAINT_8"/>
81
+ <visualProperty default="#FFFF00" name="NODE_SELECTED_PAINT"/>
82
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_8"/>
83
+ <visualProperty default="DefaultVisualizableVisualProperty(id=NODE_CUSTOMPAINT_4, name=Node Custom Paint 4)" name="NODE_CUSTOMPAINT_4"/>
84
+ <visualProperty default="0.0" name="NODE_X_LOCATION"/>
85
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_1"/>
86
+ <visualProperty default="255" name="NODE_LABEL_TRANSPARENCY"/>
87
+ <visualProperty default="true" name="NODE_NESTED_NETWORK_IMAGE_VISIBLE"/>
88
+ <visualProperty default="false" name="NODE_SELECTED"/>
89
+ <visualProperty default="#000000" name="NODE_LABEL_COLOR"/>
90
+ <visualProperty default="N,N,c,0.00,0.00" name="NODE_LABEL_POSITION"/>
91
+ <visualProperty default="50.0" name="NODE_CUSTOMGRAPHICS_SIZE_2"/>
92
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_9"/>
93
+ <visualProperty default="true" name="NODE_VISIBLE"/>
94
+ <visualProperty default="C,C,c,0.00,0.00" name="NODE_CUSTOMGRAPHICS_POSITION_1"/>
95
+ <visualProperty default="0.0" name="NODE_LABEL_ROTATION"/>
96
+ <visualProperty default="org.cytoscape.cg.model.NullCustomGraphics,0,[ Remove Graphics ]," name="NODE_CUSTOMGRAPHICS_2"/>
97
+ <visualProperty default="" name="NODE_LABEL">
98
+ <passthroughMapping attributeName="label" attributeType="string"/>
99
+ </visualProperty>
100
+ <visualProperty default="0.0" name="NODE_Z_LOCATION"/>
101
+ </node>
102
+ <edge>
103
+ <dependency value="false" name="arrowColorMatchesEdge"/>
104
+ <visualProperty default="2.0" name="EDGE_WIDTH"/>
105
+ <visualProperty default="" name="EDGE_LABEL"/>
106
+ <visualProperty default="#FF0000" name="EDGE_SELECTED_PAINT"/>
107
+ <visualProperty default="#FF0000" name="EDGE_STROKE_SELECTED_PAINT"/>
108
+ <visualProperty default="" name="EDGE_BEND"/>
109
+ <visualProperty default="#FFFF00" name="EDGE_TARGET_ARROW_SELECTED_PAINT"/>
110
+ <visualProperty default="0.5" name="EDGE_STACKING_DENSITY"/>
111
+ <visualProperty default="C,C,c,0.00,0.00" name="EDGE_LABEL_POSITION"/>
112
+ <visualProperty default="0.0" name="EDGE_LABEL_ROTATION"/>
113
+ <visualProperty default="6.0" name="EDGE_TARGET_ARROW_SIZE"/>
114
+ <visualProperty default="NONE" name="EDGE_SOURCE_ARROW_SHAPE"/>
115
+ <visualProperty default="#B6B6B6" name="EDGE_LABEL_BACKGROUND_COLOR"/>
116
+ <visualProperty default="#000000" name="EDGE_TARGET_ARROW_UNSELECTED_PAINT"/>
117
+ <visualProperty default="#323232" name="EDGE_PAINT"/>
118
+ <visualProperty default="false" name="EDGE_LABEL_AUTOROTATE"/>
119
+ <visualProperty default="AUTO_BEND" name="EDGE_STACKING"/>
120
+ <visualProperty default="#848484" name="EDGE_STROKE_UNSELECTED_PAINT"/>
121
+ <visualProperty default="255" name="EDGE_LABEL_BACKGROUND_TRANSPARENCY"/>
122
+ <visualProperty default="#000000" name="EDGE_SOURCE_ARROW_UNSELECTED_PAINT"/>
123
+ <visualProperty default="#404040" name="EDGE_UNSELECTED_PAINT"/>
124
+ <visualProperty default="10" name="EDGE_LABEL_FONT_SIZE"/>
125
+ <visualProperty default="0.0" name="EDGE_Z_ORDER"/>
126
+ <visualProperty default="6.0" name="EDGE_SOURCE_ARROW_SIZE"/>
127
+ <visualProperty default="true" name="EDGE_VISIBLE"/>
128
+ <visualProperty default="Dialog.plain,plain,10" name="EDGE_LABEL_FONT_FACE"/>
129
+ <visualProperty default="NONE" name="EDGE_LABEL_BACKGROUND_SHAPE"/>
130
+ <visualProperty default="SOLID" name="EDGE_LINE_TYPE"/>
131
+ <visualProperty default="200.0" name="EDGE_LABEL_WIDTH"/>
132
+ <visualProperty default="#000000" name="EDGE_LABEL_COLOR"/>
133
+ <visualProperty default="true" name="EDGE_CURVED"/>
134
+ <visualProperty default="" name="EDGE_TOOLTIP"/>
135
+ <visualProperty default="255" name="EDGE_TRANSPARENCY"/>
136
+ <visualProperty default="#FFFF00" name="EDGE_SOURCE_ARROW_SELECTED_PAINT"/>
137
+ <visualProperty default="255" name="EDGE_LABEL_TRANSPARENCY"/>
138
+ <visualProperty default="NONE" name="EDGE_TARGET_ARROW_SHAPE"/>
139
+ <visualProperty default="false" name="EDGE_SELECTED"/>
140
+ </edge>
141
+ </visualStyle>
142
+ </vizmap>
app/plumber.R ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ library(plumber)
3
+
4
+
5
+ # Title
6
+ #* @apiTitle resr4cyjs
7
+ # Description
8
+ #* @apiDescription This is a resr4cyjs API.
9
+ # Version
10
+ #* @apiVersion 0.0.1
11
+ # Tag Description
12
+ #* @apiTag resr4cyjs "resr4cyjs API"
13
+
14
+
15
+ #* @filter cors
16
+ cors <- function(req, res) {
17
+ res$setHeader("Access-Control-Allow-Origin", "*")
18
+ if (req$REQUEST_METHOD == "OPTIONS") {
19
+ res$setHeader("Access-Control-Allow-Methods", "GET")
20
+ res$setHeader(
21
+ "Access-Control-Allow-Headers",
22
+ req$HTTP_ACCESS_CONTROL_REQUEST_HEADERS
23
+ )
24
+ res$status <- 200
25
+ return(list())
26
+ } else {
27
+ plumber::forward()
28
+ }
29
+ }
30
+
31
+
32
+
33
+ #* @serializer contentType list(type="image/svg+xml")
34
+ #* @get /plot
35
+ #* @arg str1
36
+ function(str1) {
37
+ thefolder <- "/srv/app/svg/"
38
+ svg_file_path <- paste(thefolder,str1,sep = "")
39
+ if(file.exists(svg_file_path) == TRUE){
40
+ readBin(svg_file_path, "raw", file.info(svg_file_path)$size)}
41
+ else{
42
+ svg_file_path <- "/srv/app/www/background.svg"
43
+ readBin(svg_file_path, "raw", file.info(svg_file_path)$size)
44
+ }
45
+ }
46
+
47
+
48
+
app/server.R ADDED
@@ -0,0 +1,445 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ server <- function(input, output,session) {
2
+ options(shiny.maxRequestSize=150*1024^2)
3
+ originaldir <- reactiveValues(datapath = getwd()) # directry of shiny R script
4
+ global <- reactiveValues(datapath = getwd()) # directory of file path in lipidomics tab
5
+ col = reactiveValues(col = col)
6
+ svg_path <- paste(getwd(),"/svg",sep = "")
7
+
8
+ observeEvent(input$filetype,{
9
+ if(input$filetype =="Sample in rows"){
10
+ shinyjs::show("ontfile")
11
+ }else{
12
+ shinyjs::hide("ontfile")
13
+ }
14
+ if(input$ClassorMol =="TRUE"){
15
+ shinyjs::show("X1")
16
+ shinyjs::show("X2")
17
+ }else{
18
+ shinyjs::hide("X1")
19
+ shinyjs::hide("X2")
20
+ }
21
+ })
22
+
23
+ observeEvent(input$ClassorMol,{
24
+ if(input$ClassorMol =="TRUE"){
25
+ shinyjs::show("X1")
26
+ shinyjs::show("X2")
27
+ }else{
28
+ shinyjs::hide("X1")
29
+ shinyjs::hide("X2")
30
+ }
31
+ })
32
+
33
+ observeEvent(input$file1, {
34
+ tryCatch({
35
+ originaldata <- read.csv(input$file1$datapath, header = F, check.names = F, fileEncoding = "UTF-8-BOM")
36
+ }, error = function(e) {
37
+ showNotification(paste("Failed to load the file", e$message), type = "error")
38
+ })
39
+ observeEvent(input$submit,{
40
+ tryCatch({
41
+ if(input$filetype == "Sample in rows"){
42
+
43
+ Lipidomedata <- processSampleInRows(originaldata, session, input)[[1]]
44
+ lipidont <- read.csv(input$ontfile$datapath, sep = ",", check.names = FALSE)
45
+ metadata <- processSampleInRows(originaldata, session, input)[[2]]
46
+ alitable <- read.csv(input$ontfile$datapath, check.names = FALSE, fileEncoding = "UTF-8-BOM")
47
+ colnames(alitable) <- c("Metabolite name","Ontology")
48
+ letchoice <- c(colnames(Lipidomedata)[!colnames(Lipidomedata) %in% colnames(metadata)],"Others")
49
+ moldata <- processSampleInRowstomoldata(originaldata, session, input)[[1]]
50
+ }else if(input$filetype == "MS-DIAL export"){
51
+ Lipidomedata <- processMSDIALExport(originaldata, session, input)[[1]]
52
+ metadata <- processMSDIALExport(originaldata, session, input)[[2]]
53
+ alitable <- process_alignment_file(originaldata)[[1]] %>% select(c(1,2))
54
+ moldata <- processMSDIALExporttomoldata(originaldata, session, input)[[1]]
55
+ }
56
+ if(length(input$transcriptomefile) !=0){
57
+ transcriptome <- read.csv(input$transcriptomefile$datapath,check.names = F,fileEncoding ="UTF-8-BOM") %>% t()
58
+ colnames(transcriptome) <- transcriptome[1,]
59
+ transcriptome <- transcriptome[-1,] %>% data.frame()
60
+ transcriptome[,-c(1)] <- apply(transcriptome[,-c(1)],2,as.numeric) %>% data.frame()
61
+ transcriptome <- rownames_to_column(transcriptome,"name")
62
+ transcriptome[,2] <- as.character(transcriptome[,2])
63
+ }
64
+
65
+ if(length(input$file1) !=0 & length(input$transcriptomefile) != 0){
66
+
67
+ Ensembl <- gconvert(query = colnames(transcriptome)[-c(1:2)] , organism = "mmusculus",#sapiens
68
+ target="ENSG", mthreshold = Inf, filter_na = TRUE) %>% select(input,target)
69
+ transcriptome <- transcriptome %>% select(-2)
70
+ data <- inner_join(Lipidomedata,transcriptome,by =c("name"))
71
+ moldata <- inner_join(moldata,transcriptome,by =c("name"))
72
+ }
73
+ else{
74
+ data <- Lipidomedata
75
+ }
76
+ }, error = function(e) {
77
+ showNotification(paste("Error:Invalid CSV file format. Please ensure your file is a properly formatted CSV.", e$message), type = "error")
78
+ })
79
+
80
+ metainfocol <- ncol(metadata)
81
+ lipidclassproperties <- read_csv("./pathwaymap/lipidclassproperties.csv")
82
+
83
+ processAndUpdateInputs(data, session, metadata, metainfocol)
84
+ processAndUpdateInputs2(moldata, session, metadata, metainfocol)
85
+ observeEvent(input$y,{
86
+ targetclass <- filter(alitable,Ontology %in% input$y)
87
+ shiny::updateSelectInput(session, "mol", selected = targetclass$`Metabolite name`[1], choices = targetclass$`Metabolite name`)
88
+ })
89
+
90
+ shinyjs::onclick(id = "Colorpicker",{
91
+ ShowtestModaldialog(data,input,col$col)
92
+ }
93
+ )
94
+ shinyjs::onclick(id = "exportgraph",{
95
+ ShowtestModaldialog2(data,input,col$col)
96
+ }
97
+ )
98
+
99
+ observeEvent(input$w,{
100
+ updateOrderInput(session, "levels",
101
+ items = c(unique(as.matrix(select(data,input$w)))),
102
+ item_class = "success")
103
+ shiny::updateSelectInput(session, "q", selected = c(unique(as.matrix(select(data,input$w))))[1], choices = c(unique(as.matrix(select(data,input$w)))))
104
+ col$col <<- rainbow_hcl(length(unique(as.matrix(select(data,input$w)))))
105
+ col$col <<- setNames(col$col,unique(as.matrix(select(data,input$w))))
106
+ })
107
+
108
+ observeEvent(input$levels,{
109
+ if (!is.null(input$levels) && any(input$levels != "")) {
110
+ dataa <<- mutate(data, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
111
+ moldataa <<- mutate(moldata, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
112
+
113
+ }
114
+ })
115
+
116
+ observe({
117
+ if (length(grep("selectcolor", names(input), value = TRUE)) != 0) {
118
+ col$col <<- process_select_color_input(input,data)
119
+ }
120
+ })
121
+
122
+ observeEvent(input$levels,{
123
+ observe({
124
+ if (!is.null(input$mol) && input$mol != "") {
125
+ if(!is.null(input$levels) && any(input$levels != "")){
126
+
127
+ output$plottest <- renderPlotly({
128
+
129
+ if(input$mydrop == "box"){
130
+ process_boxplot(input,input$y,dataa,col$col)
131
+ }
132
+ else if(input$mydrop == "bar"){
133
+ process_barplot(input,input$y,dataa,col$col)
134
+ }
135
+ else if(input$mydrop == "violin"){
136
+ process_violinplot(input,input$y,dataa,col$col)
137
+ }
138
+ else if(input$mydrop == "polar"){
139
+ process_polarplot(input,input$y,dataa,col$col)
140
+ }
141
+ else if(input$mydrop == "coding"){
142
+ process_dotplot(input,input$y,dataa,col$col)
143
+ }
144
+ }
145
+ )
146
+ output$mappingraph <- renderPlot({
147
+
148
+ if(input$mydrop == "box"){
149
+ process_boxplot_diagram(input,input$y,dataa,col$col)
150
+ }
151
+ else if(input$mydrop == "bar"){
152
+ process_barplot_diagram(input,input$y,dataa,col$col)
153
+ }
154
+ else if(input$mydrop == "violin"){
155
+ process_violinplot_diagram(input,input$y,dataa,col$col)
156
+ }
157
+ else if(input$mydrop == "polar"){
158
+ process_polar_diagram(input,input$y,dataa,col$col)
159
+ }
160
+ else if(input$mydrop == "coding"){
161
+ process_dotplot_diagram(input,input$y,dataa,col$col)
162
+ }
163
+ }
164
+ )
165
+
166
+ observeEvent(input$mol,{
167
+
168
+ output$plottest2 <- renderPlotly({
169
+ if(input$mydrop == "box"){
170
+ process_boxplot(input, paste("`",input$mol,"`",sep =""),moldataa,col$col)
171
+ }
172
+ else if(input$mydrop == "bar"){
173
+ process_barplot(input, paste("`",input$mol,"`",sep =""),moldataa,col$col)
174
+ }
175
+ else if(input$mydrop == "violin"){
176
+ process_violinplot(input,paste("`",input$mol,"`",sep =""),moldataa,col$col)
177
+ }
178
+ else if(input$mydrop == "polar"){
179
+ process_polarplot(input,paste("`",input$mol,"`",sep =""),moldataa,col$col)
180
+ }
181
+ else if(input$mydrop == "coding"){
182
+ process_dotplot(input,paste("`",input$mol,"`",sep =""),moldataa,col$col)
183
+ }
184
+
185
+ })
186
+ })
187
+ }
188
+ }
189
+ })
190
+ })
191
+
192
+ graph_json <- reactive({
193
+ if (input$pathwaytype == "Global pathway") {
194
+ read_graph_json("./pathwaymap/globalpathway.cyjs")
195
+ } else if (input$pathwaytype == "Ceramide pathway") {
196
+ read_graph_json("./pathwaymap/ceramidepathway.cyjs")
197
+ } else if (input$pathwaytype == "Remodeling pathway") {
198
+ read_graph_json("./pathwaymap/remodeling.cyjs")
199
+ }
200
+ })
201
+
202
+ style_file_path <- "./pathwaymap/nodestyle1.js"
203
+ styles_xml_path <- "./pathwaymap/styles.xml"
204
+ # CYJSファイルのダウンロード
205
+ output$exportCYJS <- downloadHandler(
206
+ filename = function() {
207
+ paste0(input$pathwaytype, "_", format(Sys.Date(), "%Y%m%d"), ".cyjs")
208
+ },
209
+ content = function(file) {
210
+ writeLines(graph_json, file)
211
+ },
212
+ contentType = "application/json"
213
+ )
214
+
215
+ # styles.xmlファイルのダウンロード
216
+ output$exportStyles <- downloadHandler(
217
+ filename = function() {
218
+ "styles.xml"
219
+ },
220
+ content = function(file) {
221
+ file.copy(styles_xml_path, file)
222
+ },
223
+ contentType = "application/xml"
224
+ )
225
+ #observeEvent(input$sidebarCollapse, {
226
+ # toggleClass(id = "content", class = "active")
227
+ #})
228
+
229
+ observeEvent(input$toggle_sidebar, {
230
+ shinyjs::runjs("toggleSidebar()")
231
+ })
232
+
233
+ observeEvent(input$pathway, {
234
+ output$graphContainer <- renderUI({
235
+ cyjShinyOutput("cyjShinytest", height = "90%", width = "90%")
236
+ })
237
+ })
238
+ output$cyjShinytest <- renderCyjShiny({
239
+ #p <- input$pathway
240
+ #if (p != 0) {
241
+ if (input$pathwaytype == "Global pathway") {
242
+ graph_json <<- paste(readLines("./pathwaymap/globalpathway.cyjs"), collapse = "")
243
+ } else if (input$pathwaytype == "Ceramide pathway") {
244
+ graph_json <<- paste(readLines("./pathwaymap/ceramidepathway.cyjs"), collapse = "")
245
+ } else if (input$pathwaytype == "Remodeling pathway") {
246
+ graph_json <<- paste(readLines("./pathwaymap/remodeling.cyjs"), collapse = "")
247
+ }
248
+
249
+ test <- fromJSON(graph_json)
250
+ test <- as.data.frame(test$elements$nodes)
251
+
252
+ if (input$viewacyllevel == TRUE) {
253
+ cyjShiny(graph_json, layoutName = "preset", styleFile = "./pathwaymap/nodestyle1.js")
254
+ } else {
255
+ cyjShiny(graph_json, layoutName = "preset", styleFile = "./pathwaymap/nodestyle2.js")
256
+ }
257
+ # } else {
258
+
259
+ #}
260
+ })
261
+
262
+
263
+
264
+ observeEvent(input$getSelectedNodes, ignoreInit=TRUE, {
265
+ output$selectedNodesDisplay <- renderText({" "})
266
+ getSelectedNodes(session)
267
+ })
268
+
269
+
270
+ output$corselect <- renderPlotly({
271
+ if(input$pathwaytype == "Global pathway"){
272
+ graph_json <<- paste(readLines("./pathwaymap/globalpathway.cyjs"), collapse="")
273
+ }else if(input$pathwaytype == "Ceramide pathway"){
274
+ graph_json <<- paste(readLines("./pathwaymap/ceramidepathway.cyjs"), collapse="")
275
+ }else if(input$pathwaytype == "Remodeling pathway"){
276
+ graph_json <<- paste(readLines("./pathwaymap/remodeling.cyjs"), collapse="")
277
+ }
278
+ test <- fromJSON(graph_json)
279
+ test <- as.data.frame(test$elements$nodes)
280
+ test1 <- test[test$data$id %in% unlist(input$selectedNodes),]
281
+ dataa <- mutate(data, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
282
+
283
+ if(length(test1$data$shared_name) == 2){
284
+ moldataa <- mutate(moldata, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
285
+ targetclass <- filter(alitable,Ontology %in% test1$data$shared_name)
286
+ if(! test1$data$shared_name[1] %in% colnames(data)) {
287
+ a <- Ensembl[Ensembl$target %in% test1$data$Ensembl_ID[1],]
288
+ test1$data$shared_name[1] <- a$input
289
+ }
290
+ if(! test1$data$shared_name[2] %in% colnames(data)) {
291
+ b <- Ensembl[Ensembl$target %in% test1$data$Ensembl_ID[2],]
292
+ test1$data$shared_name[2] <- b$input
293
+ }
294
+ if(input$ClassorMol == FALSE){
295
+ cor_value <- cor(dataa[,test1$data$shared_name[1]], dataa[,test1$data$shared_name[2]],method = "spearman")
296
+ g <- ggplot(dataa,aes_string(test1$data$shared_name[1],test1$data$shared_name[2],fill = input$w,size = input$size))+geom_point(shape =21,color = "black")+
297
+ scale_fill_manual(values = unlist(col$col)) + ggtitle(paste("r = ",round(cor_value, 2)))
298
+ }else{
299
+ moldataa <- mutate(moldata, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
300
+ cor_value <- cor(moldataa[,input$X1], moldataa[,input$X2],method = "spearman")
301
+ g <- ggplot(moldataa,aes_string(paste("`",input$X1,"`",sep =""),paste("`",input$X2,"`",sep =""),fill = input$w,size = input$size))+geom_point(shape =21,color = "black")+
302
+ scale_fill_manual(values = unlist(col$col))+ ggtitle(paste("r = ",round(cor_value, 2)))
303
+ }
304
+ plotly::ggplotly(g)
305
+ }
306
+
307
+ })
308
+ output$textOutput <- renderText({
309
+ if(input$ClassorMol == FALSE){
310
+ "Select two nodes from the network to analyze their correlation."}
311
+ else{
312
+ "Select two features to analyze their correlation."
313
+ }
314
+ })
315
+
316
+
317
+
318
+
319
+ observeEvent(input$selectedNodes, {
320
+ if(input$pathwaytype == "Global pathway"){
321
+ graph_json <<- paste(readLines("./pathwaymap/globalpathway.cyjs"), collapse="")
322
+ }else if(input$pathwaytype == "Ceramide pathway"){
323
+ graph_json <<- paste(readLines("./pathwaymap/ceramidepathway.cyjs"), collapse="")
324
+ }else if(input$pathwaytype == "Remodeling pathway"){
325
+ graph_json <<- paste(readLines("./pathwaymap/remodeling.cyjs"), collapse="")
326
+ }
327
+ test <- fromJSON(graph_json)
328
+ test <- as.data.frame(test$elements$nodes)
329
+ test1 <- test[test$data$id %in% unlist(input$selectedNodes),]
330
+ moldataa <- mutate(moldata, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
331
+ targetclass <- filter(alitable,Ontology %in% test1$data$shared_name)
332
+ shiny::updateSelectInput(session, "selectmol", selected = targetclass$`Metabolite name`[1], choices = targetclass$`Metabolite name`)
333
+ },ignoreNULL = TRUE)
334
+
335
+ output$corselect2 <- renderPlot({
336
+ if(input$pathwaytype == "Global pathway"){
337
+ graph_json <<- paste(readLines("./pathwaymap/globalpathway.cyjs"), collapse="")
338
+ }else if(input$pathwaytype == "Ceramide pathway"){
339
+ graph_json <<- paste(readLines("./pathwaymap/ceramidepathway.cyjs"), collapse="")
340
+ }else if(input$pathwaytype == "Remodeling pathway"){
341
+ graph_json <<- paste(readLines("./pathwaymap/remodeling.cyjs"), collapse="")
342
+ }
343
+ test <- fromJSON(graph_json)
344
+ test <- as.data.frame(test$elements$nodes)
345
+ test1 <- test[test$data$id %in% unlist(input$selectedNodes),]
346
+ moldataa <- mutate(moldata, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
347
+ targetclass <- filter(alitable,Ontology %in% test1$data$shared_name)
348
+ if(length(test1$data$shared_name) > 0 && input$selectmol != " "){
349
+ if(test1$data$shared_name[1] %in% colnames(data)) {
350
+ if(input$mydrop == "box"){
351
+ g <- process_boxplot_diagram(input,paste("`",input$selectmol,"`",sep =""),moldataa,col$col)
352
+ }
353
+ else if(input$mydrop == "bar"){
354
+ g <- process_barplot_diagram(input,paste("`",input$selectmol,"`",sep =""),moldataa,col$col)
355
+ }
356
+ else if(input$mydrop == "violin"){
357
+ g <- process_violinplot_diagram(input,paste("`",input$selectmol,"`",sep =""),moldataa,col$col)
358
+ }
359
+ else if(input$mydrop == "polar"){
360
+ g <- process_polar_diagram(input,paste("`",input$selectmol,"`",sep =""),moldataa,col$col)
361
+ }
362
+ else if(input$mydrop == "coding"){
363
+
364
+ g <- process_dotplot_diagram(input,paste("`",input$selectmol,"`",sep =""),moldataa,col$col)
365
+ }}
366
+ plot(g)
367
+ }
368
+
369
+ })
370
+
371
+
372
+ observeEvent(input$save_pdf,{
373
+ shinyscreenshot::screenshot(selector="#cyjShinytest")
374
+ })
375
+ #Creating heatmap
376
+ observeEvent(input$actionplottest, {
377
+ waiter::waiter_show(
378
+ id = NULL,
379
+ html = tagList(waiter::spin_loader(),
380
+ "Loading ..."),
381
+ color = "#333e48",
382
+ logo = "",
383
+ image = ""
384
+ )
385
+ file_list <- list.files(svg_path)
386
+ if (length(unlist(file_list)) > 0) {
387
+ file.remove(file.path(svg_path, file_list))
388
+ } else {
389
+ }
390
+ if(is.null(input$transcriptomefile) == FALSE){
391
+ Ensembl <- gconvert(query = colnames(transcriptome)[-c(1:2)] , organism = "mmusculus",#sapiens
392
+ target="ENSG", mthreshold = Inf, filter_na = TRUE) %>% select(input,target)
393
+ graph_json1 <- paste(readLines("./pathwaymap/ceramidepathway.cyjs"), collapse="") %>% fromJSON()
394
+ graph_json2 <- paste(readLines("./pathwaymap/remodeling.cyjs"), collapse="") %>% fromJSON()
395
+ Ensemblinmap <- c(graph_json1$elements$nodes$data$Ensembl_ID,graph_json2$elements$nodes$data$Ensembl_ID)
396
+ Ensemblinmap <- Ensemblinmap[-which(Ensemblinmap %in% "")]
397
+
398
+ geneinmap <- Ensembl[Ensembl[,2] %in% Ensemblinmap,]
399
+
400
+ transcriptome2 <- colnames(transcriptome)[colnames(transcriptome) %in% geneinmap$input]
401
+
402
+ data <- data[,colnames(data) %in% c(colnames(data)[1:metainfocol],colnames(Lipidomedata),transcriptome2)]
403
+ dataa <- mutate(data, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
404
+ names(dataa)[match(geneinmap$input, names(dataa))] <- geneinmap$target
405
+
406
+ } else {
407
+ dataa <- mutate(data, !!as.symbol(input$w) := !!as.symbol(input$w) %>% factor(levels = input$levels))
408
+ }
409
+
410
+ # if (length(grep("selectcolor", names(input), value = TRUE)) != 0) {
411
+ # col <<- process_select_color_input(input,data)
412
+ # }
413
+ if(input$mydrop == "box"){
414
+ process_action_boxplot(input,dataa,metainfocol,svg_path,col$col,output)
415
+ }
416
+ else if(input$mydrop == "bar"){
417
+ process_action_barplot(input,dataa,metainfocol,svg_path,col$col,output)
418
+ }
419
+ else if(input$mydrop == "violin"){
420
+ process_action_violinplot(input,dataa,metainfocol,svg_path,col$col,output)
421
+ }
422
+ else if(input$mydrop == "polar"){
423
+ process_action_polarplot(input,dataa,metainfocol,svg_path,col$col,output)
424
+ }
425
+ else if(input$mydrop == "coding"){
426
+ process_action_dotplot(input,dataa,metainfocol,svg_path,col$col,output)
427
+ }
428
+ # if(input$filetype == "MS-DIAL export"){
429
+ # exportgroupnodeheatmap(originaldata,metadata,paste(global$datapath,"",sep =""),input$w,input$levels,originaldir,input)}
430
+ Sys.sleep(3)
431
+ waiter::waiter_hide()
432
+ }
433
+ )
434
+ observeEvent(input$w,{
435
+
436
+ output$heatmap <- renderPlot({
437
+ if(length(unlist(input$selectedNodes)) > 0 ) {
438
+ test <- fromJSON(graph_json)
439
+ test <- as.data.frame(test$elements$nodes)
440
+ test1 <- test[test$data$id %in% unlist(input$selectedNodes),]
441
+ groupnodeheatmap(lipidclassproperties,originaldata,metadata,input$w,input$levels,test1$data$shared_name[1],input)
442
+ }
443
+ })
444
+ })
445
+ } )})}
app/svg/.gitkeep ADDED
@@ -0,0 +1 @@
 
 
1
+
app/ui.R ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ source("./modules/librarys.R")
2
+ source("./modules/data_processing.R")
3
+ source("./modules/plot_utils.R")
4
+ source("./modules/heatmap_utils.R")
5
+ source("./modules/modaldialog_utils.R")
6
+ source("./modules/selectcolor_utils.R")
7
+ source("./modules/ui_modules.R")
8
+
9
+ shinyUI(
10
+ fluidPage(
11
+ useShinyjs(),
12
+ tags$head(
13
+ tags$style(HTML(
14
+ "
15
+ .well { background-color: initial; border: initial; }
16
+ .navbar { margin-bottom: 5px; }
17
+ .container-fluid { padding-right: 10px; padding-left: 10px; }
18
+ #sidebar {
19
+ position: fixed;
20
+ left: 0;
21
+ width: 250px;
22
+ height: calc(100% - 160px);
23
+ top: 160px;
24
+ background: #f8f9fa;
25
+ transition: all 0.3s;
26
+ padding: 15px;
27
+ z-index: 1000;
28
+ }
29
+ #sidebar.inactive {
30
+ left: -250px;
31
+ }
32
+ #content {
33
+ margin-left: 60px;
34
+ transition: all 0.3s;
35
+ height: calc(100vh - 50px);
36
+ }
37
+ #content.active {
38
+ margin-left: 310px;
39
+ }
40
+ #main-content {
41
+ margin-left: 250px;
42
+ transition: all 0.3s;
43
+ padding-top: 80px;
44
+ }
45
+ #main-content.inactive {
46
+ margin-left: 0;
47
+ }
48
+ #toggle_sidebar {
49
+ position: fixed;
50
+ left: 260px;
51
+ top: 160px;
52
+ z-index: 1001;
53
+ width: 40px;
54
+ height: 40px;
55
+ background: #343a40;
56
+ color: #fff;
57
+ border: none;
58
+ border-radius: 5px;
59
+ transition: all 0.3s;
60
+ }
61
+ #toggle_sidebar.inactive {
62
+ left: 10px;
63
+ }
64
+ #graphContainer {
65
+ height: 100%;
66
+ width: 100%;
67
+ }
68
+ #tab3 {
69
+ margin-top: 70px;
70
+ }
71
+ "
72
+ ))
73
+ ),
74
+ navbarPage(
75
+ "MSDIAL2Cytoscape",
76
+ theme = shinytheme("yeti"),
77
+ tabPanel(
78
+ waiter::useWaiter(),
79
+ uiOutput("dynamicSidebar"),
80
+ uiOutput("dynamicSidebarToggle"),
81
+ tabsetPanel(
82
+ id = "mainTabs",
83
+ uploadpanel,
84
+ tabPanel(
85
+ value = "tab2",
86
+ tagList(
87
+ div(
88
+ style = "display: flex; align-items: center; justify-content: center; margin-bottom: 15px;",
89
+ img(src = "./barplot.png", style = "width: 50px; height: 50px; margin-right: 10px;"),
90
+ div(style = "font-size: 18px; color: #000000; font-weight: bold;", "Plot")
91
+ )
92
+ ),
93
+ fluidRow(
94
+ column(
95
+ width = 12,
96
+ createCustomSidebar("y", "w", "z", "alpha", "size", "Fontsize", "levels", "pvaluecheck", "q"),
97
+ plotTabAppearanceUI(
98
+ "", "./bar.png", "50px", "50px", "plottest", "plottest2", "testtext"
99
+ )
100
+ )
101
+ )
102
+ ),
103
+ tabPanel(
104
+ value = "tab3",
105
+
106
+ tagList(
107
+ div(
108
+ style = "display: flex; align-items: center; justify-content: center; margin-bottom: 15px;",
109
+ img(src = "./network2.png", style = "width: 50px; height: 50px; margin-right: 10px;"),
110
+ div(style = "font-size: 18px; color: #000000; font-weight: bold;", "Pathway analysis")
111
+ )
112
+ ),
113
+
114
+ actionButton("toggle_sidebar", icon("bars"), class = "btn-info"),
115
+
116
+ div(
117
+ id = "sidebar",
118
+ wellPanel(
119
+ id = "pathway-controls",
120
+ selectInput("pathwaytype", "Pathway type",
121
+ choices = c("Global pathway", "Ceramide pathway", "Remodeling pathway"),
122
+ selected = "Global pathway"),
123
+ actionButton("pathway", "Pathway mapping", class = "btn-primary btn-block"),
124
+ actionButton("save_pdf", "Save as PNG", class = "btn-success btn-block"),
125
+ downloadButton("exportCYJS", "Export CYJS", class = "btn-block"),
126
+ downloadButton("exportStyles", "Export styles.xml", class = "btn-block"),
127
+ checkboxInput("viewacyllevel", "Close-up nodes", value = TRUE)
128
+ )
129
+ ),
130
+ div(
131
+ id = "main-content",
132
+ fluidRow(
133
+ column(
134
+ width = 9,
135
+ div(id = "content",
136
+ uiOutput("graphContainer")
137
+ )
138
+ ),
139
+ column(
140
+ width = 3,
141
+
142
+ actionButton("getSelectedNodes", "Click nodes in the Network and Confirm Selection", class = "btn-primary btn-block"),
143
+ br(),
144
+ tabsetPanel(
145
+ id = "sideTabset",
146
+ tabPanel("Lipid Species Visualization",
147
+ div(id = "tabContent",
148
+ wellPanel(
149
+ selectInput(
150
+ inputId = "selectmol",
151
+ label = "Select molecule to display",
152
+ choices = c(" "),
153
+ selected = " "
154
+ ),
155
+ plotOutput(outputId = "corselect2")),
156
+ wellPanel(
157
+ plotOutput(outputId = "heatmap",height = "600px" ,width = "100%"),
158
+ checkboxInput(inputId = "acylfilter", label = "Filtering common acylchains (16:0, 16:1, 18:0, 18:1, 18:2, 18:3, 20:3, 20:4, 20:5, 22:4, 22:5, 22:6)", value = TRUE),
159
+ checkboxInput(inputId = "sn", label = "sn", value = FALSE))
160
+ )
161
+ ),
162
+ tabPanel("Correlation Plot",
163
+ div(id = "tabContent",
164
+ wellPanel(
165
+ textOutput("textOutput"),
166
+ br(),
167
+ plotlyOutput(outputId = "corselect")),
168
+ checkboxInput(inputId = "ClassorMol", label = "Correlation of lipid species", value = FALSE),
169
+ selectInput(
170
+ inputId = "X1",
171
+ label = "X",
172
+ choices = c(" "),
173
+ selected = " "
174
+ ),
175
+ selectInput(
176
+ inputId = "X2",
177
+ label = "Y",
178
+ choices = c(" "),
179
+ selected = " "
180
+ )
181
+ )
182
+ )
183
+ )
184
+ )
185
+ )
186
+ ),
187
+ tags$script(HTML(
188
+ "
189
+ function toggleSidebar() {
190
+ var sidebar = $('#sidebar');
191
+ var mainContent = $('#main-content');
192
+ var toggleBtn = $('#toggle_sidebar');
193
+
194
+ sidebar.toggleClass('inactive');
195
+ mainContent.toggleClass('inactive');
196
+ toggleBtn.toggleClass('inactive');
197
+
198
+ if (sidebar.hasClass('inactive')) {
199
+ toggleBtn.find('i').removeClass('fa-times').addClass('fa-bars');
200
+ } else {
201
+ toggleBtn.find('i').removeClass('fa-bars').addClass('fa-times');
202
+ }
203
+ }
204
+ "
205
+ ))
206
+ )
207
+ )
208
+ )
209
+ )
210
+ )
211
+ )
212
+
213
+
214
+
app/www/background.svg ADDED
app/www/barplot.png ADDED
app/www/boxplot.png ADDED
app/www/code.png ADDED
app/www/dotplot.png ADDED
app/www/network2.png ADDED
app/www/upload.png ADDED
app/www/violin2.png ADDED
scripts/start.sh ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ R -e "library(dplyr)"
2
+
3
+ R -e "plumber::pr_run(plumber::pr('/srv/app/plumber.R'), port=9000, host='0.0.0.0')" &
4
+
5
+ R -e "shiny::runApp('/srv/app', host='0.0.0.0', port=1028)"