标签不适用于Matlab中的火山图

时间:2017-10-03 20:51:33

标签: matlab matlab-figure bioinformatics matlab-guide

我是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,我不确定这是否重要,如果是,那么如何实现它。任何帮助都会很棒!

enter image description here

1 个答案:

答案 0 :(得分:1)

因为,正如您所知,mavolcanoplot()需要cell array,您需要xlsread()返回单元格数组而不是矩阵:

[num, gene_labels]=xlsread(filename,'D:D') % (num is a matrix while gene_labels is a cell array)