我是MATLAB的新手,我的第一项任务是创建一个火山图。我一直在使用the documentation来了解它并开始使用。
我正在使用以下虚拟数据开始 -
Fer1l6 0 0.116815 3.39E-07
Selenoo 0.231255 2.104358 3.17E-06
Myh9 0 0 3.52E-05
SCARNA8 0 0 5.90E-05
7SK 0.4105501 1.593424 7.53E-05
Cnksr1 0.2652796 0.276202 0.000142596
Kcng3 0 0.947934 0.0003170
Acaa1b 0.97177 2.25452 0.0003906
adsf 0.44 0.35 0.3
此处,第一列代表gene_name,第二列代表条件1的基因表达值,第三列代表基因表达值对于条件2,最后一列用于P值。我在Excel文件中有这些数据。
现在,为了创建火山图,我写了以下代码 -
filename='quant_data_for_volcano.xlsx';
youngdata=xlsread(filename,'B:B')
olddata=xlsread(filename,'A:A')
pvalues=xlsread(filename,'C:C')
gene_labels=xlsread(filename,'D:D')
SigStructure = mavolcanoplot(youngdata, olddata, pvalues, 'LogTrans', true, 'Labels', gene_labels)
我的理解是'标签'参数采用各种基因的标签(在这种情况下为gene_names)。但是,当我运行这段代码时,它没有给我GUI中的gene_name标签,而只是给我行号作为基因标签 - 这就是我不应该做的事情。提供任何标签!
我已将输出GUI附加为图片 - 您可以看到基因的标签只是数字(对应于行号)。
手册说标签应该是一个Cell Array,我不确定这是否重要,如果是,那么如何实现它。任何帮助都会很棒!
答案 0 :(得分:1)
因为,正如您所知,mavolcanoplot()
需要cell array,您需要xlsread()
返回单元格数组而不是矩阵:
[num, gene_labels]=xlsread(filename,'D:D') % (num is a matrix while gene_labels is a cell array)