An effective algorithm for peptide de novo sequencing from MS/MS spectra

1. 研究背景

  • 数据库搜索方法 需要已知的蛋白数据库,但对于未知蛋白质,无法适用。
  • de novo 测序方法 直接从 MS/MS 数据推断氨基酸序列,非常重要。

2. 现有方法的问题

  • 暴力搜索方法:枚举所有可能的肽序列并与 MS/MS 数据比对,计算量过大,不适用于长肽。
  • 谱图图(spectrum graph)方法:将质谱数据转换成图,并寻找最长路径来推断序列,存在问题:
    • 缺失片段(某些离子信号丢失,导致路径断裂)。
    • 噪声干扰(背景噪声峰影响正确路径的识别)。
    • 同质峰重叠(同一峰可能对应多个离子类型)。

3. 解决方案

  • 定义 DP(x, y) 为构造出 b-ions 质量为 xy-ions 质量为 y 的最优前缀-后缀组合的最大得分。
  • 递推公式
    • 计算前缀 A 和后缀 A' 的得分
    • 通过 chummy pair 机制(前缀和后缀质量的合理匹配)优化搜索空间
    • 逐步构建最优的氨基酸序列
  • 考虑所有可能的离子(b-, y-, a-, x-, c-, z-),提高匹配率。
  • 使用“chummy pair”策略,减少冗余计算,加快搜索速度。
  • 采用动态规划,逐步构建最优序列,而非暴力搜索所有可能的肽。

提问1: 为什么使用“chummy pair”策略

de novo 测序 过程中,需要构造一个 肽序列,使得其碎片离子(b-离子和 y-离子)尽可能多地匹配质谱中的峰。

直接暴力搜索所有前缀/后缀组合,会导致指数级复杂度,无法高效求解。

传统的 谱图图(spectrum graph) 方法,虽然减少了一些搜索,但仍然需要考虑大量可能的路径,计算成本高。

Chummy Pair 通过定义 前缀 A 和后缀 A' 之间的合理关系确保我们只考虑可能产生最优解的部分匹配,避免冗余计算。

提问2: 如何寻找 “chummy pair”

核心思想:使用动态规划,逐步扩展最优的 Chummy Pair

(1) 初始化

  • DP(x, y) 表示:
    • 质量 x 的前缀 A
    • 质量 y 的后缀 A'
    • 形成的 chummy pair (A, A') 的最大得分。
  • 初始条件DP(0, 0) = 0(空序列)。

(2) 递推公式

  1. 扩展前缀 A(加入一个氨基酸 a)

    • 如果 (A, A') 是 chummy pair,且 ‖A‖b < ‖A'‖y,则可以尝试扩展 A: DP(x+‖a‖,y)=DP(x,y)+f(x+‖a‖,x,y)DP(x + ‖a‖, y) = DP(x, y) + f(x + ‖a‖, x, y)DP(x+‖a‖,y)=DP(x,y)+f(x+‖a‖,x,y)
    • 这里 f(u, v, w) 是新增一个离子后,增加的匹配得分。
  2. 扩展后缀 A'(加入一个氨基酸 a')

    • 如果 (A, A') 是 chummy pair,且 ‖A'‖y \geq ‖A‖b,则可以尝试扩展 A': DP(x,y+‖a′‖)=DP(x,y)+f(M−(y+‖a′‖),M−y,M−x)DP(x, y + ‖a'‖) = DP(x, y) + f(M - (y + ‖a'‖), M - y, M - x)DP(x,y+‖a′‖)=DP(x,y)+f(M−(y+‖a′‖),M−y,M−x)

(3) 终止条件

  • 遍历所有可能的 DP(x, y),找到 |x + y - M| \leq ε 的最大得分 DP(x, y)
  • 逆向回溯,重构最优肽序列 P

总结

方法计算方式复杂度主要问题Chummy Pair 如何优化?
暴力搜索枚举所有序列指数级 O(20^n)计算量太大避免暴力搜索
谱图方法通过最长路径求解O(n^2)峰匹配不稳定减少错误的峰匹配
本算法动态规划 + Chummy PairO(n)-高效搜索最优序列

提问3: Case 1 和 Case 2 中A<和A>是什么,怎么理解它们的作用

Definition 1 里面,A⟨A⟩ 是对前缀 A 和后缀 A' 进行一步缩短后的结果。它们的作用是确保 前缀 A 和后缀 A' 的增长是单调的,从而优化动态规划的搜索空间。

  • A⟨ 就是 减少前缀 A 的最后一个氨基酸,相当于 倒退一步
  • A'⟩ 就是 减少后缀 A' 的第一个氨基酸,相当于 往后推一步

动态规划求解 de novo 测序 时,我们希望:

  1. 以正确的方式扩展前缀 A 和后缀 A',确保计算路径是最优的。
  2. 保证增长的单调性,即:
    • A 增长时,A' 不能随意缩短。
    • A' 增长时,A 不能随意缩短。
  3. 减少冗余计算,避免探索无效的 A, A' 组合。

 A⟨A⟩ 在 Case 1 和 Case 2 中的作用

  • 如果 A⟨ 仍然满足 chummy pair 条件,说明 A 的最后一个氨基酸并不是必须的,我们可以 减少 A 的大小
  • 如果 A'⟩ 仍然满足 chummy pair 条件,说明 A' 的第一个氨基酸并不是必须的,我们可以 减少 A' 的大小

这样做的 核心目的是

  • 确保 AA' 是合理的前后缀组合
  • 避免无意义的扩展,减少计算量
  • 通过缩短 A/A',我们可以找到更紧凑的 A, A' 组合,避免 A /A'过长导致搜索空间过大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法专题一:双指针

1.移动零 题目链接&#xff1a;283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 我们可以定义一个dest&#xff0c;一个cur&#xff0c;dest表示数组中不为零的数的最后一位&#xff0c;cur用来遍历数组 class Solution {public void moveZeroes(int[] nums) {for(int cur…

【大模型实战】利用ms-swift微调框架对QwQ-32B推理模型进行微调

1. 背景介绍 之前我们在《大模型训练/微调的一些经验分享》、《利用DeepSeek-R1数据微调蒸馏ChatGLM32B让大模型具备思考能力》中做了相关模型微调的介绍。目前在基座大模型能力还没有达到足够牛的情况下&#xff0c;大模型微调在商业化、垂直领域应用依然是不可或缺&#xff0…

【Unity3D】Addressables使用流程

Package Manager - 搜索 Addressables 安装 Window -> Asset Management -> Addressables 打开窗口 New -> 新建Packed Assets 资源组 默认资源组Default xxx (Default) 将资源&#xff0c;如预制体直接拖拽进资源组 Build -> New Build -> Default Buil…

k8s serviceaccount在集群内指定apiserver时验证错误的问题

在主机上&#xff0c;找到TOKEN&#xff0c;可以直接指定apiserver使用 rootubuntu-server:/home# kubectl auth can-i --list --server https://192.168.85.198:6443 --token"eyJhbGciOiJSUzI1NiIsImtpZCI6IlFlMHQ3TzhpcGw1SnRqbkYtOC1NUWlWNUpWdGo5SGRXeTBvZU9ib25iZD…

Linux驱动开发-①pinctrl 和 gpio 子系统②并发和竞争③内核定时器

Linux驱动开发-①pinctrl 和 gpio 子系统②并发和竞争③内核定时器 一&#xff0c;pinctrl 和 gpio 子系统1.pinctrl子系统2.GPIO子系统 二&#xff0c;并发和竞争1.原子操作2.自旋锁3.信号量4.互斥体 三&#xff0c;按键实验四&#xff0c;内核定时器1.关于定时器的有关概念1.…

数据库的高阶知识

目录 一、case when二、几种常见的嵌套查询2.1 比较运算符2.2 ANY/ALL 关键词2.3 in 关键词2.4 EXISTS关键词2.5 in和exists的异同点 三、开窗函数 数据库的基本知识 数据库的高阶知识 一、case when 在实际工作中&#xff0c;经常会涉及以下两类问题&#xff1a; 数据的映射…

【Kubernetes】Service 的类型有哪些?ClusterIP、NodePort 和 LoadBalancer 的区别?

在 Kubernetes 中&#xff0c;Service 是一种抽象的方式&#xff0c;用于将一组 Pod 进行连接并暴露给外部或集群内部访问。它的主要目的是通过提供稳定的 IP 地址和端口来允许其他服务或客户端与一组 Pod 进行通信。 Service 类型 Kubernetes 中 Service 有四种主要类型&…

MapReduce处理数据流程

&#xff08;一&#xff09;Shuffle MapReduce中的Shuffle过程指的是在Map方法执行后、Reduce方法执行前对数据进行分区排序的阶段 &#xff08;二&#xff09;处理流程 1. 首先MapReduce会将处理的数据集划分成多个split&#xff0c;split划分是逻辑上进行划分&#xff0c;…

OrioleDB: 新一代PostgreSQL存储引擎

PostgreSQL 12 引入了可插拔式的表存储方法接口&#xff0c;允许为不同的表选择不同的存储机制&#xff0c;例如用于 OLTP 操作的堆表&#xff08;HEAP、默认&#xff09;、用于 OLAP 操作的列式表&#xff08;Citus&#xff09;&#xff0c;以及用于超快速搜索处理的内存表。 …

电脑自动关机故障维修案例分享

电脑基本配置&#xff1a; C P U: AMD A10 9700 内存&#xff1a;8G 硬盘&#xff1a;金邦512G固态硬盘 主板&#xff1a;华硕 A320M-F 显卡&#xff1a;集成&#xff08;核心显卡&#xff09; 操作系统&#xff1a;Win10专业版 故障描述&#xff1a; 使用一段时间会黑屏…

JVM垃圾收集器相关面试题(1)

垃圾收集与内存管理摘要 一.核心垃圾收集算法对比 算法原理优点缺点适用场景标记-清除两次遍历&#xff08;标记存活对象→清除未标记对象&#xff09;实现简单内存碎片化、双遍历效率低老年代&#xff08;结合整理&#xff09;标记-复制内存对半分&#xff0c;存活对象复制到…

栈(LIFO)算法题

1.删除字符串中所有相邻的重复字符 注意&#xff0c;我们需要重复处理&#xff0c;而不是处理一次相邻的相同元素就结束了。对示例来说&#xff0c;如果只进行一次处理&#xff0c;结果为aaca&#xff0c;但是处理之后又出现了相邻的重复元素&#xff0c;我们还得继续处理&…

conda的基本使用及pycharm里设置conda环境

创建conda环境 conda create --name your_env_name python3.8 把your_env_name换成实际的conda环境名称&#xff0c;python后边的根据自己的需要&#xff0c;选择python的版本。 激活conda环境 conda activate your_env_name 安装相关的包、库 conda install package_name …

Python基于深度学习的多模态人脸情绪识别研究与实现

一、系统架构设计 A[数据采集] --> B[预处理模块] B --> C[特征提取] C --> D[多模态融合] D --> E[情绪分类] E --> F[系统部署] F --> G[用户界面] 二、数据准备与处理 1. 数据收集 - 视频数据&#xff1a;FER2013&#xff08;静态图像&#xff0…

synchronized与 Java内置锁(未写完)

文章目录 一、 synchronized 关键字二、Java对象结构1. 对象头2. 对象体3. 对齐字节4. 对象头中的字段长度5. Mark Word 的结构信息6. 使用 JOL 工具查看对象的布局 三、Java 内置锁机制3.1 内置锁的演进过程1. 无锁状态2. 偏向锁状态3. 轻量级锁状态4. 重量级锁状态 一、 sync…

LLM(3): Transformer 架构

Transformer 架构是当前大语言模型的主力架构和基础技术&#xff0c;本文以通俗易懂的方式&#xff0c;对此作简要介绍。 1.4 介绍 Transformer 架构 大多数现代的大规模语言模型&#xff08;LLMs&#xff09;依赖于 Transformer 架构&#xff0c;这是一种在 2017 年的论文《…

11.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Ocelot 网关--整合日志

网关作为微服务架构的入口&#xff0c;承载着各服务间的请求转发与安全校验&#xff0c;其日志信息尤为关键。通过整合网关日志&#xff0c;可以将分散在不同系统中的访问记录、错误提示和异常信息集中管理&#xff0c;为问题排查提供全景视角。在排查故障时&#xff0c;统一日…

88.HarmonyOS NEXT 性能监控与调试指南:构建高性能应用

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 性能监控与调试指南&#xff1a;构建高性能应用 文章目录 HarmonyOS NEXT 性能监控与调试指南&#xff1a;构建高性能应用1. 性能监…

012---状态机的基本知识

1. 摘要 文章为学习记录。主要介绍状态机概述、状态转移图、状态编码、状态机写法、状态机代码示例。 2. 状态机概述 状态机 &#xff08;Finite State Machine&#xff09;&#xff0c;也称为同步有限状态机&#xff0c;用于描述有先后顺序或时序规律的事情。 “同步”&…

deepseek+kimi做ppt教程记录

1.首先注册deepseek和kimi deepseek官网&#xff1a;https://chat.deepseek.com/ kimi官网&#xff1a;https://kimi.moonshot.cn/ 以下以一篇工作总结报告为例 2.使用deepseek生成ppt大纲 让deepseek生成kimi生成ppt所需要的内容时&#xff0c;需要注意提示词内容&#xff0c;…