宏基因组实战5. sourmash基于Kmer比较数据集

前情提要

如果您在学习本教程中存在困难,可能因为缺少背景知识,建议先阅读本系统前期文章

  • 宏基因组分析理论教程
  • 微生物组入门圣经+宏基因组分析实操课程
  • 1背景知识-Shell入门与本地blast实战
  • 2数据质控fastqc, Trimmomatic, MultiQC, khmer
  • 3组装拼接MEGAHIT和评估quast
  • 4基因注释Prokka

测试数据

百度云分享经常被和谐,请读者自行从原始地址下载测试数据,无法下载请使用蓝灯、赛风等代理工具再下载。

sourmash比较数据集

https://2017-cicese-metagenomics.readthedocs.io/en/latest/sourmash_compare.html

sourmash教程

主页:https://sourmash.readthedocs.io/en/latest/

Mash: fast genome and metagenome distance estimation using MinHash. Ondov BD, Treangen TJ, Melsted P, Mallonee AB, Bergman NH, Koren S, Phillippy AM. Genome Biol. 2016 Jun 20;17(1):132. doi: 10.1186/s13059-016-0997-x.

sourmash是一款超快、轻量级核酸搜索和比对软件,方法叫MinHash。这这一个命令行使用的python包,可以从DNA序列中快速分析kmer,并进行样品比较和绘图。目的是快速且准确的比较大数据集。在2016年6月20日发表,目前已经被引用61次。

目的
- 比对reads至拼装结果
- 比较数据集并构建聚类图

采用k-mer Jaccard distance进行样品比较

什么是k-mer

k-mer就是长度为k的DNA序列

ATTG - a 4-mer
ATGGAC - a 6-mer

比如,一个长度为16的序列可以提取11个长度为6的 k-mers

AGGATGAGACAGATAG

AGGATG
 GGATGA
  GATGAG
   ATGAGA
    TGAGAC
     GAGACA
      AGACAG
       GACAGA
        ACAGAT
         CAGATA
          AGATAG

需要记住的概念:
- 不同物种的k-mer是很不同的
- 长k-mer具有很强的物种特异性

K-mers与组装图

三大基因组拼接方法之一,就是将基因组打断成k-mer再拼接,通过k-mer步移实现拼接

为什么采用k-mers而不是全长序列拼接

计算机喜欢k-mer,因为匹配准确快速。

长k-mers存在物种特异性

宏基因组实战5. sourmash基于Kmer比较数据集_第1张图片
图1. 以k=40为例,kmer很容易按属水平分开细菌

采用k-mers比较样品

安装sourmash
如果你进行过之前几节课的分析,只需执行下面代码的最后一条即可

# 设置工作目录,这是我的目录,学习时请修改为你工作的目录
pwd=~/test/metagenome17
cd ${pwd}

# 依赖关系,之前安装成功可跳过
sudo apt-get -y update && \
sudo apt-get install -y python3.5-dev python3.5-venv make \
    libc6-dev g++ zlib1g-dev
. ~/py3/bin/activate
pip install -U pip
pip install -U Cython
pip install -U jupyter jupyter_client ipython pandas matplotlib scipy scikit-learn khmer

# 安装程序包
pip install -U https://github.com/dib-lab/sourmash/archive/master.zip

产生Illumina reads的signature

mkdir work
cd work
curl -L -o SRR1976948.abundtrim.subset.pe.fq.gz https://osf.io/k3sq7/download
# 此文件很大,如果继续以之前的分析,可以执行下行链接至此目录
# ln ../data/SRR1976948.abundtrim.subset.pe.fq.gz ./
curl -L -o SRR1976948.megahit.abundtrim.subset.pe.assembly.fa https://osf.io/dxme4/download
curl -L -o SRR1976948.spades.abundtrim.subset.pe.assembly.fa https://osf.io/zmekx/download

宏基因组实战5. sourmash基于Kmer比较数据集_第2张图片
宏基因组实战5. sourmash基于Kmer比较数据集_第3张图片
图2. sourmash工作流程

mkdir ../sourmash
cd ../sourmash
# 计算过滤序列的k51特征
sourmash compute -k51 --scaled 10000 ../work/SRR1976948.abundtrim.subset.pe.fq.gz -o SRR1976948.reads.scaled10k.k51.sig 

比较序列与组装结果

sourmash compute -k51 --scaled 10000 ../work/SRR1976948.spades.abundtrim.subset.pe.assembly.fa -o SRR1976948.spades.scaled10k.k51.sig 
sourmash compute -k51 --scaled 10000 ../work/SRR1976948.megahit.abundtrim.subset.pe.assembly.fa -o SRR1976948.megahit.scaled10k.k51.sig

宏基因组实战5. sourmash基于Kmer比较数据集_第4张图片
图3. 评估污染比例

sourmash search SRR1976948.reads.scaled10k.k51.sig SRR1976948.megahit.scaled10k.k51.sig --containment 
sourmash search SRR1976948.reads.scaled10k.k51.sig SRR1976948.spades.scaled10k.k51.sig --containment

结果如下:

loaded query: SRR1976948.abundtrim.subset.pe... (k=51, DNA)
loaded 1 signatures and 0 databases total.                                     
1 matches:
similarity   match
----------   -----
 48.7%       SRR1976948.megahit.abundtrim.subset.pe.assembly.fa

loaded query: SRR1976948.abundtrim.subset.pe... (k=51, DNA)
loaded 1 signatures and 0 databases total.                                     
1 matches:
similarity   match
----------   -----
 47.5%       SRR1976948.spades.abundtrim.subset.pe.assembly.fa

为什么只有不到一半的Kmer在拼接结果中?

我们看看拼接结果中有多少kmer在原始序列中

sourmash search SRR1976948.megahit.scaled10k.k51.sig SRR1976948.reads.scaled10k.k51.sig --containment
sourmash search SRR1976948.spades.scaled10k.k51.sig SRR1976948.reads.scaled10k.k51.sig  --containment

结果如下:

loaded query: SRR1976948.megahit.abundtrim.s... (k=51, DNA)
loaded 1 signatures and 0 databases total.                                     
1 matches:
similarity   match
----------   -----
 99.8%       SRR1976948.abundtrim.subset.pe.fq.gz

loaded query: SRR1976948.spades.abundtrim.su... (k=51, DNA)
loaded 1 signatures and 0 databases total.                                     
1 matches:
similarity   match
----------   -----
 99.9%       SRR1976948.abundtrim.subset.pe.fq.gz
 ```
 基本都全部可以找到。这是因为原始序列中包含大量illumina测序的错误,而在拼接中被丢弃或校正。

 **特征比较**

 为了更深刻理解,我们采用osf下载更多数据集比较
 ```
 pip install osfclient
 osf -p ay94c fetch osfstorage/signatures/SRR1977249.megahit.scaled10k.k51.sig SRR1977249.megahit.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/SRR1977249.reads.scaled10k.k51.sig SRR1977249.reads.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/SRR1977249.spades.scaled10k.k51.sig SRR1977249.spades.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/SRR1977296.megahit.scaled10k.k51.sig SRR1977296.megahit.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/SRR1977296.reads.scaled10k.k51.sig SRR1977296.reads.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/SRR1977296.spades.scaled10k.k51.sig SRR1977296.spades.scaled10k.k51.sig
osf -p ay94c fetch osfstorage/signatures/subset_assembly.megahit.scaled10k.k51.sig subset_assembly.megahit.scaled10k.k51.sig

宏基因组实战5. sourmash基于Kmer比较数据集_第5张图片
图4. 样品间比较原理

# 比较所有signature文件
sourmash compare *sig -o Hu_metagenomes
# 比较结果绘图
sourmash plot --labels Hu_metagenomes

生成Hu_metagenomes.dendro.pngHu_metagenomes.matrix.png两个文件,分别是树形图,还有热图+树形图,可以用Filezilla下载查看。

宏基因组实战5. sourmash基于Kmer比较数据集_第6张图片
图5. 样品间kmer聚类结果

此软件还可以做什么?
- 更多的kmer研究
- 物种分类
- 功能分析

想学习看该软件的官方帮助文档吧。https://sourmash.readthedocs.io/en/latest/

猜你喜欢

  • 一文读懂:1微生物组 2进化树 3预测群落功能
  • 热文:1图表规范 2DNA提取 3 实验vs分析
  • 必备技能:1提问 2搜索 3Endnote
  • 扩增子分析:1图表解读 2分析流程 3统计绘图 4群落功能 5进化树
  • 科研团队经验:1云笔记 2云协作 3公众号
  • 系列教程:1Biostar 2微生物组 3宏基因组
  • 生物科普 1生命大跃进 2细胞的暗战 3人体奥秘

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外七十多位PI,七百多名一线科研人员加入。参与讨论,获得专业指导、问题解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职务”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
image

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
image

点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA

你可能感兴趣的:(宏基因组,宏基因组分析)