... | ... |
@@ -278,6 +278,9 @@ gmql_take <- function(input_data, rows) { |
278 | 278 |
#levels(x$start)[x$start] = start_numeric |
279 | 279 |
g <- GenomicRanges::makeGRangesFromDataFrame( |
280 | 280 |
x, |
281 |
+ seqnames.field = c("seqnames", "seqname", |
|
282 |
+ "chromosome", "chrom", |
|
283 |
+ "chr", "chromosome_name"), |
|
281 | 284 |
keep.extra.columns = TRUE, |
282 | 285 |
start.field = "start", |
283 | 286 |
end.field = "end") |
... | ... |
@@ -32,71 +32,72 @@ |
32 | 32 |
#' @export |
33 | 33 |
#' |
34 | 34 |
execute <- function() { |
35 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
36 |
- remote_proc <- WrappeR$is_remote_processing() |
|
37 |
- datasets <- .jevalArray(WrappeR$get_dataset_list(), simplify = TRUE) |
|
38 |
- exists_credential <- exists("GMQL_credentials", envir = .GlobalEnv) |
|
39 |
- |
|
40 |
- if(!remote_proc && exists_credential) |
|
41 |
- .download_or_upload(datasets) |
|
42 |
- |
|
43 |
- response <- WrappeR$execute() |
|
44 |
- error <- strtoi(response[1]) |
|
45 |
- val <- response[2] |
|
46 |
- if(error) |
|
47 |
- stop(val) |
|
48 |
- else { |
|
49 |
- if(remote_proc) { |
|
50 |
- isGTF <- FALSE |
|
51 |
- outformat <- WrappeR$outputMaterialize() |
|
52 |
- if(identical(outformat, "gtf")) |
|
53 |
- isGTF <- TRUE |
|
54 |
- |
|
55 |
- credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
56 |
- url <- credential$remote_url |
|
57 |
- |
|
58 |
- if(is.null(url)) |
|
59 |
- stop("url from GMQL_credentials is missing") |
|
60 |
- |
|
61 |
- .download_or_upload(datasets) |
|
62 |
- res <- serialize_query(url,isGTF,val) |
|
35 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
36 |
+ remote_proc <- WrappeR$is_remote_processing() |
|
37 |
+ datasets <- .jevalArray(WrappeR$get_dataset_list(), simplify = TRUE) |
|
38 |
+ exists_credential <- exists("GMQL_credentials", envir = .GlobalEnv) |
|
39 |
+ |
|
40 |
+ if(!remote_proc && exists_credential) |
|
41 |
+ .download_or_upload(datasets) |
|
42 |
+ |
|
43 |
+ response <- WrappeR$execute() |
|
44 |
+ error <- strtoi(response[1]) |
|
45 |
+ val <- response[2] |
|
46 |
+ if(error) |
|
47 |
+ stop(val) |
|
48 |
+ else { |
|
49 |
+ if(remote_proc) { |
|
50 |
+ isGTF <- FALSE |
|
51 |
+ outformat <- WrappeR$outputMaterialize() |
|
52 |
+ if(identical(outformat, "gtf")) |
|
53 |
+ isGTF <- TRUE |
|
54 |
+ |
|
55 |
+ credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
56 |
+ url <- credential$remote_url |
|
57 |
+ |
|
58 |
+ if(is.null(url)) |
|
59 |
+ stop("url from GMQL_credentials is missing") |
|
60 |
+ |
|
61 |
+ .download_or_upload(datasets) |
|
62 |
+ res <- serialize_query(url,isGTF,val) |
|
63 |
+ } |
|
63 | 64 |
} |
64 |
- } |
|
65 | 65 |
} |
66 | 66 |
|
67 | 67 |
.download_or_upload <- function(datasets) { |
68 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
69 |
- data_list <- apply(datasets, 1, as.list) |
|
70 |
- |
|
71 |
- credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
72 |
- url <- credential$remote_url |
|
73 |
- |
|
74 |
- if(is.null(url)) |
|
75 |
- stop("url from GMQL_credentials is missing") |
|
76 |
- |
|
77 |
- remote <- WrappeR$is_remote_processing() |
|
78 |
- if(remote) { |
|
79 |
- lapply(data_list,function(x) { |
|
80 |
- if(!is.null(x[[1]]) && !is.na(x[[1]])) |
|
81 |
- upload_dataset(url,x[[2]],x[[1]],x[[3]]) |
|
82 |
- }) |
|
83 |
- } else { |
|
84 |
- lapply(data_list,function(x) { |
|
85 |
- if(!is.null(x[[2]]) && !is.na(x[[2]])) { |
|
86 |
- path <- x[[1]] |
|
87 |
- # create downloads folder where putting all the downloading dataset |
|
88 |
- if(!dir.exists(path)) |
|
89 |
- dir.create(path) |
|
90 |
- |
|
91 |
- download_dataset(url,x[[2]], path) |
|
92 |
- } |
|
93 |
- }) |
|
94 |
- } |
|
68 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
69 |
+ data_list <- apply(datasets, 1, as.list) |
|
70 |
+ |
|
71 |
+ credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
72 |
+ url <- credential$remote_url |
|
73 |
+ |
|
74 |
+ if(is.null(url)) |
|
75 |
+ stop("url from GMQL_credentials is missing") |
|
76 |
+ |
|
77 |
+ remote <- WrappeR$is_remote_processing() |
|
78 |
+ if(remote) { |
|
79 |
+ lapply(data_list,function(x) { |
|
80 |
+ if(!is.null(x[[1]]) && !is.na(x[[1]])) |
|
81 |
+ upload_dataset(url,x[[2]],x[[1]],x[[3]]) |
|
82 |
+ }) |
|
83 |
+ } else { |
|
84 |
+ lapply(data_list,function(x) { |
|
85 |
+ if(!is.null(x[[2]]) && !is.na(x[[2]])) { |
|
86 |
+ path <- x[[1]] |
|
87 |
+ # create downloads folder where putting all the downloading |
|
88 |
+ # dataset |
|
89 |
+ if(!dir.exists(path)) |
|
90 |
+ dir.create(path) |
|
91 |
+ |
|
92 |
+ download_dataset(url,x[[2]], path) |
|
93 |
+ } |
|
94 |
+ }) |
|
95 |
+ } |
|
95 | 96 |
} |
96 | 97 |
|
97 | 98 |
collect.GMQLDataset <- function(x, name = "ds1", dir_out = getwd()) { |
98 |
- ptr_data <- value(x) |
|
99 |
- gmql_materialize(ptr_data, name, dir_out) |
|
99 |
+ ptr_data <- value(x) |
|
100 |
+ gmql_materialize(ptr_data, name, dir_out) |
|
100 | 101 |
} |
101 | 102 |
|
102 | 103 |
|
... | ... |
@@ -151,28 +152,27 @@ collect.GMQLDataset <- function(x, name = "ds1", dir_out = getwd()) { |
151 | 152 |
setMethod("collect", "GMQLDataset",collect.GMQLDataset) |
152 | 153 |
|
153 | 154 |
gmql_materialize <- function(input_data, name, dir_out) { |
154 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
155 |
- remote_proc <- WrappeR$is_remote_processing() |
|
156 |
- |
|
157 |
- if(grepl("\\.",name)) |
|
158 |
- stop("dataset name cannot contains dot") |
|
159 |
- |
|
160 |
- if(!remote_proc) { |
|
161 |
- dir_out <- sub("/*[/]$","",dir_out) |
|
162 |
- res_dir_out <- file.path(dir_out, name) |
|
163 |
- if(!dir.exists(res_dir_out)) |
|
164 |
- dir.create(res_dir_out) |
|
165 |
- } |
|
166 |
- else |
|
167 |
- res_dir_out <- name |
|
168 |
- |
|
169 |
- response <- WrappeR$materialize(input_data, res_dir_out) |
|
170 |
- error <- strtoi(response[1]) |
|
171 |
- val <- response[2] |
|
172 |
- if(error) |
|
173 |
- stop(val) |
|
174 |
- else |
|
175 |
- invisible(NULL) |
|
155 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
156 |
+ remote_proc <- WrappeR$is_remote_processing() |
|
157 |
+ |
|
158 |
+ if(grepl("\\.",name)) |
|
159 |
+ stop("dataset name cannot contains dot") |
|
160 |
+ |
|
161 |
+ if(!remote_proc) { |
|
162 |
+ dir_out <- sub("/*[/]$","",dir_out) |
|
163 |
+ res_dir_out <- file.path(dir_out, name) |
|
164 |
+ if(!dir.exists(res_dir_out)) |
|
165 |
+ dir.create(res_dir_out) |
|
166 |
+ } else |
|
167 |
+ res_dir_out <- name |
|
168 |
+ |
|
169 |
+ response <- WrappeR$materialize(input_data, res_dir_out) |
|
170 |
+ error <- strtoi(response[1]) |
|
171 |
+ val <- response[2] |
|
172 |
+ if(error) |
|
173 |
+ stop(val) |
|
174 |
+ else |
|
175 |
+ invisible(NULL) |
|
176 | 176 |
} |
177 | 177 |
|
178 | 178 |
|
... | ... |
@@ -231,72 +231,73 @@ gmql_materialize <- function(input_data, name, dir_out) { |
231 | 231 |
#' @rdname take |
232 | 232 |
#' @aliases take-method |
233 | 233 |
#' @export |
234 |
-setMethod("take", "GMQLDataset", |
|
235 |
- function(.data, rows = 0L) |
|
236 |
- { |
|
237 |
- ptr_data <- value(.data) |
|
238 |
- gmql_take(ptr_data, rows) |
|
239 |
- }) |
|
234 |
+setMethod( |
|
235 |
+ "take", |
|
236 |
+ "GMQLDataset", |
|
237 |
+ function(.data, rows = 0L) { |
|
238 |
+ ptr_data <- value(.data) |
|
239 |
+ gmql_take(ptr_data, rows) |
|
240 |
+}) |
|
240 | 241 |
|
241 | 242 |
gmql_take <- function(input_data, rows) { |
242 |
- rows <- as.integer(rows[1]) |
|
243 |
- if(rows<0) |
|
244 |
- stop("rows cannot be negative") |
|
245 |
- |
|
246 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
247 |
- response <- WrappeR$take(input_data, rows) |
|
248 |
- error <- strtoi(response[1]) |
|
249 |
- data <- response[2] |
|
250 |
- if(error) |
|
251 |
- stop(data) |
|
252 |
- |
|
253 |
- reg <- .jevalArray(WrappeR$get_reg(),simplify = TRUE) |
|
254 |
- if(is.null(reg)) |
|
255 |
- stop("no regions defined") |
|
256 |
- meta <- .jevalArray(WrappeR$get_meta(),simplify = TRUE) |
|
257 |
- if(is.null(meta)) |
|
258 |
- stop("no metadata defined") |
|
259 |
- schema <- .jevalArray(WrappeR$get_schema(),simplify = TRUE) |
|
260 |
- if(is.null(schema)) |
|
261 |
- stop("no schema defined") |
|
262 |
- |
|
263 |
- reg_data_frame <- as.data.frame(reg) |
|
264 |
- if (!length(reg_data_frame)){ |
|
265 |
- return(GRangesList()) |
|
266 |
- } |
|
267 |
- list <- split(reg_data_frame, reg_data_frame[1]) |
|
268 |
- seq_name <- c("seqname","start","end","strand",schema) |
|
269 |
- |
|
270 |
- sampleList <- lapply(list, function(x){ |
|
271 |
- x <- x[-1] |
|
272 |
- names(x) <- seq_name |
|
273 |
- # start_numeric = as.numeric(levels(x$start))[x$start] |
|
274 |
- start_numeric = as.numeric(x$start) |
|
275 |
- start_numeric = start_numeric + 1 |
|
276 |
- x$start = start_numeric |
|
277 |
- #levels(x$start)[x$start] = start_numeric |
|
278 |
- g <- GenomicRanges::makeGRangesFromDataFrame( |
|
279 |
- x, |
|
280 |
- keep.extra.columns = TRUE, |
|
281 |
- start.field = "start", |
|
282 |
- end.field = "end") |
|
283 |
- }) |
|
284 |
- |
|
285 |
- gRange_list <- GRangesList(sampleList) |
|
286 |
- len = length(gRange_list) |
|
287 |
- names(gRange_list) <- paste0("S_",seq_len(len)) |
|
288 |
- meta_list <- .metadata_from_frame_to_list(meta) |
|
289 |
- names(meta_list) <- paste0("S_",seq_len(len)) |
|
290 |
- S4Vectors::metadata(gRange_list) <- meta_list |
|
291 |
- return(gRange_list) |
|
243 |
+ rows <- as.integer(rows[1]) |
|
244 |
+ if(rows<0) |
|
245 |
+ stop("rows cannot be negative") |
|
246 |
+ |
|
247 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
248 |
+ response <- WrappeR$take(input_data, rows) |
|
249 |
+ error <- strtoi(response[1]) |
|
250 |
+ data <- response[2] |
|
251 |
+ if(error) |
|
252 |
+ stop(data) |
|
253 |
+ |
|
254 |
+ reg <- .jevalArray(WrappeR$get_reg(),simplify = TRUE) |
|
255 |
+ if(is.null(reg)) |
|
256 |
+ stop("no regions defined") |
|
257 |
+ meta <- .jevalArray(WrappeR$get_meta(),simplify = TRUE) |
|
258 |
+ if(is.null(meta)) |
|
259 |
+ stop("no metadata defined") |
|
260 |
+ schema <- .jevalArray(WrappeR$get_schema(),simplify = TRUE) |
|
261 |
+ if(is.null(schema)) |
|
262 |
+ stop("no schema defined") |
|
263 |
+ |
|
264 |
+ reg_data_frame <- as.data.frame(reg) |
|
265 |
+ if (!length(reg_data_frame)){ |
|
266 |
+ return(GRangesList()) |
|
267 |
+ } |
|
268 |
+ list <- split(reg_data_frame, reg_data_frame[1]) |
|
269 |
+ seq_name <- c("seqname","start","end","strand",schema) |
|
270 |
+ |
|
271 |
+ sampleList <- lapply(list, function(x){ |
|
272 |
+ x <- x[-1] |
|
273 |
+ names(x) <- seq_name |
|
274 |
+ # start_numeric = as.numeric(levels(x$start))[x$start] |
|
275 |
+ start_numeric = as.numeric(x$start) |
|
276 |
+ start_numeric = start_numeric + 1 |
|
277 |
+ x$start = start_numeric |
|
278 |
+ #levels(x$start)[x$start] = start_numeric |
|
279 |
+ g <- GenomicRanges::makeGRangesFromDataFrame( |
|
280 |
+ x, |
|
281 |
+ keep.extra.columns = TRUE, |
|
282 |
+ start.field = "start", |
|
283 |
+ end.field = "end") |
|
284 |
+ }) |
|
285 |
+ |
|
286 |
+ gRange_list <- GRangesList(sampleList) |
|
287 |
+ len = length(gRange_list) |
|
288 |
+ names(gRange_list) <- paste0("S_",seq_len(len)) |
|
289 |
+ meta_list <- .metadata_from_frame_to_list(meta) |
|
290 |
+ names(meta_list) <- paste0("S_",seq_len(len)) |
|
291 |
+ S4Vectors::metadata(gRange_list) <- meta_list |
|
292 |
+ return(gRange_list) |
|
292 | 293 |
} |
293 | 294 |
|
294 | 295 |
.metadata_from_frame_to_list <- function(metadata_frame) { |
295 |
- meta_frame <- as.data.frame(metadata_frame) |
|
296 |
- list <- split(meta_frame, meta_frame[1]) |
|
297 |
- name_value_list <- lapply(list, function(x){x <- x[-1]}) |
|
298 |
- meta_list <- lapply(name_value_list, function(x){ |
|
299 |
- stats::setNames(as.list(as.character(x[[2]])), x[[1]]) |
|
300 |
- }) |
|
296 |
+ meta_frame <- as.data.frame(metadata_frame) |
|
297 |
+ list <- split(meta_frame, meta_frame[1]) |
|
298 |
+ name_value_list <- lapply(list, function(x){x <- x[-1]}) |
|
299 |
+ meta_list <- lapply(name_value_list, function(x){ |
|
300 |
+ stats::setNames(as.list(as.character(x[[2]])), x[[1]]) |
|
301 |
+ }) |
|
301 | 302 |
} |
302 | 303 |
|
... | ... |
@@ -35,8 +35,9 @@ execute <- function() { |
35 | 35 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
36 | 36 |
remote_proc <- WrappeR$is_remote_processing() |
37 | 37 |
datasets <- .jevalArray(WrappeR$get_dataset_list(), simplify = TRUE) |
38 |
+ exists_credential <- exists("GMQL_credentials", envir = .GlobalEnv) |
|
38 | 39 |
|
39 |
- if(!remote_proc) |
|
40 |
+ if(!remote_proc && exists_credential) |
|
40 | 41 |
.download_or_upload(datasets) |
41 | 42 |
|
42 | 43 |
response <- WrappeR$execute() |
... | ... |
@@ -75,13 +75,21 @@ execute <- function() { |
75 | 75 |
|
76 | 76 |
remote <- WrappeR$is_remote_processing() |
77 | 77 |
if(remote) { |
78 |
- lapply(data_list,function(x){ |
|
78 |
+ lapply(data_list,function(x) { |
|
79 | 79 |
if(!is.null(x[[1]]) && !is.na(x[[1]])) |
80 |
- upload_dataset(url,x[[2]],x[[1]],x[[3]])}) |
|
80 |
+ upload_dataset(url,x[[2]],x[[1]],x[[3]]) |
|
81 |
+ }) |
|
81 | 82 |
} else { |
82 |
- lapply(data_list,function(x){ |
|
83 |
- if(!is.null(x[[2]]) && !is.na(x[[2]])) |
|
84 |
- download_dataset(url,x[[2]],x[[1]])}) |
|
83 |
+ lapply(data_list,function(x) { |
|
84 |
+ if(!is.null(x[[2]]) && !is.na(x[[2]])) { |
|
85 |
+ path <- x[[1]] |
|
86 |
+ # create downloads folder where putting all the downloading dataset |
|
87 |
+ if(!dir.exists(path)) |
|
88 |
+ dir.create(path) |
|
89 |
+ |
|
90 |
+ download_dataset(url,x[[2]], path) |
|
91 |
+ } |
|
92 |
+ }) |
|
85 | 93 |
} |
86 | 94 |
} |
87 | 95 |
|
... | ... |
@@ -150,7 +158,7 @@ gmql_materialize <- function(input_data, name, dir_out) { |
150 | 158 |
|
151 | 159 |
if(!remote_proc) { |
152 | 160 |
dir_out <- sub("/*[/]$","",dir_out) |
153 |
- res_dir_out <- file.path(dir_out,name) |
|
161 |
+ res_dir_out <- file.path(dir_out, name) |
|
154 | 162 |
if(!dir.exists(res_dir_out)) |
155 | 163 |
dir.create(res_dir_out) |
156 | 164 |
} |
... | ... |
@@ -51,7 +51,12 @@ execute <- function() { |
51 | 51 |
if(identical(outformat, "gtf")) |
52 | 52 |
isGTF <- TRUE |
53 | 53 |
|
54 |
- url <- WrappeR$get_url() |
|
54 |
+ credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
55 |
+ url <- credential$remote_url |
|
56 |
+ |
|
57 |
+ if(is.null(url)) |
|
58 |
+ stop("url from GMQL_credentials is missing") |
|
59 |
+ |
|
55 | 60 |
.download_or_upload(datasets) |
56 | 61 |
res <- serialize_query(url,isGTF,val) |
57 | 62 |
} |
... | ... |
@@ -61,7 +66,13 @@ execute <- function() { |
61 | 66 |
.download_or_upload <- function(datasets) { |
62 | 67 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
63 | 68 |
data_list <- apply(datasets, 1, as.list) |
64 |
- url <- WrappeR$get_url() |
|
69 |
+ |
|
70 |
+ credential <- get("GMQL_credentials", envir = .GlobalEnv) |
|
71 |
+ url <- credential$remote_url |
|
72 |
+ |
|
73 |
+ if(is.null(url)) |
|
74 |
+ stop("url from GMQL_credentials is missing") |
|
75 |
+ |
|
65 | 76 |
remote <- WrappeR$is_remote_processing() |
66 | 77 |
if(remote) { |
67 | 78 |
lapply(data_list,function(x){ |
... | ... |
@@ -74,9 +85,9 @@ execute <- function() { |
74 | 85 |
} |
75 | 86 |
} |
76 | 87 |
|
77 |
-collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") { |
|
88 |
+collect.GMQLDataset <- function(x, name = "ds1", dir_out = getwd()) { |
|
78 | 89 |
ptr_data <- value(x) |
79 |
- gmql_materialize(ptr_data, dir_out, name) |
|
90 |
+ gmql_materialize(ptr_data, name, dir_out) |
|
80 | 91 |
} |
81 | 92 |
|
82 | 93 |
|
... | ... |
@@ -66,7 +66,7 @@ execute <- function() { |
66 | 66 |
if(remote) { |
67 | 67 |
lapply(data_list,function(x){ |
68 | 68 |
if(!is.null(x[[1]]) && !is.na(x[[1]])) |
69 |
- upload_dataset(url,x[[2]],x[[1]],x[[3]],FALSE)}) |
|
69 |
+ upload_dataset(url,x[[2]],x[[1]],x[[3]])}) |
|
70 | 70 |
} else { |
71 | 71 |
lapply(data_list,function(x){ |
72 | 72 |
if(!is.null(x[[2]]) && !is.na(x[[2]])) |
... | ... |
@@ -31,53 +31,52 @@ |
31 | 31 |
#' } |
32 | 32 |
#' @export |
33 | 33 |
#' |
34 |
-execute <- function() |
|
35 |
-{ |
|
36 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
37 |
- remote_proc <- WrappeR$is_remote_processing() |
|
38 |
- datasets <- .jevalArray(WrappeR$get_dataset_list(),simplify = TRUE) |
|
39 |
- |
|
40 |
- if(!remote_proc) |
|
41 |
- .download_or_upload(datasets) |
|
42 |
- |
|
43 |
- response <- WrappeR$execute() |
|
44 |
- error <- strtoi(response[1]) |
|
45 |
- val <- response[2] |
|
46 |
- if(error) |
|
47 |
- stop(val) |
|
48 |
- else { |
|
49 |
- if(remote_proc) { |
|
50 |
- isGTF <- FALSE |
|
51 |
- outformat <- WrappeR$outputMaterialize() |
|
52 |
- if(identical(outformat, "gtf")) |
|
53 |
- isGTF <- TRUE |
|
54 |
- |
|
55 |
- url <- WrappeR$get_url() |
|
56 |
- .download_or_upload(datasets) |
|
57 |
- res <- serialize_query(url,isGTF,val) |
|
58 |
- } |
|
34 |
+execute <- function() { |
|
35 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
36 |
+ remote_proc <- WrappeR$is_remote_processing() |
|
37 |
+ datasets <- .jevalArray(WrappeR$get_dataset_list(), simplify = TRUE) |
|
38 |
+ |
|
39 |
+ if(!remote_proc) |
|
40 |
+ .download_or_upload(datasets) |
|
41 |
+ |
|
42 |
+ response <- WrappeR$execute() |
|
43 |
+ error <- strtoi(response[1]) |
|
44 |
+ val <- response[2] |
|
45 |
+ if(error) |
|
46 |
+ stop(val) |
|
47 |
+ else { |
|
48 |
+ if(remote_proc) { |
|
49 |
+ isGTF <- FALSE |
|
50 |
+ outformat <- WrappeR$outputMaterialize() |
|
51 |
+ if(identical(outformat, "gtf")) |
|
52 |
+ isGTF <- TRUE |
|
53 |
+ |
|
54 |
+ url <- WrappeR$get_url() |
|
55 |
+ .download_or_upload(datasets) |
|
56 |
+ res <- serialize_query(url,isGTF,val) |
|
59 | 57 |
} |
58 |
+ } |
|
60 | 59 |
} |
61 | 60 |
|
62 | 61 |
.download_or_upload <- function(datasets) { |
63 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
64 |
- data_list <- apply(datasets, 1, as.list) |
|
65 |
- url <- WrappeR$get_url() |
|
66 |
- remote <- WrappeR$is_remote_processing() |
|
67 |
- if(remote) { |
|
68 |
- lapply(data_list,function(x){ |
|
69 |
- if(!is.null(x[[1]]) && !is.na(x[[1]])) |
|
70 |
- upload_dataset(url,x[[2]],x[[1]],x[[3]],FALSE)}) |
|
71 |
- } else { |
|
72 |
- lapply(data_list,function(x){ |
|
73 |
- if(!is.null(x[[2]]) && !is.na(x[[2]])) |
|
74 |
- download_dataset(url,x[[2]],x[[1]])}) |
|
75 |
- } |
|
62 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
63 |
+ data_list <- apply(datasets, 1, as.list) |
|
64 |
+ url <- WrappeR$get_url() |
|
65 |
+ remote <- WrappeR$is_remote_processing() |
|
66 |
+ if(remote) { |
|
67 |
+ lapply(data_list,function(x){ |
|
68 |
+ if(!is.null(x[[1]]) && !is.na(x[[1]])) |
|
69 |
+ upload_dataset(url,x[[2]],x[[1]],x[[3]],FALSE)}) |
|
70 |
+ } else { |
|
71 |
+ lapply(data_list,function(x){ |
|
72 |
+ if(!is.null(x[[2]]) && !is.na(x[[2]])) |
|
73 |
+ download_dataset(url,x[[2]],x[[1]])}) |
|
74 |
+ } |
|
76 | 75 |
} |
77 | 76 |
|
78 | 77 |
collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") { |
79 |
- ptr_data <- value(x) |
|
80 |
- gmql_materialize(ptr_data, dir_out, name) |
|
78 |
+ ptr_data <- value(x) |
|
79 |
+ gmql_materialize(ptr_data, dir_out, name) |
|
81 | 80 |
} |
82 | 81 |
|
83 | 82 |
|
... | ... |
@@ -95,9 +94,9 @@ collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") { |
95 | 94 |
#' @importFrom dplyr collect |
96 | 95 |
#' |
97 | 96 |
#' @param x GMQLDataset class object |
97 |
+#' @param name name of the result dataset. By default it is the string "ds1" |
|
98 | 98 |
#' @param dir_out destination folder path. By default it is the current |
99 | 99 |
#' working directory of the R process |
100 |
-#' @param name name of the result dataset. By default it is the string "ds1" |
|
101 | 100 |
#' |
102 | 101 |
#' @details |
103 | 102 |
#' |
... | ... |
@@ -131,28 +130,29 @@ collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") { |
131 | 130 |
#' @export |
132 | 131 |
setMethod("collect", "GMQLDataset",collect.GMQLDataset) |
133 | 132 |
|
134 |
-gmql_materialize <- function(input_data, dir_out, name) { |
|
135 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
136 |
- remote_proc <- WrappeR$is_remote_processing() |
|
137 |
- if(!remote_proc) { |
|
138 |
- dir_out <- sub("/*[/]$","",dir_out) |
|
139 |
- res_dir_out <- file.path(dir_out,name) |
|
140 |
- if(!dir.exists(res_dir_out)) |
|
141 |
- dir.create(res_dir_out) |
|
142 |
- } |
|
143 |
- else |
|
144 |
- res_dir_out <- dir_out |
|
145 |
- |
|
146 |
- if(grepl("\\.",name)) |
|
147 |
- stop("dataset name cannot contains dot") |
|
148 |
- |
|
149 |
- response <- WrappeR$materialize(input_data, res_dir_out) |
|
150 |
- error <- strtoi(response[1]) |
|
151 |
- val <- response[2] |
|
152 |
- if(error) |
|
153 |
- stop(val) |
|
154 |
- else |
|
155 |
- invisible(NULL) |
|
133 |
+gmql_materialize <- function(input_data, name, dir_out) { |
|
134 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
135 |
+ remote_proc <- WrappeR$is_remote_processing() |
|
136 |
+ |
|
137 |
+ if(grepl("\\.",name)) |
|
138 |
+ stop("dataset name cannot contains dot") |
|
139 |
+ |
|
140 |
+ if(!remote_proc) { |
|
141 |
+ dir_out <- sub("/*[/]$","",dir_out) |
|
142 |
+ res_dir_out <- file.path(dir_out,name) |
|
143 |
+ if(!dir.exists(res_dir_out)) |
|
144 |
+ dir.create(res_dir_out) |
|
145 |
+ } |
|
146 |
+ else |
|
147 |
+ res_dir_out <- name |
|
148 |
+ |
|
149 |
+ response <- WrappeR$materialize(input_data, res_dir_out) |
|
150 |
+ error <- strtoi(response[1]) |
|
151 |
+ val <- response[2] |
|
152 |
+ if(error) |
|
153 |
+ stop(val) |
|
154 |
+ else |
|
155 |
+ invisible(NULL) |
|
156 | 156 |
} |
157 | 157 |
|
158 | 158 |
|
... | ... |
@@ -212,72 +212,71 @@ gmql_materialize <- function(input_data, dir_out, name) { |
212 | 212 |
#' @aliases take-method |
213 | 213 |
#' @export |
214 | 214 |
setMethod("take", "GMQLDataset", |
215 |
- function(.data, rows = 0L) |
|
216 |
- { |
|
217 |
- ptr_data <- value(.data) |
|
218 |
- gmql_take(ptr_data, rows) |
|
219 |
- }) |
|
215 |
+ function(.data, rows = 0L) |
|
216 |
+ { |
|
217 |
+ ptr_data <- value(.data) |
|
218 |
+ gmql_take(ptr_data, rows) |
|
219 |
+ }) |
|
220 | 220 |
|
221 | 221 |
gmql_take <- function(input_data, rows) { |
222 |
- rows <- as.integer(rows[1]) |
|
223 |
- if(rows<0) |
|
224 |
- stop("rows cannot be negative") |
|
225 |
- |
|
226 |
- WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
227 |
- response <- WrappeR$take(input_data, rows) |
|
228 |
- error <- strtoi(response[1]) |
|
229 |
- data <- response[2] |
|
230 |
- if(error) |
|
231 |
- stop(data) |
|
232 |
- |
|
233 |
- reg <- .jevalArray(WrappeR$get_reg(),simplify = TRUE) |
|
234 |
- if(is.null(reg)) |
|
235 |
- stop("no regions defined") |
|
236 |
- meta <- .jevalArray(WrappeR$get_meta(),simplify = TRUE) |
|
237 |
- if(is.null(meta)) |
|
238 |
- stop("no metadata defined") |
|
239 |
- schema <- .jevalArray(WrappeR$get_schema(),simplify = TRUE) |
|
240 |
- if(is.null(schema)) |
|
241 |
- stop("no schema defined") |
|
242 |
- |
|
243 |
- reg_data_frame <- as.data.frame(reg) |
|
244 |
- if (!length(reg_data_frame)){ |
|
245 |
- return(GRangesList()) |
|
246 |
- } |
|
247 |
- list <- split(reg_data_frame, reg_data_frame[1]) |
|
248 |
- seq_name <- c("seqname","start","end","strand",schema) |
|
249 |
- |
|
250 |
- sampleList <- lapply(list, function(x){ |
|
251 |
- x <- x[-1] |
|
252 |
- names(x) <- seq_name |
|
222 |
+ rows <- as.integer(rows[1]) |
|
223 |
+ if(rows<0) |
|
224 |
+ stop("rows cannot be negative") |
|
225 |
+ |
|
226 |
+ WrappeR <- J("it/polimi/genomics/r/Wrapper") |
|
227 |
+ response <- WrappeR$take(input_data, rows) |
|
228 |
+ error <- strtoi(response[1]) |
|
229 |
+ data <- response[2] |
|
230 |
+ if(error) |
|
231 |
+ stop(data) |
|
232 |
+ |
|
233 |
+ reg <- .jevalArray(WrappeR$get_reg(),simplify = TRUE) |
|
234 |
+ if(is.null(reg)) |
|
235 |
+ stop("no regions defined") |
|
236 |
+ meta <- .jevalArray(WrappeR$get_meta(),simplify = TRUE) |
|
237 |
+ if(is.null(meta)) |
|
238 |
+ stop("no metadata defined") |
|
239 |
+ schema <- .jevalArray(WrappeR$get_schema(),simplify = TRUE) |
|
240 |
+ if(is.null(schema)) |
|
241 |
+ stop("no schema defined") |
|
242 |
+ |
|
243 |
+ reg_data_frame <- as.data.frame(reg) |
|
244 |
+ if (!length(reg_data_frame)){ |
|
245 |
+ return(GRangesList()) |
|
246 |
+ } |
|
247 |
+ list <- split(reg_data_frame, reg_data_frame[1]) |
|
248 |
+ seq_name <- c("seqname","start","end","strand",schema) |
|
249 |
+ |
|
250 |
+ sampleList <- lapply(list, function(x){ |
|
251 |
+ x <- x[-1] |
|
252 |
+ names(x) <- seq_name |
|
253 | 253 |
# start_numeric = as.numeric(levels(x$start))[x$start] |
254 |
- start_numeric = as.numeric(x$start) |
|
255 |
- start_numeric = start_numeric + 1 |
|
256 |
- x$start = start_numeric |
|
257 |
- #levels(x$start)[x$start] = start_numeric |
|
258 |
- g <- GenomicRanges::makeGRangesFromDataFrame(x, |
|
259 |
- keep.extra.columns = TRUE, |
|
260 |
- start.field = "start", |
|
261 |
- end.field = "end") |
|
262 |
- }) |
|
263 |
- |
|
264 |
- gRange_list <- GRangesList(sampleList) |
|
265 |
- len = length(gRange_list) |
|
266 |
- names(gRange_list) <- paste0("S_",seq_len(len)) |
|
267 |
- meta_list <- .metadata_from_frame_to_list(meta) |
|
268 |
- names(meta_list) <- paste0("S_",seq_len(len)) |
|
269 |
- S4Vectors::metadata(gRange_list) <- meta_list |
|
270 |
- return(gRange_list) |
|
254 |
+ start_numeric = as.numeric(x$start) |
|
255 |
+ start_numeric = start_numeric + 1 |
|
256 |
+ x$start = start_numeric |
|
257 |
+ #levels(x$start)[x$start] = start_numeric |
|
258 |
+ g <- GenomicRanges::makeGRangesFromDataFrame( |
|
259 |
+ x, |
|
260 |
+ keep.extra.columns = TRUE, |
|
261 |
+ start.field = "start", |
|
262 |
+ end.field = "end") |
|
263 |
+ }) |
|
264 |
+ |
|
265 |
+ gRange_list <- GRangesList(sampleList) |
|
266 |
+ len = length(gRange_list) |
|
267 |
+ names(gRange_list) <- paste0("S_",seq_len(len)) |
|
268 |
+ meta_list <- .metadata_from_frame_to_list(meta) |
|
269 |
+ names(meta_list) <- paste0("S_",seq_len(len)) |
|
270 |
+ S4Vectors::metadata(gRange_list) <- meta_list |
|
271 |
+ return(gRange_list) |
|
271 | 272 |
} |
272 | 273 |
|
273 | 274 |
.metadata_from_frame_to_list <- function(metadata_frame) { |
274 |
- meta_frame <- as.data.frame(metadata_frame) |
|
275 |
- list <- split(meta_frame, meta_frame[1]) |
|
276 |
- name_value_list <- lapply(list, function(x){x <- x[-1]}) |
|
277 |
- meta_list <- lapply(name_value_list, function(x){ |
|
278 |
- stats::setNames(as.list(as.character(x[[2]])), x[[1]]) |
|
279 |
- }) |
|
275 |
+ meta_frame <- as.data.frame(metadata_frame) |
|
276 |
+ list <- split(meta_frame, meta_frame[1]) |
|
277 |
+ name_value_list <- lapply(list, function(x){x <- x[-1]}) |
|
278 |
+ meta_list <- lapply(name_value_list, function(x){ |
|
279 |
+ stats::setNames(as.list(as.character(x[[2]])), x[[1]]) |
|
280 |
+ }) |
|
280 | 281 |
} |
281 | 282 |
|
282 |
- |
|
283 |
- |
1 | 1 |
old mode 100644 |
2 | 2 |
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() |
... | ... |
@@ -43,10 +43,8 @@ execute <- function() |
43 | 43 |
val <- response[2] |
44 | 44 |
if(error) |
45 | 45 |
stop(val) |
46 |
- else |
|
47 |
- { |
|
48 |
- if(remote_proc) |
|
49 |
- { |
|
46 |
+ else { |
|
47 |
+ if(remote_proc) { |
|
50 | 48 |
isGTF <- FALSE |
51 | 49 |
outformat <- WrappeR$outputMaterialize() |
52 | 50 |
if(identical(outformat, "gtf")) |
... | ... |
@@ -59,29 +57,24 @@ execute <- function() |
59 | 57 |
} |
60 | 58 |
} |
61 | 59 |
|
62 |
-.download_or_upload <- function() |
|
63 |
-{ |
|
60 |
+.download_or_upload <- function() { |
|
64 | 61 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
65 | 62 |
datasets <- .jevalArray(WrappeR$get_dataset_list(),simplify = TRUE) |
66 | 63 |
data_list <- apply(datasets, 1, as.list) |
67 | 64 |
url <- WrappeR$get_url() |
68 | 65 |
remote <- WrappeR$is_remote_processing() |
69 |
- if(remote) |
|
70 |
- { |
|
66 |
+ if(remote) { |
|
71 | 67 |
lapply(data_list,function(x){ |
72 | 68 |
if(!is.null(x[[1]]) && !is.na(x[[1]])) |
73 | 69 |
upload_dataset(url,x[[2]],x[[1]],x[[3]],FALSE)}) |
74 |
- } |
|
75 |
- else |
|
76 |
- { |
|
70 |
+ } else { |
|
77 | 71 |
lapply(data_list,function(x){ |
78 | 72 |
if(!is.null(x[[2]]) && !is.na(x[[2]])) |
79 | 73 |
download_dataset(url,x[[2]],x[[1]])}) |
80 | 74 |
} |
81 | 75 |
} |
82 | 76 |
|
83 |
-collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") |
|
84 |
-{ |
|
77 |
+collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") { |
|
85 | 78 |
ptr_data <- value(x) |
86 | 79 |
gmql_materialize(ptr_data, dir_out, name) |
87 | 80 |
} |
... | ... |
@@ -137,12 +130,10 @@ collect.GMQLDataset <- function(x, dir_out = getwd(), name = "ds1") |
137 | 130 |
#' @export |
138 | 131 |
setMethod("collect", "GMQLDataset",collect.GMQLDataset) |
139 | 132 |
|
140 |
-gmql_materialize <- function(input_data, dir_out, name) |
|
141 |
-{ |
|
133 |
+gmql_materialize <- function(input_data, dir_out, name) { |
|
142 | 134 |
WrappeR <- J("it/polimi/genomics/r/Wrapper") |
143 | 135 |
remote_proc <- WrappeR$is_remote_processing() |
144 |
- if(!remote_proc) |
|
145 |
- { |
|
136 |
+ if(!remote_proc) { |
|
146 | 137 |
dir_out <- sub("/*[/]$","",dir_out) |
147 | 138 |
res_dir_out <- file.path(dir_out,name) |
148 | 139 |
if(!dir.exists(res_dir_out)) |
... | ... |
@@ -226,8 +217,7 @@ setMethod("take", "GMQLDataset", |
226 | 217 |
gmql_take(ptr_data, rows) |
227 | 218 |
}) |
228 | 219 |
|
229 |
-gmql_take <- function(input_data, rows) |
|
230 |
-{ |
|
220 |
+gmql_take <- function(input_data, rows) { |
|
231 | 221 |
rows <- as.integer(rows[1]) |
232 | 222 |
if(rows<0) |
233 | 223 |
stop("rows cannot be negative") |
... | ... |
@@ -259,9 +249,11 @@ gmql_take <- function(input_data, rows) |
259 | 249 |
sampleList <- lapply(list, function(x){ |
260 | 250 |
x <- x[-1] |
261 | 251 |
names(x) <- seq_name |
262 |
- start_numeric = as.numeric(levels(x$start))[x$start] |
|
252 |
+ # start_numeric = as.numeric(levels(x$start))[x$start] |
|
253 |
+ start_numeric = as.numeric(x$start) |
|
263 | 254 |
start_numeric = start_numeric + 1 |
264 |
- levels(x$start)[x$start] = start_numeric |
|
255 |
+ x$start = start_numeric |
|
256 |
+ #levels(x$start)[x$start] = start_numeric |
|
265 | 257 |
g <- GenomicRanges::makeGRangesFromDataFrame(x, |
266 | 258 |
keep.extra.columns = TRUE, |
267 | 259 |
start.field = "start", |
... | ... |
@@ -277,8 +269,7 @@ gmql_take <- function(input_data, rows) |
277 | 269 |
return(gRange_list) |
278 | 270 |
} |
279 | 271 |
|
280 |
-.metadata_from_frame_to_list <- function(metadata_frame) |
|
281 |
-{ |
|
272 |
+.metadata_from_frame_to_list <- function(metadata_frame) { |
|
282 | 273 |
meta_frame <- as.data.frame(metadata_frame) |
283 | 274 |
list <- split(meta_frame, meta_frame[1]) |
284 | 275 |
name_value_list <- lapply(list, function(x){x <- x[-1]}) |
... | ... |
@@ -250,6 +250,9 @@ gmql_take <- function(input_data, rows) |
250 | 250 |
stop("no schema defined") |
251 | 251 |
|
252 | 252 |
reg_data_frame <- as.data.frame(reg) |
253 |
+ if (!length(reg_data_frame)){ |
|
254 |
+ return(GRangesList()) |
|
255 |
+ } |
|
253 | 256 |
list <- split(reg_data_frame, reg_data_frame[1]) |
254 | 257 |
seq_name <- c("seqname","start","end","strand",schema) |
255 | 258 |
|
... | ... |
@@ -264,9 +264,12 @@ gmql_take <- function(input_data, rows) |
264 | 264 |
start.field = "start", |
265 | 265 |
end.field = "end") |
266 | 266 |
}) |
267 |
+ |
|
267 | 268 |
gRange_list <- GRangesList(sampleList) |
269 |
+ len = length(gRange_list) |
|
270 |
+ names(gRange_list) <- paste0("S_",seq_len(len)) |
|
268 | 271 |
meta_list <- .metadata_from_frame_to_list(meta) |
269 |
- |
|
272 |
+ names(meta_list) <- paste0("S_",seq_len(len)) |
|
270 | 273 |
S4Vectors::metadata(gRange_list) <- meta_list |
271 | 274 |
return(gRange_list) |
272 | 275 |
} |
... | ... |
@@ -256,7 +256,9 @@ gmql_take <- function(input_data, rows) |
256 | 256 |
sampleList <- lapply(list, function(x){ |
257 | 257 |
x <- x[-1] |
258 | 258 |
names(x) <- seq_name |
259 |
- x$start = x$start +1 |
|
259 |
+ start_numeric = as.numeric(levels(x$start))[x$start] |
|
260 |
+ start_numeric = start_numeric + 1 |
|
261 |
+ levels(x$start)[x$start] = start_numeric |
|
260 | 262 |
g <- GenomicRanges::makeGRangesFromDataFrame(x, |
261 | 263 |
keep.extra.columns = TRUE, |
262 | 264 |
start.field = "start", |
... | ... |
@@ -256,6 +256,7 @@ gmql_take <- function(input_data, rows) |
256 | 256 |
sampleList <- lapply(list, function(x){ |
257 | 257 |
x <- x[-1] |
258 | 258 |
names(x) <- seq_name |
259 |
+ x$start = x$start +1 |
|
259 | 260 |
g <- GenomicRanges::makeGRangesFromDataFrame(x, |
260 | 261 |
keep.extra.columns = TRUE, |
261 | 262 |
start.field = "start", |
... | ... |
@@ -152,7 +152,7 @@ gmql_materialize <- function(input_data, dir_out, name) |
152 | 152 |
res_dir_out <- dir_out |
153 | 153 |
|
154 | 154 |
if(grepl("\\.",name)) |
155 |
- stop("name dataset cannot contains dot") |
|
155 |
+ stop("dataset name cannot contains dot") |
|
156 | 156 |
|
157 | 157 |
response <- WrappeR$materialize(input_data, res_dir_out) |
158 | 158 |
error <- strtoi(response[1]) |