序列比对的几种情况记录

本文介绍了在生物信息学中,如何通过SAM文件中的标签判断reads的唯一性(Uniquereads)、错配情况以及duplication的识别。讨论了保留或过滤这些类型reads的决策依据,如测序深度、产品质量和计算方法。

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

序列比对

比对情况

Unique reads : 仅有一个最优比对位置的reads,因此有多个最优比对位置的reads就不是unique reads

  • 如何判断一条reads是否是unique reads?

1.sam文件中XT:A:{} 标签,其中U表示仅有一个最优比对,R表示有多个最优比对
仅有一个最优比对
有多个最优比对

2.sam文件中X0:1:n 标签,其中n表示共有多少个最优比对
[图片]


错配: bwa中可以指定-n 参数指定最大允许的错配数量

  • 如何查看序列的错配信息:sam文件的MD:Z:标签

duplication : 由于pcr偏好性导致pcr扩增中出现多条重复reads,测序结果表明多条reads比对到同一个位置

  • 根据泊松定理可以简单的知道,在实际情况下比对到同一位置的reads数量应该非常少,所以duplication主要由于实验误差产生

reads保留

是否应该保留duplication reads?

  • Duplication reads 通常表示对于同一段序列的多次拷贝,往往是由于实验误差导致的,对于揭示生物信息没有意义,一般保留过滤唯一值即可。
  • Duplication reads过多表示测序质量不高,二代测序的产品质量要求重复率< 10%

重复率计算公式:(1-Duplication reads)/raw reads

在这里插入图片描述

是否应该保留有错配/非Unique reads?

  • 需要根据测序深度,计算方法,产品要求而定,不能一概而论。
  • 目前基本的测试结果和文献证据表明测序数据量不足,结果假阳率明显增且高灵敏度下降。保留部分错配/非Unique reads收益大于不保留。
### NCBI BLAST+ 的应用与操作 NCBI(美国国立生物技术信息中心)开发的 BLAST 工具是生物信息学领域中一种重要的序列比对工具,能够帮助研究者快速找到目标基因或蛋白质序列与其他已知序列之间的相似性[^1]。通过这种比对过程,可以推断未知序列的功能以及其可能所属的物种。 当拥有一组测序得到的序列数据时,可以通过使用 NCBI 提供的在线 BLAST 功能来识别这些序列所归属的具体物种。由于 NCBI 数据库覆盖范围广泛且更新及时,因此能迅速返回匹配的结果[^2]。如果事先了解待查询序列的大致来源物种,则可以在 BLAST 参数设置中的 Organism 选项框指定该物种名称,从而进一步缩小搜索空间并提高效率[^3]。 具体来说,在执行基于 BLAST 的序列比对过程中,主要遵循以下几个方面: #### 输入准备 用户需准备好要分析的目标核酸或氨基酸序列文件。通常情况下,这类文件采用 FASTA 格式存储,便于导入到各种生信软件里处理。 #### 执行流程概述 利用命令行版 NCBI BLAST+ 或访问 web 版本完成如下步骤: - **选择模式**: 对应不同类型的分子结构有专门设计好的算法模型可供挑选比如 blastn (针对核苷酸), blastp(面向蛋白). - **设定参数**: 如 E-value 阈值调整、字长大小定义等影响最终输出质量的关键数值. - **提交作业**: 将准备完毕的数据上传至服务器端等待计算结束. 以下是 Python 脚本调用本地安装 BLAST 命令的一个简单例子: ```python from Bio.Blast import NCBIXML import subprocess def run_blast(query_file, db_name="nt", evalue=0.01): output_xml = 'output.xml' command = f'blastn -query {query_file} -db {db_name} -evalue {evalue} -outfmt 5 -out {output_xml}' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) out, err = process.communicate() result_handle = open(output_xml) blast_records = NCBIXML.parse(result_handle) for record in blast_records: for alignment in record.alignments: for hsp in alignment.hsps: print(f"Sequence: {alignment.title}") print(f"Length: {alignment.length}") print(f"E value: {hsp.expect}") run_blast('example.fasta') ``` 此脚本展示了如何运行 `blastn` 并解析 XML 输出结果的一部分内容。 --- ### 结论 综上所述,BLAST 是一款非常实用的基础局部排列搜寻工具,它不仅限于发现两段或多段 DNA/RNA/Protein 序列间的同源关系,还能辅助判断新获得样本最接近哪些已记录分类群成员[^4]。对于希望借助计算机手段加速科学研究进程的研究人员而言,掌握好这一利器至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值