完成了前面的数据库准备,下面就是reads的准备,基本过程就是把reads拆成对应不同引物的几个部分,后面再重建合并在一起啦。首先声明,这个方法还在开发和完善之路,最近一次更新在这个月,可能结果会有变动,应该说还处于beta版本中,不建议在生产环境中使用。
这里就有几种情况啦,一种是已经每个样本每个V区拆好的数据,另一种是每个样本几个V区混在一起的数据,或者完全没拆的数据。这里根据SMURF的示例,按第二种情况进行,应该是最常见的情况。下面是具体步骤:

Reads准备

尽管SMURF依赖于质控过滤,还是推荐继续使用去噪的方法。推荐使用现有的方法进行预处理,当然可以用别的方法替代,这只是一个例子。
简单来说步骤就是分而治之,最后合并,作者也说了这个方法其实是可以用来meta分析的,但是我还是对meta分析持怀疑态度的,毕竟每个实验室使用的方法区别那么大,样本保存条件不一样,提取方法有区别,再有就是PCR扩增区域、引物和酶也是有区别,还有建库方法的不一致,这样下来,区别差到天涯海角了,meta分析只能得出一个有问题的结论吧!16S/宏基因组,微生物、微生态的研究亟需一个标准化吧,否则每个结果只能对每个实验室的方法负责了,完全失去了可比性。对于这篇文章中使用的引物,我发现多数不是最常用的引物,所以结果是不是有偏差,也是一个值得思考的问题呀! 好,回归正题!

拆数据

我们这里用的是PE150的示例数据,没有进行样本拆分,那么使用多q2-cutadapt的trim-paired切去引物,–p-discard-untrimmed移除没有引物的序列。如果正反向序列不能拼接,当做单独的序列进行处理。

首先,导入数据,导入前重命名一下,以适应导入格式要求,个人觉得这样导入最简单。

# 重命名
mv Example_L001_R1_001.fastq.gz 1_Example_L001_R1_001.fastq.gz
mv Example_L001_R2_001.fastq.gz 1_Example_L001_R2_001.fastq.gz
# 导入qiime tools import \--type 'SampleData[PairedEndSequencesWithQuality]' \--input-path . \--input-format CasavaOneEightSingleLanePerSampleDirFmt \--output-path demux.qza

拆分区域数据

# P1qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f TGGCGGACGGGTGAGTAA \--p-front-r CTGCTGCCTCCCGTAGGA \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P1_demux.qza# P2qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f TCCTACGGGAGGCAGCAG \--p-front-r  TATTACCGCGGCTGCTGG \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P2_demux.qza# P3qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f CAGCAGCCGCGGTAATAC \--p-front-r  CGCATTTCACCGCTACAC \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P3_demux.qza# P4qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f AGGATTAGATACCCTGGT \--p-front-r  GAATTAAACCACATGCTC \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P4_demux.qza# P5qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f GCACAAGCGGTGGAGCAT \--p-front-r  CGCTCGTTGCGGGACTTA \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P5_demux.qza# P6qiime cutadapt trim-paired \--i-demultiplexed-sequences demux.qza \--p-front-f AGGAAGGTGGGGATGACG \--p-front-r  CCCGGGAACGTATTCACC \--p-discard-untrimmed \--p-error-rate 0.15 \--o-trimmed-sequences ./P6_demux.qza

从得到的数据看,各个区域的数据分布不是太一致,是不是多重PCR做的,引物偏好性有一定影响,所以这里面的影响也值得思考哈。

-rw-r--r-- 1 zjd zjd 2.6M Jan 31 11:00 P1_demux.qza
-rw-r--r-- 1 zjd zjd 466K Jan 31 11:32 P2_demux.qza
-rw-r--r-- 1 zjd zjd  13M Jan 31 11:33 P3_demux.qza
-rw-r--r-- 1 zjd zjd  11M Jan 31 11:34 P4_demux.qza
-rw-r--r-- 1 zjd zjd 3.5M Jan 31 11:34 P5_demux.qza
-rw-r--r-- 1 zjd zjd  22M Jan 31 11:35 P6_demux.qza

去噪

这里发现官方推荐的两去噪方法均报错呢,于是用了qiime2 vsearch解决。

# ######### Vsearch###########for i in {1..6}doqiime vsearch join-pairs \--i-demultiplexed-seqs P${i}_demux.qza \--o-joined-sequences P${i}_demux-joined.qza
time qiime quality-filter q-score \--i-demux P${i}_demux-joined.qza \--o-filtered-sequences P${i}_demux-joined-filtered.qza \--o-filter-stats P${i}_demux-joined-filter-stats.qza
qiime vsearch dereplicate-sequences \--i-sequences P${i}_demux-joined-filtered.qza \--o-dereplicated-table P${i}_table.qza \--o-dereplicated-sequences P${i}_rep-seqs.qza
echo vsearch denovo start
date
#denovo pick otu
qiime vsearch cluster-features-de-novo \--i-table P${i}_table.qza \--i-sequences P${i}_rep-seqs.qza \--p-perc-identity 0.99 \--o-clustered-table P${i}_table-dn-99.qza \--o-clustered-sequences P${i}_rep-seqs-dn-99.qza
echo vsearch enddone

以下是我走过的弯路(可以略过):
dada2和deblur,两个算法,习惯于用第一个啦,遗憾报错,换了个2020.2月版本依然,上后者。

#dada2
for i in {1..6}doqiime dada2 denoise-paired \--i-demultiplexed-seqs P${i}_demux.qza \--p-trim-left-f 0 \--p-trim-left-r 0 \--p-trunc-len-f 0 \--p-trunc-len-r 0 \--o-table ${i}_table.qza \--o-representative-sequences P${i}_rep-seqs.qza \--o-denoising-stats P${i}_denoising-stats.qzadone# Plugin error from dada2:# An error was encountered while running DADA2 in R (return code 1), please inspect stdout and stderr to learn more.
# Debug info has been saved to /tmp/qiime2-q2cli-err-wqromfhv.log

deblur

 ##############选项2,deblur,耗时也较长
# 序列质控6152.75sfor i in {1..6}doqiime vsearch join-pairs \--i-demultiplexed-seqs P${i}_demux.qza \--o-joined-sequences P${i}_demux-joined.qza
time qiime quality-filter q-score \--i-demux P${i}_demux-joined.qza \--o-filtered-sequences P${i}_demux-joined-filtered.qza \--o-filter-stats P${i}_demux-joined-filter-stats.qza
# # # deblur去噪生成特征表
time qiime deblur denoise-16S \--i-demultiplexed-seqs P${i}_demux-joined.qza \--p-sample-stats \--o-representative-sequences P${i}_rep-seqs-deblur.qza \--o-table P${i}_table-deblur.qza \--o-stats P${i}_deblur-stats.qzadonetime qiime deblur denoise-16S \--i-demultiplexed-seqs P1_demux-joined-filtered.qza \--p-trim-length 236 \--p-sample-stats \--o-representative-sequences P1_rep-seqs-deblur.qza \--o-table P1_table-deblur.qza \--o-stats P1_deblur-stats.qzaqiime sidle trim-dada2-posthoc \--i-table table-dada2.qza \--i-representative-sequences rep-seqs-dada2.qza \--p-trim-length 100 \--o-trimmed-table table-dada2-100nt.qza \--o-trimmed-representative-sequences rep-seq-dada2-100nt.qzaqiime demux summarize \--i-data P1_demux-joined.qza --o-visualization demux-subsample.qzv

SMURF流程之q2-sidle(三)--reads准备相关推荐

  1. SMURF流程之q2-sidle(-)及Qiime2安装加速

    前面说到Science封面文章用的16S数据分析流程有qiime2的插件版本,可以解决基于matlab MCR standalone版本的报错,于是实践一下!https://github.com/jw ...

  2. activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义

    注:(1)环境搭建:activiti自己定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建         (2)创建流程模型:activiti自己定义流程之Spr ...

  3. activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建         (2)创建流程模型:activiti自定义流程之Sprin ...

  4. 数字IC后端设计实现流程之floorplan及powerplan规划

    数字IC后端设计实现floorplan及powerplan规划 数字 IC 后端设计实现流程之 initial design 初始化 Initial 模块形状 估算完模块的面积后,block owne ...

  5. (连载)Android系统源码分析--Android系统启动流程之Linux内核

    > **这是一个连载的博文系列,我将持续为大家提供尽可能透彻的Android源码分析 [github连载地址](https://github.com/foxleezh/AOSP/issues/3 ...

  6. (连载)Android 8.0 : 系统启动流程之Linux内核

    这是一个连载的博文系列,我将持续为大家提供尽可能透彻的Android源码分析 github连载地址 前言 Android本质上就是一个基于Linux内核的操作系统,与Ubuntu Linux.Fedo ...

  7. LiteOS学习笔记-9LiteOS SDK oc流程之MQTT

    LiteOS学习笔记-9LiteOS SDK oc流程之MQTT MQTT协议 MQTT协议简介 MQTT消息类型 LiteOS中MQTT实现 LiteOS OC MQTT 抽象组件 概述 配置并连接 ...

  8. 我的Android进阶修炼:安卓启动流程之init(1)

    文章目录 我的Android进阶修炼:安卓启动流程之init(1) 一.前言 二.init进程简介 1.文件位置 2.主要功能 三.init进程源码分析 3.1 main() 源码注解 3.1.1 参 ...

  9. TensorRT学习第一篇:python 中 TensorRT 使用流程之onnx

    python 版本的TensorRT 什么是TensorRT 基本流程 python 中 TensorRT 使用流程之 onnx 1.查询自己电脑的 TensorRT 版本: 2.查询TensorRT ...

最新文章

  1. 遂宁2017届零诊16题(仅想说明网传答案的不正确)
  2. java有无参数求长方形的周长面积_用java面向对象思想编程求长方形的周长和面积...
  3. MVC 用户权限HttpContext.User.IsInRole()
  4. C#UDP通讯UdpClient
  5. 207. Course Schedule
  6. 主元排序法c语言程序,C语言算法竞赛入门(二)---数组元素移动 、排序问题 、猴子选大王问题...
  7. java des加密解密_Java实现的DES加密解密工具类实例
  8. 标准模板库(STL)之 priority_queue 列传
  9. Millumin for Mac视频实时编辑软件
  10. spring4声明式事务mdash;02 xml配置方式
  11. 织梦index.php不更新,亲测dede织梦后台无法更新生成,更新没反应的解决方法
  12. picoCTF2022_wp@fgps
  13. becon帧 wifi_无线路由器Beacon时槽值设置为100同500有什么区别?是不是设置越高WIFI信号的传输距离就越远越强?...
  14. qca4004 linux wifi,物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
  15. 基于PostgreSQL的时区问题解决
  16. 如何快速构建量化股票池?
  17. undefined reference to `__gxx_personality_sj0'错误解决办法
  18. php知识库管理系统,开源知识库管理系统
  19. SICK激光传感器Tim561使用说明
  20. qt的Linguist打开翻译文件乱码,该如何解决?

热门文章

  1. 中国四大骨干网 六大运营商 八大节点
  2. C# WinForm开发系列 - PDF
  3. win7系统下搭建服务器搭建,win7系统下搭建iis服务器的方法步骤
  4. 2021年全球乙烯-四氟乙烯共聚物涂料收入大约45百万美元,预计2028年达到49百万美元
  5. 部标JT808的指令构造详解及示例
  6. Cesium 地球自转Camera版本
  7. memset and ZeroMemory
  8. AutoHotkey下载和使用
  9. 超导钉扎效应的研究(力求一篇文章搞懂它)
  10. 耐威迪参加第十一届中国优秀数据中心峰会并做主题演讲