unstack函数应用——生成单细胞marker基因表格
2020-12-27 本文已影响0人
生信交流平台
我在R中的stack和unstack函数 一文中,给大家简单介绍了R中stack和unstack函数的使用方法
今天给大家举一个真实的案例,就是在单细胞数据分析过程中,如何将挑选到的marker基因转换成表格的形式写出到csv文件中,方便后面对每一个细胞亚群进行注释。
一般做完细胞亚群差异表达分析后得到的结果如下
# A tibble: 90 x 7
# Groups: cluster [9]
p_val avg_logFC pct.1 pct.2 p_val_adj cluster gene
<dbl> <dbl> <dbl> <dbl> <dbl> <fct> <chr>
1 1.08e-108 0.538 0.991 0.977 1.47e-104 0 RPS3A
2 1.96e-107 0.730 0.901 0.594 2.69e-103 0 LDHB
3 1.61e- 82 0.922 0.436 0.11 2.20e- 78 0 CCR7
4 4.20e- 77 0.660 0.838 0.406 5.76e- 73 0 CD3D
5 2.32e- 54 0.600 0.726 0.399 3.18e- 50 0 CD3E
6 3.19e- 50 0.693 0.628 0.358 4.38e- 46 0 NOSIP
7 3.32e- 49 0.730 0.336 0.104 4.56e- 45 0 LEF1
8 2.50e- 44 0.712 0.331 0.11 3.43e- 40 0 PRKCQ-AS1
9 7.61e- 43 0.650 0.438 0.185 1.04e- 38 0 PIK3IP1
10 6.49e- 33 0.642 0.263 0.088 8.89e- 29 0 MAL
# ... with 80 more rows
相当于是一个堆积在一起的结果,cluster列给出了marker基因属于哪一个细胞亚群,这样看起来相当的不方便。我们希望最后得到表格如下

这样看起来就比较直观,一眼就能出每个细胞亚群中的经典的marker基因。
下面我们就通过unstack函数来得到这样一张表格
#入读堆积的数据表
markers<-read.csv("Cell_Markers.csv",row.names=1)
#在细胞亚群号前面加cluster
markers$cluster<-paste0("cluster",markers$cluster)
#利用unstack函数对数据格式进行转换,只需要gene和cluster两列
#cluster是分组信息
markers_table<-unstack(markers,gene~cluster)
#将转换后的表格写出到csv文件中
write.csv(file="Marker_Table.csv",markers_table,row.names=F)
输入文件请查阅下面这篇文章