前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三代测序组装工具Canu学习笔记

三代测序组装工具Canu学习笔记

作者头像
kongxx
发布2019-03-20 10:09:15
2.4K0
发布2019-03-20 10:09:15
举报

Canu简介

Canu是Celera的继任者,能用于组装PacBio和Nanopore两家公司得到的测序结果。

Canu分为三个步骤:纠错,修整和组装。

下载测试数据

代码语言:javascript
复制
# 下载 pacbio 测试数据
wget -c http://gembox.cbcb.umd.edu/mhap/raw/ecoli_p6_25x.filtered.fastq -O pacbio.fastq

# 下载 nanopare 测试数据
wget -c http://nanopore.s3.climb.ac.uk/MAP006-PCR-1_2D_pass.fasta -O oxford.fasta

环境准备

为了测试方便,这里没有从 Canu 的源码编译,而是直接使用的 Docker 容器来测试。

注册 quay.io 账号

为了从 quay.io 获取 Canu 镜像,需要先注册一个账号,注册比较简单,就是填个表格就行了。

下载 Docker 镜像

代码语言:javascript
复制
sudo docker login quay.io

sudo docker pull quay.io/biocontainers/canu:1.7.1--pl526h470a237_0

运行容器

在上面下载的数据文件同级目录下运行下面命令来启动一个容器

代码语言:javascript
复制
sudo docker run -it --rm -v `pwd`:/canu quay.io/biocontainers/canu:1.7.1--pl526h470a237_0 bash

测试

参数说明

  • genomeSize:设置预估的基因组大小,这用于让Canu估计测序深度;
  • maxThreads:设置运行的最大线程数;
  • rawErrorRate:用来设置两个未纠错read之间最大期望差异碱基数;
  • correctedErrorRate:则是设置纠错后read之间最大期望差异碱基数,这个参数需要在 组装 时多次调整;
  • minReadLength表示只使用大于阈值的序列,minOverlapLength表示Overlap的最小长度。提高minReadLength可以提高运行速度,增加minOverlapLength可以降低假阳性的overlap。
  • corOutCoverage: 用于控制多少数据用于纠错;
  • correctedErrorRate:设置序列的错误率;

使用 PacBio 数据测试

纠错
代码语言:javascript
复制
canu -correct \
    -p ecoli -d ecoli-pacbio \
    corThreads=32 corOutCoverage=120 corMinCoverage=2 \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    -pacbio-raw pacbio.fastq
修整
代码语言:javascript
复制
canu -trim \
    -p ecoli -d ecoli-pacbio \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    -pacbio-corrected ecoli-pacbio/ecoli.correctedReads.fasta.gz
组装
代码语言:javascript
复制
canu -assemble \
    -p ecoli -d ecoli-pacbio \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    correctedErrorRate=0.050 \
    -pacbio-corrected ecoli-pacbio/ecoli.trimmedReads.fasta.gz

使用 Oxford Nanopore 数据测试

纠错
代码语言:javascript
复制
canu -correct \
    -p ecoli -d ecoli-oxford \
    corThreads=32 corOutCoverage=120 corMinCoverage=2 \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    -nanopore-raw oxford.fasta
修整
代码语言:javascript
复制
canu -trim \
    -p ecoli -d ecoli-oxford \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    -nanopore-corrected ecoli-oxford/ecoli.correctedReads.fasta.gz
组装
代码语言:javascript
复制
canu -assemble \
    -p ecoli -d ecoli-oxford \
    gnuplotTested=true \
    genomeSize=120m minReadLength=2000 minOverlapLength=500 \
    maxMemory=500g maxThreads=32 \
    ovsMemory=1-32G ovsThreads=16 ovsConcurrency=16 \
    ovbMemory=1g ovbConcurrency=16 oeaThreads=16 \
    correctedErrorRate=0.050 \
    -nanopore-corrected ecoli-oxford/ecoli.trimmedReads.fasta.gz

使用 spec 定义参数

spec 文件

创建一个 spec 文件,比如:myspec.txt,内容如下:

代码语言:javascript
复制
useGrid=1
gridOptions=-S /bin/bash -q all.q -l mem_free=32g
gridEngineThreadsOption=-pe mpi THREADS
gridEngineMemoryOption=-l mem_total=MEMORY
ovbMemory=8g
maxMemory=64g
maxThreads=32
ovsMemory=8-64g
ovsThreads=4
oeaThreads=4
使用 spec 文件测试
代码语言:javascript
复制
# 使用 PacBio 数据测试
canu -s myspec.txt -p ecoli -d ecoli-pacbio gnuplotTested=true genomeSize=120m -pacbio-raw pacbio.fastq

# 使用 Oxford Nanopore 数据测试
canu -s myspec.txt -p ecoli -d ecoli-oxford gnuplotTested=true genomeSize=120m -nanopore-raw oxford.fasta
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Canu简介
  • 下载测试数据
  • 环境准备
    • 注册 quay.io 账号
      • 下载 Docker 镜像
        • 运行容器
        • 测试
          • 参数说明
            • 使用 PacBio 数据测试
              • 纠错
              • 修整
              • 组装
            • 使用 Oxford Nanopore 数据测试
              • 纠错
              • 修整
              • 组装
            • 使用 spec 定义参数
              • spec 文件
              • 使用 spec 文件测试
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档