想用R将从TCGA上下载的counts格式文件转为FPKM格式,但是最后出现了报错不知道怎么解决
> history()
> processingJsonFiles <- function(jsonFile){
+ library(rjson)
+ metadata_json_File <- fromJSON(file="C:/data/metadata.cart.2022-10-24.json")
+ json_File_Info <- data.frame(filesName = c(),TCGA_Barcode = c())
+ for(i in 1:length(metadata_json_File)){
+ TCGA_Barcode <- metadata_json_File[[i]][["associated_entities"]][[1]][["entity_submitter_id"]]
+ file_name <- metadata_json_File[[i]][["file_name"]]
+ json_File_Info <- rbind(json_File_Info,data.frame(filesName = file_name,TCGA_Barcode = TCGA_Barcode))
+ }
+ rownames(json_File_Info) <- json_File_Info[,1]
+ json_File_Info <-json_File_Info[-1]
+ return(json_File_Info)
+ }
> getTCGA_RNAseq_data = function(filepath,jsonFileInfo,data_type){
+ datamatrix = data.frame()
+ for(wd in filepath){
+ tempPath <- unlist(strsplit(wd,"/"))
+ filename <- tempPath[length(unlist(strsplit(wd,"/")))]
+ message(paste0,filename)
+ oneSampExp <- read.table(wd,comment.char = "#",header = T,sep = "\t")
+ oneSampExp = oneSampExp[-c(1:4),]
+ if(wd == filepath[1]){
+ oneSampExp = oneSampExp[,c("gene_id","gene_name","gene_type",data_type)]
+ colnames(oneSampExp) <- c("gene_id","gene_name","gene_type",jsonFileInfo[filename,"TCGA_Barcode"])
+ datamatrix = oneSampExp
+ }else{
+ oneSampExp = oneSampExp[,c("gene_id",data_type)]
+ colnames(oneSampExp) <- c("gene_id",jsonFileInfo[filename,"TCGA_Barcode"])
+ datamatrix = merge(datamatrix,oneSampExp,by = "gene_id")
+ }
+ return(datamatrix)
+ }
+ }
>
> filepath = dir(path = "C:/data",
+ pattern = "counts.tsv$",
+ full.names = T,
+ recursive = T)
>
> jsonFileInfo <- processingJsonFiles(jsonFile = "metadata.cart.2022-10-24.json ")
> filepath = dir(path = "C:/data",
+ pattern = "counts.tsv$",
+ full.names = T,
+ recursive = T)
> dat = getTCGA_RNAseq_data(filepath ="C:/data",
+ jsonFileInfo = jsonFileInfo,
+ data_type = "fpkm_unstranded")
Error in FUN(X[[i]], ...) :
cannot coerce type 'closure' to vector of type 'character'
在将末尾jsonFileInfo修改后报错还是一样
> dat = getTCGA_RNAseq_data(filepath ="C:/data",
+ jsonFileInfo=jsonFileInfo(),
+ data_type = "fpkm_unstranded")
Error in FUN(X[[i]], ...) :
cannot coerce type 'closure' to vector of type 'character'
Error in FUN(X[[i]], ...) : cannot coerce type 'closure' to vector of type 'character'
Error in FUN(X[[i]], ...) :无法将类型“闭包”强制为类型“character”的向量
该现象和下面这篇博文报错非常相似,分享给你借鉴:https://stackoverflow.com/questions/29812633/cannot-coerce-type-closure-to-vector-of-type-character
【解题思路:最后两行中对datasetInput1和datasetInput2的调用是错误的原因。
您应该改为调用datasetInput1()和datasetInput2()。
否则,R尝试将函数转换为char。
#Debug print value of sting being passed
output$testvar = renderText(print(datasetInput1()))
# Plot
output$myplot = renderPlot({myplotfunct(iris, datasetInput1(), datasetInput2())})
】
另外,这篇【如何把从TCGA下载的HTseq count转换成FPKM】,讲解的很好,很详细,同步分享你作参考:https://www.jianshu.com/p/4afbdc8fd8ed
这篇文章详细得介绍 R将从TCGA上下载的counts格式文件转为FPKM格式
https://blog.csdn.net/weixin_46500027/article/details/125063201
希望对你有所帮助
参考一下呢 https://stackoverflow.com/questions/38988028/error-in-funxi-object-x-not-found