【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
【4】RagTag-基于近缘/同物种的基因组同源组装相关推荐
- MPB:微生物所东秀珠组-基于16S rRNA基因和基因组序列对细菌物种的初步鉴定...
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- MPB:微生物所蔡磊组-基于二代测序的真菌基因组组装和注释
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- 内蒙古农大孙志宏教授证实超深度混合宏基因组测序能够对人类肠道微生物组中的低丰度物种进行基因组和功能表征...
导读 人类肠道微生物群中已经发现了大量微生物基因组,但由于目前大多数研究中使用的测序深度相对较浅,在个体水平上了解低丰度物种的作用仍具有挑战.为了提高基因组的组装性能,本研究采用了Illumina H ...
- 易基因|TSD物种全基因组DNA甲基化模式对孵育性别和过去孵育温度的响应 | 性别决定
易基因|TSD物种全基因组DNA甲基化模式对孵育性别和过去孵育温度的响应 | 性别决定 大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因. 2022年8月23日,<MOLECULAR ...
- 论文解读:《i6mA-stack: 基于堆叠框架的蔷薇科基因组DNA N6-甲基腺嘌呤(6mA)位点的计算预测》
论文解读:<i6mA-stack: A stacking ensemble-based computational prediction of DNA N6-methyladenine (6mA ...
- 基于长短读长和参考基因组的组装错误检测算法的研究
基于长短读长和参考基因组的组装错误检测算法的研究 论文目录 致谢 第1-6页 摘要 第6-7页 ABSTRACT 第7-8页 序言 第9-13页 1 引言 第13-26页 1.1 基因测序项目介绍 第 ...
- 一文详解基因组denovo组装原理和实战
关于更多生物医疗大数据分析工具和软件的介绍和使用请看六点了官网[1]. 图文:心如止水 编辑 marple 目录 1.基因组组装 2.基于De-Bruijn Graph的组装算法 3.SOAPden ...
- 「文献」多倍体植物基因组测序组装当前策略
「文献」多倍体植物基因组测序组装当前策略 文献地址: Current Strategies of Polyploid Plant Genome Sequence Assembly 基因组多倍化主要发生 ...
- 如何判断基因组的重复区域_利用宏基因组数据组装巨病毒基因组的优势与限制...
科学实验往往来自人们的奇思妙想,今天给大家分享一个有趣的研究,作者将已知巨病毒颗粒掺入到废水样品中,再尝试通过宏基因组从数据中恢复巨病毒基因组,从而判断此方式对于巨病毒研究的可靠性和有效性.测试结果到 ...
最新文章
- Windows服务的快速搭建与调试(C#图解)
- olabuy经历会让你内心看待事物更加的清明
- 使用keras进行深度学习_如何在Keras中通过深度学习对蝴蝶进行分类
- 【POJ16553107】树的重心——点分治的准备
- MySQL 日志文件
- OSI参考模型和TCP/IP参考模型-详解
- 二分法的样例 题解
- 李天平: 技术以外的功夫
- 关于Unity中关节的使用(一)
- python怎么做计算题_用python做算术题
- finebi如何使用mysql_如何利用bi数据分析FineBI配置MySQL
- 安卓Android手机校园外卖订餐系统毕业设计
- 扫描文件存电子版方法
- Magento Meigee-Glam 主题的用法
- Python使用RMF聚类分析客户价值
- java生成二维码扫描跳转到指定的路径URL
- 看一遍都懂的数组遍历~确定不试试?
- java通过API给企业微信用户发送微信消息
- SpringBoot-自动配置
- java 序列化 文件_一种恢复Java序列化文件数据的方法与流程
热门文章
- 小白入门miniconda安装教程
- 第一次面试----华为实习生招聘
- 学习笔记 - 如何增长
- strtol,strtoll,strtoul, strtoull字符串转化成数字
- javascript 获取当前日期 月份 时间
- oracle scott 关系图,oracle下scott用户的四张表(emp,dept,bonus,salgrade)的建表语句:
- Python开发多媒体管理软件实现方法
- 网络安全工程师入门,防火墙基本概述,防火墙调试入门
- neutron组网规划(flat、vlan类型)
- 人工智能到底有多强大?