What I Am Coding? What I Will Get?
Bioinformatics
Articles about Bioinformatics
Cytoscape 2.8 新功能预览
Aug 10th
7月份在ISMB上就听到了Cytoscape 2.8的风声(见之前的博客)。前几天,Cytoscape的核心开发人员在服务器上放出了Cytoscape 2.8 Alpha 1,Cytoscape 2.8的首个公测版本。但是从各种迹象看,2.8都只是3.0到来之前的一个过渡而已,在Cytoscape的Wiki上甚至只能找到一条跟2.8有关的条目。不过,2.8还是带来了一些有意思的功能,简单介绍一下。
1. 自定义节点图片:
在之前的版本中,节点的形状就是那几个几何图形,改改颜色、大小和border而已,但在2.8中用户可以在VizMap中用自己的图片作为节点,这无疑会诞生很多创意。例如Cytoscape最活跃的开发人员,Keiichiro Ono 大野圭一朗制作的用PDB数据库中蛋白质三维结构图绘制的蛋白质相互作用网络:
看着很帅,这肯定会诞生很多非常具有想象力的复杂网络可视化效果。
2. 属性函数
电子表格软件,例如Excel,里面各种各样的函数吧,对于简单的数据处理还是很爽的。现在对于Cytoscape中网络的各种属性,包括节点属性、网络属性、边属性,也能使用40多种函数进行简单的处理。同时,插件开发人员也可以在插件中提供新的函数。
3. 根据关键字搜索插件
说实话,Cytoscape的那个插件管理器很不好用,现在终于做出了改进。打开Manage Plugins,可以用关键字搜索所需的插件。添加其它的插件源也更加方便了。
#ISMB2010 #Cytoscape
Jul 14th
会议开完了,该做点记录了。先说说关于Cytoscape的一些东西,其它的八卦会另外写,波士顿的游记也会另外写。以下内容以时间为序。
9号在ISCB student council举办的Scientific Speed Dating上遇到了多伦多大学的大牛,Gary Bader。Bader,Cytoscape最活跃的Director之一,从他实验室走出来的Cytoscape插件有MCODE,NetMatch等等,Cytoscape Web也是。2010年,到现在为止,有两篇Nature,一篇Science,其它的论文就不说了。Google也曾经邀请Bader去介绍生物信息学的知识。总而言之,就是个大牛。7、8分钟的交流显然是觉得不爽的。Bader一方面在网络的分析方法、可视化等方面很活跃,一方面在基于生物网络的癌症研究上也投入了很多。同样,Bader也在关注生物网落的动态特性,相互抑制的东西是不能同时出现在网络中,融合多种数据有可能是解决这个问题的一个途径。最后问了个很傻很天真的问题,如何解决生物网络数据的低可靠性问题?Bader通常的做法是,集成多个数据库,选择那些有多篇文献报道的相互作用。很简单,很常见的方法,大牛在这方面也没什么太多的手段。
11号,大会的第一天下午,Scooter Morris在Technology Track上介绍了最新的Cytoscape 2.7.0,以及将在Cytoscape 2.8.0中实现的新功能,我感兴趣的有两个:
- 用户自定义节点图片;
- 在节点中显示数学公式;Update Aug 10, 2010: 这里写错了,其实是可以用数学公式对节点和边的属性进行处理
随后,Gary Bader介绍了Cytoscape Web。一个基于Flash的复杂网络工具,提供了丰富的Javascript接口,可以很方便的在网页上展示复杂网络。
12号下午,Gary Bader介绍了Gene MANIA项目。GeneMANIA项目是Bader和Morris两个大牛一起主持的项目,一个对基因的功能相关性进行分析的平台。
13号上午,在Special Session: Visualization of Biological Networks上,各路大牛各显神通。Gary Bader再次介绍了如何用Cytoscape分析生物网络,细节不说了。很有意思的是,在IBM的研究员Frank van Ham的报告后,Bader提了一个有趣的idea:生物网络的显示能否像Google Map那样,在缩放的过程中显示不同层次的信息?很有意思的问题,我想到的是把简单的层次化聚类算法和静态的生物网落,外加Gene Ontology的注释信息结合在一起,似乎可以在某种程度上实现这个功能。
Gary Bader最后还主持了一个关于Cytoscape的讨论会,但因为要赶飞机,没能参加。
Improved trick.c for graph coloring problem
Jun 29th
Graph coloring problem is one of the most famous NP-Complete problems. Many algorithms have been proposed and implemented for this problem, see here, here and here. Trick’s implementation is one of simplest program for graph coloring. A efficient algorithm is implemented by few hundreds lines of C codes.
Unfortunately, this program cannot process the graphs that consisted by more than 10,000 nodes. After a brief review of the codes, I found some marcos are used in this program to define the maximum size of input graph, and the input graph and all necessary variable are stored in static arrays. For the graph that contains 10,000 nodes, user should modify a marco named MAX_NODES to more than 10,000 to handle such large graphs. On my 4GB mem desktop computer, the source codes cannot be compiled successful for such large graphs. I have modified the codes. Now, the arrays for all graph size related variables are declaimed dynamically. Graphs that contain 40,000 nodes can be processed on my desktop computer now.
The modified source code can be download from trick.c.
A small project has been set up on Google code. Latest version of this file can be got from the subversion server. http://code.google.com/p/gossipcoder/
Comment is welcome.
ChangLog:
Jul 02, 2010 add Google code project info
Aug 08, 2010
A improved version for big graph has been upload to google code. Bitset container is used to store the network to reduce requirement of memory.
ISBRA 2010会议记录
May 28th
匆匆地去了一趟UCoon参加ISBRA 2010会议,稍作记录。
23号上午11点的飞机,从Hobby机场起飞,到亚特兰大,然后再转机到Hartford。在从Hobby飞到亚特兰大的飞机上复习要讲的论文,边上的哥们凑过来问我在研究什么东西。然后接下来的时间就在闲聊中度过,下飞机前给我留下Facebook的帐号。Facebook果然强大~转机后认真看论文,按下不表。
5点半左右抵达Hartford的BDL机场,在麦当劳搞了一个BigMac,算是晚餐。然后去找组委会派来的车。跟司机闲聊,“你们中国人买了沃尔沃”“恩,是的”“你们是不是什么都要买啊”“恩,这个……”
顺利抵达UCoon,领取了自己和老板的两份注册材料,然后休息。
24号会议开始,Keynote,然后分组。茫然的做完两篇论文的报告,回答了大概8个问题——我竟然听懂了每个问题,恩,这个很满意,尽管报告做得很一般。然后是美国盒饭,继续听报告。
晚上组委会安排去海边的餐厅吃新英格兰地区的特色,大龙虾!美味,赞!
25号,一天会议。会议晚宴上我再次上台,介绍明年在中南大学举办的ISBRA 2011会议。发现自己嗓门真够大,偌大一个餐厅,不要麦克风也行!反响不错。
26号,最后半天。UCoon的MI Tian同学带领我和LIU Bo及他的女朋友一起去边上的州立公园餐馆。然后去他家看看。传说MI Tian同学和其夫人因一副关于当年狮子座流星雨的对联而结缘,传奇啊。中午在UCoon校园边上的中餐厅吃饭。
午餐过后,赶飞机,杀回Galveston!
开会也够累的,晚上12点才到家。整理好东西,已经两点了,睡到早上8点多去实验室。结果晚上六点多再回家的时候,一沾床就睡着了,一觉到天明,错过老婆大人的电话和QQ消息无数。
期待下一次出行,7月,波士顿 ISMB 2010!
- UCoon校园最爽的一点就是校园内是大片的草地,外面就是大片的森林
- 大海,小船,蓝天,还有一个小小的月亮
- 一只虾,一餐饭!
- 好激动啊,这么大的龙虾!
- 这应该算是UCoon的标志建筑了
- LIU Bo, MI Tian, WU Yufeng & student, CHEN Gang
- 为啥我穿成这样还是个小屁孩的形象呢?
- UCoon边上的一个水库
- Liu Bo&GF, Mi Tian和我在一个小小的州立公园的合影
- UConn的美丽校园,蓝天白云绿草地
- 陪我飘洋过海的背包和拉杆箱
- Hartford BDL机场外喜来登酒店门口的旗子
RSPerl:在Perl里面调用R
Mar 25th
R和Perl是我最常用的两个干活工具,Perl用来处理数据,R用来分析数据,配合得很不错。不过最近需要在R里面做简单的K-means聚类分析,然后再根据聚类分析的结果处理一大串文本数据。基本方法当然是先写一个perl脚本处理数据,然后写一个R脚本来作聚类分析,最后写一个Perl脚本根据聚类分析结果处理文本数据。Perl当然也能作K-means聚类,不过我比较懒,不想自己写;CPAN上那个K-means聚类的模块折腾了一下,发现远不如R内置的kmeans函数好用。于是将就着这个土鳖方法折腾了两天。今天发现,我还有若干个地方要用到聚类分析,这个土鳖方法会让我不得不写出一大堆的脚本才能完成工作,而且我还得记住每个脚本的用途,以及运行的顺序,崩溃~~
Google了一下(PS,百度一下能找到COS上的帖子),第一个搜索结果就是http://www.omegahat.org/RSPerl/。一个古老的包,为Perl提供了调用R的接口。
安装RSPerl
我的系统:Ubuntu 9.10,64位。先要安装Perl的开发文件,待会编译RSPerl的时候需要。
sudo apt-get install libperl-dev
然后去http://www.omegahat.org/RSPerl/下载最新的RSPerl,我下载的是RSPerl_0.92-1.tar.gz。然后在下载目录中运行:
sudo R CMD INSTALL --configure-args='--with-in-perl' RSPerl
然后解压这个压缩包,切换目录:
cd RSPerl/src/
运行:
perl Makefile.PL make -f Makefile.perl sudo make -f Makefile.perl install
搞定!这是我的安装方法,跟官方网页上介绍的不一样。我根据官方网页上的方法装不上去,奇怪~~最近RP有问题。好了,RSPerl就算是安装好了。
K-means聚类分析
先看代码:
use R;
use RReferences;
use warnings;
use strict;
&R::initR("--silent");
my @x = &R::eval('kmeans(c(2,23,23,12,123),2)$cluster');
print join("\n",@x);
运行结果:
1 1 1 1 2
收工,回家睡觉!
近期Cytoscape安装插件出错的解决办法
Mar 22nd
在Cytoscape的邮件列表里面看到不少咨询插件安装出错的求助贴,我也收到了国内用户发来的邮件。
用插件管理器安装插件时可能会遇到如下错误:
cytoscape.actions.
cytoscape.org cytoscape.org java.net.UnknownHostException:
cytoscape.org at java.net.AbstractPlainSocketImpl.connect(Unknown
Source) at java.net.PlainSocketImpl.connect(Unknown Source) at
java.net.Socket.connect(Unknown Source) at
sun.net.NetworkClient.doConnect(Unknown Source) at
sun.net.www.http.HttpClient.openServer(Unknown Source) at
sun.net.www.http.HttpClient.openServer(Unknown Source) at
sun.net.www.http.HttpClient. (Unknown Source) at
sun.net.www.http.HttpClient.New(Unknown Source) at
sun.net.www.http.HttpClient.New(Unknown Source) at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown
Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown
Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown
Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source) at cytoscape.util.URLUtil.getBasicInputStream(URLUtil.java:107)
at cytoscape.util.URLUtil.getInputStream(URLUtil.java:71) at
cytoscape.plugin.PluginFileReader. (PluginFileReader.java:45) at
cytoscape.plugin.PluginManager.inquire(PluginManager.java:326) at
cytoscape.plugin.PluginManagerInquireTask.run(PluginManagerInquireTask.java:77)
at cytoscape.task.util.TaskWrapper.run(TaskManager.java:160)
问题的原因是最近Cytoscape.org没法解析到Cytoscape的服务器上。所以解决方法很简单,有人在Cytoscape的邮件列表里面给出了解决方法:
* 在Plugin Manager中点击[Change Download Site]
* 点击[Edit Sites]
* 选择列表中的 “Cytoscape” ,列表中应该只有这一个网站
* 点击Edit
* 把原来的地址: http://cytoscape.org/plugins/plugins.xml,改成:
http://www.cytoscape.org/plugins/plugins.xml(就是在cytoscape前面加上www.就行了)
这样Cytoscape就不会报错了













最新评论