扩增子测序中OTU表进行抽平的两种方式

简介: A random rarefaction of sample reads according to a specific reads length (usually the smallest value) should be performed firstly for downstream analysis.

扩增子测序拿到OTU表之后通常会被要求进行抽平处理,这样去进行后续比较分析,测序量一致后续分析比较才有意义,但是这种方式的缺陷在于当样品测序量相差比较大时候,会造成数据的极大浪费,假设样品A测序量为3万条reads,样品B测序量10万条,抽平后样品B就会浪费7万条reads,当然抽平并不是唯一的解决途径,文献中也有通过像Deseq2这种方法去进行后续分析的,Deseq2有自己的标准化的方法,做过转录组的人应该大多都清楚,这里呢我就先说下前者--抽平的实现

Option 1 Vegan包


library(vegan)
otu = read.table('16s_OTU_Table.txt', header=T, sep="\t", quote = "", row.names=1, comment.char="",stringsAsFactors = FALSE)%>%select(-13) 
colSums(otu)
otu_rare = as.data.frame(t(rrarefy(t(otu), min(colSums(otu)))))
colSums(otu_rare)

image.png

Option 2 Phyloseq包


library(phyloseq)
set.seed(123)#这种方法最好设置一个随机种子便于重复
otu1 = otu_table(otu, taxa_are_rows = T)
phyloseq = phyloseq(otu1)
#这种方法会自动去除一些低丰度的otu
rare.data = rarefy_even_depth(phyloseq,replace = TRUE)
#8OTUs were removed because they are no longer present in any sample after random subsampling
#查看抽平前后的变化
sample_sums(phyloseq)
sample_sums(rare.data)
#提取抽平后的otu表格 
rare.otu = rare.data@.Data %>%
  as.data.frame()

image.png

可以看到通过phyloseq方法会过滤掉一下低丰度的OTU,所以通过这种方法进行抽平的话,最好set.seed一下,便于重复.

且看下被过滤掉的这8个OTU在各样品中的值如何


otu[setdiff(rownames(otu),rownames(rare.otu)),]

image.png

en,确实蛮低的,删就删了吧!~~ 方法没有好坏,大家自主选择吧!


相关文章
|
6月前
单细胞分析|映射和注释查询数据集
单细胞分析|映射和注释查询数据集
87 3
|
6月前
|
存储 编解码 人工智能
中国长序列地表冻融数据集(1978-2015)
中国长序列地表冻融数据集(1978-2015)
41 0
中国长序列地表冻融数据集(1978-2015)
|
6月前
|
存储 关系型数据库 MySQL
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
103 0
|
搜索推荐 Linux Python
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
|
5月前
|
存储
预测分析表方法
代码遵从C++14标准,忙着别的事潦草的完成,还有许多需要优化的地方。 预测表里面的数:-1代表这有报错,其他数字拆开十位代表行,个位代表列; 行:给出文法的行,从0开始,如:E→TE’是第0行;因为只需要到了右半部分所以只保留了右半部分 列:为什么会出现列呢?因为很多文法右半部分是或的关系,如:T’ →*FT’ |/ FT’ |%FT’|ε 依次的行列是(3,0),(3,1),(3,2),(3,3)所以预测表里存储的是30,31,32,33 其他部分看代码的注释即可,有问题可以留言或加我QQ讨论
26 1
|
6月前
|
数据挖掘 索引
使用 DataFrame 进行数据聚合与透视:洞察数据深层结构
【5月更文挑战第19天】DataFrame 提供了聚合和透视功能,便于数据分析。通过`groupby`和`agg`计算类别统计信息,如`sum`和`mean`,揭示数据模式。使用`pivot_table`重新排列数据,展示清晰结构。多维度透视和按时间聚合进一步增强分析能力。这些工具帮助我们理解复杂数据,挖掘隐藏规律,为决策提供依据。利用DataFrame进行数据深层分析,解锁数据价值,开启数据探索之旅。
75 2
|
6月前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI 操作报错合集之请问Alink的算法中的序列异常检测组件,是对数据进行分组后分别在每个组中执行异常检测,而不是将数据看作时序数据进行异常检测吧
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
存储 分布式数据库 Apache
记录级别索引:Apache Hudi 针对大型数据集的超快索引
记录级别索引:Apache Hudi 针对大型数据集的超快索引
73 2
|
存储
分区表和分桶表(高频重点)
分区表和分桶表(高频重点)
200 0
|
6月前
|
算法 C++
C++哈希表企业级运用----DNA序列的检测
C++哈希表企业级运用----DNA序列的检测

相关实验场景

更多