我有一些文件(采用 .bam 格式(二进制))要从某个位置下载。我可以使用 wget 下载它们,然后只想从中提取一些特定信息。为此,我使用 samtools。我想知道的是,有没有一种方法可以即时从 bam 文件中提取我想要的内容,这样我就不必下载整个 bam 文件,然后提取我需要的内容,然后删除原始的内容bam 文件。
使用的命令是
wget link.bam
samtools view -h chr1 link.bam | samtools view -bS > condensed.bam
可以在不将整个原始 bam 文件下载到我的硬盘上的情况下完成此操作吗?我想这样做是因为我的空间不足并且这些文件很大。
希望收到你们的来信。
谢谢
答案1
标准方法是wget -O- _url_ | samtools view -h chr1 - | samtools view -bS >condensed.bam
。如果您不确定,那是 O 代表输出,而不是零。
如果您知道有多少字节与下一个管道相关,则可以获得另一个优化步骤。假设samtools
只需要前 1352 个字节。您可以使用curl
(根据这个问题/答案,wget
有一个错误。)
curl -r 0-1352 | ...