这段时间实验室有一个分析a型病毒序列的项目,中间有一块是分析一系列蛋白的发育树,并且把模型web化,集成到联合科研平台上,所以这几天一直在琢磨这方面的技术。
1,用过matlab生物工具箱的都知道,里面有发育树函数,就给定特殊结构的数据可以算出发育树(具体参见帮助文档Bird Flu的demo),在实例中是用view(tree),去打开该发育树。我之前以为这种树只能用这种特定的工具打开,后来无意中发现,plot函数可以显示这种发育树。
2,前面提到我们是要把模型结果发布到web上去。这里就有一个怎么把matlab画出的图显示到web页面中,这里面显然要用webfigure,(具体可以参见帮助文档)。这里面就会有一个问题:
下面这段代码只生成一个图:
f=figure;
plot(1:10);
但是:
f=figure;
plot(发育树);
却会生成两个图,比较奇怪,就是在显示发育树的时候系统默认打开一个新的句柄。
这样web的时候就会有问题,我们在web一般的图的时候会这样写:
function wf=getplot()
f=figure;
set(f,'Visible','off');
plot(1:10);
wf = webfigure(f);
close(f);
打包后没有问题,可以在web页面显示,但是
function wf=getplot()
f=figure;
set(f,'Visible','off');
plot(发育树);
wf = webfigure(f);
close(f);这段代码却不行,原因前面说过,plot(发育树);会重新打开一个新句柄,代码可改成:
function wf=getplot()
plot(发育树);
set(gcf,'Visible','off');
wf = webfigure(gcf);
close(gcf);