This repository has been archived by the owner on Apr 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2021-12-03_celeste_move_upload_file.R
85 lines (71 loc) · 2.75 KB
/
2021-12-03_celeste_move_upload_file.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Description: Move a UHN upload to correct Synapse entity.
# Author: Haley Hunter-Zinck
# Date: 2021-12-03
# Request:
# source: celeste sent email saying upload available
# date requested: 2021-12-03
# setup ----------------------------
tic = as.double(Sys.time())
library(glue)
library(dplyr)
library(synapser)
synLogin()
# synapse
synid_file_source <- "syn26525019"
synid_folder_dest <- "syn26243332"
synid_file_dest <- "syn26033209"
# functions ----------------------------
#' Store a file on Synapse with options to define provenance.
#'
#' @param path Path to the file on the local machine.
#' @param parent_id Synapse ID of the folder or project to which to load the file.
#' @param file_name Name of the Synapse entity once loaded
#' @param prov_name Provenance short description title
#' @param prov_desc Provenance long description
#' @param prov_used Vector of Synapse IDs of data used to create the current
#' file to be loaded.
#' @param prov_exec String representing URL to script used to create the file.
#' @return TRUE if successful, otherwise return error.
save_to_synapse <- function(path,
parent_id,
file_name = NA,
prov_name = NA,
prov_desc = NA,
prov_used = NA,
prov_exec = NA) {
if (is.na(file_name)) {
file_name = path
}
file <- File(path = path, parentId = parent_id, name = file_name)
if (!is.na(prov_name) || !is.na(prov_desc) || !is.na(prov_used) || !is.na(prov_exec)) {
act <- Activity(name = prov_name,
description = prov_desc,
used = prov_used,
executed = prov_exec)
file <- synStore(file, activity = act)
} else {
file <- synStore(file)
}
return(T)
}
#' Get the name of a Synapse entity.
#'
#' @param synapse_id Synapse ID string
#' @return String representing entity name
#' @example get_synapse_entity_name("syn12345")
get_synapse_entity_name <- function(synapse_id) {
return(synGet(synapse_id, downloadFile = F)$properties$name)
}
# main ----------------------------
entity <- synGet(synid_file_source)
file_name <- get_synapse_entity_name(synid_file_dest)
save_to_synapse(path = entity$path,
parent_id = synid_folder_dest,
file_name = file_name,
prov_name = "copy file",
prov_desc = "copy file from one entity to another",
prov_used = synid_file_source,
prov_exec = "https://github.com/hhunterzinck/genie_requests/blob/main/2021-12-03_celeste_move_upload_file.R")
# close out ----------------------------
toc = as.double(Sys.time())
print(glue("Runtime: {round(toc - tic)} s"))