|
发表于 2022-4-5 17:50:54
|
查看: 2755 |
回复: 1
本帖最后由 生信喵 于 2022-4-6 22:50 编辑
一、案例介绍
1.1 案例介绍
该文章中对 20 个细菌基因组进行测序,每个样本分别进行了 illumina,pacbio 以及 nanopore测序。比较三种数据的拼接结果。其中两株细菌已包含发表出来的全基因组序列。
《Comparison of long-read sequencing technologies in the hybrid assembly of complex bacterial genomes》
1. Raw sequencing data: NCBI BioProject Accession PRJNA422511(https://www.ncbi.nlm.nih.gov/bioproject/PRJNA422511).
2. Assemblies: FigShare doi https://doi.org/10.6084/m9.figshare.7649051 (https://doi.org/10.6084/m9.figshare.7649051).
3. NCBI GenBank reference sequences:
a. CFT073: NC_004431.1 (chromosome)
b. MGH78578: NC_009648.1 (chromosome); NC_009649
1.2 获取 PRJNA422511 项目数据
下载测序数据只要获得该数据在 SRA 数据库中对应的 SRA 号即可,一般会在文章中的 Data部分。如果存在多样本,则需要得到 PROJECT 号,在 PROJECT 号下面找对应的数据。
https://www.ncbi.nlm.nih.gov/bioproject/PRJNA422511
1.3 下载数据
这部分和上部分一样,大家可以往前找。
二、软件安装
可以使用前一起安装好。
- #使用 bioconda 进行安装
- conda install -y mamba
- mamba install -y spades
- mamba install -y soapdenovo2
- mamba install -y flye
- mamba install -y canu
- mamba install -y wgsim
- mamba install -y megahit
- mamba install -y gapfiller
- mamba install -y jellyfish
- mamba install -y gapfiller
- mamba install -y soapdenovo2-gapcloser
- mamba create -n medaka -y medaka
- mamba create -n quast -y quast
- mamba install -y genomescope2
- mamba create -n unicycler -y unicycler
复制代码
三、数据处理
这部分和上部分质控一样,大家可以往前找。
四、spades 拼接
4.1 软件介绍
SPAdes 序列拼接软件是序列拼接软件中的后起之秀,拼接效果很不错,目前很多拼接软件已经都不在更新了,而 spades 却持续进行更新。该软件使用非常简单,并且支持多种数据格式,还支持混合拼接,使用起来非常方便。对于小基因组拼接有很好的拼接效果,不过经过更新,目前对于大基因组,甚至多倍体的基因组也有不错的效果。
SPAdes 软件不仅支持 illumina 测序数据,而且还可以用于 Ion Torrent 测序数据,PacBio 测序数据、sanger 数据,Nanopore。并且可以加入其它序列拼接结果,作为辅助。使用简单,非常适合用于混合组装来改善拼接效果。软件使用起来也并不难。因为之前对于 Ion Torrent测序数据并没有官网软件,这里经过测试,发现 SPAdes 非常适合 Ion Torrent 数据的拼接。而且,SPAdes 还可以用于二倍体杂合基因组的拼接。
4.2 选项参数
-o 为输出目录,需要提前建立一个目录,否则会报错
-sc 指定输入文件为 singlecell 单细胞测测序数据
--iontorrent 指定输入文件类型为 Ion Torrent 测序数据
--test 会以软件自带的测试数据运行程序
-h 或者--help 给出帮助信息
输入文件:
--pe<#>-1,其中井号表示第几个文库,第一 pairend 文库就可以写成--pe1-1 后面接 reads1文件。
--pe1-2 reads2 文件。以此类推,如果是大片段的 matepair 文库,就使用--mp1-1,--mp1-2。
如果觉得 matepair 文库质量很高,文库的 SD 偏差小,可以使用 hqmp 选项。
最新版本的 SPAdes,支持 illumina 最新的 NextSeq® Long Mate Pair libraries,所以可以使用--nxmate 选项。--sanger 指定 sanger 数据输入,
--pacbio 指定 pacibo 数据输入,
--nanopore 指定 nanopore 数据输入。
--trusted-contigs 指定输入可信的其他软件拼接的 contig 结果
--untrusted-contigs 指定输入不一定可信的其他软件拼接的 contig 结果
SPAdes 是不支持这些数据单独拼接的,这些都是辅助上面短序列拼接的结果。
控制流程执行功能:
--only-error-correction 只做数据纠错
--only-assembler 只组装,不做数据纠错
--careful 减少错误和插入缺失,添加此选项,会消耗更多的时间
高级选项:
--dataset SPAdes 是可以将数据写到 YAML 格式的配置文件中的,适合一次很多数据。不过YAML 格式也不容易阅读,一般我们还是直接在命令行直接写
-m 用于内存限制
-t 控制线程数,默认 16 个
-k kmer 数,一次可以输入多个,用逗号分隔,kmer 最大为 127,一般自动选择即可
--cov-cutoff 覆盖率阈值,过滤掉费盖度过低的结果,默认不执行
--phred-offset phred 质量体系,在数据纠错中会用到,现在 illumina 数据一般采用 phred 33
4.3 使用案例
- spades.py -o spades_result -t 12 -1 ../data/clean.1.fq.gz -2 ../data/clean.2.fq.gz 1>spades.log 2>spades.err
- spades.py --isolate -o spades_result -t 24 -k 45,95,12 -1 ../data/clean.1.fq.gz -2 ../data/clean.2.fq.gz 1>spades.log 2>spades.err
复制代码
五、SOAPdenovo 拼接
5.1 软件介绍
SOAPdenovo 是由华大基因开发的 SOAP 软件包的一部分,SOAPdenovo 主要用于短序列reads 拼接,尤其是 illumina 测序数据。从小的细菌基因组到大的动植物基因组,人基因组都适用。已经成功应用于大熊猫基因组,黄瓜基因组等众多基因组的拼接中。
SOAPdenovo 的一个优点是使用起来比较简单,但是却拥有很好的拼接效果,尤其在基因组构建 Scaffold 方面,效果很好。对于内存控制的也比较好。通常只要给软件输入测序的数据,即可拼接出很好的全基因组。
5.2 配置文件
- git clone https://github.com/aquaskyline/SOAPdenovo2.git
- cd SOAPdenovo2
- make
- /share/home/xiehs/biosoft/SOAPdenovo2 写入环境变量
- #安装完毕
复制代码- #SOAPdenovo配置文件
- max_rd_len=150
- [LIB]
- avg_ins=439
- reverse_seq=0
- asm_flags=3
- rank=1
- pair_num_cutoff=3
- #q1=#reads1文件路径 (),这个需要替换,不要那么教条直接复制这段
- #q2=#reads2文件路径 (),这个需要替换,不要那么教条直接复制这段
- q1=/share/home/xiehs/05.assembly/data/clean.1.fq.gz
- q2=/share/home/xiehs/05.assembly/data/clean.2.fq.gz
复制代码
5.3 选项参数。
-s STR 配置文件
-o STR 输出文件的文件名前缀
-g STR 输入文件的文件名前缀,这个主要用在分布运行程序的时候。
-K INT 输入的 K-mer 值大小,默认值 23,取值范围 13-63
-p INT 程序运行时设定的线程数,默认值 8
-R 利用 read 鉴别短的重复序列,默认值不进行此操作
-d INT 去除频数不大于该值的 k-mer,默认值为 0
-D INT 去除频数不大于该值的由 k-mer 连接的边,默认值为 1,即该边上每个点的频数都小于等于 1 时才去除
-M INT 连接 contig 时合并相似序列的等级,默认值为 1,最大值 3。
-F 利用 read 对 scaffold 中的 gap 进行填补,默认不执行
-u 构建 scaffold 前不屏蔽高覆盖度的 contig,这里高频率覆盖度指平均 contig 覆盖深度的 2 倍。默认屏蔽
-G INT 估计 gap 的大小和实际补 gap 的大小的差异,默认值为 50bp。
-L 用于构建 scaffold 的 contig 的最短长度,默认为:Kmer 参数值 ×2
-k INT map 步骤中 kmer 的大小,默认是和 K 一样的 kmer 大小
-N INT 基因组大小
-V 输出可视化的组装信息
5.4 使用案例:
- #soapdenovo2运行
- mkdir kmer45
- echo "SOAPdenovo-63mer all -s lib.list -K 45 -o kmer45/kmer45 -D 1 -d 1 -u 2 -p 24 >kmer45.log" >soapdenovo.sh
- sh soapdenovo.sh
- echo "SOAPdenovo-127mer all -s lib.list -K 125 -o kmer125/kmer125 -D 1 -d 1 -u 2 -p 24 >kmer45.log" >soapdenovo1.sh
- echo "SOAPdenovo-127mer all -s lib.list -K 85 -o kmer85/kmer85 -D 1 -d 1 -u 2 -p 24 2>kmer85.log" >soapdenovo2.sh
复制代码
六、补洞
6.1 为什么存在“洞”区域
基因组上的洞也叫做 GAP,是由N碱基构成的。这个 N 碱基是在利用 reads 之间的 pairend关系将 contig 构建成 scaffold 的过程中产生的。将 reads 之间的 insertsize 值减去两侧已有碱基数目,然后在中间填上 N 碱基,这就是 gap 的来源。因为这个 insertsize 是一个固定的值,所有 N 区域都用这个固定的值,所以我们要知道一点是,得到这个 Gap 数是不精确的,存在一定的偏差。也就是虽然基因组上这个洞有 300 个 N 碱基,但是实际上,并不是就缺了刚好 300bp 的碱基,真实的基因组序列与这个数目存在一定的偏差,可能要大于 300bp,也可能远小于这个数目。
|
|