16s分析之LEfSe分析学习笔记(数据整理的二三事)

之前做 LEfSe 分析,使用全部的六个等级分类数据,总观测达到 1500,做出来树图很不好看,因此这次做一下调整:

1.  选择相对丰度在 0.001 以上的观测;

2.  将每个等级没有注释上名称的观测扔掉,类似于下图所示:

选择相对丰度在0.001以上的观测的数据很简单,无非就是排序,截取,复制,粘贴,罢了!

但是去除掉含有NA观测的行,Excel 就不那么容易了,我们尝试使用 Excel 去完成这个操作。

这里我们采用 Excel 操作整理数据:

  • 首先将第一行复制一份,粘贴在后面,后面插入六行空格,避免覆盖数据:

  • 选择数据 → 分列 → 分隔符号 → 其他 → 填入“|” → 下一步:

  • 选择这六行,点击开始 → 排序和筛选 → 筛选,出现六个倒置的三角符号:

  • 点击倒三角 → 将NA前面对勾去掉 → 重复做六次,将剩下的行粘贴到另一个页面 → 保存为txt格式即可(制表符)

但是这样未免很麻烦,接下来我们尝试使用 linux 完成这样的一个操作:

编写了一条简单的命令,真的这么简单吗?是的,五秒解决问题:

grep -v NA LEFSE_usearchnonaGCGFQ001.txt> LEFSE_usearchnonaGCGFQ001q.txt

对于大家,可能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最为方便。

微生信生物

学习永无止境,分享永不停息!

(0)

相关推荐