全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2145 2
2021-04-14
各位大神们好,我是一个R语言的新手,今天在做一个生信程序的时候,按部就班地根据教程输代码,但是出现了一个error:Errorin if (type_res[cell_name] == TRUE) next_nodes <- c(next_nodes,  : 需要TRUE/FALSE值的地方不可以用缺少值。求问各位大神应该怎么办?附上全部代码如下:pd <- new("AnnotatedDataFrame", data = HSMM_sample_sheet)
fd <- new("AnnotatedDataFrame", data = HSMM_gene_annotation)
HSMM <- newCellDataSet(as.matrix(HSMM_expr_matrix),phenoData = pd, featureData = fd, lowerDetectionLimit = 0.1, expressionFamily =tobit(Lower = 0.1))

rpc_matrix <- relative2abs(HSMM, method ="num_genes")
HSMM <- newCellDataSet(as(as.matrix(rpc_matrix),"sparseMatrix"), phenoData = pd, featureData = fd, lowerDetectionLimit= 0.5, expressionFamily = negbinomial.size())

HSMM<- estimateSizeFactors(HSMM)

HSMM <- estimateDispersions(HSMM)

HSMM <- detectGenes(HSMM, min_expr = 0.1)

expressed_genes<- row.names(subset(fData(HSMM),num_cells_expressed >= 10))

length(expressed_genes)

HSMM <- HSMM[expressed_genes,]

valid_cells<- row.names(subset(pData(HSMM),num_genes_expressed >= 200 &Mapped.Fragments > 1000000))

length(valid_cells)

HSMM <- HSMM[,valid_cells]

expdt<- exprs(HSMM)

dim(expdt)

pData(HSMM)$Total_mRNAs<- Matrix::colSums(expdt)

head(pData(HSMM))

dim(HSMM)

valid_cells2<- pData(HSMM)$Total_mRNAs < 1e6

HSMM <- HSMM[,valid_cells2]

upper_bound<- 10^(mean(log10(pData(HSMM)$Total_mRNAs)) +

2*sd(log10(pData(HSMM)$Total_mRNAs)))

lower_bound<- 10^(mean(log10(pData(HSMM)$Total_mRNAs)) -

2*sd(log10(pData(HSMM)$Total_mRNAs)))

qplot(Total_mRNAs,data = pData(HSMM), color = Hours, geom ="density") +

geom_vline(xintercept= lower_bound) +

geom_vline(xintercept = upper_bound)

valid_cells3<- pData(HSMM)$Total_mRNAs > lower_bound & pData(HSMM)$Total_mRNAs< upper_bound

HSMM<- HSMM[,valid_cells3]

dim(HSMM)

L <- log(exprs(HSMM[expressed_genes,]))

M <- Matrix::t(scale(Matrix::t(L)))

cth <- newCellTypeHierarchy()

MYF5_id<- row.names(subset(fData(HSMM), gene_short_name == "MYF5"))

ANPEP_id <-row.names(subset(fData(HSMM),gene_short_name == "ANPEP"))

cth<- addCellType(cth, "Myoblast", classify_func = function(x) {x[MYF5_id,] >= 1 })

cth <- addCellType(cth,"Fibroblast", classify_func = function(x) { x[MYF5_id,] < 1 &x[ANPEP_id,] > 1 })

HSMM<- classifyCells(HSMM, cth, 0.1)

Errorin if (type_res[cell_name] == TRUE) next_nodes <- c(next_nodes,  :

  需要TRUE/FALSE值的地方不可以用缺少值


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-4-14 18:34:17
dingyixia
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-4-15 06:37:57
很多包在不断更新,包括函数的代码和参数都会优化,导致原来的一些代码不再适合更新后的参数。所以会有这种报错,要排错只能查所用函数的文档甚至是源码。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群