分类目录归档:世界之理

蛋白质谱初等分析工具MScompare

前几天比较闲就写了这么一个东西,主要是之前就有几位同学跟我聊起过这方面的需求。实现起来也没什么技术难度于是就自己动手做了一个可视化的程序。不过讲真如果直接用python命令行处理真的方便太多太多。整个程序自然是完全开源的。

Github地址:https://github.com/Syaoran-Tang/MScompare

以下为readme.md的内容~~

介绍

这是一个设计用来对蛋白质谱结果进行初等分析的工具。也可以用来对比分析多个含有部分相同内容的文本文档工具

功能

  • 支持txt文件和pdf文件(0.2版新增)的读取。
  • 支持对数据集进行增加、(批量)删除、编辑。
  • 对导入的质谱结果集合进行取交集、并集、差集操作。
  • 支持自定义计算式。
  • 推荐数据量总大小<1M,若需处理过大的数据集请移步python或R等更专业的分析工具:-)

下载

https://github.com/Syaoran-Tang/MScompare/releases

使用方法

  • 通过 Import 按钮将数据导入程序,每个文件将对应一个数据集合。

    • 对于txt文件,需要将质谱pdf文件中的分析结果复制到一个txt文件中,保证每一行对应一个基因。
    • 对于pdf文件,程序将自动检索文件中所有含有指定基因号的文本(以一行为单位),程序会排除重复出现的基因号。依PDF文件的大小不一,读取可能会花费一点时间,请耐心等待。
  • 导入的数据集将显示在View面板的左侧,单击选中后,可以看到导入的数据集。在Description列中,提取出的基因号将用$代替,显示在左侧的ID列中,每行的行号显示在行头。
  • IDDescription均可直接编辑(左键双击即可激活编辑);左键单击行号可以选中整行;Shift/Ctrl+左键单击可以连续选中多行;然后可以通过按Delete来删除选中的行。在编辑完成后,需要点击Save来保存对数据集的更改,此时数据集中的行号将重新分配。
  • 程序将 RegEx 框中提供的正则表达式提取每行中的基因号。如果需要提取形如AT1G12345的基因号,可以将正则表达式修改成 AT(\d{1})G(\d{5})。或者需要提取形如 AT1G12345.1 的基因号,对应的正则表达式为 AT(\d{1})G(\d{5}\.\d{1})
  • 在选中了某一个数据集之后,右键单击可以出现RenameInsert两个选项。Rename可以对该数据集进行重命名,程序会自动对每个数据集编号并根据给出的名称重新命名数据集。所以理论上是可以导入多个相同的数据集的(然而谁这么无聊啊=。=)
  • 单击Insert可以将选择的数据集插入到下方的CalculateExp中,当然你也可以自己手动输入(包括Shortcut面板中的几种运算符)。每个数据集用#...#修饰用以和运算符区别。随便输入的话请放心,程序会提~醒你的:-)
  • 计算结果显示在右侧的Result面板中,可以使用Export将结果导出。

致谢

感谢Ryan同学提供测试数据

开源信息/License

以下废话

本作品初衷是为了帮助广大不熟悉编程的同学处理质谱数据,纯属闲暇时的非正式作品。如果有bug或者功能需求可以在github上发表issue留言:https://github.com/Syaoran-Tang/MScompare/issues

2015小狼科技评论

PART ONE:引叙
 
这几天春节我的空间一直很安静,这就好比「城」外是一片灯火辉煌万人空巷的热闹景象,而自己的「城」内却是一派日常宁静的氛围。这也算我自己的一种「个性」吧,中心的Happy Hour我就几乎没正经参加过一次——就算毫无疑问地,我的社交技能已经在几年升了很多级。
 
但是这并不代表我在这段时间里就无所作为。17天的假期(提前偷跑了3天,已经准备好回去接受老板的质问了,各位来世再见 )就好比刚刚打退对方的一波进攻,而在这个间隙你自然不会去“[]~( ̄▽ ̄)~* 干杯~!”庆祝胜利什么的,你要做的是抓紧这个空当处理伤口、装填弹夹、观察对方的动作以预判对方的下一波进攻——了解或者看过我以前日志的朋友应该可以理解这种「战争」式的比喻——所以需要做的事情一点不比“平时”少。
 
前几天家里长辈的老同事来串门,似乎对于我现在的情况甚为欣慰——还是有人来接替他们(科研)的事业。老爷爷很高兴地说道:好好干,这几年努把力,这辈子立世的资本就有了。我也马上说表示我自己也深以为然,我还进一步地提出了一个更为具体的年限——26岁,大概也就是我读到博士的时候。三年之后,自己的能力与成果将决定自己这一生的状态。(当然更遥远的变数是存在的,这里是在强调这个初始值的重要性)
 
这已经是千钧一发的时候了;或者继续用 「战争」式比喻来描述——一场决战一触即发。
 
我在处理问题时、尤其是一些复杂的问题时,习惯将整个问题思考清晰明白了再着手行动。这个习惯谈不上好坏——它既为我带来过优势也曾经把我置于一个非常危险的境地。实际上我家老板也对我这个习惯略有微词。这个习惯无论是对于具体的现实问题还是对于人生规划这些高大上的抽象问题都是有效的。曾经也有朋友说“觉得我这样目标清晰、步骤明确的状态挺好的”,这其实只是个“围城”而已。玩过即时策略或者战棋类游戏的朋友应该理解,“战争迷雾”的有无本身并不会让任何玩家“占起手”。
 

PART TWO:在专业之前
 
这里回顾一下2015年自己的学术/学习进展以及记录一下2016年的学习/研究计划,至于3年后的「决战」到底是什么样,你一定要问我我也只能说无可奉告(蛤蟆脸┑( ̄Д  ̄)┍
 
2015年的学习经历其实让我发现了自己的知识体系的一个漏洞。实际上,我之前对于“现实世界”的认识一直是计算机“数据挖掘”式的认识,这其实是一种畸形的认识。我后来跟华东(经济学专业的好基友)聊到的时候就说的,其实这个科技树的完整情况是这样的:
 
统计学→数据挖掘→机器学习→概率图
 
统计学是亚古兽,数据挖掘是暴龙兽 ,机器学习是机械暴龙兽,概率图是战斗暴龙兽。而不学统计学而直接学数据挖掘的后果就是错误进化成丧尸暴龙兽。
 
我在思考老板给的问题的时候,最开始一直是以一种数据挖掘的思维模式在思考,然而后来才发现这个问题从统计学角度上能给出一个更接近本质的描述。战斗暴龙兽不是随随便便就上的,也就在打小丑的时候才需要,平时打小怪亚古兽就可以处理,杀鸡焉用牛刀。
 
所以我是到2015年才发现自己的知识体系存在着的这个巨大漏洞。虽然考研时也有复习概统,但是那样半桶水的水平离一个像样的“统计学思维” 还差很远,2016年上半年我们也有“生物统计学”这门课,所以说统计学将是一个核心的基础内容。对于这门学科我将用最高标准来研究——这也符合我的习惯。虽然这样做会非常耗时,但是笨鸟先飞呗,2015年我已经完成了一些工作,2016年的任务将相对轻松一些。
 
另一方面,我的学习也很少是线性:机器学习、概率图的学习也在同时跟进之中。说实话概率图让我觉得自己的智商无论测出来有多少那都是个萝卜——概率图好难Orz。但是随着一些基础知识的补进,概率图的学习难度目前呈一个稳定下降的状态。目测2016年可以升级成完全体。
 
以上这些是「认识」方面的安排。讽刺一点地说,就算这样我挠破脑门学习了这方面上千页、页页堆满公式的专著,我也只是有了一个科学的认识世界的能力罢了——你还没有能力去思考、处理这些认识——人类文明在这种时候就显得十分廉价。
 
所以另一方面就是「思考」,准确地说就是要学会一些「工具」的使用。
 
而这方面,“微分几何”首当其冲。
 
多嘴一句,几何学是人类第一门科学,是先有的几何再有的数字。而微分几何则是几何学的现代版,类似于高中代数与线性代数的关系,线性代数是代数2.0,微分几何也是几何2.0版本。
 
微分几何我以前就尝试自学过,不过——很惭愧——实在啃不下去。不过现在情况有所改观,我对其中许多关键概念的理解感到轻松了许多。毕竟,20+岁是一个人的顶峰,一个人智商最高的时候就是这个时候了,你如果现在还学不会这些东西,那你这辈子就别想学会了——我如是自我鞭策着。
 
虽然我的专业明面上是写的“生物信息学”,当下生信的各种时髦工作也和几何学八杆子打不着,但是我对此有着自己的考量:几何学反映的是我们认识、处理现实的一种方式。只要是跟自然打交道的学问实际上都要和几何有上关系——计算机科学其实并不算自然科学,所以这和统计学一样,是一个本科专业造成的知识漏洞。
 
除此之外,广义相对论(关注重点是其中的黎曼几何以及场论处理)、热物理学、经典力学也在知识补全的第一梯队内。这些其实都是大学自己铺开的「战线」的一部分,不过固体物理、量子物理(这个在当时其实占了整个「战线」很大一部分,不信就来看我家我的书架_(:з」∠)_)则暂时不予考虑,这两个的专业性太强,与目前自己的工作相关性不大。
 

=================以下旁注=================
 
这里没有提及生物学相关的知识学习情况,主要是因为生物学的专业学习是我们例行课程的学习内容,是有硬指标在的。所以几乎不用我去操心,生科院已经为我们安排好了满满地一摞学习任务,不想挂科退学就老老实实地学Orz。2015年基本是一周有一篇CNS(Cell, Nature, Science的简称,也有部分PNAS)论文的硬指标,2016年会上升到2~3篇,若要算进“文献组学任务”以及各种缘由的生物、生信专业的文献、专著阅读数,三位数的论文量应该是一个保底水平。
 
不得不说,上生院对文献阅读抓的真紧_(:з」∠)_,我还是很有自知之明的,所以对于生物方面的专业学习我不会给自己定额外的指标,完成学校的指标就是胜利_(:з」∠)_。
 
==================旁注完==================
 

PART THREE:(或许)并不是重点的专业部分
 
读上研究生之后,我可以使用的资源一下子就变得充裕了起来。欣喜之余,也让我感到了不小的紧迫感:资源充裕,从另一个角度说就是你的能力还不足以掌控这么多资源。这对资源本身是一种浪费,对使用者本身也是一种“死于安乐”的“危险”环境。
 
所以说,和中学、大学的资源紧张,考验的是自己对资源和行动的精细设计能力不同;现在急需的是自己专业能力本身的一个提升。但是这是一个辩证的问题,就好比给你了一大片土地,你要在这块土地上建房子。以前土地小,只能建个小平房;现在土地资源充裕了,但是与之相对的,你有建高楼的能力吗?能力和资源并不是一个强相关的关系。
 
所谓的“一鼓作气,再而衰”就是在指做事的“后劲”问题。我在开始着手完成老板分配的第一个任务之后的每几天,就感到一种如同深渊的恐慌——我当时所学的数学已经用的差不多了。即,为了解决那个问题,我已经把我已知的所有数学工具都用得差不多了。这是一个十分危险的信号,意味着我如果想继续往问题的深处发力我将“无子可走”。这就是一个典型的“后劲不足”的情况,虽然这不影响当下任务的完成。这件事的之后,便是统计学的登场,也就是上一个PART在说的事了。我之所以重视这个看来似乎完全不会对当下产生任何影响的现象,也是因为我已经看到了许多的反例,不过对除自己之外的周遭的更多评述已经超出了这篇日志所覆盖的话题范围。
 
资源的充裕其实更考验一个人的规划策划能力。简单地比喻,给你一百元,你或许可以轻松地把它纳入预算规划;如果给你十万乃至千万,你还有信心说自己的方案是所有中最优的那个吗?
 
像《三体》罗辑那样不去使用不对称的富裕资源,其实现实里也是一个聪明的权宜之举——当然这只能是临时的策略。
 
比如我现在就还是不太清楚中心的计算集群到底是个什么样的配制_(:з」∠)_,大部分计算任务还是自己老老实实单机、本地跑了咯_(:з」∠)_
 

PART FOUR:(不负责任的)展望
 
最后侃侃稍微遥远的未来吧,我现在把自己的人生级追求具体为两个方面、三个问题;目前就在着手解决第一个问题,我所谓的26岁立局也是指的第一个问题的顺利解决。自然,这第一个问题目前看来是三个问题中比较简单的一个。
 
但是就算如此,我也期待在最后解决的时候能给世人一个“这个结论是如此的震撼,以至于都不敢相信它是真的,但是整个推理过程看起来似乎又没有什么问题”
 
这也只是我在追随效仿历史上的另一位人物罢了,阿尔伯特·爱因斯坦。
 
后世有人这么评价爱因斯坦:“这种尊敬并非来源于体育或娱乐上的成就,而是来自对人类智慧力量的赞叹”。
 
是的,其实爱因斯坦到底在物理学界排行第几这我并不关心,有些工作是否是我第一个完成的也无所谓,我所期待与追求的,不是其他,而是我们对于我们自己以及美好未来的信心。

落后的生物学 · 上

高中后期,生物学第一次作为一个需要长时间涉足的「人生级」学科进入了我的视野。而之前的很长一段时间,我的目光都一直集中在物理学,这个转折已经被讨论了很多次,这里附一下结论吧——(这个转折被我视为)自己人文主义思想的觉醒。

然而从高三算起,从我意识到“生物学很重要”到我真正涉足生物,也有4-5年的间隔。在我在东秦学习计算机相关的时候,我对生物学中缺乏数学的情况一直抱有一种奚落的态度。因为无论物理还是计算机,理论还是工程,当时的我目之所及的地方全是数学王国歌舞升平的景象。我当时的认识可以概括为“生物学太low,所以没有多少数学”。

也只有在我真正踏上生物学的疆土之后,我才开始意识到事情并非我所想的那样简单。大学后期有这么一个中二设定(脑洞)很受我和Spock的欢迎:我们都是屠龙者,做研究就是去猎杀黑龙。其实计算机这种场景的既视感并不明显,因为无论怎样,计算机还是人自己造出来的东西。然而另一方面,生物学却是一个和自然直接打交道的学科。我来逆境中心实习时找老板要了一个任务以求练手与熟悉生物学,当时的情形请允许我继续用那个中二的设定来描述——

黑龙是对王国的一个巨大的威胁,斩获一个黑龙对王国也大有裨益。王国每年都会招募公民并培训成为勇者去斩杀黑龙。我在王国中的训练场中接受了四年的训练,熟悉黑龙的习性,学习黑龙的知识,日复一日的训练……我这四年间也听了太多前方某某勇者又一次英勇地斩杀一条黑龙的传奇故事。然而当我真正踏上战场,一头真实的黑龙就出现在我面前的时候,之前所经历所设想的一切都黯然失色,我又握紧了一些手中的剑,因为我非常清楚一点,一旦我松开了手中的武器,我必死无疑。

也是在真正接触生物之后我才意识到:根本不是生物学太low,所以没有数学;而是数学太low,根本够不上生物。

无论是学控制工程还是学图论,你所遇到的问题或许大概都长这样——

IMG_20150928_110719

就算这模型(无论是看成一个控制系统亦或是图论里的图)看起来十分简单,但是已经足够产生很多有意思的东西了。稍微复杂一点也无非是几个这样的模型的叠加。

那么生物学呢?生物学的问题当然也可以抽象成这种点与线的组合,同样来个例子,生物学里的网络一般都长这样——

_20151103_204306

我反正第一次见到这头黑龙的时候心中只有一个想法——WTF……

物理学中经典的三体问题至少还是方程可列不可(解析)解,那生物学的这些问题就已经近乎我们连方程都列不出来的地步了。这下我也逐渐理解为什么生物学对于数学是如此的匮乏了。

上个世纪初物理学迎来大变革的那段时期,物理学家大概可以分成两派——实验物理与理论物理,实验家精于设计实验的精妙,理论家长于思维逻辑的严谨,大家既竞争又合作共同推进了物理学的发展。其中最经典的例证之中肯定有“隐变量理论”和“阿贝尔实验”了。

反观生物呢?事实上生物学也可以强行分为实验和理论,然而这种划分意义不大的原因在于,生物学的研究对象与过程之广之杂,使得我们实验做了很多,但理论却还寥寥无几。现在期刊上的生物学论文凡涉及多次重复实验的都会要求作者给出一些基本的诸如P值的统计信息,然而遗憾的是故事就到此为止。如果这个故事放在以往的天文,物理,这仅仅是个开始罢了。开普勒等人根据前人的观测数据总结出的行星三大定律,通过X光衍射结果推论原子的结构等等经典案例不胜枚举。

生物学所遇到的问题就是因为研究的现象复杂度远远高于物理等其他自然学科,导致学科发展到统计一级之后就步履维艰,有时能把这个现象清楚地描述出来就已经是天大的成果(比如今年诺奖所涉及的剪切体和基因修复),就更别说将这些现象进一步提炼与抽象了。

所以在我这样一个从物理、数学王国中成长起来的人看来,生物学完全就是一片“荒芜的沃土”……这里没有数学王国的歌舞升平,但也正因如此,生物学才蕴藏了太多的可能性。

Syaoran

2015年10月12日

化学家都是用绳命在做实验我这辈子遇上的第一次事故——班里一个同学配置重氮液,不知怎么回事,瓶子炸了,重氮液溅了我们满身满脸。重氮液的毛病是溅到皮肤上洗不掉,一块黄。女生们都差点儿自杀!因为被毁容了。我们男生倒是很淡定,知道最多半个月也就下去了。就是全班同学走到大街上比较拉风,路人纷纷以为我们是附近剧组拍魔幻剧演小妖精的群众演员没卸妆。

大学里面遇到的第二次事故——实验室做灰分试验,每个人领了一个白金坩埚在高温炉里面烧。温度我没记错的话是摄氏九百度。有个同学往外套坩埚的时候,手一抖掉地上了,噌的一下就着火了!然后弟兄们就拿脚踩,班座神勇地拿来了灭火器,喷了大概五分钟才灭掉。本来学校打算处罚我们,但我们问,地上有防火毯怎么会燃烧?学校就今天天气不错哈哈哈了。我们都工作后有了经验,聚在一起说,那什么防火毯啊!就是普通的防滑绝缘毯!

再后来,我深刻地意识到,如果你学不会一样本领,那么在化工领域你早晚要死!那个本领就是:灭火!

百度贴吧有个兄弟跟我说,他们那里着火,他们用脚踩,然后火顺着一个人的鞋子烧上来,最后那人被烧死了。这个故事,我是信的。

在一次消防培训上,老师清楚地讲道:“化学起火,微乎其微的火,你可以尝试着自己用消防沙石棉布之类去灭;如果你觉得这个火用脚能够踩灭,那去找灭火器,别踩,踩只会把自己烧伤;如果你觉得这个火手持灭火器能灭,就去找板式灭火器或者灭火车;如果你觉得这个火得用灭火车才能灭掉,赶紧跑!”

前单位曾用叔丁基锂做一个中试,这玩意儿特别易燃,谁也没用过,所以第一次特别小心。然后,头三次投料屁事没有,人就放松警惕了。

有一次放料完了,管路就扔在一边。眼看着管路里面的残液往地上流,工段长招呼清洁员擦一下。清洁员答应了就往那儿走。这时候,叔丁基锂发烟了,毫无预兆地,就引燃了。

最牛的是,那团火离开了地面,飘起来了!我们可是一个年产能万吨的大型炼化厂,里面有一个火球是什么概念?五A级安全警报啊!

当时所有人都急了,抄起灭火器就追上去喷啊!这时候更牛的事情出现了。叔丁基锂火球被灭火器一喷,碎了,每一个碎末都是一个小火球,四处飘,做布朗无规则运动。当时我双脚一软,心说吾命休矣!

一旦有一个反应釜爆炸,就是几百个的连锁爆炸,方圆几公里都夷为平地了,还跑个毛啊!

全厂所有人都被发动起来了,灭火器、防火毯、消防沙、阻燃网,能用的全用了,几百人全厂追火球!都怕死啊!

最后终于把所有火球都扑灭了,全厂八百多人彻夜没睡,把每一个角落都筛了一遍,确保没有安全隐患残留。然后那个项目当场下马。而且,今后再也不接需要用正丁基锂和叔丁基锂的项目!

那次是我在化工行业,距离死亡最近的一次,那真是生死一线!

还有一次,厂里硫酸釜罐用碱水中和(溶液是浓硫酸),滴加百分之六十氢氧化钠水溶液中和,发生了喷料!五百升反应釜,产品混合着浓硫酸从入料口直接喷出来。

现场包括我在内的七个人都被大量硫酸喷到了身上。我们六个男的当场脱衣,就近用进水管(去离子水)冲。那是十一月,穿得比较厚。就算这样,用凉水冲的时候,也感到了特殊的滑腻感。

我们六个人一点事都没有,可是,还有一个女的!大姐不好意思在我们面前脱光,跑到女厕所,跑过去的时间不会超过三分钟。就这,已经来不及了,水一冲,皮肤大片脱落,血流得哗哗的!大姐呼救,被送往医院,在路上就死了。

大姐跑出去我根本就不知道。有个工人年纪轻脸皮薄,想穿着内裤洗,被我直接骂了:想活就全脱了,再晚几分钟小鸡鸡就烂了。我们还没冲完呢,外面就乱了,说大姐浑身是血。当时那个不肯脱内裤的小孩脸色马上就变了。后来我们冲到浑身冻麻木了,洗不动了,才停。

再说一个真事,某大学的一个博士做一个反应,用到了氰化物。按实验室规定,所有反应液、瓶子、药勺、冷凝管、称量纸必须在高锰酸钾水溶液里面泡的。但那天博士的高锰酸钾用完了,他找了个废液缸,倒了进去。

倒完才突然想起,废液缸的pH没测,赶紧丢下瓶子往门口跑,结果没跑到门口就扑街了。快三十的大小伙子,就这么没了。

当年我就读化工大学的时候,实验如有违规操作的行为,厚厚一本药典,老师直接砸头!

几乎所有的化学、化工事故都可以归结为:违规操作。

如果你打算毕业后进实验室或者进工厂搞生产,那么,现在你必须牢记老师的每一个动作,反复直到它成为你的条件反射,你必须将规范的操作刻进你的骨头里,成为你生命的一部分。

因为只有这样,你才能在这个行业里生存,这个生存,指的就是字面的意思!■

(来源:《青年文摘·彩版》,摘自《工作虐我千百遍,我待工作如初恋》 图/墨者)


之所以特意转这个状态过来,是因为这种事件对于我,对于Sola的许多人来说都是有亲身经历,有血的教训的。或许中二时期的那些瞎鼓捣连什么“违规操作”都算不上,但是正因为是过来人,所以现在的我们对于安全操作的问题有了一种更严肃的态度。透过作者诙谐的行文,我们应该沉下心来思考这个极端严肃的问题——

因为只有这样,你才能在这个行业里生存,这个生存,指的就是字面的意思!