File size: 3,673 Bytes
977cc7d
e55e859
977cc7d
 
3498741
 
 
977cc7d
3498741
977cc7d
 
 
 
 
 
 
 
 
 
 
 
 
 
e55e859
 
 
 
 
 
 
 
 
 
 
 
 
 
977cc7d
 
 
 
 
e55e859
977cc7d
 
17e03a6
 
 
 
977cc7d
 
 
 
 
 
 
17e03a6
 
 
 
 
977cc7d
 
17e03a6
977cc7d
 
 
17e03a6
 
 
 
 
977cc7d
 
 
 
e55e859
3498741
 
 
 
 
e669e7a
3498741
e669e7a
3498741
 
 
e669e7a
3498741
 
 
 
 
 
 
 
 
4ffb642
3498741
 
 
 
e669e7a
3498741
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# globals.R
# ::rtemisseq::
# EDG rtemis.org

# rtemis ----
msg2start <- getFromNamespace("msg2start", "rtemis")
msg2done <- getFromNamespace("msg2done", "rtemis")

# rtemislive ----
rthelp <- function(..., title = NULL, class = "rthelp") {
  div(
    div(HTML(paste0(title, " Instructions")),
      style = "color: #808080; font-weight: 300; padding-bottom:.5em;"
    ),
    HTML(paste0("<i>", paste(..., sep = "<br>")), "</i>"),
    class = class
  )
} # rtemislive::rthelp

rthelp_inline <- function(..., title = NULL, class = "rthelp-inline") {
  rthelp(..., title = title, class = class)
} # rtemislive::rthelp_inline

#' Create bulleted list
#' 
#' @return div
rthelplist <- function(x, bullet = bsicons::bs_icon("arrow-right-short"), class = "rthelplist") {
  div(
    htmltools::HTML(
      paste0(
        bullet, "<i>", x, "</i>", "<br>"
      )
    ),
    class = class
  )
} # rtemisseq::rthelplist

bold <- function(x) {
  paste0("<b>", x, "</b>")
}

hilite <- function(x) {
  paste0("<span style='color: var(--bs-primary);font-weight: bold;'>", x, "</span>")
}

nannot <- function(n) {
  ngettext(n, "annotation", "annotations")
}

#' Summarize a3 object in HTML
#'
#' @param x a3 object
#'
#' @return HTML string
#' @author EDG
summarize_a3 <- function(x) {
  n_site <- length(x$Annotations$Site)
  n_region <- length(x$Annotations$Region)
  n_ptm <- length(x$Annotations$PTM)
  n_cleavage <- length(x$Annotations$Cleavage_site)
  n_variant <- length(x$Annotations$Variant)
  htmltools::HTML(
    paste0(
      if (!is.null(x$Description)) paste0("Description: ", hilite(x$Description), "<br>"),
      if (!is.null(x$UniprotID)) paste0("Uniprot ID: ", hilite(x$UniprotID), "<br>"),
      paste0("Sequence length: ", hilite(length(x$Sequence)), "<br>"),
      "<ul>",
      if (n_site > 0) paste("<li>", hilite(n_site), "site", nannot(n_site), "<br>"),
      if (n_region > 0) paste("<li>", hilite(n_region), "region", nannot(n_region), "<br>"),
      if (n_ptm > 0) paste("<li>", hilite(n_ptm), "PTM", nannot(n_ptm), "<br>"),
      if (n_cleavage > 0) paste("<li>", hilite(n_cleavage), " cleavage site", nannot(n_cleavage), "<br>"),
      if (n_variant > 0) paste("<li>", hilite(n_variant), "variant", nannot(n_variant), "<br>"),
      "</ul>",
      if (!is.null(x$Reference)) a("Reference", href = x$Reference, target = "_blank")
    )
  )
} # rtemisseq::summarize_a3

#' Get file names and download URLs from a GitHub repository
#'
#' @param repo_owner The owner of the GitHub repository
#' @param repo_name The name of the GitHub repository
#' 
#' @return A data frame with file names and download URLs
#' 
#' @examples
#' files <- get_github_files("rtemis-org", "seq-data")
#' @export
#' @author EDG

get_github_files <- function(repo_owner, repo_name, verbosity = 1) {
  if (verbosity > 0) {
    msg2start("Getting file information from", paste0(repo_owner, "/", repo_name))
  }
  # Construct the API URL
  api_url <- paste0("https://api.github.com/repos/", repo_owner, "/", repo_name, "/contents/data")

  # Make the API request
  response <- httr::GET(api_url)

  # Check if the request was successful
  if (response[["status_code"]] == 200) {
    # Extract the file information
    files_data <- httr::content(response, as = "text", encoding = "UTF-8") |> jsonlite::fromJSON()

    # Create a data frame with file names and download URLs
    files_df <- data.frame(
      file_name = files_data[["name"]],
      download_url = files_data[["download_url"]]
    )
    if (verbosity > 0) {
      msg2done()
    }
    return(files_df)
  } else {
    print("Error: Could not retrieve file information.")
    return(NULL)
  }
} # rtemis::get_github_files