<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2019s on TouchingFish.top</title><link>https://touchingfish.top/2019/</link><description>Recent content in 2019s on TouchingFish.top</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 28 Dec 2019 00:00:00 +0000</lastBuildDate><atom:link href="https://touchingfish.top/2019/index.xml" rel="self" type="application/rss+xml"/><item><title>毕业了吗（FAREWELL）</title><link>https://touchingfish.top/2019/farewell/</link><pubDate>Sat, 28 Dec 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/farewell/</guid><description>&lt;p&gt;记刚刚过去的2019年。&lt;/p&gt;
&lt;p&gt;一直记得程老师帮我改完论文后的邮件落款：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;祝&lt;/p&gt;
&lt;p&gt;考上&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="坚持就能考上"&gt;坚持就能考上&lt;/h3&gt;
&lt;p&gt;寒假异常的煎熬。对未来的迷茫和焦虑，像一层透明的膜裹住呼吸——撕不掉。大概是扛过一次抑郁症的缘故，心理的免疫系统强化了不少，不至于彻底丧失学习和生活的热情。&lt;/p&gt;
&lt;p&gt;日子过得随意自在。每天除了思考人生，就是抽空写写毕业论文。给自己定的目标，是在寒假把初稿发给导师。有时候才思泉涌，忙到一两点也不觉得累。也在失眠。对考研成绩还抱有一点期望——就那么一点。成绩出来前几天最难熬，于是通宵打游戏，假装这样就能骗过大脑。偶尔也搞&amp;quot;忏悔学习法&amp;quot;，刷学习区的视频来助眠。&lt;/p&gt;
&lt;p&gt;今年开发的最强技能大概就是写论文了。记得在朋友圈打卡毕业论文进度的时候，有一种微妙的&amp;quot;优越感&amp;quot;，一心想表现自己进度快，效率高。同学们在准备过年的时候，我的论文已经开始动笔，每天两三千字。现在回想起来，初稿简直——行文繁冗词不达意，逻辑含混不经推敲。却自以为是厚积薄发，学习能力和积累的知识在这一刻得到了施展。内容还算充实，完成度也比去年学长学姐稍高一些。老师话，应付答辩绰绰有余。&lt;/p&gt;
&lt;p&gt;我还是有自知之明的。发给程老师前，对初稿反复修改。每天看一遍自己写的文字，都能找出新的尴尬。重新以读者角度看论文，大到语言逻辑，小到错字病句，全部暴露出来。阅读，修改，阅读，修改……比查文献写初稿更费心。不禁感慨：能写出不需要太多回顾和修改的文学作品，作者功底得有多深。先让自己满意，再争取别人满意。如期把修改后的稿子发给了程老师。&lt;/p&gt;
&lt;p&gt;写论文期间，考研成绩公布了。睡到中午才起，查查成绩，给自己一个交代。怀着那点期望，所以没认真考虑毕业后的工作和生活。有时也做好失利的准备——上网看招聘信息，了解本地行业，徒增焦虑。这是我失眠的原因。分数比估分高了一点。学长说&amp;quot;坚持就能考上&amp;quot;，原来是真的。生化意料之中地挂了考完就知道。&lt;/p&gt;
&lt;p&gt;松了口气，今晚或许能睡着。迷茫，却抱有幻想。想以科研为业，又希望多些校园时间来寻找答案。下午轻松回复朋友的关心。家人不知道今天出成绩。他们本来就不关心这些，连我考试都不知道，更别说查成绩了。只看到我今天好像挺开心。这是我的郁结。理解两位老人文化水平不高，接收的消息闭塞落后。上周末还在&amp;quot;重新做人&amp;quot;，想通过完成一件事证明自己。于是盯上下学期的英语考试——本科最后一场四六级。 六级没过，总归有点遗憾。夜深人静时胡思乱想，打开背单词软件，但刷了半小时朋友圈。&lt;/p&gt;
&lt;p&gt;回想起考研的两个初衷，一是追逐越来越优秀的老朋友们，二是希望换个环境，远离不靠谱的人群。&lt;/p&gt;
&lt;h3 id="家门口的大学"&gt;家门口的大学&lt;/h3&gt;
&lt;p&gt;毕业后直接到家门口的大学报到上班。和复试时认识的两位同学再次相见，大概真的有缘分成为朋友。同门都是极好的人，我们常常在食堂一起吃饭，聊各自的课题，聊未来的打算。可惜我是个内向又慢热的人。他们在一起有说有笑的时候，我常常只是听着。等我想好说什么的时候，话题已经换了三轮。不是不想融入，是不知道怎么自然地加入一段对话。&lt;/p&gt;
&lt;p&gt;导师则是另一个故事。组会上的否定，不是针对学术观点的讨论，是一种居高临下的审视。我渐渐发现，自己不是在做研究，是在揣摩。台风天还是要来实验室打卡，开会到凌晨，加班到深夜。有一次我经过师姐的工位，看她趴在桌面上肩膀微微耸动，走近才听见压抑的啜泣声。我不知道能说什么，在大家回去午休的时候买了一包糖放在她的抽屉里。后来听说，有位刚刚出站的博士后回了马来西亚，不能回来继续工作。师兄师姐私下议论，语气平淡得像在说天气——他是故意的。大概这地方，确实让人看不到什么希望。一位原本计划明年来读博的师姐，提前过来当科研助理，想先熟悉环境。结果一个星期没到就跑路了。&lt;/p&gt;
&lt;p&gt;离开前的那段时间，我一直在跟同门聊。大家知道我想走，没有太多追问，只是鼓励我出国留学，说趁年轻出去看看。我的离开也让他们总算可以理直气壮一回——有人真的退学了。快开学的时候，我交了一篇论文草稿——今年开发的最强技能，到底还是派上了用场。收拾了工位上的东西，和大家吃了顿饭。没有太多解释。他们大概也理解，有些事情不需要说得太清楚。&lt;/p&gt;
&lt;p&gt;回家十公里的车程，刚好下了一场大雨。后来才知道，退学的那段时间，妈妈去医院检查出了小三阳和糖尿病。家门口的大学，本来可以离家近一点。这件事让我内疚了很久。&lt;/p&gt;
&lt;h3 id="毕业了吗"&gt;毕业了吗&lt;/h3&gt;
&lt;p&gt;离开后，回到了本科母校。处理被退回学籍室的档案，原以为已经画上句号的本科四年突然又被翻出来，重新走了一遍毕业生流程。暂时住在XCG老师分配的宿舍里——一间朝北的小房间，窗外正好对着操场，晚上偶尔有学生跑步的脚步声。白天我在宿舍里投简历，查雅思备考攻略，偶尔和以前的老师一起吃饭。正好是一年一度的校运会，一时不知道自己是毕业了吗。这问题听起来矫情，但真的答不上来。XCG老师介绍了他的研究生同学给我认识，一位转行做房地产销售的师叔。偶尔也会来宿舍小住几晚，我们相处得不错。有一次我去厦门面试，他带我在厦大逛了逛。&lt;/p&gt;
&lt;p&gt;终于找到一份过渡性的工作。那天晚上，我正在公司宿舍里吃外卖，家里微信群里弹出一张爸爸在急诊室口吐白沫的照片。心梗倒在路边，被路过的交警送到了医院。&lt;/p&gt;
&lt;p&gt;算是非常幸运了。&lt;/p&gt;
&lt;p&gt;到医院的时候人已经昏迷，很快就推进了重症监护室。住了数日，各项检查结果陆续出来，医生说要手术。肾脏指标不太理想，医生提了一句，做造影和搭桥，以后要透析。&lt;/p&gt;
&lt;p&gt;办离职的日子是平安夜，买了回家的车票。最后一次去XCG老师宿舍带走之前留在那里的一些行李，并给他发信息留言。XCG老师知道后，竟然从办公室赶来车站，把学生送给他的苹果递给我，让我带给爸爸。我坦白和父亲关系不好。其实很尴尬。父子之间有些话很难说出口，平时各忙各的，逢年过节坐在一起吃饭也是各看各的手机。那天在车站接过苹果，不知道该说什么好。做好了最坏的打算——如果他走了，以后跟妈妈相依为命。XCG老师表示理解。沉默了一会儿，他又说，你都这么大了，有些事急不来。我点点头，不知道他是在安慰我，还是在安慰他自己。&lt;/p&gt;
&lt;p&gt;上车后我哭了。不是为爸爸，也不是为自己。是一种不知道这半年在做什么的心情。退学、找工作、家人的身体健康——所有事情挤在一起，像一锅煮沸的粥，咕嘟咕嘟冒着泡，却看不出到底是什么。列车开出去很远，车窗外的风景一路往后退，我靠在座位上，眼睛肿着，心里空荡荡的，却奇妙地平静了下来。&lt;/p&gt;
&lt;p&gt;我毕业了吗？好像毕了。又好像没有。考上研究生，又退学。论文写了，又只交了草稿。一年下来，演了很多角色，没一个演到最后。日子平静了些。只是偶尔在深夜，想起那扇实验室的天花板，想起那些本可以成为好朋友的同门。&lt;/p&gt;
&lt;p&gt;毕业了吗？大概吧。&lt;/p&gt;</description></item><item><title>海水与淡水环境下日本鳗鲡多组织差异表达基因分析</title><link>https://touchingfish.top/2019/anguilla-japonica-deg-analysis/</link><pubDate>Thu, 15 Aug 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/anguilla-japonica-deg-analysis/</guid><description>&lt;h2 id="摘要"&gt;摘要&lt;/h2&gt;
&lt;p&gt;本研究对海水（SEA）与淡水（TAP）环境下鳗鲡的三个关键组织（脑部、性腺、胸鳍）进行了差异表达基因（DEG）分析，旨在揭示鳗鲡在盐度适应过程中的转录组响应机制。&lt;/p&gt;
&lt;p&gt;主要发现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全局分析（控制组织效应）鉴定出 422 个 DEG（303 上调，119 下调）&lt;/li&gt;
&lt;li&gt;脑部对盐度变化最为敏感，共鉴定出 500 个 DEG&lt;/li&gt;
&lt;li&gt;三组织共同显著（交集）的核心响应基因共 8 个，全部在海水环境中上调表达&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;主要结论：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;日本鳗鲡对盐度变化具有组织特异性的转录组响应，其中脑部响应最强，胸鳍最保守。&lt;/li&gt;
&lt;li&gt;海水环境激活了更多基因（全局分析：72% 上调），表明海水盐度环境促进了特定的基因表达程序。&lt;/li&gt;
&lt;li&gt;不同组织的响应模式差异反映了组织特异性功能对环境盐度的差异化适应策略。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="一材料与方法"&gt;一、材料与方法&lt;/h2&gt;
&lt;h3 id="11-样本信息"&gt;1.1 样本信息&lt;/h3&gt;
&lt;p&gt;实验选用的是2017年5月31日在泉州地区购买的非野生养殖鳗。购买时，挑选体重300g - 1000g，体型较鼓，胸鳍圆钝、颜色深，背黑腹银的鳗鲡。此为下海前雌性银鳗的典型特征，形态学上雌雄鉴别的准确率约为90%&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;从5条非野生鳗中随机挑选3条进行盐度驯化，与淡水养殖的鳗鲡形成对照。每日定时添加6.6‰海水盐，到第五天，实验组鳗鲡所处环境达到30‰左右的盐浓度（海水盐度约为35‰），模拟日本鳗鲡洄游入海的盐度变化过程。&lt;/p&gt;
&lt;p&gt;取样时，将全部5条日本鳗鲡经冰水处理达到麻痹的效果，之后可进行形态指标的测量及解剖。每条日本鳗鲡各取脑部、性腺及胸鳍作为RNA测序样本，为避免RNA水解，取下后立即投入液态氮中冷冻保护。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;样本&lt;/th&gt;
 &lt;th&gt;体长（mm）&lt;/th&gt;
 &lt;th&gt;体重（g）&lt;/th&gt;
 &lt;th&gt;水平眼径（mm）&lt;/th&gt;
 &lt;th&gt;垂直眼径（mm）&lt;/th&gt;
 &lt;th&gt;眼间距（mm）&lt;/th&gt;
 &lt;th&gt;吻长（mm）&lt;/th&gt;
 &lt;th&gt;胸鳍长（mm）&lt;/th&gt;
 &lt;th&gt;胸鳍宽（mm）&lt;/th&gt;
 &lt;th&gt;肛门到腹鳍起始端（mm）&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;SEA_1&lt;/td&gt;
 &lt;td&gt;695&lt;/td&gt;
 &lt;td&gt;553&lt;/td&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;15&lt;/td&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;35&lt;/td&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SEA_2&lt;/td&gt;
 &lt;td&gt;650&lt;/td&gt;
 &lt;td&gt;570&lt;/td&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;30&lt;/td&gt;
 &lt;td&gt;20&lt;/td&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SEA_3&lt;/td&gt;
 &lt;td&gt;680&lt;/td&gt;
 &lt;td&gt;600&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;30&lt;/td&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;TAP_1&lt;/td&gt;
 &lt;td&gt;675&lt;/td&gt;
 &lt;td&gt;610&lt;/td&gt;
 &lt;td&gt;/&lt;/td&gt;
 &lt;td&gt;/&lt;/td&gt;
 &lt;td&gt;/&lt;/td&gt;
 &lt;td&gt;/&lt;/td&gt;
 &lt;td&gt;30&lt;/td&gt;
 &lt;td&gt;20&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;TAP_2&lt;/td&gt;
 &lt;td&gt;715&lt;/td&gt;
 &lt;td&gt;650&lt;/td&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;15&lt;/td&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;td&gt;27&lt;/td&gt;
 &lt;td&gt;18&lt;/td&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;注：&lt;/p&gt;</description></item><item><title>创业游戏二三事 / Meanwhile</title><link>https://touchingfish.top/2019/entrepreneurship-game/</link><pubDate>Fri, 28 Jun 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/entrepreneurship-game/</guid><description>&lt;p&gt;不幸有一段没有任何成果拿得出手的经历。&lt;/p&gt;
&lt;p&gt;我们是一支跨学院的创业团队。成功人士毕业后直接去给创业公司当CTO了。同为唯二负责技术的成员，我纯抱大腿——希望你能理解是自谦，不是谦虚。帮忙申请专利，&amp;ldquo;研读&amp;quot;过《专利法》，也接触到那些年比较有意思的技术。&lt;/p&gt;
&lt;p&gt;我张罗过一场面向学生的3D打印科普路演和工作坊。&lt;/p&gt;
&lt;p&gt;提前一小时到场调试投影仪，把几台FDM打印机（学生团队预算有限）通电预热，桌上摆好已经打印好的齿轮机构、小摆件、手机支架，学生一进门就围过来看。气氛很快起来了。&lt;/p&gt;
&lt;p&gt;现场拆开一台打印机给大家看结构，解释XYZ三轴运动、步进电机、热端、喷嘴、挤出机、热床分别负责什么。讲得头头是道，其实自己心里慌得很——那台机器前两天刚罢工过，我也不知道能不能顺利跑完这趟。讲到切片软件时，把模型导入软件，让大家直观看层高、填充率、打印速度、支撑生成这些参数如何影响结果。层高越低，表面越细，时间越长；填充率越高，强度提升，材料和时间的成本也跟上去。学生对这些特别感兴趣——他们很快意识到，这和做工程方案时的取舍逻辑一模一样。&lt;/p&gt;
&lt;p&gt;工作坊环节最热闹。大家一起设计简单作品。有人做手机壳，有人做钥匙扣，有人做社团logo。打印机出问题的时候——必然会出问题——我就顺势讲原理，假装一切尽在掌握：首层粘不住是平台没调平，喷嘴与平台间距像&amp;quot;一张纸的厚度&amp;quot;最合适；出现翘边是边角受力和冷却收缩的关系，热床温度可以调高一些；打印出来全是细丝是回抽参数和喷嘴温度过高造成的拉丝现象。卡扣太紧装不上，就说明公差、配合间隙和材料收缩率。很多抽象概念，靠一台机器出错一次，比讲十分钟更容易理解。&lt;/p&gt;
&lt;p&gt;大家一边吹牛，一边看着喷头一层层走线。有团队说实验室正缺摄像头夹具，我就让他们现场建模试试。&lt;/p&gt;
&lt;p&gt;这行当，说到底就是拿着项目招摇撞骗。不过撞骗之余，也顺手做了点实打实的事：打造校企合作的&amp;quot;创业孵化基地&amp;rdquo;，策划并实操项目路演和技术沙龙。倒是有几家千万注册资金的公司入驻，还被中新网报道过。&lt;/p&gt;
&lt;p&gt;师兄师姐毕业后，团队活动逐渐收缩。我转为兼职运作，在学校图书馆申请设立了一个小空间，运营名为&amp;quot;静心茶室&amp;quot;的项目。名义上还是为创业基地宣传，实际上是我&amp;quot;得闲饮茶&amp;quot;交朋友的地方。负责环境布置、校内调研、接待来访，也帮助管理公众号后台和问卷数据分析。&lt;/p&gt;
&lt;p&gt;最有趣的是偶尔遇上一两个脑洞清奇的人。他们不喝茶就是在思考宇宙。我们的对话，每一句都要让对方怀疑人生，有时顺着这些神奇的念头，推演、构想，像是真的要把它做出来。&lt;/p&gt;
&lt;p&gt;如果没有这个创业游戏，我毕业时也许只是一个懂一点「生命科学」杂交「海洋科学」的无聊的人。英语六级、计算机国二、考研，三重经典无趣大学生buff叠满。&lt;/p&gt;</description></item><item><title>结庐从道（In Pursuit of the Way）</title><link>https://touchingfish.top/2019/my-mentor-sd-tsen/</link><pubDate>Sun, 10 Mar 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/my-mentor-sd-tsen/</guid><description>&lt;h3 id="前言"&gt;前言&lt;/h3&gt;
&lt;p&gt;谨以本文记即将过去的大学时光。&lt;/p&gt;
&lt;p&gt;自认为是个记性一般的人，不管是在学习上，还是生活上。我尽量回忆那些值得被记住、被记录的事情。&lt;/p&gt;
&lt;p&gt;以前总是不相信“好记性不如烂笔头”，不爱为了功课做笔记，也不爱在社交网络里记录自己的生活和情绪。幸好，偶然还是留下了一些“线索”，回忆起那位助我敲开学术之门的引路人。&lt;/p&gt;
&lt;p&gt;——2019年春&lt;/p&gt;
&lt;p&gt;在沈阳时，一位爱好金庸的友人说：“你跟你老师的故事，让我想到武侠小说里的师徒。”&lt;/p&gt;
&lt;p&gt;——2023年秋&lt;/p&gt;
&lt;h2 id="正文"&gt;正文&lt;/h2&gt;
&lt;p&gt;四年级上学期的寒假来得很早。因为学分已经修完了，仅剩的一门「食品毒理学」的课程，也在圣诞节后以开卷考的形式结束。&lt;/p&gt;
&lt;p&gt;我还是没有闲暇。刚刚结束考研笔试和期末，便回到了复习期间“恨之入骨”的图书馆。一是为了方便查阅和下载文献，另一方面，这里确实是个承载着我大多记忆的地方。&lt;/p&gt;
&lt;p&gt;我在争取尽快完成毕业论文的草稿。虽然学院对提交初稿的期限，其实是在次年的四五月，但我没那么多时间——这是程老师在学校的最后一个学期。&lt;/p&gt;
&lt;p&gt;第一次见到程老师，是在「生物化学」的课堂上。&lt;/p&gt;
&lt;p&gt;上课前就听亲近的学姐说，学院今年来了一位哈佛毕业的老师。很难想象，这个初印象如此普通的校园里，还能见到来自世界顶级学府的人物。&lt;/p&gt;
&lt;p&gt;这学期他只教两个班，我们班也中奖了。程老师看起来就是个慈祥的人，博学却依旧谦逊。他还总是强调自己是个“左派”，这点让人印象很深。&lt;/p&gt;
&lt;p&gt;当时，我并不能理解「生物化学」这门课里的大多内容，但我领悟到了一种学习方式——选择一部适合自己的教材。为了把“核酸”学个明白，我在图书馆翻遍了至少四本不同的教材。这个办法，在我后来自学「线性代数」时也大有裨益。一下理解了为何国外的课程总是推荐那么多本参考书籍。&lt;/p&gt;
&lt;p&gt;那是我刚刚开始认真思考，自己到底在学些什么。和程老师聊起时，我逐渐明白，我想知道的可能是“科学家是在做什么”。后来，我便跟随程老师学习——我觉得，他是这个问题的答案。&lt;/p&gt;
&lt;p&gt;有一次，参加老师主持的演讲。我赶在正式开始前与他闲聊，了解到他和校长的交情，是让他决定来我们学校工作的原因。三年为期，谁想得到第二年，我们亲爱的校长竟然“升迁”去了厦门。&lt;/p&gt;
&lt;p&gt;从此，程老师在学院里的工作也没那么得意了。先是从特聘教授的专家办公室搬到了公共办公室，更糟糕的是没有自己的实验室。这些年的小实验、组会都是在老师的专家办公室进行。那个房间后来摆放了一套会议用的桌椅，成为一个小会议室，我们还会使用。不养鳗鱼以后，楼下的几个池子就让给了其他老师和他们的学生。原本一起在专家办公室的蒋老师，搬到了楼上的实验室旁，至少他还是有自己的个人办公室。学院知道留不住程老师，自然也不愿花费太多的成本。这大概就是合同工和事业编制的差别。&lt;/p&gt;
&lt;p&gt;程老师任职的第二学年，有几位学长学姐也相继成为程老师的学生，“程爷爷”这个昵称，正是他们叫出来的。&lt;/p&gt;
&lt;p&gt;本科生组成的课题组松快一些，不像研究生天天在实验室打卡。因为组里还没建立起标准的操作和分析规范，我们每周都会做一点实验，大家一起尝试新方法：解剖、组织包埋、冷冻切片和染色观察，药品配制与注射等，并且开会分享近期阅读文献的收获。&lt;/p&gt;
&lt;p&gt;当然，这都是程老师在带头。不过我们也很享受这种状态。大家并不会因为志不在此而感到厌烦，这是十分难得的。组内氛围融洽，现在回想起来仍感到比一般老师和同学亲近。记得每次程老师从台湾回来，都会给我们带礼物，台湾的零食，泡面，书等等。泡面真的和包装上一样，调味包里有“大块的肉”。我喜欢书，书是从左翻到右，排版也是竖着读的，像“武功秘籍”。&lt;/p&gt;
&lt;p&gt;那一年的元旦，我们一起在程老师的宿舍吃火锅，聊川普上任，他送给我们每个人一本由他审订出版的科普书籍——《演化之舞》。这本书刚刚在台湾再版，于是出版社送了他几本，他便带给我们了。然后，他又从书房拿出一本英文的原著，告诉我们他自己也收藏了。当时我选了有点瑕疵，书脊上磕破了的那本。书现在也没有翻看完，也许它对我来说，最重要还是首页上老师亲手写下的新年祝语。也是看了这本书对审订者的介绍，才知道老师的履历这么精彩。&lt;/p&gt;
&lt;p&gt;在跟程老师的相处中，我一直保持着虚心求学的态度。因为这是我在他身上学到的，最宝贵的品质。只有在刚刚开始跟随他学习的时候，他为我们讲解「鳗鱼传说」一书，后来便很少直接面授我们知识，而是让我觉得他在带领我们一起学习。&lt;/p&gt;
&lt;p&gt;我大三那年，学长学姐也到了需要完成毕业论文的时候。作为他们论文内容的这些工作，是组里这项研究的一部分，但也是“开天辟地”的重要一步，帮助建立一些值得探索的假说。&lt;/p&gt;
&lt;p&gt;对他们来说，完成论文可能时间紧迫，一方面需要尽快处理刚刚到手的数据，在高通量测序结果的解读面前，大家都是门外汉；另一方面，除了一位已经确定升学的学长，其他人还未落实毕业去向，所以偶尔要四处参加考试和面试，奔波于家乡和校园之间。&lt;/p&gt;
&lt;p&gt;我决定参与进来，组会结束后，我跟程老师说想学习「生物信息学」，系统地学习和了解自己正在做的研究。程老师很高兴，并表示了极大的支持和鼓励。学期刚刚开始，巧合的是，桑老师正好决定开设这门选修课。这在我们学院还是第一次，于是老师便让我可以找到课表，待上课时去旁听。每周五下午，我和他一起去上课学习。&lt;/p&gt;
&lt;p&gt;其实这门课从设计上还有些欠缺，对学生的编程能力有一定要求（至少现在我觉得入门生信有更好的方式），显然也不太适合程老师。他从未停止学习，只是这位亲身经历过分子生物学革命的教授，似乎并不擅长面对屏幕上的代码。每次假期回来不只带来礼物，还学习了新的技术和技能，如何完整地从头盖骨中取出鳗鱼的脑部，从法国科学家友人学到的给鳗鱼做手术及缝合，甚至还有船舶驾驶……有几位同学很幸运，老师亲自驾船载他们出海。后来，程老师生了一次病，就没再来旁听了。剩下我自己，也不缺席和迟到，在同样的座位。&lt;/p&gt;
&lt;p&gt;学期接近尾声时，因为兄长的毕业典礼，我请假同母亲去了一趟广州。回想起来，最可惜的莫过于错过学长学姐的答辩，没有看到过程老师出席的答辩现场。今年，当我站在同样的位置时，老师却已经回到台湾。不过，拍毕业照的时候，大家都整整齐齐地到场了。那也是我和老师至今最后的合影。学长把学士服借给我穿，让我能有一张穿着学士服和老师一起拍的“毕业照”。&lt;/p&gt;
&lt;p&gt;之后，我拿着他们的毕业论文，每天泡在图书馆里。留意着馆藏有没有相关的新书，因为仅有的旧书都已经翻阅过了。同时也在网络上完成了两门相关课程的学习，认识到比我志向更远的同学，互相鼓励。到了写学年论文的时候，一步一个脚印，总算有所收获。&lt;/p&gt;
&lt;p&gt;有一次，我的电脑坏了，平时没有备份的习惯。我早就意识到，在做研究这条路上，自己其实一直还不够坚定。意外使我第一次明显地动摇。我在程老师面前，和他聊着最新的进展。终于还是忍不住，提起一路走来的焦虑不安，缺少继续在这条前途未卜的道路上走下去的勇气。程老师大概听出我的“言外之意”。&lt;/p&gt;
&lt;p&gt;我们继续说着课题研究的事情，他只是偶尔提了下我“丢失”的那部分“知识”。说到后续要探索的方向时，他跟我谈到很多从未在组会上提及的想法，接着对我说道：“你是我在大陆这边最好的学生，聪明又努力。你的学长学姐可能想要当个小学、中学的老师就好，也很好，我不太能够鼓励他们做大事。”&lt;/p&gt;
&lt;p&gt;我第一次知道程老师对我的期望，更甚于我对自己的信心。但行好事，莫问前程。把能做的事情完成，做好擅长的工作。既解决了眼前的困顿，也得到终身受益的知识。等到最近，我重新开始整理那些随着硬盘丢失的笔记，才发现早已做过“备份”——能够轻松地获得学习材料的资源，亦不再因背景知识缺乏而难以入门。&lt;/p&gt;
&lt;p&gt;我知道自己多虑的原因是缺乏自信，这可能是我最大的弱点。似乎与我成长过程中，时常因为家庭感到自卑有关，后来在很多决定面前都瞻前顾后，只能畏手畏脚。我想不到什么原因，来解释为何程老师对我如此厚爱。　　&lt;/p&gt;
&lt;p&gt;程老师跟我们每个学生的感情都很好。中秋，老师在微信群里讲了一段颇为煽情的祝词，失意的情绪快要溢出手机屏幕，言语间总是对这份师生情谊的珍惜。我想象他站在阳台的样子，感慨着在这三年的点滴，学姐最近回校的探望，让他回忆起教导我们的时光，便想把这种心情告诉我们。每次过节，我们都在群里相互问候，而这个夜晚的话语却牵动我的心，格外真挚。未几，收到亲人离世的噩耗，我请假回家。我不知道自己是否混淆了那些日子在情感上遭遇的冲击。&lt;/p&gt;
&lt;p&gt;老师取消了一次组会，谁知道后来，大家再也没有聚在一起的机会。&lt;/p&gt;
&lt;p&gt;回校之后，发现图书馆以60周年校庆为由，出台了“全新但不走心”的自习室管理条例，让每个考研学子怨声载道。对陷入抑郁情绪的我而言，亦是雪上加霜。我仍然坚持每天学习。因为课题组早已不再做实验，我向程老师借来小会议室的钥匙。他叮嘱我，过去学习的时候要低调，他并没有将房间借给学生使用的权利。这早已不是他的个人办公室，不想因此又惹来学院领导的关心。因为这个小房间，我才有安静的学习环境，孤独地与情绪障碍进行斗争。偶尔回想起跟大家一起在这开会、谈笑的日子，仿佛得到了陪伴。&lt;/p&gt;
&lt;p&gt;我完成了考研初试，开始着手毕业论文。此时，我已经跟随老师学习最久，加上之前与学长学姐们一起完成论文工作的经验，一步步积累下来，对这项研究也算有了较为全面的了解。也许是知道以后没什么见面机会，每周和程老师讨论的频率也变高了。老师一句一句的带我读文献摘要，提示我用什么关键词能够找到帮我解释现象和理解数据的论文。虽然参考文献越攒越多，最终也学会自己慢慢消化了。&lt;/p&gt;
&lt;p&gt;这一周，我写的草稿受到了老师的肯定。老师托付了一些事情，让我在接下来的日子好好帮助组里的其他同学完成工作。因为他回台湾以后，对学生的指导就没那么直接和方便了。&lt;/p&gt;
&lt;p&gt;程老师如期地离校回台。&lt;/p&gt;
&lt;p&gt;这是他第一次到大陆任职教学，一开始还在担心自己的政治倾向遭到怀疑，害怕不易被接受的他，后来身陷在大陆高校复杂而繁琐的体制规则中难以施展。在他返台的前一天，小师姐特地回校来看程老师——&lt;/p&gt;
&lt;p&gt;我们一起去吃饭，路上给其他的学长学姐打视频电话。这几天，我一直在思考该给老师准备什么纪念品，却实在没有好主意。最终，因为没有拿得出手的心意，我的大学生活又多了一个小遗憾。也是那一天，老师让学姐带他去停掉了在大陆的手机号。当时我想，以后只能用微信和邮箱联系到老师，不知道他在台湾还会常用微信吗。&lt;/p&gt;
&lt;p&gt;程老师清早的启程几乎没有人察觉。当他回复我发送的问候时，已经到了金门。我拿着他留给我的钥匙，来到这个充满课题组回忆的房间，清扫灰尘，也整理心情。&lt;/p&gt;
&lt;p&gt;从程老师和蒋老师共用的专家办公室，到做实验、开组会的小会议室，到后来考研自习的静修室，空荡荡的房间，老师已经带走了他的书籍和资料，只有一部分以前实验剩下的药品，还藏着柜子里，避光保存着。想到自己很难有机会去台湾拜访恩师，更不再能够轻易便知晓他是否平安、健康，最近又在学习和研究哪些有意思的课题……&lt;/p&gt;
&lt;p&gt;此时，虽然时间只过了几周，来到这却是完全不同的心境。我写下在这里的故事，回忆涌起时，是对岁月难回头，时光不再有的伤感，泪水还是忍不住要冲出眼眶。　　&lt;/p&gt;</description></item><item><title>生物序列数据的机器学习预处理</title><link>https://touchingfish.top/2019/bioseq-preprocess/</link><pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/bioseq-preprocess/</guid><description>&lt;p&gt;随着生物信息学的快速发展，DNA 序列数据呈爆炸式增长。这些序列蕴含着丰富的生物学信息——然而对处理数值数据的机器学习模型来说，原始的 DNA 序列不过是一串字符，&lt;code&gt;ACGTACG...&lt;/code&gt;，无法直接作为输入。&lt;/p&gt;
&lt;p&gt;将 DNA 序列转化为机器学习模型能够理解的数值矩阵形式，成为一个关键步骤。&lt;/p&gt;
&lt;p&gt;（本文明写 &lt;em&gt;E.Coli&lt;/em&gt; 启动子序列识别，实则记录一种通用的序列转换思路）&lt;/p&gt;
&lt;h2 id="数据预览"&gt;数据预览&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://archive.ics.uci.edu/ml/machine-learning-databases/molecular-biology/promoter-gene-sequences/promoters.data&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Class&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;id&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Sequence&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iloc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Class +
id S10
Sequence \t\ttactagcaatacgcttgcgttcggtggttaagtatgtataat...
Name: 0, dtype: object

 &amp;lt;bound method NDFrame.head of Class id Sequence
0 + S10 \t\ttactagcaatacgcttgcgttcggtggttaagtatgtataat...
1 + AMPC \t\ttgctatcctgacagttgtcacgctgattggtgtcgttacaat...
2 + AROH \t\tgtactagagaactagtgcattagcttatttttttgttatcat...
3 + DEOP2 \taattgtgatgtgtatcgaagtgtgttgcggagtagatgttagaa...
4 + LEU1_TRNA \ttcgataattaactattgacgaaaagctgaaaaccactagaatgc...
.. ... ... ...
101 - 799 \t\tcctcaatggcctctaaacgggtcttgaggggttttttgctga...
102 - 987 \t\tgtattctcaacaagattaaccgacagattcaatctcgtggat...
103 - 1226 \t\tcgcgactacgatgagatgcctgagtgcttccgttactggatt...
104 - 794 \t\tctcgtcctcaatggcctctaaacgggtcttgaggggtttttt...
105 - 1442 \t\ttaacattaataaataaggaggctctaatggcactcattagcc...

[106 rows x 3 columns]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="序列的提取与分割"&gt;序列的提取与分割&lt;/h2&gt;
&lt;p&gt;DataFrame 是由多个 Series 组成的，每个 Series 代表 DataFrame 的一列。&lt;/p&gt;</description></item><item><title>699个名字（机器学习领域的"Hello World"）</title><link>https://touchingfish.top/2019/brca-detection-with-sklearn/</link><pubDate>Mon, 21 Jan 2019 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2019/brca-detection-with-sklearn/</guid><description>&lt;p&gt;打开这个数据集的时候，脑子里突然闪过一个问题：class 那一列里的 2 和 4，分别对应的是&amp;quot;良性&amp;quot;和&amp;quot;恶性&amp;quot;——但这两个数字背后，坐着的是谁？&lt;/p&gt;
&lt;h2 id="699个女人"&gt;699个女人&lt;/h2&gt;
&lt;p&gt;威斯康星乳腺癌数据集（Wisconsin Breast Cancer Dataset），算是机器学习领域的&amp;quot;Hello World&amp;quot;。699个样本，每个样本有10个细胞特征：clump_thickness（结块厚度）、uniform_cell_size（细胞大小均匀性）、uniform_cell_shape（细胞形状均匀性）、marginal_adhesion（边缘黏附力）、single_epithelial_size（单上皮细胞大小）、bare_nuclei（裸核）、bland_chromatin（淡染色质）、normal_nucleoli（正常核仁）、mitoses（核分裂）。&lt;/p&gt;
&lt;p&gt;这些特征听起来抽象，却是病理医生在显微镜下实实在在看过的东西。&lt;/p&gt;
&lt;p&gt;他们在数细胞层数，量细胞直径，看细胞边缘是光滑还是锯齿状，观察细胞核被染成什么颜色。每一个1到10的数字，都是人眼与人脑的判断——是经验的积累，是训练的痕迹。&lt;/p&gt;
&lt;p&gt;数据里的每一行，曾经是一个女人坐在诊室里，等待活检结果。&lt;/p&gt;
&lt;h2 id="细胞的语言"&gt;细胞的语言&lt;/h2&gt;
&lt;p&gt;病理医生看细胞，和我们看人很像。&lt;/p&gt;
&lt;p&gt;看形状——圆润的倾向于良性，畸形的倾向于恶性。看边界——边界清晰的通常良性，黏连在一起的往往恶性。看颜色——染色均匀的相对正常，染色质浓集发黑的令人担忧。&lt;/p&gt;
&lt;p&gt;这不是玄学。是几千例病例训练出来的直觉。&lt;/p&gt;
&lt;p&gt;而机器学习做的事情，简单来说就是：绕过医生的经验，用算法把这些&amp;quot;直觉&amp;quot;数字化、规则化。SVM（Support Vector Machine，支持向量机）在高维空间里找到一条最优分割线，把良性样本和恶性样本分开。KNN（K-Nearest Neighbors，K近邻）则是&amp;quot;物以类聚&amp;quot;——看一个未知样本的5个最近邻居是什么类别，由多数投票决定它属于哪一类。&lt;/p&gt;
&lt;p&gt;KNN 选 K=5，是因为经验发现这个数值通常效果较好。太少容易受噪声影响，太多又会模糊边界。&lt;/p&gt;
&lt;p&gt;SVM 的核函数（kernel）把细胞特征映射到高维空间，在那个空间里，线性不可分的数据变得可以分开。&lt;/p&gt;
&lt;h2 id="10折交叉验证"&gt;10折交叉验证&lt;/h2&gt;
&lt;p&gt;直接用全部数据训练，然后测试，会发生什么？&lt;/p&gt;
&lt;p&gt;模型可能&amp;quot;背住&amp;quot;了训练数据，而不是真的学会了规律。就像考试前背答案，遇到新题就傻眼。&lt;/p&gt;
&lt;p&gt;10折交叉验证（10-fold cross validation）解决的是这个问题。把数据随机分成10份，轮流让9份当训练集、1份当测试集，做10次实验，最后取平均准确率。&lt;/p&gt;
&lt;p&gt;结果是：KNN 96.6%，SVM 96.0%。看起来差不多，但实际上——&lt;/p&gt;
&lt;p&gt;KNN 的标准差是 2.9%，SVM 是 3.3%。KNN 更稳定。&lt;/p&gt;
&lt;p&gt;这意味着什么？KNN 在10次实验里波动较小，SVM 则有时表现更好、有时更差。对于实际部署来说，稳定比偶尔的高分更重要。&lt;/p&gt;
&lt;h2 id="precisionrecall与生命的重量"&gt;Precision、Recall、与生命的重量&lt;/h2&gt;
&lt;p&gt;但准确率（accuracy）不是唯一的指标。在医疗场景下，误诊和漏诊的代价是不同的。&lt;/p&gt;
&lt;p&gt;Precision（精确率）：预测为恶性的样本里，真正是恶性的比例。&lt;/p&gt;
&lt;p&gt;Recall（召回率）：所有恶性样本里，被正确识别出来的比例。&lt;/p&gt;
&lt;p&gt;F1-Score是这两者的调和平均。&lt;/p&gt;
&lt;p&gt;SVM 报告里的 Class 2（良性）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Precision = 1.00：预测良性的，几乎全对&lt;/li&gt;
&lt;li&gt;Recall = 0.95：100个良性里，有5个被误判为恶性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SVM 报告里的 Class 4（恶性）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Precision = 0.90：预测恶性的，10个里有1个其实是良性&lt;/li&gt;
&lt;li&gt;Recall = 1.00：所有恶性都被找到了&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于癌症筛查，Recall 更关键。漏诊一个癌症患者，比误诊一个良性肿瘤更危险——后者只需要进一步检查，前者可能延误治疗时机。&lt;/p&gt;</description></item></channel></rss>