我正试图从GEO/SRA下载BAM格式的数据集,以便在RStudio中进行分析。
我尝试使用这种方法:在那里我下载了.sra并将其转换为.bam
prefetch GSM269238
sam-dump C:UsersDesktopsratoolkit.2.10.8-win64binncbiSRAsraGSM2692389.sra --output-file GSM2692389.bam
然而,在RStudio中,这不起作用,并返回了一个错误,称无法读取bam文件这是我的R代码;我正在使用RSamTools
> bamfiles <- list.files("directory redacted due to privacy", ".bam")
> file.exists(bamfiles)
[1] TRUE
>
>
> #---> Define bam files for count step on Rsamtools
>
> library("Rsamtools")
> bamfiles <- BamFileList(bamfiles, yieldSize=2000000)
> seqinfo(bamfiles)
Error in value[[3L]](cond) :
failed to open BamFile: SAM/BAM header missing or empty
file: 'GSM2692389.bam'
有人知道如何帮我把SRA数据下载到可读的.bam文件中吗?任何帮助或指导都将不胜感激,因为我真的在努力赶在最后期限前完成这项工作。
我想说,您的问题是由您实际上没有bam文件这一事实引起的!现在,您的命令正在下载sam文件(因此得名sam-dump(,您只需使用bam扩展名保存这些文件(一个简单的测试是在您的"bam文件"上使用head
。如果您能读取它们,则它们不是二进制的,这意味着它们不是bam。否则,您可以使用samtools view
,正如bli所建议的那样(。
话虽如此,你能尝试一下吗(确保在使用之前安装了samtools(:
sam-dump C:UsersDesktopsratoolkit.2.10.8-win64binncbiSRAsraGSM2692389.sra | samtools view -bS - > GSM2692389.bam
此外,如果你对下载.sra文件不是特别感兴趣,你也可以使用这个,它更简单、更短(也可能更快(:
sam-dump SRR5799988 | samtools view -bS - > GSM2692389.bam
我冒昧地将您的GSM号码替换为相关的SRR号码(请参阅https://www.ncbi.nlm.nih.gov/sra?term=SRX2979455(,但请毫不犹豫地仔细检查SRR!
有关sam-dump的更多信息:https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc&f=sam-dump