【4】RagTag-基于近缘/同物种的基因组同源组装

RagTag简介

RagTag可以进行错误组装校正、scaffold组装和修补、scaffold合并等,一共分四步:correct,scaffold,patch,merge。之后,可以用Liftoff进行基因注释。

 RagTag的conda安装

conda install -c bioconda ragtag

1. correct

校正是使用参考基因组来鉴定和校正contigs中的组装错误,该步骤不会将序列减少或增加,仅仅是将序列在错误组装的位置进行打断。

ragtag.py correct relatives-reference.fa scaffolds_FINAL.fasta -t 80

结果输出在文件夹./ragtag_output/中。

所有参数:

usage: ragtag.py correct <reference.fa> <query.fa>Homology-based misassembly correction: Correct sequences in 'query.fa' by comparing them to sequences in 'reference.fa'>positional arguments:<reference.fa>        reference fasta file (uncompressed or bgzipped)<query.fa>            query fasta file (uncompressed or bgzipped)optional arguments:-h, --help            show this help message and exitcorrection options:-f INT                minimum unique alignment length [1000]--remove-small        remove unique alignments shorter than -f-q INT                minimum mapq (NA for Nucmer alignments) [10]-d INT                maximum alignment merge distance [100000]-b INT                minimum break distance from contig ends [5000]-e <exclude.txt>      list of reference headers to ignore [null]-j <skip.txt>         list of query headers to leave uncorrected [null]--inter               only break misassemblies between reference sequences--intra               only break misassemblies within reference sequences--gff <features.gff>  don't break sequences within gff intervals [null]input/output options:-o PATH               output directory [./ragtag_output]-w                    overwrite intermediate files-u                    add suffix to unaltered sequence headersmapping options:-t INT                number of minimap2/unimap threads [1]--aligner PATH        whole genome aligner executable ('nucmer', 'unimap' or 'minimap2') [minimap2]--mm2-params STR      space delimited minimap2 whole genome alignment parameters (overrides '-t') ['-x asm5']--unimap-params STR   space delimited unimap parameters (overrides '-t') ['-x asm5']--nucmer-params STR   space delimted nucmer whole genome alignment parameters ['--maxmatch -l 100 -c 500']validation options:--read-aligner PATH   read aligner executable (only 'minimap2' is allowed) [minimap2]-R <reads.fasta>      validation reads (uncompressed or gzipped) [null]-F <reads.fofn>       same as '-R', but a list of files [null]-T STR                read type. 'sr', 'ont' and 'corr' accepted for Illumina, nanopore and error corrected long-reads,respectively [null]-v INT                coverage validation window size [10000]--max-cov INT         break sequences at regions at or above this coverage level [AUTO]--min-cov INT         break sequences at regions at or below this coverage level [AUTO]** The reference and query FASTA files are required **

2. scaffold

该步骤是将相邻的contigs序列用100个N连起来,序列的位置和方向需要根据与参考基因组的比对结果确定。

ragtag.py scaffold relatives-reference.fa ragtag_output/ragtag.correct.fasta -t 80 -C 

## -C会将没地方放的contig/scaffold连在一起放到chr0中(中间用100个N连接)

最后得到的重要的结果:

ragtag.scaffold.fasta 

ragtag.scaffold.agp

插播:

如果除了chr0还有一些碎的contig没放进去,可以用下面的python脚本处理:

#!/public/home/zhangchaofan/anaconda3/bin/python
# -*- coding: utf-8 -*-
##python 02.add_seq.py -s mapped.filter.list.fasta -g test.apg -o test.fa
"""
@File    :   add_seq.py
@Time    :   2021-12-14 22:07:37
@Version :   1.0
@License :   (C)Copyright 2020-2021
@Desc    :   None
@Usage   :   None
"""
import argparse
from multiprocessing import Pool
import os
import subprocess
import sysdef err_exit():sys.exit('[1;31;47m!!The program exited abnormally, please check the log file !![0m')def Argparse():group = argparse.ArgumentParser()group.add_argument("-i", '--inf', help="Please input total_seq_file!")group.add_argument('-s', '--seqs', help="Please input the to_add_seq")group.add_argument('-g', '--gff', help="please input the gff_file!")return group.parse_args()def main():inf_lines = open(inf).readlines()total_seq = inf_lines[1].strip()# 将要添加的序列读入内存id_seq = {}for line in open(seqs).readlines():if line[0] == '>':# 不保留 > id = line.strip()[1:]else:id_seq[id] = line.strip()sort_id = sorted(id_seq.items(), key=lambda item: len(item[1]), reverse=True)# end_pos = 134326222# 先加N 后加序列gff_lines = open(gff).readlines()end_temp = gff_lines[-1].strip().split()end_pos = int(end_temp[2])end_order = int(end_temp[3]) + 1for tuple_ in sort_id:total_seq += 'N' * 100temp_gff_line = 'Chr0_RagTag\t%d\t%d\t%d\tU\t100\tcontig\tno\tna\n' % (end_pos+1, end_pos+100, end_order)end_order += 1gff_lines.append(temp_gff_line)total_seq += tuple_[1]end_pos += 100temp_gff_line = 'Chr0_RagTag\t%d\t%d\t%d\tW\t%s\t1\t%d\t+\n' % (end_pos+1, end_pos+len(tuple_[1]), end_order, tuple_[0], len(tuple_[1]))gff_lines.append(temp_gff_line)end_order += 1end_pos += len(tuple_[1])gff_ouf_w = open(gff+'.change', 'w')gff_ouf_w.write(''.join(gff_lines))gff_ouf_w.close()seq_ouf = open(inf+'.change', 'w')seq_ouf.write(inf_lines[0]+total_seq+'\n')seq_ouf.close()if __name__ == '__main__':opts = Argparse()inf = opts.infseqs = opts.seqs gff = opts.gffmain()

chr0.list.fasta ##已合并chr0的fasta序列文件

contig.list.fasta ##剩下还有的contig的fasta序列文件

运行后contig.list.fasta中的序列会从大到小接在chr0后面,中间用100个N连接,最后生成新的fasta文件和agp文件。

所有参数:

usage: ragtag.py scaffold <reference.fa> <query.fa>Homology-based assembly scaffolding: Order and orient sequences in 'query.fa' by comparing them to sequences in 'reference.fa'positional arguments:<reference.fa>       reference fasta file (uncompressed or bgzipped)<query.fa>           query fasta file (uncompressed or bgzipped)optional arguments:-h, --help           show this help message and exitscaffolding options:-e <exclude.txt>     list of reference sequences to ignore [null]-j <skip.txt>        list of query sequences to leave unplaced [null]-J <hard-skip.txt>   list of query headers to leave unplaced and exclude from 'chr0' ('-C') [null]-f INT               minimum unique alignment length [1000]--remove-small       remove unique alignments shorter than '-f'-q INT               minimum mapq (NA for Nucmer alignments) [10]-d INT               maximum alignment merge distance [100000]-i FLOAT             minimum grouping confidence score [0.2]-a FLOAT             minimum location confidence score [0.0]-s FLOAT             minimum orientation confidence score [0.0]-C                   concatenate unplaced contigs and make 'chr0'-r                   infer gap sizes. if not, all gaps are 100 bp-g INT               minimum inferred gap size [100]-m INT               maximum inferred gap size [100000]input/output options:-o PATH              output directory [./ragtag_output]-w                   overwrite intermediate files-u                   add suffix to unplaced sequence headersmapping options:-t INT               number of minimap2/unimap threads [1]--aligner PATH       aligner executable ('nucmer', 'unimap' or 'minimap2') [minimap2]--mm2-params STR     space delimited minimap2 parameters (overrides '-t') ['-x asm5']--unimap-params STR  space delimited unimap parameters (overrides '-t') ['-x asm5']--nucmer-params STR  space delimted nucmer parameters ['--maxmatch -l 100 -c 500']** The reference and query FASTA files are required **

3. patch

该步骤是用contigs序列对上一步得到的scaffold序列进行gap填补。该步骤比较耗时,如果急需使用基因组进行后续分析,可以省略该步骤。

ragtag.py patch ./ragtag_output/ragtag.scaffold.fasta scaffolds_FINAL.fasta -t 80

以上均已亲测。

4. merge

在scaffolding过程中,可能会根据不同参数或图谱数据产生多个版本的基因组组装结果,该步骤可以将多个结果根据权重进行最终组装结果的生成。

如果有HiC数据,还可以加入HiC数据生成比较好的组装结果。

参考来源:

基于参考基因组的基因组组装和注释 - 简书

GitHub - malonge/RagTag: Tools for fast and flexible genome assembly scaffolding and improvement

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

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

相关文章

iMeta | 兰大张东等使用PhyloSuite进行分子系统发育及系统发育树的统计分析

点击蓝字 关注我们 使用PhyloSuite进行分子系统发育及系统发育树的统计分析 iMeta主页&#xff1a;http://www.imeta.science 方 法 ● 原文链接DOI: https://doi.org/10.1002/imt2.87 ● 2023年2月16日&#xff0c;兰州大学张东团队在 iMeta 在线发表了题为“Using PhyloSuit…

易基因|植物育种:ChIP-seq(组蛋白)揭示H3K36me修饰影响温度诱导的植物可变剪接和开花

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 2017年&#xff0c;荷兰瓦格宁根大学分子实验室RGH Immink团队以“Histone H3 lysine 36 methylation affects temperature-induced alternative splicing and flowering in plants”在《…

Kaggle图像识别竞赛 Plant Seedlings Classification(植物幼苗分类)具体实现

目录 0. 前言1. 总体设计2. import部分3. 具体实现步骤一、数据预处理&#xff08;一&#xff09;均衡化&#xff08;二&#xff09;提取图片中叶子&#xff08;绿色&#xff09;的部分 二、提取特征&#xff08;一&#xff09;SIFT提取关键点&#xff08;二&#xff09;BOW(Ba…

易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 现代农业通过简化生态系统、引入新宿主物种和减少作物遗传多样性来影响植物病毒的出现。因此&#xff0c;更好理解农业生态中种植和未种植群落中的病毒分布&#xff0c;以及它们之间的病…

植物激素基因高级分析来啦~

很多植物转录组学文章中&#xff0c;都有整合激素相关基因和表达数据的pathway图&#xff0c;直观地展示通路及其中重要基因的位置和功能。 植物激素&#xff08;Phytohormone&#xff09;亦称植物天然激素或植物内源激素&#xff0c;是指植物体内产生的一些微量而能调节&…

⁡⁡‍⁤⁡⁣⁢‍⁢​​‌​⁡⁡ ​​‍⁡⁢⁤⁡​⁤‍​⁣​⁤‌‍⁤⁢​⁤ ​ ⁢ ​⁡⁣GPT/AIGC/LLM/NLP/ChatGPT学习资料汇总(互联网活菩萨)

一些群友写的文档&#xff0c;干货很多 有关 ⁡⁡‍⁤⁡⁣⁢‍⁢​​‌​⁡⁡&#xfeff;​​‍⁡⁢⁤⁡​⁤‍​⁣​⁤‌‍⁤⁢​⁤&#xfeff;​&#xfeff;⁢&#xfeff;​⁡⁣GPT/AIGC/LLM/NLP/ChatGPT &#xff0c;干货很多&#xff0c;原幕布的产品负责。 https://go…

大学生问AI

大学生问AI 写在最前面2&#xff0c;描述你在学习工作中碰到的最高级的 AI 是什么&#xff1f;1&#xff0c;你人生中第一次接触到 “人工智能” 的概念和产品是什么&#xff1f; 让你觉得 “人类做得东西的确有智能”&#xff1f;3&#xff0c;你听说过最近的 GPT&#xff0c;…

#41 AI-002-十分钟理解ChatGPT的技术逻辑及演进(前世 、今生)

#41 AI-002-十分钟理解ChatGPT的技术逻辑及演进&#xff08;前世、今生&#xff09; 目录 目录0、 前言1、什么是GPT2、GPT之技术演进时间线3、GPT之T-Transformer(2017) 3.1、重点在好&#xff0c;还是重点在人&#xff1f;3.2、对不起&#xff0c;你是个好人3.3、回归正题&am…

渗透测试part(二):Vulnhub配置(以EMPIRE: BREAKOUT为例)

注&#xff1a;哈尔滨工程大学-渗透测试-2020065122 -0.21 在part&#xff08;一&#xff09;中&#xff0c;简要介绍了渗透测试的基本概念&#xff0c;并在第七部分提及了Vulnhub靶场。本文主要针对Vulnhub靶场的配置以及攻击机Kali的配置进行说明&#xff0c;希望能够帮助大…

腾讯云发布5G远程驾驶云;中国电信发布通用视觉大模型2.0;Meta推新语言模型Toolformer丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 腾讯云联合中国联通宁夏、福建分公司发布5G远程驾驶云 4月28日&#xff0c;在第六届数字中国建设峰会上&#xff0c;腾讯云携手中国联通宁夏、福建两省区分公司&#xff0c;首次对外发布了“基于闽宁云的5G远程…

互联网晚报 | 一季度全国居民人均可支配收入10870元;郑渊洁称维权艰难将不再发表作品;苹果版余额宝上线,年利率4.15%...

国家统计局&#xff1a;一季度全国居民人均可支配收入10870元&#xff0c;比上年同期名义增长5.1% 据国家统计局官网&#xff0c;一季度&#xff0c;全国居民人均可支配收入10870元&#xff0c;比上年同期名义增长5.1%&#xff0c;扣除价格因素&#xff0c;实际增长3.8%。分城乡…

世界上首条主要为互联网服务的海底光缆开通 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 7 日&#xff0c;在 1765 年的今天&#xff0c;法国发明家约瑟夫涅普斯&#xff08;Joseph Niepce&#xff09;出生。涅普斯是拍摄了现存最早照片的人&…

​阿里辟谣在新加坡建全球总部;​马斯克盛赞中国竞争对手:最努力最聪明;​GitHub 官宣用户破亿|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

2023年6月第4周大模型荟萃

2023年6月第4周大模型荟萃 2023.6.30版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、腾讯云首次公布大模型进展 6月19日&#xff0c;腾讯云召开行业大模型及智能应用技术峰会&#xff0c;首次公布腾讯云行业大模型研发进展&#xff0…

chatgpt赋能python:如何把python代码翻译成中文

如何把python代码翻译成中文 为什么需要将Python代码翻译成中文&#xff1f; Python编程语言是一种非常流行的高级编程语言&#xff0c;但是&#xff0c;它的官方文档是用英语编写的。如果你的母语不是英语&#xff0c;可能会遇到困难&#xff0c;需要更多时间用于理解文档。…

测试在 4090 上运行 vicuna-33b 进行推理

测试在 4090 上运行 vicuna-33b 进行推理 今天尝试在 4090 上运行 vicuna-33b 进行推理&#xff0c;使用的是 8bit 量化。 运行命令如下&#xff0c; python3 -m fastchat.serve.cli --model-path lmsys/vicuna-33b-v1.3 --load-8bit结论&#xff0c;使用 8bit 量化在 4090 上…

【VSCode】VSCode把英文版设置为中文

在你安装Visual Stdio Code时没有注意选择中英文版本&#xff0c;那就看这里呀 打开界面&#xff0c;看这里 点击红框框------扩展搜索Chinese点击&#xff08;中文简体&#xff09;安装即可。

chatgpt赋能python:如何下载Python中文插件?

如何下载Python中文插件&#xff1f; Python是一种高级编程语言&#xff0c;它非常受欢迎。由于其易学性和开放源码的特性&#xff0c;许多人都正在学习或使用这个语言。然而&#xff0c;有时候&#xff0c;如果您使用Python编写的程序需要支持中文&#xff0c;您可能会发现需…

智能合约通过getAmountsOut方法获取最近币对价格

一、UniswapV2Library合约源码 使用的方法&#xff1a; 二、演示效果 合约请求返回值&#xff1a; swap结果&#xff1a; 三、部分代码 function getTokenPrice(uint total) public view returns (uint[] memory amount1){address[] memory path new address[](2);path[0]…

作为一名外贸业务员,如何正确跟进客户?

大量销售实践证明&#xff0c;在首次沟通中就达成交易的客户只有5%左右&#xff0c;而剩下的95%都是通过后续的跟进逐渐达成的。由此可见&#xff0c;跟进客户对于外贸朋友们促进业务有着举足轻重的作用。 很多人不够重视对客户的后续跟进&#xff0c;只把关注点放在对新客户的…