dataframe – uwot is throwing an error running the Monocle3 R package’s “find_gene_module()” function, likely as an issue with how my data is formatted

I am trying to run the Monocle3 function find_gene_modules() on a cell_data_set (cds) but am getting a variety of errors in this. I have not had any other issues before this. I am working with an imported Seurat object. My first error came back stating that the number of rows were not the same between my cds and cds@preprocess_aux$gene_loadings values. I took a look and it seems my gene loadings were a list under cds@preprocess_aux@listData$gene_loadings. I then ran the following code to make a dataframe version of the gene loadings:

test <- seurat@assays$RNA@counts@Dimnames[[1]]
test <- as.data.frame(test)
cds@preprocess_aux$gene_loadings <- test
rownames(cds@preprocess_aux$gene_loadings) <- cds@preprocess_aux$gene_loadings[,1]

Which created a cds@preprocess_aux$gene_loadings dataframe with the same number of rows and row names as my cds. This resolved my original error but now led to a new error being thrown from uwot as:

15:34:02 UMAP embedding parameters a = 1.577 b = 0.8951
Error in uwot(X = X, n_neighbors = n_neighbors, n_components = n_components,  : 
  No numeric columns found

Running traceback() produces the following information.

> traceback()
4: stop("No numeric columns found")
3: uwot(X = X, n_neighbors = n_neighbors, n_components = n_components, 
       metric = metric, n_epochs = n_epochs, alpha = learning_rate, 
       scale = scale, init = init, init_sdev = init_sdev, spread = spread, 
       min_dist = min_dist, set_op_mix_ratio = set_op_mix_ratio, 
       local_connectivity = local_connectivity, bandwidth = bandwidth, 
       gamma = repulsion_strength, negative_sample_rate = negative_sample_rate, 
       a = a, b = b, nn_method = nn_method, n_trees = n_trees, search_k = search_k, 
       method = "umap", approx_pow = approx_pow, n_threads = n_threads, 
       n_sgd_threads = n_sgd_threads, grain_size = grain_size, y = y, 
       target_n_neighbors = target_n_neighbors, target_weight = target_weight, 
       target_metric = target_metric, pca = pca, pca_center = pca_center, 
       pca_method = pca_method, pcg_rand = pcg_rand, fast_sgd = fast_sgd, 
       ret_model = ret_model || "model" %in% ret_extra, ret_nn = ret_nn || 
           "nn" %in% ret_extra, ret_fgraph = "fgraph" %in% ret_extra, 
       batch = batch, opt_args = opt_args, epoch_callback = epoch_callback, 
       tmpdir = tempdir(), verbose = verbose)
2: uwot::umap(as.matrix(preprocess_mat), n_components = max_components, 
       metric = umap.metric, min_dist = umap.min_dist, n_neighbors = umap.n_neighbors, 
       fast_sgd = umap.fast_sgd, n_threads = cores, verbose = verbose, 
       nn_method = umap.nn_method, ...)
1: find_gene_modules(cds[pr_deg_ids, ], reduction_method = "UMAP", 
       max_components = 2, umap.metric = "cosine", umap.min_dist = 0.1, 
       umap.n_neighbors = 15L, umap.fast_sgd = FALSE, umap.nn_method = "annoy", 
       k = 20, leiden_iter = 1, partition_qval = 0.05, weight = FALSE, 
       resolution = 0.001, random_seed = 0L, cores = 1, verbose = T)

I really have no idea what I am doing wrong or how to proceed from here. Does anyone with experience with uwot know where my error is coming from? Really appreciate the help!

Read more here: Source link