|
|
楼主 |
发表于 2015-12-18 00:22:50
|
显示全部楼层
菜鸟请看这个帖子:以亚细胞定位为例
蛋白质的亚细胞定位 (蛋白质是分子,我们搞信息的人看就是个氨基酸字符串,跟DNA类似。蛋白质在细胞里到处都有,细胞你记得吧?有细胞质、细胞核、高尔基体、叶绿体等等,现在给你一个蛋白质序列,请用软件预测它是位于细胞质里,还是细胞核里,还是高尔基体里?还是到处都有?) (这工作很重要,药就是蛋白质,如果细胞核里有问题了,你吃的药只能到达细胞质,那岂不是白吃了?)
问题明白了吧?
下面介绍方法,这类方法统称“机器学习”(machine learning)方法。(虽然叫机器学习,但是和硬件一点关系没有,完全是算法程序)
给你个蛋白质序列ACMNKGYW,鬼知道他在细胞核里,还是叶绿体中。怎么办呢?你得先给点已知的样例啊,看看已知的样例有没有啥规律,然后才好预测未知的,对不对?这些已知的样本就称为“训练集”(training set),那些要预测的就称为“测试集”(testing set)。
好了,给你点“训练集”,比如:
高尔基体里有下面这2个蛋白质序列:(>开头那行是蛋白质的名字,下面的就是蛋白序列)
>Q6IBS0
MAHQTGIHATEELKEFFAKARAGSVRLIKVVIEDEQLVLGASQEPVGRWDQDYDRAVLPL
LDAQQPCYLLYRLDSQNAQGFEWLFLAWSPDNSPVRLKMLYAATRATVKKEFGGGHIKDE
LFGTVKDDLSFAGYQKHLSSCAAPAPLTSAERELQQIRINEVKTEISVESKHQTLQGLAF
PLQPEAQRALQQLKQKMVNYIQMKLDLERETIELVHTEPTDVAQLPSRVPRDAARYHFFL
YKHTHEGDPLESVVFIYSMPGYKCSIKERMLYSSCKSRLLDSVEQDFHLEIAKKIEIGDG
AELTAEFLYDEVHPKQHAFKQAFAKPKGPGGKRGHKRLIRGPGENGDDS
>Q9UJV3
METLESELTCPICLELFEDPLLLPCAHSLCFSCAHRILVSSCSSGESIEPITAFQCPTCR
YVISLNHRGLDGLKRNVTLQNIIDRFQKASVSGPNSPSESRRERTYRPTTAMSSERIACQ
FCEQDPPRDAVKTCITCEVSYCDRCLRATHPNKKPFTSHRLVEPVPDTHLRGITCLDHEN
细胞核膜里面有这3个蛋白质序列:
>O95866
MAVFLQLLPLLLSRAQGNPGASLDGRPGDRVNLSCGGVSHPIRWVWAPSFPACKGLSKGR
RPILWASSSGTPTVPPLQPFVGRLRSLDSGIRRLELLLSAGDSGTFFCKGRHEDESRTVL
HVLGDRTYCKAPGPTHGSVYPQLLIPLLGAGLVLGLGALGLVWWLHRRLPPQPIRPLPRF
APLVKTEPQRPVKEEEPKIPGDLDQEPSLLYADLDHLALSRPRRLSTADPADASTIYAVV
V
>Q7Z602
MPGHNTSRNSSCDPIVTPHLISLYFIVLIGGLVGVISILFLLVKMNTRSVTTMAVINLVV
VHSVFLLTVPFRLTYLIKKTWMFGLPFCKFVSAMLHIHMYLTFLFYVVILVTRYLIFFKC
KDKVEFYRKLHAVAASAGMWTLVIVIVVPLVVSRYGIHEEYNEEHCFKFHKELAYTYVKI
INYMIVIFVIAVAVILLVFQVFIIMLMVQKLRHSLLSHQEFWAQLKNLFFIGVILVCFLP
YQFFRIYYLNVVTHSNACNSKVAFYNEIFLSVTAISCYDLLLFVFGGSHWFKQKIIGLWN
CVLCR
>Q8N1M1
MTVTYSSKVANATFFGFHRLLLKWRGSIYKLLYREFIVFAVLYTAISLVYRLLLTGVQKR
YFEKLSIYCDRYAEQIPVTFVLGFYVTLVVNRWWNQFVNLPWPDRLMFLISSSVHGSDEH
GRLLRRTLMRYVNLTSLLIFRSVSTAVYKRFPTMDHVVEAGFMTTDERKLFNHLKSPHLK
YWVPFIWFGNLATKARNEGRIRDSVDLQSLMTEMNRYRSWCSLLFGYDWVGIPLVYTQVV
其他的位置也给了类似的样例。好了,来个测试样例:
>P60880
MAEDADMRNELEEMQRRADQLADESLESTRRMLQLVEESKDAGIRTLVMLDEQGEQLERI
EEGMDQINKDMKEAEKNLTDLGKFCGLCVCPCNKLKSSDAYKKAWGNNQDGVVASQPARV
VDEREQMAISGGFIRRVTNDARENEMDENLEQVSGIIGNLRHMALDMGNEIDTQNRQIDR
IMEKADSNKTRIDEANQRATKMLGSG
请问他位于哪个位置?
你用肉眼是看不出来,对不对?跟谁也不太像,那怎么办?字符串比较像不像太难了。
“机器学习”的核心思想就是把这些难于比较的东西(比如字符串、语音信号、图片等等),统统转化为向量(向量就是矩阵的一行,就是几个数)。
字符串比较难计算相似度,但向量很容易啊,欧氏距离就可以了,对不对?
把字符串(或者图片、语音信号)转化成向量的过程就称为“特征提取”(feature extraction),这个向量就称为特征(feature)
怎么提啊?最简单的:统计一下每个字母出现的频率。蛋白质序列中只有20个字符(注意不是26个,氨基酸只有20种)每个字母出现的频率计算一下(比如A出现了10次,序列长度为100,那就是0.1咯),一条序列就变成了一个20维的向量(就是20个数值),对不对?
你把训练集中所有的样本都转化成20维向量,测试集的样本也转化成向量,计算一下他们的欧氏距离,测试集的样本和训练集中的哪个最近,就猜是跟他一样的位置。可以吧?这种预测(分类)方法就称为 “最近邻”。
当然这种分类算法比较土,还有很多高大上的算法,如:支持向量机、随机森林、集成学习。
好了,如果明白了,自己上网查一查以下概念:
分类、训练集、测试集、样本、特征(属性)、交叉验证(这个我没讲,自己理解一下)
后续工作:
1. 数据收集。要整理好细胞一共有多少个位置,每个位置上都有哪些蛋白质,有没有哪些蛋白质出现在多个位置?
2. 算频率这个特征提取算法太土了,有很多高大上的办法,前面的帖子有很多现成的源代码,只需要运行就可以。
3. 最近邻这种分类器也太土了,也有不少算法,也有现成的软件,如weka。
4. 你的工作就是尝试,哪种特征配合哪种分类器效果最好?试出来就行。这就叫做实验。
多说几句:
别觉得蛋白质这玩意没意思又没用,实际上在教你如何用“机器学习”的思想进行预测,“黄色图片识别”、“语音识别”、“指纹识别”、“复杂仪器的故障诊断”用的都是一样的方法。你学会了这个,可以去干你感兴趣的事情。只不过那些工作要么数据难获得、要么论文不好发。菜鸟阶段,先干点经济实惠的,学有所成了你再去整高大上的。
|
|