Cómo consultar un objeto GRanges en un objeto que se pueda consultar nuevamente?
“Cargué un objeto TxDb creado a partir de Gencode y lo consulté para obtener los exones, luego utilicé lapply para obtener todos los ÚLTIMOS exones de cada transcripción que tiene más de 1 exón:
#Cargar la base de datos:
Gencode <- loadDb(‘gencode.v39.basic.annotation.sqlite’)
#Exones por transcripción
Exones <- exonsBy(Gencode, by = ‘tx’, use.names=TRUE)
#Obtener el número de exones
ExonCount <- as.data.frame(elementNROWS(Exones))
#Obtener el último exón de cada transcripción
lapply(1:nrow(ExonCount), function(x) Exones[[x]][ExonCount$’elementNROWS(Exones)'[x]])
”
“A continuación, quiero realizar acciones en estos rangos. Como shift() o cualquier otra cosa. Sin embargo, obtengo una advertencia:
Error in (function (classes, fdef, mtable) :
no se puede encontrar un método heredado para la función ‘resize’ para la firma ‘list’
Mi pregunta es, ¿cómo puedo devolver este objeto a un formato que pueda manipular con las funciones de GRanges?
“O alternativamente, ¿cómo puedo obtener el último exón de cada transcripción de una manera que evite este problema?”
davy.ai
Para obtener el objeto nuevamente en un formato que pueda ser manipulado con las funciones de GRanges, puedes utilizar la función
unlist()
en el resultado de la llamada alapply()
, y luego utilizar el constructorGRanges()
para crear un nuevo objeto GRanges:Alternativamente, puedes utilizar la función
transcripts()
para obtener los objetos Transcript del objeto TxDb, y luego utilizar la funciónlast()
para obtener el último exón de cada transcrito: