1 | 1 |
old mode 100644 |
2 | 2 |
new mode 100755 |
... | ... |
@@ -8,8 +8,7 @@ |
8 | 8 |
#' @noRd |
9 | 9 |
#' @return instance of GMQL dataset |
10 | 10 |
#' |
11 |
-setClass("GMQLDataset", |
|
12 |
- representation(value = "character")) |
|
11 |
+setClass("GMQLDataset", representation(value = "character")) |
|
13 | 12 |
|
14 | 13 |
#' GMQLDataset alloc Function |
15 | 14 |
#' |
... | ... |
@@ -22,19 +21,16 @@ setClass("GMQLDataset", |
22 | 21 |
#' @rdname GMQLDataset-class |
23 | 22 |
#' @noRd |
24 | 23 |
GMQLDataset <- function(value) { |
25 |
- dataset <- new("GMQLDataset",value = value) |
|
26 |
- return(dataset) |
|
24 |
+ dataset <- new("GMQLDataset",value = value) |
|
25 |
+ return(dataset) |
|
27 | 26 |
} |
28 | 27 |
|
29 |
-setMethod("show", "GMQLDataset", |
|
30 |
- function(object) |
|
31 |
- { |
|
32 |
- cat("GMQL Dataset \n") |
|
33 |
- cat(" value :",paste(object@value)) |
|
34 |
- }) |
|
28 |
+setMethod("show", "GMQLDataset", function(object) { |
|
29 |
+ cat("GMQL Dataset \n") |
|
30 |
+ cat(" value :",paste(object@value)) |
|
31 |
+}) |
|
35 | 32 |
|
36 | 33 |
setGeneric("value", function(.dataset) standardGeneric("value")) |
37 | 34 |
|
38 | 35 |
setMethod("value", "GMQLDataset", function(.dataset) .dataset@value) |
39 | 36 |
|
40 |
- |
41 | 37 |
old mode 100644 |
42 | 38 |
new mode 100755 |
... | ... |
@@ -18,7 +18,6 @@ setGeneric("cover", function(.data, ...) standardGeneric("cover")) |
18 | 18 |
#' |
19 | 19 |
setGeneric("map", function(x, y, ...) standardGeneric("map")) |
20 | 20 |
|
21 |
- |
|
22 | 21 |
#' Method take |
23 | 22 |
#' |
24 | 23 |
#' Wrapper to TAKE operation |
... | ... |
@@ -29,7 +28,6 @@ setGeneric("map", function(x, y, ...) standardGeneric("map")) |
29 | 28 |
#' |
30 | 29 |
setGeneric("take", function(.data, ...) standardGeneric("take")) |
31 | 30 |
|
32 |
- |
|
33 | 31 |
#' Method extend |
34 | 32 |
#' |
35 | 33 |
#' Wrapper to GMQL EXTEND operator |
36 | 34 |
old mode 100644 |
37 | 35 |
new mode 100755 |
... | ... |
@@ -32,23 +32,23 @@ |
32 | 32 |
#' @rdname condition_eval_func |
33 | 33 |
#' @export |
34 | 34 |
conds <- function(default = c(""), full = c(""), exact = c("")) { |
35 |
- df <- .condition("DEF",default) |
|
36 |
- fn <- .condition("FULL",full) |
|
37 |
- ex <- .condition("EXACT",exact) |
|
38 |
- list("condition" = list("def" = df, "full" = fn, "exact" = ex)) |
|
35 |
+ df <- .condition("DEF",default) |
|
36 |
+ fn <- .condition("FULL",full) |
|
37 |
+ ex <- .condition("EXACT",exact) |
|
38 |
+ list("condition" = list("def" = df, "full" = fn, "exact" = ex)) |
|
39 | 39 |
} |
40 | 40 |
|
41 | 41 |
.condition <- function(cond, array) { |
42 |
- array = array[!array %in% ""] |
|
43 |
- array = array[!duplicated(array)] |
|
44 |
- |
|
45 |
- if(!length(array)) |
|
46 |
- join_condition_matrix <- NULL |
|
47 |
- else { |
|
48 |
- join_condition_matrix <- t(vapply(array, function(x) { |
|
49 |
- new_value = c(cond, x) |
|
50 |
- matrix <- matrix(new_value) |
|
51 |
- },character(2))) |
|
52 |
- } |
|
53 |
- join_condition_matrix |
|
42 |
+ array = array[!array %in% ""] |
|
43 |
+ array = array[!duplicated(array)] |
|
44 |
+ |
|
45 |
+ if(!length(array)) |
|
46 |
+ join_condition_matrix <- NULL |
|
47 |
+ else { |
|
48 |
+ join_condition_matrix <- t(vapply(array, function(x) { |
|
49 |
+ new_value = c(cond, x) |
|
50 |
+ matrix <- matrix(new_value) |
|
51 |
+ },character(2))) |
|
52 |
+ } |
|
53 |
+ join_condition_matrix |
|
54 | 54 |
} |
55 | 55 |
old mode 100644 |
56 | 56 |
new mode 100755 |
... | ... |
@@ -122,90 +122,87 @@ |
122 | 122 |
#' @aliases cover,GMQLDataset-method |
123 | 123 |
#' @aliases cover-method |
124 | 124 |
#' @export |
125 |
-setMethod("cover", "GMQLDataset", |
|
126 |
- function(.data, min_acc, max_acc, groupBy = conds(), |
|
127 |
- variation = "cover", ...) |
|
128 |
- { |
|
129 |
- val <- value(.data) |
|
130 |
- s_min <- substitute(min_acc) |
|
131 |
- s_min <- .trasform_cover(deparse(s_min)) |
|
132 |
- s_max <- substitute(max_acc) |
|
133 |
- s_max <- .trasform_cover(deparse(s_max)) |
|
134 |
- |
|
135 |
- q_max <- .check_cover_param(s_max,FALSE) |
|
136 |
- q_min <- .check_cover_param(s_min,TRUE) |
|
137 |
- |
|
138 |
- flag = toupper(variation) |
|
139 |
- aggregates = list(...) |
|
140 |
- gmql_cover(val, q_min, q_max, groupBy, aggregates, flag) |
|
141 |
- }) |
|
142 |
- |
|
143 |
-gmql_cover <- function(input_data, min_acc, max_acc, groupBy,aggregates,flag) |
|
125 |
+setMethod("cover", "GMQLDataset", function( |
|
126 |
+ .data, min_acc, max_acc, groupBy = conds(), variation = "cover", ...) |
|
144 | 127 |
{ |
145 |
- if(!is.null(groupBy)) |
|
146 |
- { |
|
147 |
- if("condition" %in% names(groupBy)) |
|
148 |
- { |
|
149 |
- cond <- .join_condition(groupBy) |
|
150 |
- if(is.null(cond)) |
|
151 |
- join_matrix <- .jnull("java/lang/String") |
|
152 |
- else |
|
153 |
- join_matrix <- .jarray(cond, dispatch = TRUE) |
|
154 |
- } |
|
155 |
- else |
|
156 |
- stop("use function conds()") |
|
157 |
- } |
|
158 |
- else |
|
159 |
- join_matrix <- .jnull("java/lang/String") |
|
128 |
+ val <- value(.data) |
|
129 |
+ s_min <- substitute(min_acc) |
|
130 |
+ s_min <- .trasform_cover(deparse(s_min)) |
|
131 |
+ s_max <- substitute(max_acc) |
|
132 |
+ s_max <- .trasform_cover(deparse(s_max)) |
|
133 |
+ |
|
134 |
+ q_max <- .check_cover_param(s_max,FALSE) |
|
135 |
+ q_min <- .check_cover_param(s_min,TRUE) |
|
136 |
+ |
|
137 |
+ flag = toupper(variation) |
|
138 |
+ aggregates = list(...) |
|
139 |
+ gmql_cover(val, q_min, q_max, groupBy, aggregates, flag) |
|
140 |
+}) |
|
160 | 141 |
|
161 |
- if(!is.null(aggregates) && length(aggregates)) |
|
162 |
- { |
|
163 |
- aggr <- .aggregates(aggregates,"AGGREGATES") |
|
164 |
- metadata_matrix <- .jarray(aggr, dispatch = TRUE) |
|
142 |
+gmql_cover <- function( |
|
143 |
+ input_data, |
|
144 |
+ min_acc, |
|
145 |
+ max_acc, |
|
146 |
+ groupBy, |
|
147 |
+ aggregates, |
|
148 |
+ flag |
|
149 |
+) { |
|
150 |
+ if(!is.null(groupBy)) { |
|
151 |
+ if("condition" %in% names(groupBy)) { |
|
152 |
+ cond <- .join_condition(groupBy) |
|
153 |
+ if(is.null(cond)) |
|
154 |
+ join_matrix <- .jnull("java/lang/String") |
|
155 |
+ else |
|
156 |
+ join_matrix <- .jarray(cond, dispatch = TRUE) |
|
165 | 157 |
} |
166 | 158 |
else |
167 |
- metadata_matrix <- .jnull("java/lang/String") |
|
168 |
- |
|
169 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
170 |
- response <- switch(flag, |
|
171 |
- "COVER" = WrappeR$cover(min_acc, max_acc, join_matrix, |
|
172 |
- metadata_matrix, input_data), |
|
173 |
- "FLAT" = WrappeR$flat(min_acc, max_acc, join_matrix, |
|
174 |
- metadata_matrix, input_data), |
|
175 |
- "SUMMIT" = WrappeR$summit(min_acc,max_acc, join_matrix, |
|
176 |
- metadata_matrix, input_data), |
|
177 |
- "HISTOGRAM" = WrappeR$histogram(min_acc, max_acc, join_matrix, |
|
178 |
- metadata_matrix, input_data)) |
|
179 |
- if(is.null(response)) |
|
180 |
- stop("no admissible variation: cover, flat, summit, histogram") |
|
181 |
- |
|
182 |
- error <- strtoi(response[1]) |
|
183 |
- val <- response[2] |
|
184 |
- if(error) |
|
185 |
- stop(val) |
|
186 |
- else |
|
187 |
- GMQLDataset(val) |
|
159 |
+ stop("use function conds()") |
|
160 |
+ } else |
|
161 |
+ join_matrix <- .jnull("java/lang/String") |
|
162 |
+ |
|
163 |
+ if(!is.null(aggregates) && length(aggregates)) { |
|
164 |
+ aggr <- .aggregates(aggregates,"AGGREGATES") |
|
165 |
+ metadata_matrix <- .jarray(aggr, dispatch = TRUE) |
|
166 |
+ } else |
|
167 |
+ metadata_matrix <- .jnull("java/lang/String") |
|
168 |
+ |
|
169 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
170 |
+ response <- switch( |
|
171 |
+ flag, |
|
172 |
+ "COVER" = WrappeR$cover( |
|
173 |
+ min_acc, max_acc, join_matrix, metadata_matrix, input_data), |
|
174 |
+ "FLAT" = WrappeR$flat( |
|
175 |
+ min_acc, max_acc, join_matrix,metadata_matrix, input_data), |
|
176 |
+ "SUMMIT" = WrappeR$summit( |
|
177 |
+ min_acc,max_acc, join_matrix, metadata_matrix, input_data), |
|
178 |
+ "HISTOGRAM" = WrappeR$histogram( |
|
179 |
+ min_acc, max_acc, join_matrix, metadata_matrix, input_data) |
|
180 |
+ ) |
|
181 |
+ if(is.null(response)) |
|
182 |
+ stop("no admissible variation: cover, flat, summit, histogram") |
|
183 |
+ |
|
184 |
+ error <- strtoi(response[1]) |
|
185 |
+ val <- response[2] |
|
186 |
+ if(error) |
|
187 |
+ stop(val) |
|
188 |
+ else |
|
189 |
+ GMQLDataset(val) |
|
188 | 190 |
} |
189 | 191 |
|
190 |
-.check_cover_param <- function(param, is_min) |
|
191 |
-{ |
|
192 |
- if(length(param) > 1) |
|
193 |
- stop("length > 1") |
|
194 |
- |
|
195 |
- if(is.character(param)) |
|
196 |
- { |
|
197 |
- if(is_min && identical(param,"ANY")) |
|
198 |
- stop("min cannot assume ANY as value") |
|
199 |
- |
|
200 |
- return(param) |
|
201 |
- } |
|
202 |
- else |
|
203 |
- stop("invalid input data") |
|
192 |
+.check_cover_param <- function(param, is_min) { |
|
193 |
+ if(length(param) > 1) |
|
194 |
+ stop("length > 1") |
|
195 |
+ |
|
196 |
+ if(is.character(param)) { |
|
197 |
+ if(is_min && identical(param,"ANY")) |
|
198 |
+ stop("min cannot assume ANY as value") |
|
204 | 199 |
|
200 |
+ return(param) |
|
201 |
+ } else |
|
202 |
+ stop("invalid input data") |
|
205 | 203 |
} |
206 | 204 |
|
207 |
-.trasform_cover <- function(predicate) |
|
208 |
-{ |
|
205 |
+.trasform_cover <- function(predicate) { |
|
209 | 206 |
predicate <- gsub("\\(\\)","",predicate) |
210 | 207 |
} |
211 | 208 |
|
212 | 209 |
old mode 100644 |
213 | 210 |
new mode 100755 |
... | ... |
@@ -61,36 +61,34 @@ |
61 | 61 |
#' @aliases setdiff,GMQLDataset,GMQLDataset-method |
62 | 62 |
#' @aliases setdiff-method |
63 | 63 |
#' @export |
64 |
-setMethod("setdiff", c("GMQLDataset","GMQLDataset"), |
|
65 |
- function(x, y, joinBy = conds(), is_exact = FALSE) |
|
66 |
- { |
|
67 |
- ptr_data_x = value(x) |
|
68 |
- ptr_data_y = value(y) |
|
69 |
- gmql_difference(ptr_data_x, ptr_data_y, is_exact, joinBy) |
|
70 |
- }) |
|
64 |
+setMethod("setdiff", c("GMQLDataset","GMQLDataset"), |
|
65 |
+ function(x, y, joinBy = conds(), is_exact = FALSE) { |
|
66 |
+ ptr_data_x = value(x) |
|
67 |
+ ptr_data_y = value(y) |
|
68 |
+ gmql_difference(ptr_data_x, ptr_data_y, is_exact, joinBy) |
|
69 |
+ }) |
|
71 | 70 |
|
72 |
-gmql_difference <- function(left_data, right_data, is_exact, joinBy) |
|
73 |
-{ |
|
74 |
- if(!is.null(joinBy)) |
|
75 |
- { |
|
76 |
- cond <- .join_condition(joinBy) |
|
77 |
- if(is.null(cond)) |
|
78 |
- join_matrix <- .jnull("java/lang/String") |
|
79 |
- else |
|
80 |
- join_matrix <- .jarray(cond, dispatch = TRUE) |
|
81 |
- } |
|
71 |
+gmql_difference <- function(left_data, right_data, is_exact, joinBy) { |
|
72 |
+ if(!is.null(joinBy)) { |
|
73 |
+ cond <- .join_condition(joinBy) |
|
74 |
+ if(is.null(cond)) |
|
75 |
+ join_matrix <- .jnull("java/lang/String") |
|
82 | 76 |
else |
83 |
- join_matrix <- .jnull("java/lang/String") |
|
84 |
- |
|
85 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
86 |
- response <- WrappeR$difference(join_matrix, left_data, right_data, |
|
87 |
- is_exact) |
|
88 |
- error <- strtoi(response[1]) |
|
89 |
- val <- response[2] |
|
90 |
- if(error) |
|
91 |
- stop(val) |
|
92 |
- else |
|
93 |
- GMQLDataset(val) |
|
77 |
+ join_matrix <- .jarray(cond, dispatch = TRUE) |
|
78 |
+ } |
|
79 |
+ else |
|
80 |
+ join_matrix <- .jnull("java/lang/String") |
|
81 |
+ |
|
82 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
83 |
+ response <- WrappeR$difference( |
|
84 |
+ join_matrix, left_data, right_data, is_exact |
|
85 |
+ ) |
|
86 |
+ error <- strtoi(response[1]) |
|
87 |
+ val <- response[2] |
|
88 |
+ if(error) |
|
89 |
+ stop(val) |
|
90 |
+ else |
|
91 |
+ GMQLDataset(val) |
|
94 | 92 |
} |
95 | 93 |
|
96 | 94 |
|
97 | 95 |
old mode 100644 |
98 | 96 |
new mode 100755 |
... | ... |
@@ -35,8 +35,10 @@ execute <- function() |
35 | 35 |
{ |
36 | 36 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
37 | 37 |
remote_proc <- WrappeR$is_remote_processing() |
38 |
+ datasets <- .jevalArray(WrappeR$get_dataset_list(),simplify = TRUE) |
|
39 |
+ |
|
38 | 40 |
if(!remote_proc) |
39 |
- .download_or_upload() |
|
41 |
+ .download_or_upload(datasets) |
|
40 | 42 |
|
41 | 43 |
response <- WrappeR$execute() |
42 | 44 |
error <- strtoi(response[1]) |
... | ... |
@@ -51,15 +53,14 @@ execute <- function() |
51 | 53 |
isGTF <- TRUE |
52 | 54 |
|
53 | 55 |
url <- WrappeR$get_url() |
54 |
- .download_or_upload() |
|
56 |
+ .download_or_upload(datasets) |
|
55 | 57 |
res <- serialize_query(url,isGTF,val) |
56 | 58 |
} |
57 | 59 |
} |
58 | 60 |
} |
59 | 61 |
|
60 |
-.download_or_upload <- function() { |
|
62 |
+.download_or_upload <- function(datasets) { |
|
61 | 63 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
62 |
- datasets <- .jevalArray(WrappeR$get_dataset_list(),simplify = TRUE) |
|
63 | 64 |
data_list <- apply(datasets, 1, as.list) |
64 | 65 |
url <- WrappeR$get_url() |
65 | 66 |
remote <- WrappeR$is_remote_processing() |
66 | 67 |
old mode 100644 |
67 | 68 |
new mode 100755 |
... | ... |
@@ -66,82 +66,93 @@ |
66 | 66 |
#' @rdname read-function |
67 | 67 |
#' @export |
68 | 68 |
#' |
69 |
-read_gmql <- function(dataset, parser = "CustomParser", is_local = TRUE, |
|
70 |
- is_GMQL = TRUE) |
|
71 |
-{ |
|
72 |
- .check_input(dataset) |
|
73 |
- .check_logical(is_local) |
|
74 |
- .check_logical(is_GMQL) |
|
75 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
76 |
- parser_name <- .check_parser(parser) |
|
77 |
- if(is_local) |
|
78 |
- { |
|
79 |
- if(!dir.exists(dataset)) |
|
80 |
- stop("folder does not exist") |
|
81 |
- |
|
82 |
- dataset <- sub("/*[/]$","",dataset) |
|
83 |
- if(basename(dataset) !="files") |
|
84 |
- dataset <- file.path(dataset,"files") |
|
85 |
- |
|
86 |
- schema_SCHEMA <- list.files(dataset, pattern = "*.schema$", |
|
87 |
- full.names = TRUE) |
|
88 |
- |
|
89 |
- xml_schema <- list.files(dataset, pattern = "*.xml$", |
|
90 |
- full.names = TRUE) |
|
91 |
- xml_schema = xml_schema[!basename(xml_schema) %in% c("web_profile.xml")] |
|
92 |
- |
|
93 |
- if(!length(schema_SCHEMA) && !length(xml_schema)) |
|
94 |
- stop("schema not present") |
|
95 |
- |
|
96 |
- if(!length(schema_SCHEMA)) |
|
97 |
- schema_XML <- xml_schema |
|
98 |
- else |
|
99 |
- schema_XML <- dataset |
|
100 |
- |
|
101 |
- schema_matrix <- .jnull("java/lang/String") |
|
102 |
- url <- .jnull("java/lang/String") |
|
103 |
- coords_sys <- .jnull("java/lang/String") |
|
104 |
- type <- .jnull("java/lang/String") |
|
105 |
- } |
|
69 |
+read_gmql <- function( |
|
70 |
+ dataset, |
|
71 |
+ parser = "CustomParser", |
|
72 |
+ is_local = TRUE, |
|
73 |
+ is_GMQL = TRUE |
|
74 |
+) { |
|
75 |
+ .check_input(dataset) |
|
76 |
+ .check_logical(is_local) |
|
77 |
+ .check_logical(is_GMQL) |
|
78 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
79 |
+ parser_name <- .check_parser(parser) |
|
80 |
+ if(is_local) { |
|
81 |
+ if(!dir.exists(dataset)) |
|
82 |
+ stop("folder does not exist") |
|
83 |
+ |
|
84 |
+ dataset <- sub("/*[/]$","",dataset) |
|
85 |
+ if(basename(dataset) !="files") |
|
86 |
+ dataset <- file.path(dataset,"files") |
|
87 |
+ |
|
88 |
+ schema_SCHEMA <- list.files( |
|
89 |
+ dataset, pattern = "*.schema$", full.names = TRUE |
|
90 |
+ ) |
|
91 |
+ |
|
92 |
+ xml_schema <- list.files( |
|
93 |
+ dataset, pattern = "*.xml$", full.names = TRUE |
|
94 |
+ ) |
|
95 |
+ xml_schema = xml_schema[!basename(xml_schema) %in% c("web_profile.xml")] |
|
96 |
+ |
|
97 |
+ if(!length(schema_SCHEMA) && !length(xml_schema)) |
|
98 |
+ stop("schema not present") |
|
99 |
+ |
|
100 |
+ if(!length(schema_SCHEMA)) |
|
101 |
+ schema_XML <- xml_schema |
|
106 | 102 |
else |
107 |
- { |
|
108 |
- url <- WrappeR$get_url() |
|
109 |
- if(is.null(url)) |
|
110 |
- stop("You have to log on using login function") |
|
111 |
- |
|
112 |
- if(!exists("GMQL_credentials", envir = .GlobalEnv)) |
|
113 |
- stop("You have to log on using login function") |
|
114 |
- |
|
115 |
- if(identical(parser_name,"CUSTOMPARSER")) |
|
116 |
- { |
|
117 |
- list <- show_schema(url,dataset) |
|
118 |
- coords_sys <- list$coordinate_system |
|
119 |
- type <- list$type |
|
120 |
- schema_names <- vapply(list$fields, function(x){x$name}, |
|
121 |
- character(1)) |
|
122 |
- schema_type <- vapply(list$fields, function(x){x$type}, |
|
123 |
- character(1)) |
|
124 |
- schema_matrix <- cbind(schema_names,schema_type) |
|
125 |
- |
|
126 |
- if(is.null(schema_matrix) || !length(schema_matrix)) |
|
127 |
- schema_matrix <- .jnull("java/lang/String") |
|
128 |
- else |
|
129 |
- schema_matrix <- .jarray(schema_matrix, dispatch = TRUE) |
|
130 |
- } |
|
131 |
- else |
|
132 |
- schema_matrix <- .jnull("java/lang/String") |
|
133 |
- |
|
134 |
- schema_XML <- .jnull("java/lang/String") |
|
103 |
+ schema_XML <- dataset |
|
104 |
+ |
|
105 |
+ schema_matrix <- .jnull("java/lang/String") |
|
106 |
+ url <- .jnull("java/lang/String") |
|
107 |
+ coords_sys <- .jnull("java/lang/String") |
|
108 |
+ type <- .jnull("java/lang/String") |
|
109 |
+ } else { |
|
110 |
+ url <- WrappeR$get_url() |
|
111 |
+ if(is.null(url)) |
|
112 |
+ stop("You have to log on using login function") |
|
113 |
+ |
|
114 |
+ if(!exists("GMQL_credentials", envir = .GlobalEnv)) |
|
115 |
+ stop("You have to log on using login function") |
|
116 |
+ |
|
117 |
+ if(identical(parser_name,"CUSTOMPARSER")) { |
|
118 |
+ list <- show_schema(url,dataset) |
|
119 |
+ coords_sys <- list$coordinate_system |
|
120 |
+ type <- list$type |
|
121 |
+ schema_names <- vapply( |
|
122 |
+ list$fields, function(x){x$name},character(1) |
|
123 |
+ ) |
|
124 |
+ schema_type <- vapply( |
|
125 |
+ list$fields, function(x){x$type},character(1) |
|
126 |
+ ) |
|
127 |
+ schema_matrix <- cbind(schema_names,schema_type) |
|
128 |
+ |
|
129 |
+ if(is.null(schema_matrix) || !length(schema_matrix)) |
|
130 |
+ schema_matrix <- .jnull("java/lang/String") |
|
131 |
+ else |
|
132 |
+ schema_matrix <- .jarray(schema_matrix, dispatch = TRUE) |
|
135 | 133 |
} |
136 |
- |
|
137 |
- response <- WrappeR$readDataset(dataset, parser_name, is_local, is_GMQL, |
|
138 |
- schema_matrix, schema_XML, coords_sys, type) |
|
139 |
- error <- strtoi(response[1]) |
|
140 |
- data <- response[2] |
|
141 |
- if(error) |
|
142 |
- stop(data) |
|
143 | 134 |
else |
144 |
- GMQLDataset(data) |
|
135 |
+ schema_matrix <- .jnull("java/lang/String") |
|
136 |
+ |
|
137 |
+ schema_XML <- .jnull("java/lang/String") |
|
138 |
+ } |
|
139 |
+ |
|
140 |
+ response <- WrappeR$readDataset( |
|
141 |
+ dataset, |
|
142 |
+ parser_name, |
|
143 |
+ is_local, |
|
144 |
+ is_GMQL, |
|
145 |
+ schema_matrix, |
|
146 |
+ schema_XML, |
|
147 |
+ coords_sys, |
|
148 |
+ type |
|
149 |
+ ) |
|
150 |
+ error <- strtoi(response[1]) |
|
151 |
+ data <- response[2] |
|
152 |
+ if(error) |
|
153 |
+ stop(data) |
|
154 |
+ else |
|
155 |
+ GMQLDataset(data) |
|
145 | 156 |
} |
146 | 157 |
|
147 | 158 |
|
... | ... |
@@ -154,81 +165,89 @@ read_gmql <- function(dataset, parser = "CustomParser", is_local = TRUE, |
154 | 165 |
#' @rdname read-function |
155 | 166 |
#' @export |
156 | 167 |
#' |
157 |
-read_GRangesList <- function(samples) |
|
158 |
-{ |
|
159 |
- if(!is(samples,"GRangesList")) |
|
160 |
- stop("only GrangesList") |
|
161 |
- |
|
162 |
- meta <- S4Vectors::metadata(samples) |
|
163 |
- if(is.null(meta) || !length(meta)) |
|
164 |
- { |
|
165 |
- #repeat meta for each sample in samples list |
|
166 |
- len <- length(samples) |
|
167 |
- warning("No metadata.\nWe provide two metadata for you: |
|
168 |
- \n1.provider = PoliMi\n2.application = RGMQL\n") |
|
169 |
- index_meta <- rep(seq_len(len),each = len) |
|
170 |
- rep_meta <- rep(c("provider","PoliMi", "application", "RGMQL"), |
|
171 |
- times = len) |
|
172 |
- meta_matrix <- matrix(rep_meta,ncol = 2,byrow = TRUE) |
|
173 |
- meta_matrix <- cbind(index_meta,meta_matrix) |
|
174 |
- } |
|
175 |
- else |
|
176 |
- { |
|
177 |
- unlist_meta <- unlist(meta) |
|
178 |
- names_meta <- names(unlist_meta) |
|
179 |
- group_names <- gsub(".*_([0-9]*)\\..*","\\1", names_meta) |
|
180 |
- names(unlist_meta) <- NULL |
|
181 |
- meta_matrix <- cbind(group_names,names_meta,unlist_meta) |
|
182 |
- } |
|
183 |
- |
|
184 |
- df <- data.frame(samples) |
|
185 |
- df <- df[-2] #delete group_name |
|
186 |
- len_df <- dim(df)[1] # number of rows |
|
187 |
- |
|
188 |
- col_types <- vapply(df,class,character(1)) |
|
189 |
- col_names <- names(col_types) |
|
190 |
- #re order the schema? |
|
191 |
- if("phase" %in% col_names) # if GTF, change |
|
192 |
- { |
|
193 |
- col_names <- plyr::revalue(col_names,c(type = "feature", |
|
194 |
- phase = "frame", seqnames = "seqname")) |
|
195 |
- schema_matrix <- cbind(toupper(col_types),col_names) |
|
196 |
- schema_matrix<- schema_matrix[setdiff(rownames(schema_matrix), |
|
197 |
- c("group","width")),] |
|
198 |
- } |
|
199 |
- else |
|
200 |
- { |
|
201 |
- col_names <- plyr::revalue(col_names,c(start = "left", |
|
202 |
- end = "right", seqnames = "chr")) |
|
203 |
- schema_matrix <- cbind(col_names,toupper(col_types)) |
|
204 |
- df$start = df$start - 1 |
|
205 |
- schema_matrix<- schema_matrix[setdiff(rownames(schema_matrix), |
|
206 |
- c("group","width")),] |
|
207 |
- } |
|
208 |
- region_matrix <- as.matrix(vapply(df, as.character,character(len_df))) |
|
209 |
- region_matrix[is.na(region_matrix)] <- "NA" |
|
210 |
- region_matrix <- region_matrix[,setdiff(colnames(region_matrix),"width")] |
|
211 |
- rownames(schema_matrix) <- NULL |
|
212 |
- colnames(schema_matrix) <- NULL |
|
213 |
- |
|
214 |
- schema_matrix <- .jarray(schema_matrix,dispatch = TRUE) |
|
215 |
- meta_matrix <- .jarray(meta_matrix,dispatch = TRUE) |
|
216 |
- region_matrix <- .jarray(region_matrix,dispatch = TRUE) |
|
217 |
- |
|
218 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
219 |
- response <- WrappeR$read(meta_matrix,region_matrix,schema_matrix, |
|
220 |
- "default", "TAB") |
|
221 |
- GMQLDataset(response) |
|
168 |
+read_GRangesList <- function(samples) { |
|
169 |
+ if(!is(samples,"GRangesList")) |
|
170 |
+ stop("only GrangesList") |
|
171 |
+ |
|
172 |
+ meta <- S4Vectors::metadata(samples) |
|
173 |
+ if(is.null(meta) || !length(meta)) { |
|
174 |
+ #repeat meta for each sample in samples list |
|
175 |
+ len <- length(samples) |
|
176 |
+ warning( |
|
177 |
+ "No metadata.\nWe provide two metadata for you: |
|
178 |
+ \n1.provider = PoliMi\n2.application = RGMQL\n" |
|
179 |
+ ) |
|
180 |
+ index_meta <- rep(seq_len(len),each = len) |
|
181 |
+ rep_meta <- rep( |
|
182 |
+ c("provider","PoliMi", "application", "RGMQL"), |
|
183 |
+ times = len |
|
184 |
+ ) |
|
185 |
+ meta_matrix <- matrix(rep_meta,ncol = 2,byrow = TRUE) |
|
186 |
+ meta_matrix <- cbind(index_meta,meta_matrix) |
|
187 |
+ }else { |
|
188 |
+ unlist_meta <- unlist(meta) |
|
189 |
+ names_meta <- names(unlist_meta) |
|
190 |
+ group_names <- gsub(".*_([0-9]*)\\..*","\\1", names_meta) |
|
191 |
+ names(unlist_meta) <- NULL |
|
192 |
+ meta_matrix <- cbind(group_names,names_meta,unlist_meta) |
|
193 |
+ } |
|
194 |
+ |
|
195 |
+ df <- data.frame(samples) |
|
196 |
+ df <- df[-2] #delete group_name |
|
197 |
+ len_df <- dim(df)[1] # number of rows |
|
198 |
+ |
|
199 |
+ col_types <- vapply(df,class,character(1)) |
|
200 |
+ col_names <- names(col_types) |
|
201 |
+ #re order the schema? |
|
202 |
+ # if GTF, change |
|
203 |
+ if("phase" %in% col_names) { |
|
204 |
+ col_names <- plyr::revalue( |
|
205 |
+ col_names,c(type = "feature", phase = "frame", seqnames = "seqname") |
|
206 |
+ ) |
|
207 |
+ schema_matrix <- cbind(toupper(col_types),col_names) |
|
208 |
+ schema_matrix<- schema_matrix[ |
|
209 |
+ setdiff(rownames(schema_matrix), c("group","width")),] |
|
210 |
+ } else { |
|
211 |
+ col_names <- plyr::revalue( |
|
212 |
+ col_names, |
|
213 |
+ c(start = "left", end = "right", seqnames = "chr")) |
|
214 |
+ schema_matrix <- cbind(col_names,toupper(col_types)) |
|
215 |
+ df$start = df$start - 1 |
|
216 |
+ schema_matrix<- schema_matrix[ |
|
217 |
+ setdiff(rownames(schema_matrix),c("group","width")),] |
|
218 |
+ } |
|
219 |
+ region_matrix <- as.matrix(vapply(df, as.character,character(len_df))) |
|
220 |
+ region_matrix[is.na(region_matrix)] <- "NA" |
|
221 |
+ region_matrix <- region_matrix[,setdiff(colnames(region_matrix),"width")] |
|
222 |
+ rownames(schema_matrix) <- NULL |
|
223 |
+ colnames(schema_matrix) <- NULL |
|
224 |
+ |
|
225 |
+ schema_matrix <- .jarray(schema_matrix,dispatch = TRUE) |
|
226 |
+ meta_matrix <- .jarray(meta_matrix,dispatch = TRUE) |
|
227 |
+ region_matrix <- .jarray(region_matrix,dispatch = TRUE) |
|
228 |
+ |
|
229 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
230 |
+ response <- WrappeR$read( |
|
231 |
+ meta_matrix, |
|
232 |
+ region_matrix, |
|
233 |
+ schema_matrix, |
|
234 |
+ "default", "TAB" |
|
235 |
+ ) |
|
236 |
+ |
|
237 |
+ GMQLDataset(response) |
|
222 | 238 |
} |
223 | 239 |
|
224 |
- |
|
225 |
-.check_parser <- function(parser) |
|
226 |
-{ |
|
227 |
- parser <- toupper(parser) |
|
228 |
- if(!parser %in% c("BEDPARSER","BROADPEAKPARSER", "NARROWPEAKPARSER", |
|
229 |
- "CUSTOMPARSER")) |
|
230 |
- stop("parser not defined") |
|
231 |
- |
|
232 |
- parser |
|
240 |
+.check_parser <- function(parser) { |
|
241 |
+ parser <- toupper(parser) |
|
242 |
+ parsers <- c( |
|
243 |
+ "BEDPARSER", |
|
244 |
+ "BROADPEAKPARSER", |
|
245 |
+ "NARROWPEAKPARSER", |
|
246 |
+ "CUSTOMPARSER") |
|
247 |
+ |
|
248 |
+ if(!parser %in% parsers) |
|
249 |
+ stop("parser not defined") |
|
250 |
+ |
|
251 |
+ parser |
|
233 | 252 |
} |
234 | 253 |
|
235 | 254 |
old mode 100644 |
236 | 255 |
new mode 100755 |
... | ... |
@@ -1,17 +1,14 @@ |
1 |
-if(getRversion() >= "2.15.1") |
|
2 |
-{ |
|
3 |
- utils::globalVariables("GMQL_credentials") |
|
4 |
- utils::globalVariables("remote_url") |
|
1 |
+if(getRversion() >= "2.15.1") { |
|
2 |
+ utils::globalVariables("GMQL_credentials") |
|
3 |
+ utils::globalVariables("remote_url") |
|
5 | 4 |
} |
6 | 5 |
|
7 |
-if(getRversion() >= "3.1.0") |
|
8 |
-{ |
|
9 |
- utils::suppressForeignCheck("GMQL_credentials") |
|
10 |
- utils::suppressForeignCheck("remote_url") |
|
6 |
+if(getRversion() >= "3.1.0") { |
|
7 |
+ utils::suppressForeignCheck("GMQL_credentials") |
|
8 |
+ utils::suppressForeignCheck("remote_url") |
|
11 | 9 |
} |
12 | 10 |
|
13 | 11 |
|
14 |
- |
|
15 | 12 |
############################# |
16 | 13 |
# WEB AUTHENTICATION # |
17 | 14 |
############################ |
... | ... |
@@ -52,10 +49,8 @@ if(getRversion() >= "3.1.0") |
52 | 49 |
#' @rdname login_gmql |
53 | 50 |
#' @export |
54 | 51 |
#' |
55 |
-login_gmql <- function(url, username = NULL, password = NULL) |
|
56 |
-{ |
|
57 |
- if(!.is_login_expired(url)) |
|
58 |
- { |
|
52 |
+login_gmql <- function(url, username = NULL, password = NULL) { |
|
53 |
+ if(!.is_login_expired(url)) { |
|
59 | 54 |
print("Login still valid") |
60 | 55 |
return(invisible(NULL)) |
61 | 56 |
} |
... | ... |
@@ -65,8 +60,7 @@ login_gmql <- function(url, username = NULL, password = NULL) |
65 | 60 |
if(!is.null(username) || !is.null(password)) |
66 | 61 |
as_guest <- FALSE |
67 | 62 |
|
68 |
- if(as_guest) |
|
69 |
- { |
|
63 |
+ if(as_guest) { |
|
70 | 64 |
url <- sub("/*[/]$","",url) |
71 | 65 |
h <- c('Accept' = "Application/json") |
72 | 66 |
URL <- paste0(url,"/guest") |
... | ... |
@@ -836,8 +830,7 @@ show_samples_list <- function(url,datasetName) |
836 | 830 |
#' @rdname show_schema |
837 | 831 |
#' @export |
838 | 832 |
#' |
839 |
-show_schema <- function(url,datasetName) |
|
840 |
-{ |
|
833 |
+show_schema <- function(url,datasetName) { |
|
841 | 834 |
url <- sub("/*[/]$","",url) |
842 | 835 |
URL <- paste0(url,"/datasets/",datasetName,"/schema") |
843 | 836 |
authToken = GMQL_credentials$authToken |
... | ... |
@@ -977,7 +970,7 @@ upload_dataset <- function(url, datasetName, folderPath, schemaName = NULL, |
977 | 970 |
req <- httr::POST(URL, body = list_files ,httr::add_headers(h)) |
978 | 971 |
content <- httr::content(req) |
979 | 972 |
if(req$status_code !=200) |
980 |
- print(content) |
|
973 |
+ stop(content) |
|
981 | 974 |
else |
982 | 975 |
print("upload Complete") |
983 | 976 |
} |
... | ... |
@@ -1082,7 +1075,7 @@ download_dataset <- function(url, datasetName, path = getwd()) |
1082 | 1075 |
|
1083 | 1076 |
content <- httr::content(req) |
1084 | 1077 |
if(req$status_code !=200) |
1085 |
- print(content) |
|
1078 |
+ stop(content) |
|
1086 | 1079 |
else |
1087 | 1080 |
{ |
1088 | 1081 |
zip_path <- file.path(path,paste0(datasetName,".zip")) |