samtools各种flag的含义

文章详细介绍了在ATACseq分析中,samtoolsflag用于表示序列比对信息的二进制编码方式,包括PE双端测序、序列匹配状态、链信息、读段标识等,以及如何根据这些flag来判断序列特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做ATACseq时正好碰到了samtools的各种用法,整理备忘

1 : 代表这个序列采用的是PE双端测序

2: 代表这个序列和参考序列完全匹配,没有插入缺失

4: 代表这个序列没有mapping到参考序列上

8: 代表这个序列的另一端序列没有比对到参考序列上,比如这条序列是R1,它对应的R2端序列没有比对到参考序列上

16:代表这个序列比对到参考序列的负链上

32 :代表这个序列对应的另一端序列比对到参考序列的负链上

64 : 代表这个序列是R1端序列, read1;

128 : 代表这个序列是R2端序列,read2;

256: 代表这个序列不是主要的比对,一条序列可能比对到参考序列的多个位置,只有一个是首要的比对位置,其他都是次要的

512: 代表这个序列在QC时失败了,被过滤不掉了(# 这个标签不常用)

1024: 代表这个序列是PCR重复序列(#这个标签不常用)

2048: 代表这个序列是补充的比对(#这个标签具体什么意思,没搞清楚,但是不常用)

上面的这几个标签都是2的n次方,这样的数列有一个特点,就是随机挑选其中的几个,它们的和是唯一的,比如

65 只能是1 和 64 组成,代表这个序列是双端测序,而且是read1

所以在bam文件中的第二列,即flag列的值代表这条序列符合上述所有条件的值的和,所以根据这个flag我们可以确定这条序列究竟是read1 还是read2

##可以查看flag 代表的所有含义
samtools flags 99
0x63	99	PAIRED,PROPER_PAIR,MREVERSE,READ1

 

### 不同操作系统上的 Samtools 安装方法 #### Linux 系统下的安装过程 在 Linux 环境下,可以通过编译源码的方式完成 Samtools 的安装。以下是具体操作: 1. **下载并解压源码包** 首先访问官方 GitHub 仓库或其他可信资源站点获取最新的 Samtools 版本文件,并将其解压缩到目标目录中[^2]。 ```bash wget https://github.com/samtools/samtools/releases/download/1.19/samtools-1.19.tar.bz2 tar jxf samtools-1.19.tar.bz2 cd samtools-1.19/ ``` 2. **依赖库准备** 如果尚未安装必要的开发工具链以及 HTSlib 库,则需提前通过包管理器解决这些前置条件。例如,在基于 Debian 或 Ubuntu 的发行版上运行如下命令来安装所需组件: ```bash sudo apt-get update && sudo apt-get install -y build-essential zlib1g-dev libbz2-dev liblzma-dev git cmake ``` 3. **执行构建脚本** 进入解压后的 Samtools 文件夹后依次调用 `make` 命令完成程序的本地化组装工作。 ```bash make ``` 4. **验证路径设置有效性** 将生成可执行二进制放置于系统 PATH 中以便全局调用。可通过修改 `/etc/profile` 添加永久生效环境变量实现此目的[^5]。 ```bash echo 'export PATH=$PATH:/path/to/samtools/bin' >> ~/.bashrc source ~/.bashrc which samtools ``` 5. **测试功能正常性** 输入以下指令确认版本号无误即表明部署完毕。 ```bash samtools --version ``` #### macOS 下的安装流程 对于苹果 Mac OS 用户而言,推荐借助 Homebrew 工具简化整个流程: 1. 执行单条语句即可自动拉取最新稳定分支并妥善安置至默认位置。 ```bash brew install samtools ``` 2. 同样地,利用内置机制校验成果是否符合预期标准。 ```bash samtools view --help ``` #### Windows 平台解决方案 由于原生支持有限,建议采用 WSL(Windows Subsystem for Linux)或者 Cygwin 来模拟类 Unix Shell 层面交互体验从而间接达成同等效果;当然也可以直接选用预打包好的图形界面客户端替代品如 Tablet 软件作为备选方案之一[^3]。 ```python import subprocess def check_samtools_version(): try: result = subprocess.run(['samtools', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) if "Version:" in result.stdout: print(f'SAMtools installed successfully with version {result.stdout.splitlines()[0]}') else: raise Exception('Failed to detect SAMtools installation.') except FileNotFoundError as e: print(e) check_samtools_version() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值