存档: 标签: ‘生物信息学’

访陈润生院士

3 条评论 2010年2月23日

今得一良机,以一介布衣书生之身,拜访了中科院生物物理研究所陈润生院士——中国生物信息学领域的No.1. 陈院士和蔼可亲,平易近人。在一个小时的交谈和实验室参观之后,我真有种“听君一席话,胜读十年书”的感觉。

从今天起,不要把自己想做是数学家、物理学家,更不是生物学家、计算机学家,而是真正的生物信息学家。生物信息学,是一门独立的学科。要真正的进去,而不是在边缘徘徊。

从今天起,选择一个可以终身为之执着奋斗的方向,沿这个方向不断努力,用知识武装自己,学会用生物信息学方法发现问题、解决问题。做主角,而不是配角。

从今天起,要加强自己独立思考和解决问题的能力。尽信书不如无书。“当你看文献的时候,你就已经落后了。”想别人没想到的问题,做别人没有做过的事情。不要给自己任何的思维定式。

这一天,这一个小时,是我这整个寒假最大的收获。

TopFisher在生物信息学中的非主流应用。。- -

2 条评论 2010年2月9日

前几天用了WinInet class类写了一个可以只用输入网页地址,即可获取下载网页源文件的VC小程序,自以为感觉良好,但第二天一试却傻了眼,这个类对于某些网页根本不适用,都会莫名返回”There is some error in getting web page … “的错误信息,这其中就杯具的含有http://www.targetscan.org这个网站(首页可以获取,但是搜索后的页面不能获取)。。起初以为是网页编码的问题,但后来发现不是,网上也查不到相关问题和解决方案,无奈,暂时先转战Perl的CGI编程。

昨儿拔牙,休息一天。今儿上网无意间发现了TopFisher——Web搜索引擎。作为一个计算机专业的学生,我感觉这是一款相当非主流的网页信息采集软件。不过这不正好可以实现我想实现的那个功能吗?我看完了官方的一个教学视频:“如何将www.huochepiao.com中的车票转让信息数据采集下来”之后,眼前一亮,just have a try!官网上下载的那个软件包好像有病毒,推荐大家去迅雷上搜索下载。这款软件是免费的,配有.chm格式的说明书。

像Matlab一样,这个软件也是需要用户通过编程来实现预期的功能,不过当然远远没有Matlab那么复杂。摸索了一下午,小试牛刀,终于成功采集到了http://www.targetscan.org/cgi-bin/targetscan/vert_50/targetscan.cgi?species=Human&gid=&mir_sc=&mir_c=&mir_nc=&mirg=hsa-mir-10a这个网页上的信息,并转储到数据库中~以下是灰常非主流的TopFisher代码。。- -


//配置部分,您可以在这里直接修改配置参数
InitLink("http://www.targetscan.org/cgi-bin/targetscan/vert_50/targetscan.cgi?species=Human&gid=&mir_sc=&mir_c=&mir_nc=&mirg=hsa-mir-10a")
DbConnStr("Provider=Microsoft.JET.OLEDB.4.0;Data source=data.mdb;Jet OLEDB:Engine Type=5;")
dbTable("table1",2)
//-----------------------------------------------------------
//代码部分
function main
//这是TPF脚本的主函数,请将代码写在这里
_$str0 = map[0].area[0].hr[0].form[0].body[0].table[0].td[_$int1].href
_$str1 = map[0].area[0].hr[0].form[0].body[0].table[0].td[0].a[0].text
toInt(_$str0)
setData(0,_$str0)
setData(1,_$str1)
saveData(3,exit)
for(_$int1,0,2774)
{
_$str0 = td[_$int1].href
_$str1 = td[_$int1].a[0].text
toInt(_$str0)
setData(0,_$str0)
setData(1,_$str1)
_$int1 = _$int1+14
saveData(3,exit)
}
end

既然是非主流,这段代码就不解释了吧。。大致实现功能就是将hsa-mir-10a这个miRNA中的全部TargetGene名字和ID两个字段找出并存入到Data数据库中的table1表中。

topfisher 300x218 TopFisher在生物信息学中的非主流应用。。

非主流TopFisher编程界面。。

topfisher result 300x187 TopFisher在生物信息学中的非主流应用。。

TopFisher运行结果。。将数据写入数据库中。。右上角显示一共收集到186条信息,与hsa-mir-10a有186个靶基因相符。

database1 300x212 TopFisher在生物信息学中的非主流应用。。

最后生成的数据库。。

自动获取网页源代码(基于WinInet class的实验)

没有评论 2010年2月1日

今天陪老爸老妈爬了山,挺累的,本来想明天再来实验的,结果没想到一到晚上人反而兴奋了,所以索性实验完了得了~下面就是本人对WinInet class这个类的实验过程,包括遇到的问题和解决方案。实验环境:windows XP, .net 2003

首先是打开这个页面:http://www.vckbase.com/english/code/internet/get_webpage.shtml.htm,将里面的WebWorld.h和WebWorld.cpp分别添加进自己的工程里(【项目】——【添加新项】),编译,之后就会遇到你的第一个问题:

fatal error C1083: 无法打开包含文件:“WebThief.h”: No such file or directory

这个问题真花费了我不少时间。我翻遍了我的VC文件夹,都找不到这个头文件,到GOOGLE上面去找,也没有提供下载的,也几乎没有人对这个问题提问,即使问了,也是所问非所答。失望之余,决定用英文试试,于是尝试着用关键词“WebThief.h download”在GOOGLE理搜索。果然发现一条有价值信息:“I guess it is a mistake. Replace it with WebWorld.h”我按照这个方法一试。。果然啊,是这个作者把头文件写错了。。- -后来自己仔细一想,这个不是明摆着吗,WebWorld.h肯定应该对应着WebWorld.cpp,只怪自己太心急了。那么继续。

编译通过,链接却出现了错误:

WebWorld.obj : error LNK2019: 无法解析的外部符号 __imp__InternetOpenA@20 ,该符号在函数 “public: __thiscall CWebWorld::CWebWorld(void)” (??0CWebWorld@@QAE@XZ) 中被引用
WebWorld.obj : error LNK2019: 无法解析的外部符号 __imp__InternetCloseHandle@4 ,该符号在函数 “public: virtual __thiscall CWebWorld::~CWebWorld(void)” (??1CWebWorld@@UAE@XZ) 中被引用
WebWorld.obj : error LNK2019: 无法解析的外部符号 __imp__InternetReadFile@16 ,该符号在函数 “public: class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > __thiscall CWebWorld::GetWebPage(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &)” (?GetWebPage@CWebWorld@@QAE?AV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@ABV23@@Z) 中被引用
WebWorld.obj : error LNK2019: 无法解析的外部符号 __imp__HttpQueryInfoA@20 ,该符号在函数 “public: class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > __thiscall CWebWorld::GetWebPage(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &)” (?GetWebPage@CWebWorld@@QAE?AV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@ABV23@@Z) 中被引用
WebWorld.obj : error LNK2019: 无法解析的外部符号 __imp__InternetOpenUrlA@24 ,该符号在函数 “public: class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > __thiscall CWebWorld::GetWebPage(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &)” (?GetWebPage@CWebWorld@@QAE?AV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@ABV23@@Z) 中被引用
Debug/HTMLSource.exe : fatal error LNK1120: 5 个无法解析的外部命令

这个我比较幸运,一搜就找到了解决方案:http://topic.csdn.net/t/20050330/12/3893951.html,就是在WebWorld.cpp里添加“#pragma   comment(lib,”Wininet.lib”)”,再一试果然就可以了。不过我还不明白这是为什么,希望有高人能给我指点一下,感激不尽。

最后别忘了把WebWorld.h添加到你的项目中。我比较喜欢用基于对话框的VC程序,做了一个按钮控件,在其中添加代码:

CWebWorld a;
CString PageContent;
PageContent = a.GetWebPage("http://www.vckbase.com/english/code/internet/get_webpage.shtml.htm");
MessageBox(PageContent);

最后点击按钮,会弹出这个网页的源文件,试验成功!

自动获取网页源代码(VBscript方法)

没有评论 2010年1月31日

对于像http://www.targetscan.org这样的网站来说,没有自己的API函数,如果一个人想要获得某一个miRNA的全部靶基因的话将显得十分麻烦,比如hsa-mir-144。此时我想到的办法就是通过取得该网页的源代码,然后再用Perl匹配字符串的方法找到、下载所有的靶基因。今天我做了一下尝试。之前有用VBS做过脚本病毒,又结合网上的一个例子,完成了一个可以自动获取某一指定网页源代码并下载保存的VBS代码。

set http=createobject("Microsoft.XMLHTTP")
url="http://www.ifrei.cn"
http.open "get",url,false
http.send
zhi=zhuanghuan(Http.responsebody)
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("d:\testfile.txt", True)
MyFile.WriteLine(zhi)
MyFile.Close
Function zhuanghuan(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
zhuanghuan = strReturn
End Function

其实感觉这个不是一个最佳的方法。一是其不受欢迎性。。- -我刚生成这个VBS文件,就立刻被卡巴斯基报病毒,然后被删除。。我认为是我的那两句创建TXT文件的代码是卡巴病毒库里的一段特征码,要运行这段VBS程序必须先退出杀毒软件。第二就是运行速度。本人电脑1.5G内存,操作hsa-mir-144这个网页,竟然花了8分钟。。生成了一个409KB的TXT文档。这只是一个网页,但我所要面对的是100个左右的网页,显然这个不能满足速度的要求。那么有什么替代的方法呢?

因为我对一些脚本语言还不是很熟悉,比如Perl、python等,但我还是想试一下。另外就是WinInet class,明天进行一下尝试~

TestDaF之后的四个星期

2 条评论 2009年12月6日

今天早起,上海难得的好天气。湛蓝的天空,阳光直射入窗。两位党员都赶着上考研的课去了,LY同学今天日语三级,GOOD LUCK~

昨天晚上就在想,这个空间和域名买了大半个月了,也不能就这么荒废着啊,总得写点儿什么,于是就有了先写一篇流水账的打算。。。今天天气好,心情也好,不想去图书馆,就先在这里垫点儿土吧~

自从四个星期前考完了德福,至今几乎再没碰过德语。但德福考试成绩就像一颗重磅炸弹,随时都可能再次炸乱我的生活,不过那至少还要再过两个星期了~那这四个星期我都在做什么呢?除了小一个星期堕落在DOTA的世界里外,其余时间都在看书。原本是想用actionscript编一个小游戏出来,但最后还是将重点放在了Perl上,actionscript先放一放。

学Perl的原由来自于生物信息学(Bioinformatic)。在英国读生物学的表叔建议我,Perl语言很重要。趁两次德福考试的间隙,终于有机会接触这门神奇的外表看似火星语的语言。这星期把《Learning Perl》看完了,下周开始学习《Intermeidiate Perl》,还有Perl和CGI编程也在看。但Perl这方面的中文图书实在太少了,使我不得不去查看英文的原版文献。

另外看了一本清华大学出版社的《生物信息学基础》,对于生物信息学的研究内容、方向和方法都有了了解。其它的又看了一些关于密码学和加密解密的书。这些是我大一大二时候感兴趣的东西了,现在有了时间,重拾记忆。还有小说《斯巴达克斯》,终于一鼓作气看完了,让人看得荡气回肠。但其中也有一些问题,比如作者把女人在战争中的作用太过夸张,好像把男人显得都很弱智一样。虽说红颜祸水,但也没这么夸张的吧。

另外昨天晚上在卓越网订了一本书,叫做《为什么要相信达尔文》。传说很好。

恩,第一篇流水账就这样吧,以后我会常来的。

沪ICP备09091602号