“我加载了一个从Gencode创建的TxDb对象,并对其外显子进行了查询,然后使用lapply从每个具有>1个外显子的记录中获取所有的最后外显子:
#Load db:
Gencode <- loadDb("gencode.v39.basic.annotation.sqlite")
#Exons by transcript
Exons <- exonsBy(Gencode, by = "tx", use.names=TRUE)
#Get Exon Counts
ExonCount <- as.data.frame(elementNROWS(Exons))
#Get the last exon for every transcript
lapply(1:nrow(ExonCount), function(x) Exons[[x]][ExonCount$`elementNROWS(Exons)`[x]])接下来,我想对这些范围执行操作。比如shift()或者其他任何东西。然而,我得到了一个警告:
(函数(类、fdef、mtable)中的
错误:无法找到用于签名“list”的函数“调整大小”的继承方法
我的问题是,如何将这个对象恢复到我可以用GRanges函数操作的格式?
或者,我如何才能以避免这个问题的方式获得每个转录本的最终外显子呢?
发布于 2021-12-13 20:32:59
我不知道如何以另一种方式查询最终外显子,但我找到了一种重新格式化lapply输出的方法:
我的尝试是将lapply()函数中的每个单独元素连接回一个GRanges对象中:
#Function to take each element in the list objects and put concatenate into a GRanges Object:
ListOfGRangesToGRangeList <- function(ListToConvert) {
ConvertedObject <- GRangesList(ListToConvert[[1]], ListToConvert[[2]])
for (x in 3:length(ListToConvert)){
ConvertedObject <- GRangesList(unlist(ConvertedObject), ListToConvert[[x]])
ConvertedObject <- unlist(ConvertedObject)
}
return(ConvertedObject)或
ListOfGRangesToGRangeList <- function(ListToConvert) {
ConvertedObject <- c(ListToConvert[[1]], ListToConvert[[2]])
for (x in 3:length(ListToConvert)){
ConvertedObject <- c(ConvertedObject, ListToConvert[[x]])
}
return(ConvertedObject)https://stackoverflow.com/questions/70340578
复制相似问题