unstack函数应用——生成单细胞marker基因表格

我在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     
                           
 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基因属于哪一个细胞亚群,这样看起来相当的不方便。我们希望最后得到表格如下

unstack函数应用——生成单细胞marker基因表格_第1张图片

这样看起来就比较直观,一眼就能出每个细胞亚群中的经典的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)

输入文件请查阅下面这篇文章

unstack函数应用——生成单细胞marker基因表格

你可能感兴趣的:(unstack函数应用——生成单细胞marker基因表格)