blog mail me! feed

Archive for January, 2009

House S05E13

House: DRUG GONNA CURE HER?

Foreman: IT LOOKS PROMISING, REDUCING SYMPTOMS. 

House: NO CURE THEN.
SO THE PROS ARE: YOU MIGHT DELAY THE ONSET OF SYMPTOMS, 
GIVE HER AN EXTRA YEAR, MAYBE THREE. 
SHE’S STILL DEAD BEFORE YOU’RE 45. 
THE QUESTION IS, ARE THOSE FEW YEARS WORTH RISKING THE REST OF YOUR LIFE IN MEDICINE?

Foreman: NO.

House: THERE, THAT WASN’T SO HARD, WAS IT?

Foreman: THANK YOU.

House: YOU’RE WELCOME. (pause)
UNLESS YOU LOVE HER. IF YOU LOVE HER, YOU DO STUPID THINGS.

新年的第二个程序.

第一个程序是一个实验性的词频的数据可视化的Flash.
改天弄完了发上来.

现在要说的是正在忙活的项目, 酵母的蛋白质编码基因预测.
今天下午断断续续的忙活得差不多了, 基本搞定了整个程序,
尽管数次觉得程序还有很多可以改进的地方, 让其更简洁, 更可读.

速度还没优化, 不过其实我是想看看Cross-Validation的结果如何,
有点失望, 最后尝试了各种参数组合(氨基酸的参数还没做, 因为构建一个CODON –> AA的表都得费些功夫),
准确率只能跑到大概97%左右, 离想象的99%有着巨大的鸿沟.
不甘心又用Z-Curve跑了一次, 33参数的Z-Curve就能跑到99.1%左右的准确率了,
看来的确是参数的问题.

双密码子是在是太慢了, 且不说这4000多个参数多么庞大,
估计用libsvm来跑一次 6 Fold Cross-Validation就足够等以小时算的时间单位了,
未来如果要用到Markov Model可能还得把libsvm的代码直接放到程序里来,
外部调用读数据文件的时间和效率都够呛.

其实也没做多少工作, 无非都是体力活, 科研的实质皮毛都没摸到, 倒感觉有点像打杂性质.
所以还好了, 不算太失落. 也不应该失落的.
只是实在是门外汉, 一点门路都摸不到, 
晚些时候再稍微想想看看, 先优化效率,
再试试有没有其他方法.

上次看到的一篇讲短序列预测的文章很好,
里面提到了傅立叶变换用作一个参数, 也准备试试.
看来还得找找FFT的相关资料来看看了,
现在一说起FFT, 脑袋里除了那张似有似无的蝶形图,
什么都没了.

新年.

全城轰鸣般的爆破声…
有点空袭的感觉了.

新年快乐!

看过了EJB那篇关于Z-CURVE的论文后, NAR这篇简直没什么看头了.

无非又是Z-CURVE是什么, 怎么提取参数,
怎么检验, 结论如何.

给的那个MIPS的URL还过期失效了.
所以天下的论文都还是差不多的啊.

噢, 单词单词.

背红宝书, 背了几个List后就发现大脑完全管理不过来各个List的复习时间了,
用手机自动添加一堆复习任务总感觉是很麻烦的事儿,
加上我把Visual Studio TeamSuite干掉了, 没有C#可以快速搞一个基于.net CF的手机复习程序出来,
所以最后索性自己动手写了个小网页, 用于帮助我管理每天需要复习的任务.

很简单, 每天背完了N个List后,
添加一个新的记忆, 程序就会自动按照复习曲线安排好未来各天的复习计划了.

最后的显示样例如下:
今天...
● 第2次复习: Word List 3
● 初次记忆: Word List 5

明天...
● 第2次复习: Word List 4
● 第1次复习: Word List 5

哈哈, 虽然很弱智不过足够简单.
改天心情好了加个日历.
或者移植到手机上去, 毕竟服务器哪天挂了, 就是一件麻烦事儿了.

iPhone还有wordpress

还是挺不错的,看来iPhone在国外的生态很好嘛…
打字真累。

传说中最难吃的番茄炒蛋…

 其实味道还勉强…

切瓣儿番茄.. 哼哼哼哼...

切瓣儿番茄.. 哼哼哼哼...

两个蛋的故事...

两个蛋的故事...

 

生产中...

生产中...

Read the rest of this entry »

MIPS真体贴.

昨天把酵母的DNA序列从MIPS的FTP上拖下来了.
(嗯, 首先所有的序列自然都是符合FASTA格式的.)
不过发现MIPS很体贴啊,和NCBI提供的文件不同, MIPS不提供.ptt文件作为蛋白质标注,
而直接提供后缀为_orf的文件列举了每个ORF的DNA序列和标注.
因此不用直接读取DNA序列, 再通过ptt的标注回到DNA正反链上去找了.
很方便. 

另外提供的_chr 是所有染色体的全部DNA序列,
_prot估计是蛋白质的氨基酸序列(分子生物学和生物信息学盲飘过).

一点疑问是 .fa文件是描述的什么呢?
不是很明白.

*UPDATE* 貌似分别是5’-UTR, 3′-UTR(untranslated region)的FASTA序列.

真核生物果然高级些…

嗯, 假期的项目是研究酵母这种低等真核生物的蛋白质编码基因预测.
上次入门做的是霍乱弧菌.

话说霍乱弧菌全身上下一个长了大小两个染色体, 而酵母竟然有16个染色体,
加上线粒体染色体, 一共17个…

还没有看具体的sequence和annotation文件,
得开始着手了.

libsvm使用笔记[1].

最近做导师的项目需要用到SVM, 上次我非常冒失的去借了一本关于SVM的书回来充电,
后来就发现以我这种半吊子的数学功底什么也没看懂.

上次看关于GISMO的论文里提到了libsvm, 就顺便google了一下,
找到了不少tutorials, 其实发现这个东西用起来极其简单.
libsvm是来自台大的林智仁 副教授开发的SVM工具包. 嗯, 使用简单, 并且带了各种语言的extensions, 比如GISMO就是用Python完成的libsvm部分的处理(好吧, 偏题了). 

顺便用第一个霍乱弧菌的基因预测的Cross-Validation的程序改了下代码,
把原来用的Fisher线性判别代码干掉了, 改为输出为libsvm识别的文件格式,
(当然, 这种self-validation的准确率都是很高滴).
准确率大概在99.3%以上, 速度也很迅猛-_-#, 当然我没有做k-fold的多重Cross Validation.

实际的使用因为没有具体研究参数,
所以就拿着两个binary文件开工了(真山寨-_-#).

需要的输入文件有两个, 一个是训练集, 用于生成model,
每一行放置一个entry, 对于我的例子, 就是一个ORF, 格式如下: 
<label> <index1>:<value1> <index2>:<value2>

label是训练集的目标值, 对于我们的分类器, 就是具体分类的整数编号.
鉴于基因预测只有正样本和负样本, 就采取和大多数samples一样的取法, 正样本为+1, 负样本为-1.

index为具体的参数编号, 整数. 最早的Z CURVE理论仅使用了9个参数来描述ORF序列的特征, 因此index是1~9排布的, 并且没有遗漏.

value自然就是各个参数的具体值, 这9个value组成了一个特征向量. (当然实际在Z CURVE理论里, 这些参数描述了一条对应的Z曲线, 每个ORF对应了空间中的一个点.)

对于进行predict的输入文件, label是可以省略的, 不过保留label程序可以附加进行一个validation, 何乐而不为. :p

准备好了输入文件, 只需要执行:
svm_train <train_data>
即会生成对应的SVM Model文件(train_data.model). 

再执行:
svm_predict <test_data> <model_file> <output>
即得到了最后的预测输出, 并且附带预测的accurency.

predict完成后, 得到的output文件极其简单, 一行一个预测结果, +1或者-1.
表征了基于当前训练集得到的基因预测结果 (即coding / non-coding).

至此就完成了第一个实验性质的libsvm的预测.
当然具体使用中两个程序有很多参数, 还没有具体尝试,
它们决定了核函数, cross-validation的属性等等.

——————————————————-

发现我说话真啰嗦, 好吧, 打住. 
不过我准备用libsvm来玩点有趣的东西,
下次继续.

Next entries »