使用ALLMAPS进行辅助组装得到准染色体水平基因组

简介:

使用ALLMAPS进行辅助组装

简介

在从头组装过程中,确定基因组的scaffolds/contig的顺序和朝向是重建染色体非常关键的一步。这一步可以由多种辅助组装策略完成:例如遗传图谱, Hi-C, BioNano光学图谱,10X Chicago 。

一个物种可能会有多个遗传图谱,可以是不同项目中的不同定位群体结果,可以是不同软件如R/QTL, MSTMAP和JOINMAP的分析结果。遗传图谱会因重组率,偏分离(segregation distortion) , PAV(presence-absence variation)和染色体比对多态位点不同而发生变化。每一种图谱都能够提供不同的证据,举个例子,一个scaffold可能在一个图谱中无法被锚定,但是在另一个图谱中可以进行锚定,将这些图谱进行整合就能提最后染色体组装的精确度。

如果只用一个图谱,对scaffold进行排序只是计算量大一点而已,你需要根据图谱中分子标记在每个scaffold的平均距离进行排序就行。ALLMAPS, 正如名字说的那样,就是能够使用所有的图谱证据的工具,它能够计算scaffold的朝向,使其和已有的图谱的共线性关系最大化。他有如下亮点:

  • 可重复性:清晰的可计算目标使得让多种输入图谱的共线性关系能够最大化
  • 灵活性:允许为输入的图谱设置权重,更好的处理冲突
  • 强大性:能使用多种遗传图谱,只需要做最小的转换
  • 易用性:让基因组构建(FASTA和AGP输出)和基因组升级(CHAIN输出)流程化

通常,解决scaffold顺序和朝向(OO)是一种NP问题。因为基因组组装和遗传图谱中都可能存在一些错误,我们的目标只能是找到一个近似解。ALLMAPS将该问题转换成旅行商问题,然后用遗传算法优化scaffold OO. 使用遗传算法优化是为了避免在局部最优上出现瓶颈。遗传图谱最常见的错误是倒置和异位(inversion and translocation)

安装可以用CONDA。

conda install jcvi

实际演示

先现在一个测试数据集,用于练习了解软件的总体流程。比较尴尬的是,这个数据集放在了Dropbox上,我们都知道这是一个国内不存在的网站,所以我把他转存到了我的腾讯微云上,链接:https://share.weiyun.com/5nwjljN .

第一步:准备输入文件。 首先你得要提供物理图谱和遗传图谱的对应关系,格式为

Scaffold ID, scaffold position, LG, genetic position

你可以在excel表格中进行操作,然后另存为csv为文件,如下所示。你可以发现有一些scaffold里就只有一个遗传标记进行对应,你可以思考下该scaffold最后会如何处理

EXCEL编辑

当然,我们解压缩后的zip文件里就有这些内容,你可以用一些命令工具(less, head, tail)看下数据是如何存放的。

第二步: 将两个图谱进行合并,最后会得到一个权重文件(weights.txt)和输入的bed文件

python -m jcvi.assembly.allmaps merge JMMale.csv JMFemale.csv -o JM-2-test.bed

第三步:对权重文件"weights.txt" 进行调整。weights.txt默认每个输入的图谱的权重都是1。 作者有一个建议就是,你通过检查最后的报告和诊断图,有监督地来重新对每个遗传图谱进行权重赋值。

$ cat weights.txt 
JMFemale 1
JMMale 1

第四步: 对scaffold进行排序,搭建成准染色体水平

python -m jcvi.assembly.allmaps path -w weights.txt JM-2-test.bed scaffolds.fasta

结果解读

上面第四步会在当前文件夹下生成许多结果文件,

JM-2-test.agp
JM-2-test.bed
JM-2-test.chain
JM-2-test.chr.agp
JM-2-test.chr.fasta
JM-2-test.fasta
JM-2-test.fasta.sizes
JM-2-test.lifted.bed
JM-2-test.summary.txt
JM-2-test.tour
JM-2-test.unplaced.agp
JM-2-test.unplaced.fasta

可以分为如下几类

首先是组装后的基因组序列

  • "JM-2-test.fasta"
  • "JM-2-test.agp": 每个scaffold的顺序和朝向,用于上传Genbank
  • "JM-2-test.chain": 用于新旧坐标间的转换,比如说你在之前坐标注释得到GFF文件就可以用lifOver转换到新坐标系下

然后可视化报告。每个染色体都会得到一个对应的pdf文件,可视化展示如下:左图主要关注交叉的线,表示某些marker存在矛盾。右图关注是否有上升/下降趋势,图中的斜率反应的是物理距离(x轴)相对遗传距离(y轴)的变化,可以认为是重组率。低重组率不容易确定在同一个重组区间内的scaffold的位置和朝向

白色部分为可信区间,灰色部分是存疑区间。

可视化展示

除了默认的输出外,你还可以通过movie得到软件运行过程每次迭代后组装情况,不过要额外安装ffmpeg和parallel

python -m jcvi.assembly.allmaps movie -w weights.txt JM-2-test.bed scaffolds.fasta chr23

最后是总结性报告。尽管可视化会给你比较直观的结果,但是具体的参数还是要看JM-2-test.summary.txt. 例如遗传标记的密度,以及有多少序列被锚定到基因组上。

当然ALLMAPS还有一些比较高级的操作:

  • 拆分嵌合contig:嵌合contig指的是一段区域能够比对到多个连锁群中或者染色体中,一个常见的来源就是不同染色体中的重复区域由于过于相似在组装的时候坍缩成了一个。ALLMAPS也提供split进行拆分。
  • 估计gap长度: 默认会用100个N在填充两个scaffold连接的区域,方便Genbank识别其为未知区域。你可以根据遗传距离在不同物理位置上的对应关系,预测不同gap的近似大小然后进行填充,子命令是estimategaps
  • 在ALLMAPS中使用多种遗传图谱.

光学图谱在着丝粒区间表型不好,主要是里面的串联重复过多,使得限制性内切酶数目减少,遗传图谱中在这个区域依旧有比较多的标记

局限性:

  • 标记数目和密度。过多计算量大,太小准确性低
  • 基因组组装和建图软件的潜在错误。基因组组装的原始质量对ALLMAPS的影响非常大,尤其是高度片段化的结果可能会导致错误结果。
  • 基因组结构特征也会有影响,例如染色体倒置、异位和片段重复。

参考资料:

目录
相关文章
|
4月前
|
监控 数据可视化 测试技术
API性能监控:关键指标与实用工具
监控API接口性能对保障其稳定性和效率至关重要。常用方法包括:关注响应时间、吞吐量、正常运行时间、错误率及资源使用率等关键指标;通过日志分析、性能监控工具(如New Relic、Datadog APM)、实时警报和用户行为分析优化性能;借助压力测试评估负载能力。推荐工具如Assertible、SmartBear、Moesif等,可简化监控流程并提供详细报告。综合运用这些方法与工具,能有效确保API的高效稳定运行。
652 1
|
8月前
|
人工智能 搜索推荐 数据可视化
超越工具:DeepSeek 如何重塑你的工作方式
在这个信息爆炸的时代,DeepSeek 作为新一代人工智能助手,不仅提升具体任务执行效率,更通过智能化重构工作流程、优化决策机制和推动认知升级,实现个人生产力的革命性进步。它在项目管理、文档处理、数据分析等方面展现出卓越能力,自动处理重复任务,定制个性化解决方案,优化团队协作,重新定义工作效率与质量。拥抱 DeepSeek,开启全新的工作方式。
|
8月前
|
人工智能 移动开发 机器人
智能体 | 快速构建专属英语口语陪练助手,这下雅思再也不用愁了
智能体是以云为基础、AI为核心的智能系统,不同于通义千问等AI工具,用户可自建专注于特定领域的智能体,如英语口语陪练助手。通过阿里云百炼平台,开通服务、创建智能体、选择模型、设计Prompt并测试优化,最终发布到多渠道。用户能随时随地进行英语口语练习,提升语言能力。
|
9月前
|
人工智能 自然语言处理 监控
从数据洞察到动态优化:SaaS+AI引领智能化服务新时代
SaaS(软件即服务)结合AI(人工智能),正引领企业解决方案向智能化转型。SaaS+AI大幅提升了工作效率与决策质量。它能自动完成重复任务、简化设置流程、主动识别并解决潜在问题,还能根据用户需求提供个性化推荐和动态优化配置。
747 1
从数据洞察到动态优化:SaaS+AI引领智能化服务新时代
|
机器学习/深度学习 算法 数据库
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
在我们选择阿里云服务器的架构时,选择合适的云服务器架构对于提升业务效率、保障业务稳定至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供参考和选择。
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的旅游景区管理系统
该项目是为大学生课程设计开发的旅游景区管理系统,采用Python+Vue技术栈,实现前后端分离。主要功能涵盖景区、类型、用户管理等,并支持统计分析、消息发布、订单处理及个性化推荐。开发环境基于Python 3.8 + Django 3.2、Vue + JavaScript及MySQL 5.7。通过该项目,学生可深入学习相关技术,增强实践能力,为职业发展奠定基础。[在线演示](https://travel2.gitapp.cn) | [源码](https://github.com/net936/python_travel2) | 管理员默认账号: admin123 / admin123.
385 3
|
机器学习/深度学习 运维 监控
入侵检测系统(IDS)及其类型
【8月更文挑战第20天】
1950 0
入侵检测系统(IDS)及其类型
|
Linux Perl
Linux命令sdiff详解:并排比较与差异显示
`sdiff`是Linux下的命令行工具,用于并排比较两个文件的差异。它直观地显示不同之处,用`>`和`<`标记差异。主要特点包括并排显示、灵活性和交互性。参数如`-s`仅显示差异行,`-i`忽略大小写,`-o FILE`将结果输出到文件。示例:`sdiff file1.txt file2.txt`。最佳实践包括根据需要调整输出宽度,结合其他命令使用,和利用交互功能。注意用于文本文件比较,大文件可能消耗资源。
|
数据可视化
R语言用igraph绘制网络图可视化
R语言用igraph绘制网络图可视化
|
机器学习/深度学习 人工智能 架构师
【架构师】AI时代架构师必备技能
【架构师】AI时代架构师必备技能