SOAPdenovo是一个新颖的适用于组装短reads的方法,能组装出类似人类基因组大小的de novo草图。

该软件特地设计用来组装Illumina GA short reads,新的版本减少了在图创建时的内存消耗,解决了contig组装时的重复区域的问题,增加了scaffold组装时的覆盖度和长度,改进了gap closing,更加适用于大型基因组组装。

(SOAPdenovo是为了组装大型植物和动物基因组而设计的,同样也适用于组装细菌和真菌,组装大型基因组大小如人类时,可能需要150G内存。)

 

1.配置文件

一般大型基因组组装项目都会有多个文库,配置文件包含文库的位置信息 以及 其他信息。

配置文件包含 全局信息 和 多个文库部分信息。

全局信息:max_rd_len:任何比它大的read会被切到这个长度。

文库部分由[LIB]开始,并包含如下信息:

1) avg_ins

文库的平均插入长度,或者是插入长度分布图的峰值。(科普:理论上插入片段长度是成正态分布的,并不是严格控制的)
2) reverse_seq

这个选项有 0 或 1 两个选项,它告诉组装器read序列是否需要被完全反转。Illumima GA 产生两种 paired-end 文库:一是forward-reverse;另一个是 reverse-forward。"reverse_seq"参数应该如下设置:0,forward-reverse(由典型的插入长度少于500 bp的DNA末端片段生成);1,reverse-forward(由环状文库,典型的2 kb以上的文库生成)。

3) asm_flags

决定reads哪一段会被利用,1(仅进行contig组装);2(仅进行scaffold组装);3(contig和scaffold都组装);4(只进行gap closure)。
4) rd_len_cutof

组装器会过滤掉当前文库中到这个长度之间的reads。
5) rank

为整数值,它决定在scaffold组装时reads被利用的顺序。文库中具有同样rank值的会被同时使用(在组装scaffold时)。 
6) pair_num_cutoff

该参数是成对number的 cutoff value,为了得到两条contigs的可靠的连接 或  pre-scaffolds。paired-end reads and mate-pair reads 的最小数量分别是 3 和 5.
7) map_len

这个参数在“map”阶段生效,它是read 和 contig 的最小比对长度,用来建立一个可靠的read定位。

paired-end reads and mate-pair reads 的最小的长度分别是 32 和 35.

组装器接受三种read格式:FASTA, FASTQ and BAM。

Mate-pair关系:fastq中两个文件的同行序列;fasta中的邻行序列,bam文件比较特殊。

配置文件中,单端文件用"f=/path/filename" or "q=/pah/filename" 表示 fasta or fastq 格式。

双端reads被放在两个fasta文件中,分别为"f1=" and "f2="。fastq文件由"q1=" and "q2="表示。

双端reads如果全在一个fasta文件中,则用"p=" 选项;reads在bam文件中则用"b=".选项。

以上参数大多是可选的,如果你不知道怎么用,可以不设置,让软件使用默认参数。

 

2.命令及参数

常用的一站式运行方式:

${bin} all -s config_file -K 63 -R -o graph_prefix 1>ass.log 2>ass.err

分四步运行:

${bin} pregraph -s config_file -K 63 -R -o graph_prefix 1>pregraph.log 2>pregraph.err
OR
${bin} sparse_pregraph -s config_file -K 63 -z 5000000000 -R -o graph_prefix 1>pregraph.log 2>pregraph.err
${bin} contig -g graph_prefix -R 1>contig.log 2>contig.err
${bin} map -s config_file -g graph_prefix 1>map.log 2>map.err
${bin} scaff -g graph_prefix -F 1>scaff.log 2>scaff.err

all (pregraph-contig-map-scaff)的参数

-s <string>    配置文件:config

  -o <string>    输出图:输出图文件名的前缀

  -K <int>       kmer(最小 13, 最大 63/127): kmer size, [23]

  -p <int>       cpu核数 [8]

  -a <int>       初始的内存:避免内存再分配,单位为G [0]

  -d <int>       KmerFreqCutoff: kmers with frequency no larger than KmerFreqCutoff will be deleted, [0]

  -R (optional)  resolve repeats by reads, [NO]

  -D <int>       EdgeCovCutoff: edges with coverage no larger than EdgeCovCutoff will be deleted, [1]

  -M <int>       mergeLevel(min 0, max 3): the strength of merging similar sequences during contiging, [1]

  -m <int>       max k when using multi kmer

  -e <int>       weight to filter arc when linearize two edges(default 0)

  -r (optional)  keep available read(*.read)

  -E (optional)  merge clean bubble before iterate

  -f (optional)  output gap related reads in map step for using SRkgf to fill gap, [NO]

  -k <int>       kmer_R2C(min 13, max 63): kmer size used for mapping read to contig, [K]

  -F (optional)  fill gaps in scaffold, [NO]

  -u (optional)  un-mask contigs with high/low coverage before scaffolding, [mask]

  -w (optional)  keep contigs weakly connected to other contigs in scaffold, [NO]

  -G <int>       gapLenDiff: allowed length difference between estimated and filled gap, [50]

  -L <int>       minContigLen: shortest contig for scaffolding, [K+2]

  -c <float>     minContigCvg: minimum contig coverage (c*avgCvg), contigs shorter than 100bp with coverage smaller than c*avgCvg will be masked before scaffolding unless -u is set, [0.1]

  -C <float>     maxContigCvg: maximum contig coverage (C*avgCvg), contigs with coverage larger than C*avgCvg or contigs shorter than 100bp with coverage larger than 0.8*C*avgCvg will be masked before scaffolding unless -u is set, [2]

  -b <float>     insertSizeUpperBound: (b*avg_ins) will be used as upper bound of insert size for large insert size ( > 1000) when handling pair-end connections between contigs if b is set to larger than 1, [1.5]

  -B <float>     bubbleCoverage: remove contig with lower cvoerage in bubble structure if both contigs coverage are smaller than bubbleCoverage*avgCvg, [0.6]

  -N <int>      基因组大小 [0]

  -V (optional)  组装的可视化信息输出 [NO]

 

 

 

 

 

学到的基本概念:

 

 

 

 

 

参考资料:

SOAPdenovo官方网站

SOAPdenovo软件使用说明

基因组组装工具之 SOAPdenovo 使用方法的更多相关文章

  1. PacBio长reads的大基因组组装

    原文链接:Large Genome Assembly with PacBio Long Reads 可以以多种方式利用PacBio长reads来生成和改进大型基因组的de novo组装. 你可以用几种 ...

  2. Java 使用Redis缓存工具的图文详细方法

    开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java. (1)Java的安装配置可以参考我们的 Java ...

  3. Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用

    1. Arrays工具类中asList()方法的使用 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把 ...

  4. Linux性能分析工具与图形化方法

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:赵坤|腾讯魔王工作室后台开发工程师 在项目开发中,经常会遇到程序启动时间过长.CPU使用率过高等问题,这个时候需要依靠性能分析工具来 ...

  5. Hutool工具里,POST方法,body中传参的几种调用方法

    接口说明: POSTMAN测试: JAVA代码: package com.provy.guard.api; import java.util.HashMap; import java.util.Map ...

  6. WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍

    这篇文章主要介绍了WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍,WQL是指Windows管理规范查询语言,需要的朋友可以参考下 WQL就是WMI中的查询语言,WQL的全称是W ...

  7. MYSQL 命令行工具自动登录的方法

    MYSQL 命令行工具自动登录的方法 1. 需求提出 由于在linux 环境下,经常需要使用mysql(command-line tool) 终端连接到MYSQL DB服务. 其中大致的语法如下: m ...

  8. 数据库管理工具navicat基本使用方法——以MySql为例

    mysq数据库管理工具navicat基本使用方法 https://www.cnblogs.com/neuedu/p/5876874.html

  9. 工具类Arrays.asList()方法把数组转换成集合

    工具类Arrays.asList()方法把数组转换成集合 不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException() 问 ...

随机推荐

  1. [转]get,post数据长度的限制

    一.问题起因 在某项目释放后Bug统计的附件<释放后问题>里有: 问题 原因 分析 备注 CSV处理时,如果处理的主题数过多,发生URL参数上限的错误: 可变长度的参数通过URL方式传递, ...

  2. MyBatis 3与spring整合之使用SqlSession

    SqlSessionTemplate是MyBatis-Spring的核心.这个类负责管理MyBatis的SqlSession.调用MyBatis的SQL方法. SqlSessionTemplate是线 ...

  3. 【jQuery】JS中拼接URL发送GET请求的中文、特殊符号的问题

    > 参考的优秀文章 jQuery ajax - param() 方法 经常,我们需要在JS中拼接URL然后以GET形式提交请求.如果遇到中文.特殊符号则需要作各种处理. jQuery有一个方法非 ...

  4. c++学习总结--复合类型,const。

    复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复 ...

  5. HDU1757 A Simple Math Problem 矩阵快速幂

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  6. 数据库SQL语句练习题10--18

    10.查询Score表中的最高分的学生学号和课程号.(子查询或者排序) select t.sno,t.cno from SCORE t where degree = (select max(degre ...

  7. 【转载】跟着9张思维导图学习JavaScript

    原文:跟着9张思维导图学习JavaScript 学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将 po 出我收集的 9 张 JavaScript相关的思维导图(非原创). 思维导图小ti ...

  8. 回归——线性回归,Logistic回归,范数,最大似然,梯度,最小二乘……

    写在前面:在本篇博客中,旨在对线性回归从新的角度考虑,然后引入解决线性回归中会用到的最大似然近似(Maximum Likelihood Appropriation-MLA) 求解模型中的参数,以及梯度 ...

  9. Create,Insert

    创建表 create table people ( id int ,name ) ) create table toys ( id int ,name ) ,people_id int ) CREAT ...

  10. tophat cufflinks cuffcompare cuffmerge 的使用

    Cole Trapnell said: there are three strategies: 1) merge bams and assemble in a single run of Cuffli ...