当前位置: 首页 > news >正文

【生物信息学】k-mer的基本概念及应用

【生物信息学】k-mer的基本概念及应用

0.introduction

在 Evo 2 论文中,有一张图展示了基于不同物种基因组 K-mer 特征的 UMAP 嵌入结果,因此专门查阅了 K-mer 相关概念以深入了解其含义。

1. k-mer的定义

k-mer通常被定义为长度为k的连续核酸序列(或氨基酸序列)片段,以序列ATCGATCAC为例:

3-mers:

sequence: ATCGATCAC
3-mer #0: ATC
3-mer #1:  TCG
3-mer #2:   CGA
3-mer #3:    GAT
3-mer #4:     ATC
3-mer #5:      TCA
3-mer #6:       CAC

4-mers:

sequence: ATCGATCAC
4-mer #0: ATCG
4-mer #1:  TCGA
4-mer #2:   CGAT
4-mer #3:    GATC
4-mer #4:     ATCA
4-mer #5:      TCAC

由此可见长度为 L 的序列中,会有 L−k+1 个 k-mers。值得注意的是,在双链DNA中常将正反互补序列视为同一k-mer,以减少冗余,此时取该k-mer及其反向互补序列中字典序较小者作为规范k-mer,例如ATCGAT的规范 k-mer是ATC

2. k-mer的生物学意义

1-mer可以用于评估整体碱基组成(GC 含量);2-mer可捕捉简单双核苷酸偏好(如 CpG 岛);3-mer则与密码子使用偏好高度相关;k ≥ 4时特异性越来越强,常用于捕捉更长序列基序与重复,如转录因子结合位点(6–8-mer )、滑动重复( 2–6-mer)。

特别地,某些k-mer在所有已知基因组中缺失(称为nullomer),这些“缺失序列”可能具有生物学意义,被用于疾病检测、疫苗设计等领域。(病原体可能通过缺失特定的k-mer来逃避宿主免疫系统的识别。例如,病毒可能避免表达某些特定的抗原表位,以减少被宿主免疫系统识别的机会。)

大部分工具默认选择奇数k值,如果 k 为偶数,可能存在某个 k-mer 本身等于其反向互补(如回文序列“TCGCGA”),这会让方向判断和配对操作复杂化

。很多工具常使用31 ,是因为31是能用 64 位整数编码的最大奇数 k 值。现代计算机对 64 位运算支持良好,31-mers 在哺乳动物基因组乃至细菌数据库中既足够具有特异性,又有大量唯一 k-mers,因此成为启发式标准。

3. k-mer的生物学应用

在这里插入图片描述

K-mer计数和频率分析

低质量的区域可能会导致特定k-mer频率的异常。通过检查k-mer频率分布,可以发现这些区域,并通过去除这些区域或校正数据来提高测序质量。

K-mer与变异检测

在变异检测中,k-mer帮助识别基因组之间的差异,如单核苷酸多态性(SNP)和其他遗传变异。

K-mer与序列组装

使用较长的碱基的k-mer大小来聚类、排序和定位基因组组装片段,,可以有效地将重叠的序列拼接起来,并通过k-mer计数发挥错误校正作用。

特定K-mer的富集

自适应测序可以通过聚焦特定的k-mer模式来富集感兴趣的区域。类似地,基于生物信息学的k-mer筛选可以用于去除不相关的k-mer或富集感兴趣的序列,从而帮助专注于最相关的基因组区域进行进一步研究。

K-mer与基因组编辑

常见的k-mer如果作为引导序列使用,可能会导致更多的脱靶效应。而使用独特的k-mer可以减少脱靶效应,从而提高基因组编辑的精确度。

K-mer在比较基因组学和元基因组学中的应用

通过分析不同物种的k-mer分布,可以根据共享的k-mer模式对基因组进行分类(例如古菌和细菌物种展示单峰谱,而四足动物则呈现多峰谱),帮助物种的鉴定,并理解它们的进化关系。

4. Evo 2 原文的应用

原文中"To better separate the domains, k-mer composition vectors were multiplied by 2 for archaeal species and by 3 for eukaryotic species."原文中讲古细菌和真核细胞的向量k-mer放大n倍,并不是一种常见的做法,主要还是为了将他们分开更好的可视化展示有哪些物种,UMAP图本身没有什么特别的意义。

相关文章:

  • 限制 SSH 访问仅允许特定 IP 连接
  • 【Python-Day 18】玩转函数参数:*args 与 **kwargs 终极指南
  • 华为OD机试真题——考勤信息(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 树莓派4B 在系统环境安装snap7 西门子plc通讯包(佟掌柜专用)
  • 高电流测量新突破:借助铜进行温度补偿
  • 2025端午北海游玩攻略
  • ROS2基础知识
  • Linux系统:动静态库的制作与安装
  • 【向量数据库选型实战】FAISS vs Chroma vs Milvus vs Qdrant 全面对比
  • MPI实现大数据Ring Broadcast逻辑
  • 如何做好一份技术文档:从精准导航到持续迭代的实践指南
  • MySQL的基础操作
  • 【C/C++】如何在一个事件驱动的生产者-消费者模型中使用观察者进行通知与解耦
  • 无人机降落伞设计要点难点及原理!
  • 双臂机器人运动空间与干涉分析仿真技术报告
  • 仅录系统声音,不录外部噪音,详细图文教程
  • FacePoke创意交互实战:Cpolar技术赋能远程人像编辑的趣味实现
  • 鸿蒙OSUniApp 实现的一键清除输入框内容功能#三方框架 #Uniapp
  • PyTorch实现MLP信用评分模型全流程
  • 如何调试CATIA CAA程序导致的CATIA异常崩溃问题
  • 网站建设培训学费/凡科网站登录入口
  • 郑州 中原区/石家庄seo网络优化的公司
  • 在线做banner的网站/福州seo服务
  • 网页设计与制作图片显示不出来/seo顾问
  • 大安网站建设/网站推广seo优化
  • 建设银行车贷网站/专业seo推广