|
59 | 59 | #' } |
60 | 60 | #' |
61 | 61 | #' @importFrom logger log_info log_debug log_error log_warn |
62 | | -#' @importFrom dplyr group_by filter slice_head ungroup %>% |
| 62 | +#' @importFrom dplyr group_by filter slice_head ungroup arrange desc %>% |
63 | 63 | #' @importFrom tidyr pivot_longer |
64 | 64 | #' @importFrom stats setNames |
65 | 65 | #' @importFrom Seurat Embeddings GetAssayData AddMetaData |
@@ -95,12 +95,16 @@ PrepareCyteTypeR <- function(obj, |
95 | 95 |
|
96 | 96 | marker_genes <- marker_table %>% |
97 | 97 | group_by(cluster) %>% |
98 | | - dplyr::filter(avg_log2FC > 1) %>% |
| 98 | + arrange(desc(avg_log2FC)) %>% |
99 | 99 | slice_head(n = n_top_genes) %>% |
100 | 100 | ungroup() %>% |
101 | 101 | {split(.$gene, .$cluster)} |
102 | 102 | names(marker_genes) <- cluster_map[names(marker_genes)] |
103 | 103 |
|
| 104 | + if (any(sapply(marker_genes, function(x) !is.vector(x) || length(x) < 5))) { |
| 105 | + stop("Invalid marker genes, some clusters have fewer than 5 markers") |
| 106 | + } |
| 107 | + |
104 | 108 | print("Preparing visualisation data...") |
105 | 109 | visualization_data <- list( |
106 | 110 | coordinates = Embeddings(obj, reduction = coordinates_key), |
@@ -248,13 +252,12 @@ CyteTypeR <- function(obj, |
248 | 252 |
|
249 | 253 |
|
250 | 254 | # Job submission |
251 | | - tryCatch({ |
252 | | - job_id <- .submit_job(query_list, api_url, auth_token) |
253 | | - }, |
254 | | - error = function(e) { |
255 | | - stop("Job submission failed: ", conditionMessage(e)) |
256 | | - } |
257 | | - ) |
| 255 | + |
| 256 | + job_id <- .submit_job(query_list, api_url, auth_token) |
| 257 | + if (is.na(job_id)) { |
| 258 | + stop("Job submission failed.") |
| 259 | + } |
| 260 | + |
258 | 261 |
|
259 | 262 | # Save job details |
260 | 263 | report_url <- file.path(api_url, 'report',job_id) |
|
0 commit comments