16s分析之LEfSe分析学习笔记(数据整理的二三事)
之前做 LEfSe 分析,使用全部的六个等级分类数据,总观测达到 1500,做出来树图很不好看,因此这次做一下调整:
1. 选择相对丰度在 0.001 以上的观测;
2. 将每个等级没有注释上名称的观测扔掉,类似于下图所示:
选择相对丰度在0.001以上的观测的数据很简单,无非就是排序,截取,复制,粘贴,罢了!
但是去除掉含有NA观测的行,Excel 就不那么容易了,我们尝试使用 Excel 去完成这个操作。
这里我们采用 Excel 操作整理数据:
首先将第一行复制一份,粘贴在后面,后面插入六行空格,避免覆盖数据:
选择数据 → 分列 → 分隔符号 → 其他 → 填入“|” → 下一步:
选择这六行,点击开始 → 排序和筛选 → 筛选,出现六个倒置的三角符号:
点击倒三角 → 将NA前面对勾去掉 → 重复做六次,将剩下的行粘贴到另一个页面 → 保存为txt格式即可(制表符)
但是这样未免很麻烦,接下来我们尝试使用 linux 完成这样的一个操作:
编写了一条简单的命令,真的这么简单吗?是的,五秒解决问题:
对于大家,可能R语言接触的更多一些,也可以在R语言中这么编写,我尝试了一下,还是需要很多参数:
setwd("E:/Shared_Folder/HG_usearch_HG/taxa_summary/lefse/准备去掉NA的观测lefse")
#列名做lefse分析的时候都一样,是不行的,所以这里选择header=F
wt=read.table("LEFSE_usearchnonaGCGFQ001.txt",header=F,sep="\t")
#匹配第一行中含有NA的行
wt1<-wt[grep(pattern="NA",wt[,1]),]
#做一个判别,将没有NA的行输出为TRUE
idx = !wt[,1] %in% wt1[,1]#前一个数据集的行名和都一个数据集的列名做匹配,输出逻辑变量
#选择T的行
wt2=wt[idx,]
#输出txt文件,sep ="\t"用制表符分隔,quote = FALSE字符不加双引号,行名和列名都不用
write.table(wt2,"LEFSE_usearchnonaGCGFQ001R.txt",quote=FALSE,row.names = F,col.names = F,sep = "\t")
以上三种方法整理数据在我看来,Excel 最好入手,R 语言最难入手,linux最为方便。
学习永无止境,分享永不停息!