Mumemto给的构建线性泛基因组的方法

完整工作流程

步骤1:找到所有基因组共有的序列(核心序列)

1
2
# 找所有30个基因组都有的唯一匹配序列
mumemto mum -o core_sequences -l 100 rice_genome_*.fa

参数说明:

  • 默认:匹配必须在所有序列中出现,且每个序列中只出现一次
  • -l 100:设置最小匹配长度为100bp

步骤2:找到每个基因组特有的序列

1
2
# 找每个基因组独有的序列(只在1个基因组中存在)
mumemto mum -k 1 -f 1 -o unique_sequences -l 100 rice_genome_*.fa

参数说明:

  • -k 1:匹配只需要在1个序列中出现
  • -f 1:每个序列中最多出现1次
  • -l 100:保持相同的最小长度标准

步骤3:合并序列构建代表基因组

方法A:直接拼接(简单方法)

1
2
3
4
5
6
7
8
# 提取核心序列
# (需要根据mumemto输出格式编写脚本提取实际序列)

# 提取特有序列
# (需要根据mumemto输出格式编写脚本提取实际序列)

# 合并序列
cat core_sequences.fa unique_sequences.fa > pangenome_representative.fa

方法B:更精细的合并策略

1
2
3
4
5
6
7
8
# 创建一个更完整的分析流程

# 1. 生成详细的匹配报告
mumemto mum -M -o core_detailed -l 100 rice_genome_*.fa
mumemto mum -M -k 1 -f 1 -o unique_detailed -l 100 rice_genome_*.fa

# 2. 保存中间数组以便后续分析
mumemto mum -A -K -o rice_analysis -l 100 rice_genome_*.fa

优化的完整命令序列

第一步:准备和核心序列分析

1
2
3
4
5
6
7
8
9
10
# 创建输出目录
mkdir -p rice_pangenome_analysis/{core,unique,merged}

# 找核心序列(所有基因组共有)
mumemto mum \
-o rice_pangenome_analysis/core/core_seqs \
-l 200 \
-M \
-A \
rice_genome_*.fa

第二步:特有序列分析

1
2
3
4
5
6
7
8
# 找每个基因组特有序列
mumemto mum \
-k 1 \
-f 1 \
-o rice_pangenome_analysis/unique/unique_seqs \
-l 200 \
-M \
rice_genome_*.fa

第三步:可选的中间分析

1
2
3
4
5
6
7
# 可选:找在少数基因组中共享的序列(2-5个基因组)
mumemto mum \
-k 2 \
-F 5 \
-o rice_pangenome_analysis/accessory/accessory_seqs \
-l 200 \
rice_genome_*.fa

后续处理建议

1. 序列提取和质量控制

1
2
3
4
5
# 建议编写脚本来:
# - 解析mumemto输出格式
# - 提取实际的DNA序列
# - 去除重复和重叠
# - 按基因组来源标注序列

2. 构建最终代表序列的策略

方案A:简单拼接

  • 核心序列 + 所有特有序列

方案B:分层组织

  • 主体:核心序列
  • 附录:按基因组分组的特有序列

方案C:基于参考基因组的插入

  • 选择一个参考基因组作为骨架
  • 在适当位置插入其他基因组的特有序列

3. 参数调整建议

针对水稻基因组的特点:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 对于较大的基因组,可能需要调整参数
mumemto mum \
-o core_sequences \
-l 500 \ # 更长的匹配长度
-w 20 \ # 增加窗口大小
-m 200 \ # 调整哈希参数
rice_genome_*.fa

mumemto mum \
-k 1 -f 1 \
-o unique_sequences \
-l 300 \ # 特有序列可以稍短
rice_genome_*.fa

验证和质量检查

1
2
3
4
# 验证结果的一致性
# 1. 检查核心序列确实在所有基因组中存在
# 2. 检查特有序列确实只在对应基因组中存在
# 3. 统计各类序列的数量和长度分布

这样您就能获得一个包含所有30个水稻基因组信息的代表性序列集,既包含保守的核心成分,也包含每个基因组的独特贡献。


输出文件:

Mumemto软件的输出文件格式总结如下:

主要输出文件类型

1. *.mums 文件

  • 生成条件:当最大出现次数参数(-f)设置为1时生成(默认)

  • 格式:

    1
    [MUM长度] [各序列中偏移量的逗号分隔列表] [链方向指示符的逗号分隔列表(+/-)]
  • 特点:

    • 每行代表一个multi-MUM(多重最大唯一匹配)
    • 在每个序列中最多出现一次
    • 偏移量和链信息按*.lengths文件中的序列顺序排列
    • 如果某个序列中不存在该MUM,对应字段留空
    • 按匹配序列的字典序排序

2. *.lengths 文件

  • 功能:定义输出中序列的顺序,包含每个输入序列的长度信息

3. *.bumbl 文件(v1.2新增)

  • 性质*.mum文件的二进制版本
  • 优势:
    • 文件更小
    • 处理速度显著更快(对于大型数据集可快几个数量级)
    • 特别适用于包含数百万个multi-MUM的大数据集
  • 转换:可通过mumemto convert -b <prefix>.bumbl > out.mums转换为人类可读格式

4. *.mems 文件

  • 生成条件:当允许每个序列中出现多于一次匹配时(-f > 1)

  • 格式:

    1
    [MEM长度] [每次出现的偏移量逗号分隔列表] [序列ID逗号分隔列表] [链方向指示符逗号分隔列表(+/-)]
  • 特点:

    • 偏移量顺序不固定
    • 增加了序列ID字段来标识每个偏移量的来源序列
    • 同样按字典序排序

重要说明

  • 所有输出文件中的序列顺序都遵循*.lengths文件中定义的顺序
  • 使用convert模块转换时,multi-MUM会按第一个序列中的位置排序,这对共线性分析很有用

Mumemto给的构建线性泛基因组的方法
https://lixiang117423.github.io/article/mumemto/
作者
李详【Xiang LI】
发布于
2025年6月24日
许可协议