本文英文原版见下方github链接,由中科院朱微金博士翻译、测试、并进行中文注释和补充,全网首发“宏基因组”公众号。
https://2017-cicese-metagenomics.readthedocs.io/en/latest/toc.html
如果您在学习本教程中存在困难,可能因为缺少背景知识,建议先阅读本系统前期文章
宏基因组分析理论教程
微生物组入门圣经+宏基因组分析实操课程
1. 背景知识-Shell入门与本地blast实战
https://2017-cicese-metagenomics.readthedocs.io/en/latest/quality.html # 有时连接不稳定打不开,等会就会好。或访问它更早版本的链接如下:
https://2017-dibsi-metagenomics.readthedocs.io/en/latest/quality.html
安装依赖关系
sudo apt-get -y update && \
sudo apt-get -y install trimmomatic python-pip \
samtools zlib1g-dev ncurses-dev python-dev unzip \
python3.5-dev python3.5-venv make \
libc6-dev g++ zlib1g-de
安装 fastqc
wget -c http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
unzip fastqc_v0.11.5.zip
cd FastQC
chmod +x fastqc
cd
创建Python3.5虚拟环境
cd
python3.5 -m venv ~/py3
. ~/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
# 配置
jupyter notebook --generate-config -y
cat >>~/.jupyter/jupyter_notebook_config.py <
我们分析采用 Hu et al., 2016. 文章中数据的子集,下载数据
# 创建数据文件夹
mkdir data
cd data
# 下载测试数据
curl -O -L https://s3-us-west-1.amazonaws.com/dib-training.ucdavis.edu/metagenomics-scripps-2016-10-12/SRR1976948_1.fastq.gz
curl -O -L https://s3-us-west-1.amazonaws.com/dib-training.ucdavis.edu/metagenomics-scripps-2016-10-12/SRR1976948_2.fastq.gz
curl -O -L https://s3-us-west-1.amazonaws.com/dib-training.ucdavis.edu/metagenomics-scripps-2016-10-12/SRR1977249_1.fastq.gz
curl -O -L https://s3-us-west-1.amazonaws.com/dib-training.ucdavis.edu/metagenomics-scripps-2016-10-12/SRR1977249_2.fastq.gz
# 如果无法科学上网而下载失败,尝试在文提供的百度云中的data目录中下载
# 检查文件
md5sum *.gz
# 改原始文件为只读,防止被修改
chmod u-w *
# 质控所有gz压缩的原始数据,t启动多线程,一般与文件数量一致
fastqc *.gz -t 4
# 显示所有网页版质量评估报告文件,可下载本地或用firefox查看
ll *.html
下载Illumina双端接头序列
curl -O -L http://dib-training.ucdavis.edu.s3.amazonaws.com/mRNAseq-semi-2015-03-04/TruSeq2-PE.fa
运行Trimmomatics
# 调用for循环批处理文件
for filename in *_1.fastq.gz
do
# 提取双端公共文件名,并输出检验
base=$(basename $filename _1.fastq.gz)
echo $base
# 运行去接头程序
TrimmomaticPE -threads 9 \
${base}_1.fastq.gz \
${base}_2.fastq.gz \
${base}_1.qc.fq.gz ${base}_s1_se \
${base}_2.qc.fq.gz ${base}_s2_se \
ILLUMINACLIP:TruSeq2-PE.fa:2:40:15 \
LEADING:2 TRAILING:2 \
SLIDINGWINDOW:4:2 \
MINLEN:25
done
宏基因组拼接前必须去干净接头,防止引入人造序列对结果影响
fastqc *.qc.fq.gz -t 4
# 查看再次质控结果,与之前的比较试试
ll *.qc_fastqc.html
图1. 比较质控前后第一个样品右端接头污染水平。上图质控前接头污染水平近10%,质控后接近0.
评估报告的结果非常多,自己多读读,不懂上fastqc官网看帮助。
需要python3.5
# 激活Pythone3环境
. ~/py3/bin/activate
# 安装包
pip install git+https://github.com/ewels/MultiQC.git
# 生成多样品报告
multiqc . #
虽然是可选步骤,但对于多样品还是非常有意义的。可以方便比较,节省时间。
图2. 多样品质控前后比较。图像还是交互式的,鼠标悬停可显示样品名。
https://2017-cicese-metagenomics.readthedocs.io/en/latest/kmer_trimming.html
如果我们绘制样品k-mer丰度的柱状图,你会注意到存在大量的unqiue K-mers,即使测序质量很高,但它们也是由测序错误导致的。
图3. 序列末端低质量区有极高复杂度的kmer
本节继续在Python3下运行
# 对质控前后的数据统计单端丰度距离
abundance-dist-single.py -M 1e9 -k 21 SRR1976948_1.fastq.gz SRR1976948_1.fastq.gz.dist
abundance-dist-single.py -M 1e9 -k 21 SRR1976948_1.qc.fq.gz SRR1976948_1.qc.fq.gz.dist
# 只对高覆盖度中的低丰度kmer剪切(更可能是测序错误);低覆盖度保留
interleave-reads.py SRR1976948_1.qc.fq.gz SRR1976948_2.qc.fq.gz | trim-low-abund.py -V -M 8e9 -C 3 -Z 10 - -o SRR1976948.trim.fq
图4. kmer过滤原理:
只对高覆盖度中的低丰度kmer剪切(更可能是测序错误);低覆盖度保
为什么要进行k-mer剪切
如果不做这步也是可以的。但会增加下游组装的工作量,本步可使结果更准确,并增加下游拼接速度,以及内存消耗。
unique-kmers.py SRR1976948_1.qc.fq.gz SRR1976948_2.qc.fq.gz
unique-kmers.py SRR1976948.trim.fq
结果如下:
# 质控后的32-mers数据
Estimated number of unique 32-mers in SRR1976948_1.qc.fq.gz: 65344914
Estimated number of unique 32-mers in SRR1976948_2.qc.fq.gz: 85395776
Total estimated number of unique 32-mers: 112758982
# k-mer剪切后的数据
Estimated number of unique 32-mers in SRR1976948.trim.fq: 101285633
Total estimated number of unique 32-mers: 101285633
结果只经过了简单的尾部过滤,k-mer的数量减少了10%以上,对下游分析的准确度和速度都非常有帮助。
按Kmer质控后的结果,感觉趣的再用fastqc评估一下,看看有什么变化?
接下来的文章来会介绍k-mer更大的用途,猜猜是什么?
10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑
系列教程:微生物组入门 Biostar 微生物组 宏基因组
专业技能:学术图表 高分文章 生信宝典 不可或缺的人
一文读懂:宏基因组 寄生虫益处 进化树
必备技能:提问 搜索 Endnote
文献阅读 热心肠 SemanticScholar Geenmedical
扩增子分析:图表解读 分析流程 统计绘图
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
在线工具:16S预测培养基 生信绘图
科研经验:云笔记 云协作 公众号
编程模板: Shell R Perl
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外3000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读