技术标签: 扩增子
本文“宏基因组”公众号原创。
作者:舟行天下
编辑:metagenome
前面宏基因组公众号号推送过关于USEARCH的介绍及使用,详情见文章:扩增子分析神器USEARCH简介。USEARCH软件在扩增子测序分析上堪称神器!该软件依靠大神Robert Edgar开发的UPARSE,UNOISE等算法,在序列搜索、聚类、去重、去嵌合体等步骤的准确度以及效率上显著高于老牌的mothur,QIIME等软件,受到全世界研究者的喜爱,目前谷歌学术显示其已经被引用了6456次!!
由于USEARCH这个软件的安装以及使用都非常方便,不像QIIME软件一样,“让无数生信人尽折腰”。除了高通量数据处理外,USEARCH还提供了α和β(包括unifrac等)多样性分析,可以说功能非常全面!
进入官网USEARCH我们可以看到作者提供32位的免费版本和64位的收费版本。免费提供的32位版本限制用户最多使用4G内存,依照本人样本的数据量以及使用经验的话,大于40个样品可能就不能有效的跑完全部流程了。
由于该软件64位收费版确实有点贵,而且有的实验室老板不一定让买。那么有没有什么方法可以突破免费版本的内存限制呢?
小编在这里就要给大家发一个福利了,让你能无差别的使USEARCH的绝大部分功能,而且还不用收费。那就是用与USEARCH非常类似的VSEARCH软件替代USEARCH使用,不管你有多少样品,有多大的数据量,都能让你无忧无虑的使用和USEARCH几乎一模一样的功能进行数据分析。
VSEARCH是一个开源免费的64位,无内存限制的扩增子数据处理分析软件。该软件是专门针对Edgar大神开发的 USEARCH 软件而设计开发的(Rognes,2016)。
VSEARCH作者在文章前言中就提到由于Edgar大神开发的USEARCH不开源,并且没有给出其软件中具体算法的详细描述。最主要的原因还有USEARCH免费的版本只有32位版本在使用时有4GB的使用内存限制。这帮生信大佬们不想花钱买USEARCH,所以他们直接自己开发了一个与USEARCH功能类似的软件VSEARCH供大家使用。根据谷歌学术的统计数据,该软件从2016年发表到现在也已经被引用了218次。
从FIG.1可以看到:通过与USEARCH7和USEARCH8对比,VSEARCH在嵌合体检测过程准确性优于USEARCH。
从FIG.2可以看到:通过与USEARCH7和USEARCH8对比,VSEARCH的搜索准确率与USEARCH相当。
从FIG.3可以看到:通过与USEARCH7和USEARCH8对比,VSEARCH在聚类准确率上优于USEARCH的UPARSE功能。
VSEARCH主要的功能与参数都与usearch版本类似,其主要特点是开源免费,持续更新而且软件易于安装,且有各平台的版本。
在最新发布的VSEARCH版本中,作者也针对USEARCH10中的UNOISE去噪方法(详细介绍),在VSEARCH中加入了UNOISE方法用于聚类分析。
VSEARCH软件目前已经更新到了2.7.1版本,
其Windows的安装版本链接是:Win Vsearch https://github.com/torognes/vsearch/releases/download/v2.7.1/vsearch-2.7.1-win-x86_64.zip;
MAC版本的下载链接是:MAC_vsearch https://github.com/torognes/vsearch/releases/download/v2.7.1/vsearch-2.7.1-macos-x86_64.tar.gz;
Linux版本的下载链接是Linux_vsearch https://github.com/torognes/vsearch/archive/v2.7.1.tar.gz
文中使用所有测试数据已经放在百度云中,请后台回复vsearch获取测试数据下载链接。
在linux中我们直接执行以下命令就可以直接安装了
##如何安装VSEARCH
wget https://github.com/torognes/vsearch/archive/v2.7.1.tar.gz
tar xzf v2.7.1.tar.gz
cd vsearch-2.7.1
./autogen.sh
./configure
make
make install # as root or sudo make install
要想灵活的玩转VSEARCH软件,那我们首先要知道整个数据的分析流程是什么样的,通常我们拿到扩增子测序的数据会进行:序列双端合并;去除两端接头,Fastqc质量检测;序列去重复;嵌合体检测;OTU聚类;分类信息注释等步骤。而USEARCH在整个分析流程中主要的内存限制步骤是<Dereplication>; <Chimera checking>以及 <Match OTU>这三个步骤。而这三步分别对应着的VSEARCH步骤是<vsearch –derep_fulllength>; <vsearch –uchime_ref>以及<vsearch –usearch_global>。
下面我将教大家如何从测序的原始序列拿到一个OTU矩阵表格
# 目录
mkdir -p temp # 临时文件 temp directory for intermediate files
mkdir -p result # 最终结果 important results
# 文件
# pipeline.sh 分析主流程
# rdp_16s_v16.fa 16S数据库
# seq/*.fq.gz 压缩的原始测序数据
# doc/design.txt 实验设计文件
#Merge paired reads and label samples
# 测序数据解压
gunzip seq/*
# 依照实验设计批处理并合并
for i in `tail -n+2 doc/design.txt | cut -f 1`;do
vsearch --fastq_mergepairs seq/${i}_1.fq --reverse seq/${i}_2.fq \
--fastqout temp/${i}.merged.fq --relabel ${i}.
done
# 合并所有样品至同一文件
cat temp/*.merged.fq > temp/all.fq
ls -l temp/all.fq
# 3. 切除引物与质控 Cut primers and quality filter
# 请按实际修改,如Cut barcode 10bp + V5 19bp in left and V7 18bp in right
time vsearch --fastx_filter temp/all.fq \
--fastq_stripleft 29 --fastq_stripright 18 \
--fastqout temp/stripped.fq # 34s
# 质量控制fastq filter, keep reads error rates less than 1%
time vsearch --fastx_filter temp/stripped.fq \
--fastq_maxee_rate 0.01 \
--fastaout temp/filtered.fa # 30s
#761431 sequences kept (of which 0 truncated), 5627 sequences discarded.
# 4. 去冗余与生成OTUs Dereplication and cluster otus
# 4.1 序列去冗余,推荐使用vsearch,并添加miniuniqusize为8,去除低丰度,增加计算速度
time vsearch --derep_fulllength temp/filtered.fa \
--sizeout --minuniquesize 8 \
--output temp/uniques.fa # 4s
## 此处我们用基于reference的去嵌合,下载rdp_gold.fa作
#为reference数据库
#wget http://drive5.com/uchime/rdp_gold.fa
# 聚类方式生成OTU
time vsearch --cluster_fast temp/uniques.fa \
--id 0.97 --centroids temp/otus.fa \
--relabel OTU_ # 7s Clusters: 1244 --uc temp/clusters.uc
# 细菌可用Usearch作者整理的RDP Gold数据库去除嵌合体
# wget http://drive5.com/uchime/rdp_gold.fa
time vsearch --uchime_ref temp/otus.fa \
--db db/rdp_gold.fa \
--nonchimeras result/otus.fa
# Create OTUs table
time vsearch --usearch_global temp/filtered.fa \
--db result/otus.fa \
--id 0.97 \
--otutabout result/otutab.txt --threads 4
# 物种注释
#gunzip rdp_16s_v16.fa
# vsearch --usearch_global result/otus.fa --db db/rdp_16s_v16.fa --biomout out_tax.txt --id 0.97
以上命令都是小编悉心整理并测试的全套高通量下机数据处理流程命令,可以说是花钱都买不到的绝对干货!
看了这套命令你也能在你自己的电脑上来一套扩增子数据处理的全部流程了,让你再不用去看测序公司的眼色,同时欢迎大家多多分享,共同进步!
文中使用所有测试数据已经放在百度云中,请后台回复vsearch获取测试数据下载链接。
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外1200+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA
文章浏览阅读773次。本文主要介绍一下,在Linux环境下编译micropython固件的方法和流程。 首先,我们先来看一下MicroPython的源码结构。 github地址:https://github.com/micropython/micropython 你会发现,micropython根据不同的MCU运行平台进行了分类,比如esp8266目录下就是esp8266-WIFI模块上的mic..._micropython固件结构
文章浏览阅读2.4k次,点赞5次,收藏3次。最近在做一个纯前端导入excel(.xlsx)并展示、操作、导出,发现列头字母循环问题,一开始以为是26进制做法,但如果是26进制,那么Z后面应该是BA,就好像10进制,9后面是10而不是00,所以纠结之余用回调解决了这个问题:const letters = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',..._a到z无限循环
文章浏览阅读1.4k次,点赞10次,收藏29次。本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式。教程内容将同步免费发布于开发游戏的老王(知乎|CSDN)的专栏《玩转UE4/UE5动画系统》。教程中使用的资源及工程将以开源项目的形式更新到GitHub:玩转UE4上。工程文件: 玩转UE4(GitHub)文章目录前言语法知识#pragma once是干嘛的?UCLASS()是干嘛的?GENERATED_BODY()是干嘛的?UPROPERTY是干嘛的?FORCEINLINE是干嘛的?类型前面的class关键字是干嘛._ue5 c++ 书
文章浏览阅读663次。博客首页 注册 建议与交流 排行榜 加入友情链接 推荐 投诉 搜索: 帮助 灵蛇舞动 千年灵蛇,千年修行;灵蛇舞动,气吞长空。 jcodeer.cublog.cn * 管理博客 * 发表文章 * 留言 * 收藏夹 o · 技术网站 o · 软件厂商 o · ..._(cmake-gui:12251): warning **: error retrieving accessibility bus address: o
文章浏览阅读258次。大家好,上两周在朋友圈发了一个帖子,很多朋友都被卷到了:一、信息与计算科学这是一名刚高考完的准大一新生,在星球提问了一些关于未来大学期间规划的问题,以下是帖子内容:北哥您好,我是一个数学系信息与计算科学准大一新生(未入学,最近在看翁恺 C 语言和 CPP,还有数学和英语)未来读研想去计算机系统结构做数字 IC 设计或者人工智能算法方向。我本科需要转到计科或者人工智能吗?还是留在本专业。本专业培养方..._大一规划
文章浏览阅读237次。转载请注明出处lingdxuyan.blog.chinaunix.net#include #include #include #include //nand flash分区表static struct mtd_partition lingd2440_default_nand_part[] = {[0] = {.name= "bootloader",.size= SZ_256K,.offset= 0..._mini2440能支持哪个版本的内核
文章浏览阅读1.4w次,点赞10次,收藏35次。目录一、使用Docker快速运行Fabric网络1、环境配置1.1、操作系统安装1.2、安装go语言环境1.3、安装依赖包2、安装Docker服务3、安装docker-compose二、启动Fabric网络1、准备工作2、开始运行test-network测试网络3、运行first-network(end-to-end测试)三、总结:一、使用Docker快速运行Fabric网络1、环境配置......_fabric部署
文章浏览阅读449次。php ftp_put失败的解决办法:首先打开“Upload/Driver/Ftp.class.php”;然后使用“ftp_pasv($this->link,true);”方法切换到被动模式;最后在客户端重新上传文件即可。推荐:《PHP教程》PHP Upload FTP驱动 ftp_put 函数上传失败问题2台服务器,一台做ftp服务器,一台做web服务器。我使用的thinkphp3.2得U..._ftp 不能put
文章浏览阅读585次。摘要:下C语言转义字通常将具有 mRNA 功能的链称为正链。酶催化反应是发生在酶的活性部位,正确酶之所以具有高效率是由于活性部位存在多种催化基团,正确起着多元催化的作用,其它部分只是维持酶的催化基团具有合适的位置,对催化作用不起什么作用。在酶的活性中心,下C语言转义字只有侧链带电荷的氨基酸残基直接参与酶的催化作用。...下C语言转义字通常将具有 mRNA 功能的链称为正链。符表以下正确的观点是?酶..._不是合法c语言转义字符
文章浏览阅读705次。XML 特殊字符 转义下面是五个在XML文档中预定义好的实体:< > > 大于号 & & 和 ' ' 单引号 " " 双引号 实体必须以符号"&"开头,以符号";"结尾。 注意: 只有"_正则表达式转义xml特殊字符
文章浏览阅读155次。Apache Ant是一个基于Java的构建工具,在“ Apache Ant Windows 10安装教程 ”中将会使用Apache Ant二进制文件在Windows 10中安装。部署平台经过简单的测试,Apache Ant可以在以下Windows 10版本进行安装。 Windows 10 2004Windows 10 1809 或更新版本软件要求Java: 最新Apache Ant 1.10要求..._apache-ant-1.10.10需要jdk多少
文章浏览阅读187次。数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。==========================1 插入数据语法:INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)INSERT INTO stu(sid, sname,age,gender) VALUES('s_1001', 'pwc', 18, ..._通过数据和实体生成dml