搜索
您的当前位置:首页正文

240124学习记录:查看/提取bam文件的reads

来源:吉趣旅游网

BAM 文件(Binary Alignment/Map file)是一种常用于存储测序数据的二进制格式。它主要用于存储 DNA测序 数据的比对(alignment)信息。以下是 BAM 文件的主要结构和组成部分:

BAM 文件采用二进制格式,因此它通常相对较小,同时能够存储大量的测序数据。由于 BAM 文件是二进制的,要查看其中的内容通常需要使用专门的工具,比如 samtools

在使用 BAM 文件时,常用的工具包括 samtoolsPicard 等,它们提供了各种功能,如文件格式转换、信息查询、统计分析等。

查看bam文件上的总reads可以用idxstats命令,要求 BAM 文件有一个索引文件(.bai):

samtools idxstats your_file.bam

输出将是一个包含每个参考序列的名称、长度、mapped reads 数目和unmapped reads 数目的表格。

如果只关心总 reads 数量,你可以使用 awk 命令从输出中提取相应的信息:

# only mapped
samtools idxstats your_file.bam | awk '{s+=$3} END {print s}'

# mapped + unmapped
samtools idxstats your_file.bam | awk '{s+=$3+$4} END {print s}'

{s+=$3+$4}: 对于每一行,将第三列(mapped reads)和第四列(unmapped reads)的值相加,然后将结果累加到变量 s 中。

若想查看特定染色体区段的reads数量,如chrM:

samtools view -c -F 256 your_file.bam chrM

使用 -F 256 选项排除非主对齐的 reads(如辅助比对),然后通过指定 chrM 来统计线粒体 reads 的数量。但是我觉得也可以不用设置-F这一参数。

提取特定区段:

# 替换文件名
bam_file="your_file.bam"

# 使用 samtools view 和 grep 提取线粒体 reads 信息
samtools view -h "$bam_file" | grep -E "^@|^\S+\s[0-9]+\schrM\s" > "chrM_reads.sam"

# 使用 samtools view 和 grep 提取线粒体 reads 信息,并保存为 BAM 文件
samtools view -h "$bam_file" | grep -E "^@|^\S+\s[0-9]+\schrM\s" | samtools view -bS - > "chrM_reads.bam"

因篇幅问题不能全部显示,请点此查看更多更全内容

Top