科研生涯初期遇到了挫折该怎么办?
丁香园
1118
挫折从来都是存在的,关键是我们怎么看。一帆风顺并不都是常态,越是价值高的事情风险也越大,失败的可能性也越大。问题是,我们是否甘愿冒这样的风险。
从小我就梦想成为一名科学家。小学的时候,几本《我们爱科学》《少年科学》和《动脑筋爷爷》托起了我对科学无穷的想象。1993 年早春的上海,当我第一次跨入中科院上海脑研究所大门参加研究生面试的时候,我的激动无法形容。
作为导师,都希望自己的学生能力很强,实验时不用太操心,但是刚读研究生的时候,我确实什么都不知道,导师对我也有点头痛。本科时学的医学知识根本派不上用场,我的实验需要更多自己从来没有学过的东西:电子学、计算机硬件编程、动物训练、电极制作、文献阅读等等。
湖南话所说的「霸蛮」就是「不服输」的意思,尽管上海的饭菜甜腻腻的,吃的让人浑身发软,但是一瓶辣椒酱就足以让人精神振奋,就靠这辣子产生的「霸蛮」,让我跨过了研究生时期一个又一个的坎。
微电极是决定我们实验成败的关键因素之一,但当时在中国买不到现成的,只能自己动手做。不知道失败了多少次,以至于每天早晨起床的时候我就开始隐隐地感到恐慌,晚上躺倒在床上的时候又觉得「真好,这一天总算过来了」的欣慰。
那段时间,我知道自己有点抑郁,好在自己学过医,知道怎样调整自己。那段日子里,我曾经对导师豪言壮语:哪怕做一万根我也要做出一根合格的!自己想想都好笑,导师也就只能苦笑一下。
每天就在调整机器参数中单调地过着,直到我师弟的到来,气氛总算活跃了一些。也多亏了这个师弟,我们终于找到了一个很好的模式,把合格的微电极的产量提高了,这下导师总算开心了,我也能睡个安稳觉了。
但是,一波刚平一波又起,我们实验室负责软件编制的技术员要下海创办自己的公司,导师要求我必须赶在他离开前掌握实验设备全部的 C 语言代码(我们实验室自己编的 DOS 下数据采集的软件),这是我刚读研究生的第 3 个月。
幸好从高中起我就对 BASIC 语言编程感兴趣,本科的时候还自学了 PASCAL 和 FORTRAN 语言,所以,C 语言也没什么大不了的,只是春节不能回家过年了。当时的电脑真是金贵,但为了支持我学习电脑编程,导师慷慨允许我使用实验室的那两台电脑(1 台 286 和 1 台 386)。这样连续地干了 3、4 个月,我总算把这些代码基本上掌握了。现在回想起来,没有那时的压力,哪有我现在的能力?
刚到美国 NIH 做博士后的时候,也遇到了类似的情况。在我之前的一位博士后因为程序编写错误,导致动物训练失败。由于她已经离开了,所以导师叫我尽快掌握如何编写他们的程序,好尽早恢复动物训练。真是压力山大啊,我对新的科研、生活环境还不适应,就要立刻上手实验,真是内心忐忑啊。
好在他们的程序和 C 语言差不多,几天后我就对他们的技术员说,让我去看一下代码是怎么运行的吧。看了之后,我心里有数了,一周后,我就可以独自修改和运行他们的程序了。他们的技术员也是个软件高手,说我掌握他们代码的速度太快了,其实我心里想:这还不是被逼的。
在我开始训练动物行为的几个月之后,导师就和我一起开始采集脑电数据。数据出来后,导师亲自教我用他们引以为豪的软件进行数据分析,我内心当时很感动,但是对于他们那个 DOS 下的分析软件,实在是不敢恭维:纯手动,还两个屏幕来回切换,My GOD,这也太笨了。用了几次他们的软件后我真要崩溃了。我心里想,这哪是什么自动化,纯粹手工劳动。
一个下午就只能分析一个上午采到的数据,只要一天不分析,我就得加班了,这哪是人干的事?思前想后,我觉得自己应该编一个 Windows 程序解决这个问题。后来每天的下午导师看到我像是不在分析数据,就好心提醒我要及时把数据分析完,我口头上答应着。
大约一个半月之后,我请导师过来看看我的数据分析情况,结果他发现:我的新软件可以一次性把几十个上百个数据一个个打开、分析处理、结果储存,两天就干完了那两个月的工作量。从此之后,他再也不提他们那个引以为豪的软件了。
结束博士后工作回国之前,为了给导师留下一个完整的数据而不只是一堆堆的实验记录,我因此把所有的数据包括扫描实验记录(纸)后的电子文档都按网页的形式做到了一张光盘上交给他。他看了之后说:这是我见到的最好的数据库!连说两遍。那一年是 2000 年。
在美国参加过一次神经科学大会,给我很深的印象也让我有了更多的思考,这之后我决定把未来的研究方向调整到「计算神经生物学」上。但数学是我的弱项,尽管中学时我得过数学竞赛的第一名,但在医学院,教的却只有最基本的高等数学。纯粹是由于「计算神经生物学」这个研究方向是如此的前景光明,让我无法不心动,因此决定回国后立刻调整方向。
不仅仅数学我需要补课,分布式并行计算、模式识别等我都需要补课。但是光有补课的想法是不行的,从哪里入手才能够「学以致用」呢?我想到了实验中最让我窘迫的地方:脉冲分离。这是我们在记录脑的神经元胞外动作电位(又称,脉冲 spike)的时候要用到的一个技术,目的是把这样的电位根据其波幅和波宽加以实时(在线)区分,然后分析不同的脉冲与我们给予的各种刺激或动物行为之间的关系。
我在研究生期间用的设备最多可以区分出 2 种脉冲,手工调整参数。博士后期间在 NIH 用的设备 MSD 最多可以区分出 4 种脉冲,也是手工调整参数。假如我们要使用当时刚刚出现的、先进的多通道记录技术,就会发现,如果每个通道(一个通道使用一个 MSD)可以区分 4 种脉冲,那么更多的通道就需要更多的 MSD,当时我用一个 MSD 就已经有点手忙脚乱的了(由于神经脉冲稳定的时间不长,所以需要在最短时间内调节好 MSD 的参数,而微电极每找到一个好的位点就要重新调节一次参数),多个通道我怎么做得了?
忽然我想到一点,就是用计算机存储信号之后再用软件的方式做离线脉冲分离,虽然可能有点事后诸葛亮的味道,但是这样在做多通道记录的时候可以减轻人的体力劳动,结果也并非不准确,还可以防止不稳定的脉冲信号丢失。后来这种技术的发展证明了我当时的想法,此乃后话,略去不表。
但是,做这个离线分离软件该从什么地方下手呢?我先查阅了文献,了解到了一些数据分类的方法和算法,以及人工神经元网络技术等。2000 年回国之后,边自学模式识别技术,边开始写代码,在 2002 年底的时候,我的这个具有自主学习能力的脉冲分类软件就诞生了。
2003 年我到德国马普脑研究所做访问学者,带去了我自己的软件,结果一不小心被那帮同事看上了。起因是商业软件不兼容他们的数据格式,我于是就编写了一个数据转换软件,但后来发现,那个商业软件无法对他们那么大的数据进行分析,还经常崩溃,他们就希望我能帮他们解决这个脉冲分离的问题,因为这是整个实验的基础,如果不区分神经脉冲就无以了解大脑编码的方式。
后来经过近一年的完善,那个脉冲分离软件受到了同事们的热烈欢迎,当时我很有成就感。不过,事情还没有结束。神经电生理实验通常会产生大量的数据,用单核甚至是当时刚上市的双核电脑来做统计分析非常耗时。
幸运的是,马普脑研究所有一个 8 节点的计算机集群。在去德国之前,我在国内就开始了自己搭建集群的尝试,只能够算是刚刚起步。到德国后,曾经有个周末我连续干了两个通宵,把我自己的三台电脑做成了一个小集群并成功运行,后来再使用马普所的 8 节点集群就游刃有余了。借助那个 8 节点集群,普通电脑花 2 小时的计算,集群只要 20 分钟左右就算完了,同事们都非常高兴。
有时候我在想,如果我当时没有确定新的方向,继续走已经习惯的路,困难可能会比较小,挫折也可能也会比较少,但是却未必能有更多的收获和更大的成功。自学是不容易的,坚持一直去自学,同时还要学会思考如何选择和调整自己的科研目标和研究内容,这些都不是一件容易的事情。
学科的跨度大一些不要紧,因为神经科学本身就是综合性很强的专业,但是不多会几招,今后肯定吃不开。我想,我的这个经历虽然不算什么了不起,但对科学新人来说可能多少会有一些启发的作用。
文章来源:陈南晖,经其授权转载
图片来源:网络