ww2*_*2an 0 r bioinformatics samtools bam
我正在尝试从 GEO/SRA 下载 BAM 格式的数据集,我可以使用它在 RStudio 中进行分析。
我尝试使用这种方法:我下载了 .sra 并将其转换为 .bam
prefetch GSM269238
sam-dump C:\Users\Desktop\sratoolkit.2.10.8-win64\bin\ncbi\SRA\sra\GSM2692389.sra --output-file GSM2692389.bam
Run Code Online (Sandbox Code Playgroud)
然而,在 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'
Run Code Online (Sandbox Code Playgroud)
有谁知道如何帮助我将 SRA 数据下载到可读的 .bam 文件中?任何帮助或指导将不胜感激,因为我真的很努力在截止日期前完成这件事。
我想说你的问题是由于你实际上没有 bam 文件引起的!现在,您的命令正在下载 sam 文件(因此名称为 sam-dump),您只需使用 bam 扩展名保存这些文件(一个简单的测试是在您的“bam 文件”上使用head。如果您可以读取它们,那么它们不是二进制的,这意味着它们不是 bam。否则,您可以使用samtools view,如 bli 建议的那样)。
话虽这么说,你可以试试这个(在使用它之前确保安装了 samtools):
sam-dump C:\Users\Desktop\sratoolkit.2.10.8-win64\bin\ncbi\SRA\sra\GSM2692389.sra | samtools view -bS - > GSM2692389.bam
Run Code Online (Sandbox Code Playgroud)
另外,如果您对下载 .sra 文件不是特别感兴趣,您也可以使用这个,它更容易、更短(也许也更快):
sam-dump SRR5799988 | samtools view -bS - > GSM2692389.bam
Run Code Online (Sandbox Code Playgroud)
我冒昧地将您的 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