google / rappor

RAPPOR: Privacy-Preserving Reporting Algorithms
Apache License 2.0
862 stars 163 forks source link

Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' must be of a vector type, was 'NULL' #113

Open zimmermk1986 opened 4 years ago

zimmermk1986 commented 4 years ago

I am attempting to "Analyzing Branches in Single-Cell Trajectories" using a Seurat 3 object imported into monocle 2. I have made it through the entire tutorial successfully until I try to analyze the branches in single cell trajectories using the code below. When I try to do the command plot_genes_branched_heatmap I get the following error. How do I fix this?

Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' must be of a vector type, was 'NULL'

data <- as(as.matrix(res@assays$RNA@data), 'sparseMatrix') pd <- new('AnnotatedDataFrame', data = res@meta.data) fData <- data.frame(gene_short_name = row.names(data), row.names = row.names(data)) fd <- new('AnnotatedDataFrame', data = fData) cds <- newCellDataSet(data, phenoData = pd, featureData = fd, lowerDetectionLimit = 0.5, expressionFamily = negbinomial.size()) cds <- estimateSizeFactors(cds) cds <- estimateDispersions(cds) Removing 410 outliers There were 50 or more warnings (use warnings() to see the first 50) cds <- detectGenes(cds, min_expr = 0.1) print(head(fData(cds))) gene_short_name use_for_ordering num_cells_expressed Mrpl15 Mrpl15 FALSE 149 Lypla1 Lypla1 FALSE 41 Tcea1 Tcea1 FALSE 119 Atp6v1h Atp6v1h FALSE 84 Rb1cc1 Rb1cc1 FALSE 65 4732440D04Rik 4732440D04Rik FALSE 33 expressed_genes <- row.names(subset(fData(cds), num_cells_expressed >= 10)) disp_table <- dispersionTable(cds) unsup_clustering_genes <- subset(disp_table, mean_expression >= 0.1) cds <- setOrderingFilter(cds, unsup_clustering_genes$gene_id) plot_ordering_genes(cds) Warning messages: 1: Transformation introduced infinite values in continuous y-axis 2: Transformation introduced infinite values in continuous y-axis cds <- reduceDimension(cds, max_components = 2, num_dim = 6, reduction_method = 'tSNE', verbose = T) Remove noise by PCA ... Reduce dimension by tSNE ...

marker_genes <- row.names(subset(fData(cds),

  • gene_short_name %in% c("Cd63", "C1qa", "Ccr2",
  • "Apoe", "Sepp1","Pf4",
  • "Napsa", "Clec12a", "Fos",
  • "Junb", "Dusp1"))) diff_test_res <- differentialGeneTest(cds[marker_genes,]) sig_genes <- subset(diff_test_res, qval < 0.1) sig_genes[,c("gene_short_name", "pval", "qval")] gene_short_name pval qval C1qa C1qa 1.013719e-12 3.716969e-12 Pf4 Pf4 5.704000e-05 6.971555e-05 Clec12a Clec12a 9.993933e-12 2.748332e-11 Apoe Apoe 2.208108e-29 2.428918e-28 Napsa Napsa 1.403176e-06 2.204990e-06 Cd63 Cd63 2.004831e-04 2.004831e-04 Junb Junb 1.131497e-05 1.555808e-05 Ccr2 Ccr2 3.641001e-07 6.675169e-07 Fos Fos 4.840100e-15 2.662055e-14 Sepp1 Sepp1 4.030497e-09 8.867094e-09 Dusp1 Dusp1 7.190949e-05 7.910044e-05 MYOG_ID1 <- cds[row.names(subset(fData(cds), gene_short_name %in% c("C1qa", "Apoe"))),] plot_genes_jitter(MYOG_ID1, grouping = "seurat_clusters", ncol= 2) to_be_tested <- row.names(subset(fData(cds), gene_short_name %in% c("Apoe", "Fos", "C1qa"))) cds_subset <- cds[to_be_tested,] diff_test_res <- differentialGeneTest(cds_subset) diff_test_res[,c("gene_short_name", "pval", "qval")] gene_short_name pval qval C1qa C1qa 1.013719e-12 1.013719e-12 Apoe Apoe 2.208108e-29 6.624323e-29 Fos Fos 4.840100e-15 7.260150e-15 plot_genes_jitter(cds_subset,
  • grouping = "seurat_clusters",
  • color_by = "seurat_clusters",
  • nrow= 1,
  • ncol = NULL,
  • plot_trend = TRUE) Warning messages: 1: Computation failed in stat_summary(): Hmisc package required for this function 2: Computation failed in stat_summary(): Hmisc package required for this function 3: Computation failed in stat_summary(): Hmisc package required for this function 4: Computation failed in stat_summary(): Hmisc package required for this function 5: Computation failed in stat_summary(): Hmisc package required for this function 6: Computation failed in stat_summary(): Hmisc package required for this function to_be_tested <- row.names(subset(fData(cds), gene_short_name %in% c("Apoe", "C1qa", "Fos"))) cds_subset <- cds[to_be_tested,] diff_test_res <- differentialGeneTest(cds_subset, fullModelFormulaStr = "~sm.ns(Pseudotime)") diff_test_res[,c("gene_short_name", "pval", "qval")] gene_short_name pval qval C1qa C1qa 2.145791e-08 2.145791e-08 Apoe Apoe 5.811938e-23 1.743581e-22 Fos Fos 2.683403e-16 4.025104e-16 plot_genes_in_pseudotime(cds_subset, color_by = "seurat_clusters") diff_test_res <- differentialGeneTest(cds[marker_genes,], fullModelFormulaStr = "~sm.ns(Pseudotime)") sig_gene_names <- row.names(subset(diff_test_res, qval < 0.1)) plot_pseudotime_heatmap(cds[sig_gene_names,],
  • num_clusters = 3,
  • cores = 1,
  • show_rownames = T) plot_cell_trajectory(cds, color_by = "Pseudotime") plot_cell_trajectory(cds, color_by = "seurat_clusters") BEAM_res <- BEAM(cds, branch_point = 2, cores = 1) Warning messages: 1: In if (progenitor_method == "duplicate") { : the condition has length > 1 and only the first element will be used 2: In if (progenitor_method == "sequential_split") { : the condition has length > 1 and only the first element will be used BEAM_res <- BEAM_res[order(BEAM_res$qval),] BEAM_res <- BEAM_res[,c("gene_short_name", "pval", "qval")] plot_genes_branched_heatmap(cds[row.names(subset(BEAM_res,
  • qval < 1e-4)),],
  • branch_point = 2,
  • num_clusters = 4,
  • cores = 1,
  • use_gene_short_name = T,
  • show_rownames = T) Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' must be of a vector type, was 'NULL'
jehp96 commented 2 years ago

hello , can you solve the problem ? i need help with that, please