phyloseq-对象构建-2-Qiime输出数据
本文作者:xph
phyloseq 对象构建
为何要使用
phyloseq 简称ps。公众号推出的多篇教程中,均使用ps对象,其可实现多种分析与可视化,无需再为数据形式而烦恼。
本次推送提供两种生成方法。
一. QIIME下机数据生成
文件组成
otu_table_tax_phylosep.txt
mapping.txt 分组信息组成
构建代码
#清空内存#######
rm(list=ls())
library("phyloseq")
library("ggplot2")
library("dada2")
library("tidyverse")
# 制作phyloseq对象并保存
aa = ".//otu_table_tax_phylosep.txt"
aab = import_qiime(aa)
aab
#导入mapping文件
metadata <- import_qiime_sample_data(".//mapping.txt")
head(metadata)
# 修改第一列名为ID
colnames(metadata)[1] <- "ID"
# 去除行名中空格
rownames(metadata) = gsub(" ","",rownames(metadata))
head(metadata)
# 序列名添加.fastq后缀
rownames(metadata) = paste(rownames(metadata),".fastq",seq = "")
# 删除空格
rownames(metadata) = gsub(" ","",rownames(metadata))
metadata$ID = rownames(metadata)
# 构建ps对象
ps <- merge_phyloseq(metadata, aab)
ps
saveRDS(ps, "./ps.rds")
普通OTU表生成
library(phyloseq)
# github测试数据文件读取
metadata = read.table("http://210.75.224.110/github/EasyAmplicon/data/metadata.tsv", header=T, row.names=1, sep="\t", comment.char="", stringsAsFactors = F)
otutab = read.table("http://210.75.224.110/github/EasyAmplicon/data/otutab.txt", header=T, row.names=1, sep="\t", comment.char="", stringsAsFactors = F)
taxonomy = read.table("http://210.75.224.110/github/EasyAmplicon/data/taxonomy.txt", header=T, row.names=1, sep="\t", comment.char="", stringsAsFactors = F)
# 提取两个表中共有的ID
# 对otutab和taxonomy表中共同出现的OTU进行判断,出现判断为TRUE
idx = rownames(otutab) %in% rownames(taxonomy)
# 依据idx 分别从otutab和taxonomy表中筛选
otutab = otutab[idx,]
taxonomy = taxonomy[rownames(otutab),]
# 构建phyloseq(ps)对象
ps = phyloseq(sample_data(metadata),otu_table(as.matrix(otutab), taxa_are_rows=TRUE), tax_table(as.matrix(taxonomy)))
# 有ps对象即可接入公众号推送的多种分析方法