Я пытаюсь провести некоторый анализ последовательности MeDIP, и в процессе чтения файлов BAM я получаю схожую ошибку, какую бы библиотеку я ни использовал, чтобы запустить код.
Ниже приведен пример с samtools:
library(Rsamtools)
bamFile <- "TI_meDIP_2x.bam"
readBAM <- function(bamFile){
bam <- scanBam(bamFile)
.unlist <- function (x){
x1 <- x[[1L]]
if (is.factor(x1)){
structure(unlist(x), class = "factor", levels = levels(x1))
} else {
do.call(c, x)
}
}
bam_field <- names(bam[[1]])
list <- lapply(bam_field, function(y) .unlist(lapply(bam, "[[", y)))
bam_df <- do.call("DataFrame", list)
names(bam_df) <- bam_field
#return a list that can be called as a data frame
return(bam_df)
}
bam1 <- readBAM(bamFile)
Я получаю следующую ошибку:
Error in value[[3L]](cond) :
failed to open BamFile: SAM/BAM header missing or empty
file: 'TI_meDIP_2x.bam'
In addition: Warning message:
In doTryCatch(return(expr), name, parentenv, handler) :
Я попытался связаться с моим соавтором, который прислал мне файл BAM, и похоже, что в заголовке нет ошибок. Я не уверен, что это ошибка из-за кода или из-за нехватки памяти. Спасибо