• 分析流程

    • 下载测试数据
    • 了解输入文件
    • 软件安装和环境变量
    • 序列质控和去宿主
    • 质控后结果统计
    • 合并双端
    • 计算功能和代谢通路
    • 多样品物种和功能组成合并为矩阵/表
    • STAMP软件统计绘图
    • 整理humann2功能结果
  • 软件安装
    • 流程相关脚本
    • 质控和去宿主kneadData
    • humann2安装
    • 猜你喜欢
    • 写在后面

之前我们介绍了microbiome_helper提供众多宏基因组学相关的实验、分析教程。

  • 微生物组助手——最易学的扩增子、宏基因组分析流程

今天我们先详细讲解基于HUMAnN2的有参宏基因组分析流程 Metagenomics Tutorial (HUMAnN2) https://github.com/LangilleLab/microbiome_helper/wiki/Metagenomics-Tutorial-(Humann2)

此流程在我们之前学习的相关软件基础上,进一步完善了分析流程,包括数据质控、去宿主、

中间的物种和功能组成量我们之前有过介绍,
- MetaPhlAn2一条命令获得宏基因组物种组成
- HUMAnN2:人类微生物组统一代谢网络分析2

同时还提供了各步骤间的格式转换,以及下游的统计绘图。

说明:如果使用官方的虚拟机,可完全不用安装软件和修改原版代码即可运行测试数据。本文是基于我个人系统安装了最新版本软件,因此软件名称、安装位置、数据库位置都有变化,请用户根据自身情况选择学习。

分析流程

下载测试数据

mkdir -p ~/test/mh_meta17/v2
cd ~/test/mh_meta17/v2
wget http://kronos.pharmacology.dal.ca/public_files/tutorial_datasets/mgs_tutorial_Oct2017.zip
unzip mgs_tutorial_Oct2017.zip
cd mgs_tutorial_Oct2017
gunzip raw_data/*

了解输入文件

# 实验设计
less map.txt
# 样品数
wc -l map.txt
# 测序数据
head -n 8 raw_data/p136C_R1.fastq

输入文件1:实验设计

主要包括样品名,分组(如正常/癌症),相关属性

Sample Id   Sample Type Sex Individual
p136C   Cancer  M   p136
p136N   Normal  M   p136
p143C   Cancer  M   p143

输入文件2:测序文件,每个样品1个或1对fastq/fq文件

@SRR3586062.883556
CTTGGGGCTGCTGAGCTTCATGCTCCCCTCCTGCCTCAAGGACAATAAGGAGATCTTCGACAAGCCTGCAGCAGCTCGCATCGACGCCCTCATCGCTGAGG
+
CCCFFFFFHHHHHIJJJJJJJIJIJJJJGIJDGIJEIIJIJJJJJJJJIJJJJIJJIJJJJJHHHFFFFECEEEDDDDD?BDDDDDDBDDDDDDDDBBBDD

软件安装和环境变量

export PATH=$PATH:/conda2/bin

详细安装方法见文末软件安装部分。为什么我不把安装目录永久添加在环境变量,因为conda也会影响环境变量,导致我其它工具依赖关系出错,因此特殊流程可以临时添加更安全,自己清楚在每个流程在哪里,即使添加也要放在$PATH后面才安全。

不可能存在一个环境满足所有的依赖关系,所以近几年conda, docker会非常流行。推荐安装首选conda,如果仍搞不定,再用docker(小提示,每个bioconda软件都提供docker下载,只是使用更麻烦但成功率更高)。

序列质控和去宿主

# 新版本脚本名称变更,指定bowtie2数据库、trimmomatic位置
kneaddata -h # 显示帮助
kneaddata -i raw_data_example/p144C_R1.fastq -i raw_data_example/p144C_R2.fastq -o kneaddata_out -v \
-db ~/ref/host/Homo_sapiens  \
--trimmomatic /mnt/bai/public/bin/Trimmomatic-0.36/ --trimmomatic-options "SLIDINGWINDOW:4:20 MINLEN:50" \
-t 9 --bowtie2-options "--very-sensitive --dovetail" --remove-intermediate-output
  • -h 显示帮助
  • -v 显示运行信息,方便观察运行进展和出错找原因
  • -i 为输入fastq文件,双端需输两次
  • -o 输出结果目录
  • -db 指定bowtie2索引
  • –trimmomatic 指定质控程序位置,默认为/usr/bin/trimmomatic-0.36.jar
  • –trimmomatic-options 质控选项,4碱基滑窗,质量大于20,最小长度50
  • -t 设置线程数,不要超过9
  • –bowtie2-options 比对选项
  • –remove-intermediate-output 清理中间文件

批处理质控

你不可能实验只一个文件,一般最小2个实验组,每组三次重复,需要批量处理

这里使用parallel命令,依赖map文件中样品名,或文件列表对测序结果并行处理。注意不同版本下参数可能不同,如处理多参数时,原文虚拟机20170322版本为–links参数,而我的系统中20141022版本为–xapply参数

# 批量读取成对文件作为输入
parallel -j 3 --xapply 'echo {1} {2}'  ::: raw_data/*_R1.fastq ::: raw_data/*_R2.fastq# 批处理样品
parallel -j 3 --xapply 'kneaddata -i {1} -i {2} -o kneaddata_out -v \
-db ~/ref/host/Homo_sapiens  \
--trimmomatic /mnt/bai/public/bin/Trimmomatic-0.36/ --trimmomatic-options "SLIDINGWINDOW:4:20 MINLEN:50" \
-t 9 --bowtie2-options "--very-sensitive --dovetail" --remove-intermediate-output' \::: raw_data/*_R1.fastq ::: raw_data/*_R2.fastq

质控后结果统计

kneaddata_read_count_table --input kneaddata_out --output kneaddata_read_counts.txt

合并双端

# 清理宿主污染至指定目录备用
mkdir kneaddata_out/contam_seq
mv kneaddata_out/*_contam*fastq kneaddata_out/contam_seq# 本质上只合并了1/2
concat_paired_end.pl -p 9 --no_R_match -o cat_reads kneaddata_out/*_paired_*.fastq# 可选方法2:我感觉是合并4个文件,应该重命名序列ID,不则双端序列重名字,shell命令合并单样品
for i in `tail -n+2 map.txt | cut -f 1`;do \
cat kneaddata_out/${i}_R1_kneaddata_paired_1.fastq kneaddata_out/${i}_R1_kneaddata_paired_2.fastq kneaddata_out/${i}_R1_kneaddata_unmatched_1.fastq kneaddata_out/${i}_R1_kneaddata_unmatched_2.fastq | awk '{if(NR%4==1) print "@"NR; else print $0}' > cat_reads/${i}.fastq; done

计算功能和代谢通路

humman2是一套分析流程,它包括调用metaphlan流程来分析物种组成,和自身分析功能基因和代谢通路组成。安装方法见本文软件安装部分。

humann2 --threads 9 --input cat_reads/p144C.fastq  --output humann2_out/

多样品批量并行处理,-j参数请尽量小于你你电脑核心数(线程数的一半),否则效率反而会低且系统卡顿。

parallel -j 9 'humann2 --threads 9 --input {} --output humann2_out/{/.}' ::: cat_reads/*fastq

多样品物种和功能组成合并为矩阵/表

merge_metaphlan_tables.py precalculated/metaphlan2_out/*tsv > metaphlan2_merged.tsv# 转换为spf格式方便stamp分析
metaphlan_to_stamp.pl metaphlan2_merged.tsv > metaphlan2_merged.spf
# 删除样品名中多余字符,和株水平行
sed -i 's/_metaphlan_bugs_list//g' metaphlan2_merged.spf
# 删除株行:新数据库新增行
sed -i '/t__[^\t]*\t/d' metaphlan2_merged.spf

STAMP软件统计绘图

可以对上述结果使用STAMP打开,鼠标点点可完成常见统计分析的可视化。主页 http://kiwi.cs.dal.ca/Software/STAMP

可参考我们之前的教程
- 微生物组间差异分析神器-STAMP

可进一步在软件主页学习第一手英文教程。

整理humann2功能结果

humann2_join_tables --input precalculated/humann2_out/ --file_name pathabundance --output humann2_pathabundance.tsv# 标准化为百分比
humann2_renorm_table --input humann2_pathabundance.tsv --units relab --output humann2_pathabundance_relab.tsv# 分层结果
humann2_split_stratified_table --input humann2_pathabundance_relab.tsv --output ./# 筛选某个通路结果
head -n 1 humann2_pathabundance_relab_unstratified.tsv >> humann2_pathabundance_relab_LACTOSECAT-PWY.tsv
grep "LACTOSECAT-PWY" humann2_pathabundance_relab_unstratified.tsv >> humann2_pathabundance_relab_LACTOSECAT-PWY.tsv# 格式化为stamp输入
sed 's/_Abundance//g' humann2_pathabundance_relab_LACTOSECAT-PWY.tsv >  humann2_pathabundance_relab_LACTOSECAT-PWY.spf
sed -i 's/# Pathway/MetaCyc_pathway/' humann2_pathabundance_relab_LACTOSECAT-PWY.spf

使用STAMP分析结果

软件安装

本流程虽然只有简单的几步,但是背后却是几十步,需要的软件极多,也许安装和配置的复杂程序,反倒是分析流程难度的几倍。

作者提供了Virtalbox虚拟机 https://github.com/LangilleLab/microbiome_helper/wiki/Microbiome-Helper-Virtual-Box,有20GB大小,可以直接学习,但灵活性不高,运行效率也低。有服务器的朋友应该更喜欢正常安装软件使用更高效方便。

依赖软件清单如下,这里仅对我使用的系统没有的软件进行安装说明,其它软件请读者自行查看软件官方帮助安装。

https://github.com/LangilleLab/microbiome_helper/wiki/Requirements

流程相关脚本

为完成流程各软件间的衔接,需要写很多脚本,作者整理了几十个常用脚本工具,可下载并添加环境

cd ~/github
git clone git@github.com:LangilleLab/microbiome_helper.git
echo 'export PATH=$PATH:~/github/microbiome_helper' >> ~/.bashrc# 安装perl模块
cpan
install File::Basename Getopt::Long List::Util Parallel::ForkManager Pod::Usage

质控和去宿主kneadData

https://bitbucket.org/biobakery/kneaddata/wiki/Home

KneadData是一款宏基因组和宏转录组测序数据质控的流程,其主要功能包括使用Trimmomatic序列质控,bowtie2比对至宿主和PhiX基因组去除宿主和测序平衡序列。

#以下三个方式均不可用
#pip install kneaddata # 无权限
#pip install kneaddata --user # 不满足依赖关系
#pip3 install kneaddata --user # 安装成功,位于~/.local/lib/python3.5/site-packages/kneaddata,配置了依赖软件和数据库,在bowtie步仍报错# /conda2安装
/conda2/bin/conda install kneaddata# 列出主要命令
ll /conda2/bin/kneaddata*echo 'export PATH=$PATH:/conda2/bin' >> ~/.bashrc# 或者临时添加conda2加入环境变量
export PATH=$PATH:/conda2/bin# 如果你还不可用,使用docker吧,https://quay.io/repository/biocontainers/kneaddata,每个conda都有docker可下载,但也需要更大权限

查看可用数据

kneaddata_database

下载人类和小鼠基因组数据库

mkdir -p ~/ref/host
cd ~/ref/host
kneaddata_database --download human_genome bowtie2 ./
kneaddata_database --download mouse_C57BL bowtie2 ./

创建定制数据库

本质上就是把指定的基因组建一个bowtie2的索引

https://bitbucket.org/biobakery/kneaddata/wiki/Home#markdown-header-create-a-custom-database

以下载的EMBL plants上的拟南芥基因组为例

# bowtie2-build <reference> <db-name>
cd ~/ref/ath
bowtie2-build Arabidopsis_thaliana.TAIR10.dna.toplevel.fa bt2ebi

humann2安装

详见之前的文章
- HUMAnN2:人类微生物组统一代谢网络分析2

比对安装在/conda/bin中,如下命令可以Ubuntu 16.04中添加环境变量

echo 'export PATH=$PATH:/conda/bin' >> ~/.bashrc

猜你喜欢

  • 10000+:肠道细菌 人体上的生命 宝宝与猫狗 梅毒狂想曲 提DNA发Nature 实验分析谁对结果影响大 Cell微生物专刊
  • 系列教程:微生物组入门 Biostar 微生物组 宏基因组
  • 专业技能:生信宝典 学术图表 高分文章 不可或缺的人
  • 一文读懂:宏基因组 寄生虫益处 进化树
  • 必备技能:提问 搜索 Endnote
  • 文献阅读 热心肠 SemanticScholar Geenmedical
  • 扩增子分析:图表解读 分析流程 统计绘图
  • 16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
  • 在线工具:16S预测培养基 生信绘图
  • 科研经验:云笔记 云协作 公众号
  • 编程模板 Shell R Perl
  • 生物科普 生命大跃进 细胞暗战 人体奥秘

写在后面

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

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

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

宏基因组教程Metagenomics Tutorial (HUMAnN2)相关推荐

  1. 宏基因组有参分析和无参分析差异

    宏基因组有参分析和无参分析差异 分析流程 解决问题 结果差异 宏基因组流程综述 本文参考 宏基因组教程Metagenomics Tutorial (HUMAnN2) 分析流程 有参流程:质控–物种组成 ...

  2. Nature子刊:HUMAnN2实现宏基因组和宏转录组种水平功能组成分析

    HUMAnN2实现宏基因组和宏转录组种水平功能组成分析 Species-level functional profiling of metagenomes and metatranscriptomes ...

  3. Nature Method:HUMAnN2实现宏基因组和宏转录组种水平功能组成分析

    文章目录 HUMAnN2实现宏基因组和宏转录组种水平功能组成分析 简介 热心肠日报导读 摘要 主要图表 图1. HUMAnN2分层式搜索在同类软件中准确率最高 图2. 人类核心微生物组的贡献多样性 图 ...

  4. 你想要的宏基因组-微生物组知识全在这(190101)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训.会议.招聘 科研经验 软件和数据库 扩增子分析 宏基因组分析 Linux与Shell R统计绘图 实验设计与技术 基础知识 一作解读 ...

  5. 你想要的宏基因组-微生物组知识全在这(181101)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训.会议.招聘广告 科研经验 软件和数据库 扩增子分析 宏基因组分析 R统计绘图 实验设计与技术 基础知识 必读综述 高分文章套路解读 科 ...

  6. 你想要的宏基因组-微生物组知识全在这(181001)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训.会议.招聘广告 科研经验 软件和数据库 扩增子分析 宏基因组分析 R统计绘图 实验设计与技术 基础知识 必读综述 高分文章套路解读 科 ...

  7. 你想要的宏基因组-微生物组知识全在这(180801)

    本文"宏基因组"原创,更多文章点我跳转公众号阅读 宏基因组/微生物组是当今世界科研最热门的研究领域之一,为加强本领域的技术交流与传播,推动中国微生物组计划发展,中科院青年科研人员创 ...

  8. 你想要的宏基因组-微生物组知识全在这(180601)

    征稿.转载.合作 文章分类导航目录 精选文章推荐 培训.会议.招聘广告 科研经验 软件和数据库 宏基因组分析 R统计绘图 实验设计与技术 基础知识 必读综述 高分文章套路解读 科普视频-寓教于乐 写在 ...

  9. 你想要的宏基因组-微生物组知识全在这(180901)

    征稿.转载.合作 文章分类导航目录 精选文章推荐 培训.会议.招聘广告 科研经验 软件和数据库 扩增子分析 宏基因组分析 R统计绘图 实验设计与技术 基础知识 必读综述 高分文章套路解读 科普视频-寓 ...

最新文章

  1. python 数字循环
  2. 数据科学很性感?不,其实它非常枯燥!
  3. UILabel-UITextField-UIBottonamp;nbsp;UI_…
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)定义
  5. SQL Server 2005合并列成字符串 2008-11-07
  6. java注销对话框_【java小程序实战】小程序注销功能实现
  7. ubuntu的sudo输入密码时光标不动的问题
  8. pulsar基础(六)——namespace的基本操作
  9. L1-050 倒数第N个字符串-PAT团体程序设计天梯赛GPLT
  10. python中如何调用图像处理库_python怎么调用图像处理
  11. java.util.TaskQueue的最小堆排序算法的应用
  12. teraterm 执行sql命令_一款轻量级终端工具TeraTerm的脚本介绍(一)
  13. https://download.csdn.net/download/kuyu27537830/1322930#comment
  14. mysql 无法创建sock,mysql.sock无法打开的问题
  15. 在python中,计算Sum = m + mm + mmm +mmmm+.....+mmmmm.....,输入两个数m,n。m的位数累加到n的值,列出算式并计算出结果:
  16. vue导出excel乱码(锟斤拷唷?锟?;锟斤拷)
  17. 【开发一个简单的音乐播放器+服务端】【一】
  18. java背单词软件_背单词的java小软件
  19. Activity跳转后自动执行了onDestroy
  20. 使用EasyExcel进行百万数据文件导出思路

热门文章

  1. 图解TensorFlow--大数据平台技术栈16
  2. 大家有没有推荐不错开源的小程序商城?这几个不要错过
  3. 进程状态控制-进程创建
  4. 单链表-单链表拆分为两个线性表(尾插法+尾插法)
  5. 09JavaScript中的作用域
  6. C++中的接口(抽象类)
  7. C#接收串口RS232的CD、CTS、DSR信号
  8. C#BindingSource的DataSource的注意点
  9. 在鱼眼和全向视图图像的深度学习方法
  10. 学生服务器选用什么系统,学生云服务器系统选择