有没有大佬看看这perl编程代码?

到底还是写了一篇推文,却着实想不到一个合适的题目。可能这是我写过最长的一篇推文,约莫万字。这篇推文的主要内容应该包括:

  1. TBtools 是怎么开发出来的?

  2. 本硕博均是园艺果树专业,如何一步一步自学并入门生信。

  3. 一份生信编程入门书籍清单 和 社群与论坛推荐。

  4. 感谢陪伴我和帮助过我的人。

PS:推文在 TBtools 文稿 Online 前后,已经基本成型。原定在期刊官方公号推文后再行推出,但一周以来,身边和用户朋友一再催促。也罢,推文也是我硕博生活至今小结,就此推出,用互联网帮我记住这些经历。

这不仅仅是我一个人的开心,而是一小群人的快乐。这群人,或者对 TBtools 的开发极度支持,或者看着 TBtools 一步一步,一步又一步成长成现在模样。五年有余,说长不长,可以覆盖了一部分用户的硕士博士阶段。说短,其实也不短。软件开发不同于湿实验开展,前者周期往往足够短,甚至两三个月可以完成和测试。文稿的撰写到发表,从某个角度来说,是在用户朋友和生信小圈子一些朋友的催促下完成。总的来说,这应也算一个工作的阶段性成果,所以值得记录一下。华南农大园艺学院果树系,本科 --> 硕士 --> 博士,Emmm,是我常常不务正业的十年。而我折腾的与生信擦边的各项,正好也是TBtools 的开发过程。以下,用相对碎片化的方式,整理一下这些那些我还记得的片段。

2014年前后,在硕士导师何业华教授的建议下,我们做了一个转录组项目。那个项目算是学院里面较早开展。导致这一项目数据没有及时撰写并发表成文的原因有很多。其中一点或许是,我从结题报告中看到,植物的测序数据却可能含有真菌或其他微生物序列污染。那会年轻,过不了这道坎。于是还是决心,自己从原始数据开始,折腾这套污染了的数据。或许也是这个原因,接触生信至今,我始终保持警惕,确保避开可能的坑。
Emmm… 年代久远这套数据,后来就打水漂了。想想还是有点对不起硕导。不过一起签合同的其他项目,最后还是整理了并发了一个 PLOS One,似乎也还好。

我觉得我这些图表,其实还做得不错。这已经是2016年的事情了。

折腾数据,必然是需要计算资源。正好那会浩哥(即 TBtools 论文二作)也计划开始搞分析,于是我们二人合伙从淘宝搞了一个二手服务器。如果我没记错,加上我们自己买的民用硬盘和其他,大概也就五六千。配置是相对奇葩的状态,似乎是1T还是3T,内存排满72G,线程16个。那会这个配置其实可以满足转录组数据分析的需求了,所以我们用得还是开心。

服务器的费用是两人各出一半,即每人3k左右。那会园艺学院硕士补助,多半是100~200。所以,或许很多人不知道 ,我出的这一半其实是我硕士三年的补助,或者说饭钱(估计浩哥也不知道 )。以至于,后来有那么大半个月,我其实是靠着我女朋友的饭卡吃饭的(没有更好的方式)。

解读公司的结题报告,是一件麻烦的事情。2014年那会,其实做科研服务的公司很多,但都不太成熟 。公司返回的结果,往往是一些大文件或者大表格。整理起来比较麻烦。于是,多少学习编程语言成为必须。那会没有太多纠结,在浩哥的推荐下,我学起了perl。如果我没有记错,有那么一段时间,可能是个把月,我就只呆在宿舍,常常门也不出,等着其他人给我带饭。我只是刷编程书(其实后来我还看了不少perl相关电子书,不过大骆驼我是买的纸质书),试试运行代码,反反复复。用perl写了不少脚本,做了不少有趣的事情。我甚至只用 perl CGI 架了一个小网站,提供序列批量获取和BLAST的功能(命名为xxxblast,对标 wwwblast;我没有用框架,因为确实也不够机智)。

我印象深刻的,或许还是写出来的第一个我自认为有用的脚本。那个脚本的功能非常简单,批量提取Fasta序列。说起来还是有点搞笑(公众号也曾提及),那天晚上我写到凌晨三点,终于认为脚本稳定且正确,具体逻辑是:

  1. 用一个脚本把原始的Fasta序列整理成一行ID一行序列的格式

  2. 使用另一个脚本读取一个ID列表,然后遍历/blog-460481- 论坛开设不久,我也就跑到论坛上做了一些宣传,最后还当了一个版块的版主(当然,现在还是)。现在,我没有继续主动在上面推广 TBtools,原因主要是论坛重点在于生信讨论,不太适合过多推广TBtools。无论如何,我觉得 Omicshare 论坛,仍然是我极力推荐的生信论坛(可能得到充分的公司资金支持,所以可以较好地运转)。感兴趣的可以点击这个链接

    对应的也有一些云平台免费或者收费的小工具可以使用。

    在论坛上,仍然可以搜索到一些非常早期的 TBtools 教程。当然,更多的,大家或许可以讨论一些生信相关话题。不时看到一些我感兴趣的话题,我仍然有在回复。
    在此期间,我也发现论坛并不太适合我个人与 TBtools 用户的沟通与交流,主要在于时效性。此外,QQ群里,用户也可以相互讨论交流。于是,我建立了第一个 TBtools 使用交流群。

    在两三年后,大体是这样(注意到,保持每天请出QQ群的习惯);而现在,8群也满…

    转眼就是2017年,我注册了并开始运营《生信札记》微信公众号(当然用心经营是一年后)。在上面撰写了一些生信学习经验,而后来便主要用于分享TBtools 使用实例。TBtools 社群在接下来的一年间快速增长,很快便满人。有了bioinformatics*中国的管理和发展经验,我试图尝试另外的发展方式,即若有必要,就开设新群。但很快,两个2000人群的名额已经用完,大群任期也临近。我便换届卸任,将重心转移到接下来的博士课题和TBtools社群管理上。
    或许2017年的整整一年,是我相对轻松的一年,那边硕士毕业没有问题,这边博士也定了去处。我重新思考了绘图引擎的实现。值得提及,这段时间,大湿兄(Y蜀黍,现任职于南方医科大,博导)在他的公号上不时更新了一些推送。我现在只有大体模糊的记忆,其中一句话,对我的触动相对较多,总结一下,所有的计算机图形可视化,都可用 点 决定。两个点就是一条线,三个点就是一个图形。这本身只是一个初中几何知识,但我却用了两三年才想明白。于是,在接下来的半年到一年内,我又一次完全推翻了 JJplot2 实现,开发了 JIGplot。

    这一次,我不再执着于图层语法的实现,当然思想上我依然有所参考。相应实现的思考,在一个PPT(脚注未展示),我可能已经打开,思考,调整,关闭了不下百次(Emmm,我不小心都快被自己感动哭了)。所有的思考和努力,熔铸在 JIGplot。
    从此,TBtools 的可视化相关功能得到绝对地拓展。

    时间飞逝,硕士一年的延期结束,我也开始了博士研究生生活。在这一期间,硕士课题组做了一部分菠萝基因家族分析的工作,同时博士课题组(我尚未毕业)也在做一些家族分析工作。我看着他们做一些结构域预测可视化,MEME motif可视化,甚至于基因结构可视化时,总是难受。因为效率真的太低,可能搞完了要两三天。既然有了JJplot2,我反手就是一个生物序列可视化功能,无论是结构域,MEME还是基因结构,直接继承一个类,于是变成三个独立可视化功能。Emmm,感觉这个功能一下子帮大家省了不少时间。
    JJplot2 的实现,并不支持拼图。而 JIGplot 天生就是图层化。博士期间我进一步开发的 MetaGeneStructurePlot,支持一键化,一张图同时展示 ,进化树,MEME motif,基因结构,结构域,甚至其他。

    当然,可能也是这个功能的推广,TBtools一度(或者甚至一直)被人认为就是专门做基因家族分析的工具。对于这个,我也很无奈。
    博士研究生这三四年,事情确实多了许多,课题也多了很多。TBtools 的开发主要是基于我个人或者课题组课题需要,所以功能也在不断丰富。其中包括一些比较基因组相关工具。当然,更多的其实并没有开放出来,所以可能知道的人不是很多。总的来说,虽然这两三年没有非常明显的阶段性突破(如还再推翻绘图引擎 JIGplot),但更多功能得到开发,优化,增强和拓展。如果说我硕士阶段对应了 TBtools 的出生和儿童时期,那么博士阶段对应的则是 TBtools 长大成人,并办了成人礼(TBtools文章终于有了归宿)。

    TBtools 能够有如此丰富的功能,有赖于我所在课题组(博士-夏瑞教授课题组和硕士-何业华教授课题组),TBtools 三十多位群管 以及 目前 2万有余用户的意见和建议。相关的推送已经有很多,这里附上一张简图,

    目前已开放的GUI功能140+,而这个数字,事实上还在增长。

    前述已基本理清 TBtools 项目开发始末。可以说,TBtools 从一开始就是我个人课题或者分析需求导向开发;说得直白一点,那么是顺手写一写。未曾想过他会走到今天,更没想过将其撰写成文并发表。
    第一次撰写成文,已经是2018年年初(开发了约三年),在较多用户的催促下,草草整理了一份 PDF 文档。文档相对粗糙,我花了两三天就做完,就放到 bioRxiv,因为其他课题也在开展。

    可以看到,基因结构的图片也只是朋友华南植物园王洁雨(演化生物学-公众号那个老王)画的,我截图拿来用了。图中还带着水印。很明显,那会的想法只是放上去,不要再被用户怼说链接不好引用。
    就这样,过了半年,我们手上项目暂有停歇,另外多少我对论文发表有了新的认知,应是包括《园艺研究》主编程宗明老师的一次报告提及,既然工作做了,就还是要发表。我与夏老师商量后,决定还是花点时间,尽量投了。我们又花了几天,写了一篇感觉还不错的短文,Application Note,投到《Bioinformatics》。大体是这个状态(这些可以在 bioRxiv查看到)

    其实这张图表也挺好看的。若是做一点生物信息的,多少还是有一种执念,即发一篇《Bioinformatics》( 二区 ),那时我也有(此前,已有一区刊物的朋友邀请投稿,我们婉拒了)。没有太多意外,Bioinformatics 编辑回信,大体是“我们稿件太多,懒得理你”。明显只是客套话,但也没办法(后来Bioinformatics分数 IF 一跌再跌,也就再也没想法更新并投过去了)。值得注意的是,投过去时,JIGplot已经开发并放进去了,我对 TBtools 的工作其实比较有信心,至少创新点是有的。但悲剧是没办法的。我与夏老师就这个事情讨论过一次,大体原因是,文稿内容和图片确实无法反应出 TBtools 的创新点和优势所在,换句话说,怪不了别人。此后不久,我们接到了另一个生信相关期刊(三区)邀请投稿,我们婉拒了;也接到国内国外其他期刊约稿,我们还是婉拒了。期间,不少朋友给了这些那些的建议,可惜,那时的我确实不在状态。
    就这样,又过了一年。2019年年末,我家中有事离开学校,于是有了一段相对长的空余时间可以做点事情。夏老师和我前前后后讨论了数次,多半是“激烈讨论”(其实这个对我们两个是常态,但无论如何争吵,在课题或者学术的角度上,目标是一致的)。最终,我们努力打磨,加上一起参与到 TBtools 界面,文档,文稿工作的老张(张翼),Margaret 和 Hanna,终于还是得到一个不错结果,新的文稿基本可以展示 TBtools 的部分主要特性。

    一共是三个图,这也是某种意义上的 TBtools 文稿完全重写的第三版。当然,更为幸运的是,分子植物期刊(Molecular Plant)的编委老师们愿意花时间了解 TBtools 相关工作,我们终于也得到了文稿送审的机会。在编辑和审稿人的建议下,我们再次完全重写了TBtools文稿(这应算作第四版),并补充了两张图。前前后后,我们几个人花了挺多时间和精力。最新的这版文稿,展示了 TBtools 更多的特性。静态图片终归是静态图片,无法完全展示,但我觉得这应该已经是极限。

    经过了大半年的努力,文稿被接收发表。对于这四个 TBtools 文稿版本,感兴趣的可以直接在 bioRxiv 上下载并与 Mol Plant 期刊的文稿对比。

    生活,或许如此。我们不需要过多理会别人的看法,而只坚持做自己觉得值得的事情。TBtools 开发早期,遇到过不少质疑,甚至是诋毁。甚至于一些人身攻击。五六年前的事情,也不值得详细提及。不过,看不上 TBtools 的,依然大有人在。这是一件理所当然的事情。从 TBtools 表面上能做的事情来说,确实并没有多少明显的超越。因为我一直看重的是降低甚至抹除数据分析的门槛,节省生物科研工作者的时间。所以 TBtools 主要开发目标一直是,将繁杂的分析过程简约化,常用的分析自动化。TBtools 里面几乎每一个功能都包含了我个人思考,即使是 BLAST 等界面化功能,我也专门做了序列类型的预判,从而节省了软件参数设置的时间。相应的优化还有很多,但是这些并不能被评判者们所看到。
    有时候想想,你的汗水,你的努力结果,都在大多数人看不到的地方,那么并不能怪别人看不上你。只能说,可能你做的东西,本身就不容易被认可。当然,我运气比较好,一是 TBtools 用户朋友看得到,二是 博士导师和硕士导师的帮忙,三是 Molecular Plant 期刊的编委和审稿人愿意花时间了解 TBtools 的工作。三者结合,即天时地利人和,于是 TBtools 当我知道文稿被接受的时候,多少我是松了一口气(甚至有早期用户与我提及他都要哭了)。或许这是因为我们已经自认优秀太久,终于还是争了一口气。我们打了那些看不上我们的人一记响亮的耳光,我们也不再需要承受无理的质疑:都没发文章,软件能用吗?预印本靠谱吗,不敢引用云云…

    TBtools 的开发,完善,到现在阶段性的成果出来。事实上,需要感谢的人或者社群很多。以下我大体列举出来,但依然会存在遗漏,请注意到的朋友提醒下我。顺序按我脑海里浮现的顺序排列,不对应感谢的份量:

    1. 华南农业大学何业华教授,2009年本科入学,当年十月份,我便进入他的课题组,组培,分子,大田都接触了不少。硕士也顺利推免,此间一些我个人无奈但也不可抗拒的事情发生。何老师给与了我充分的自由,让我得以有足够的时间鼓捣数据分析,并最终找到解决办法。

    2. 湖南农业大学陈浩博士,跟着浩哥走,于是我有机会学习并了解生物信息数据分析。

    3. 贵州师范学院吴亚,前述提起多次的女朋友(现在是我的妻子),我们一起经历了生病却不够钱买药的阶段,一起租过半夜漏水的房子。每每想起,觉得委屈了她。她帮我设计了Logo,在早期界面设计和图形配色上给与了不少建议(比如MEME motif 可视化的配色方案)。

    4. bioinformatics*中国 QQ交流群的所有群管,如果没有他们,或许我从未明白生信分析到底是啥。千言万语,不如我们在群里开车的默契。此处不做展开。

    1. 中山大学的任间教授以及我齐哥(Zinky),他们让我看到 Java 开发可视化工具的无限可能。或许没有他们,那么我在 Java 学习上,可能一直无法入门。

    2. 南方医科大学余光创教授(我大湿兄,你们Y蜀黍),他不停地在博客或者公众号上分享的计算机绘图逻辑,触发了我的思考,从而才有 JIGplot 的充分实现。

    3. 华南农业大学夏瑞教授,TBtools 的完善得益于博士课题以及课题组其他成员的需求,建议和意见。TBtools 文稿构思,写作,投稿甚至于最终发表,我们一起耗费了大量时间和精力。前前后后 ,一个软件,鼓捣了两年文稿,全部推倒重写了三版。同时还要感谢张翼,Margaret 和 Hanna 在其中的时间和精力付出。

    4. TBtools 三十多位群管,当 TBtools 在交流群里,在其他社群里,在公众号上被怼的时候,是他们一直鼓励我,相信我,并支持我,于是我得以坚持下去。

    1. OmicShare论坛及其各个版主,虽然我退群有两三年,不过OmicShare活跃的那段日子,同样也是回忆,也是 TBtools 成长的一个阶段。我仍然相信,OmicShare论坛可以也值得一直办下去。必要的商业化,是保证公益可持续不可或缺的部分。

    2. 早期曾经捐助过 TBtools 开发的用户朋友,我印象中至少有三个人,现在应该都在高校工作了吧,他们捐助了加和起来估计有 500 块钱,那会正是我经济窘迫,而 TBtools 开发不被认可,孤助无援的时候。他们让我觉得这些工作,其实还是值得。我认为,一定的物质激励,或许恰恰是成事的关键。这里还需要感谢南京大学的一个老师,我们来来回回聊了几次,他似乎习惯把我拉黑,以至于我确实没搞清楚,他到底是姓汤还是姓周?

    3. SCAU生物信息交流群,这是我和浩哥一起组建的华南农大生物信息交流群。其中成员仍然不多。浩哥和我开始做生信的时候,我们自认为校内并没有做生信的老师。六年后的今天则有所不同。五年大招人和人才引进,华南农现在应是有一些侧重生信数据分析相关研究的课题组。当然,这并不影响我们组建的这个社群存在的意义,虽然他一直没有太多人。但, TBtools 的开发,尤其是菜单的重构,我有印象是在群里讨论中有了决定。

    4. 支持并帮助推广 TBtools 的系列公众号,这里不便一一列举,但我认为你们应该知晓。

    5. 参与 TBtools使用 和 基因家族分析 讲演的朋友们,你们的资助使得我有足够的资金购置安装器授权,使得所有用户尤其是新手用户,有更好的 TBtools 安装和使用体验。

    6. TBtools 的 2万+ 用户。TBtools 的开发和完善,得益于社群的使用意见和反馈。如果没有用户的意见或建议,TBtools 不可能有现在的状态。

    洋洋洒洒,不小心就码了一个长文。互联网,是有记忆的。多年以后,我回头来看,这篇推文,或许会更为有趣。感谢冥冥中,你着实让我相信,一切搞不死你的,会让你变得更强。
    最后,还是用我的 QQ 签名作为结束语吧。

以下文字资料是由(历史新知网)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

想学黑客技术(零基础)希望大佬们推荐一些书籍

你好,你可以选择这些书籍,C语言程式设计宝典》
《21天学通c(第三版)》
《你必须知道的495个C语言问题 》
Pythoner:这个是网站,中谷教育的课程看完了。感觉效果相当于花一天的时间看了Perl小骆驼。
《Python核心程式设计》:终于开始入门,慢慢开始用到了工作中解决各种问题。
值得一说的是,第一本是Python 3.X,剩下的都是Python 2.X。感觉相当不相容,干脆放弃3.X,先把2.X搞定,能够用了再转移3.X也不坏。毕竟,现在的3.X还不是很完善,2.X的库相对来说还是比较多的。这是我的个人建议,希望可以帮到你。

如何学会黑客技术,零基础

1,了解基础知识模组,梳理模组依赖关系
黑客和医生类似,不对目标物件有深刻的理解,不了解物件的运作机理,就无从动手。
不知道你有没有,但我知道我没有。

零基础电脑知识怎样学习黑客技术

黑客通常是指对电脑科学、程式设计和设计方面具高度理解的人。但到了今天,黑客一词已被用于泛指那些专门利用电脑网路搞破坏或恶作剧的坏人。
正义的黑客,还是坏人黑客,必须对电脑科学、程式设计和设计方面具高度理解的,想达到这种高度可不是一说就行 ,一指点就会,须要下一定的工夫才能学会的。如果你有一定的基础花高价投师名门,没什么基础,报考专门学校去学吧。

我想学程式设计、爆破以及一些黑客技术、该从什么开始学起?要买什么书籍看?本人零基础、

零基础的先学习C语,因为是所有程式语言的基础,最好选择视讯学习,容易入手!
雷公黑客教程 就整理了适合新手学习视讯资料,学习的时候一定要从第一节开始看,
认真一些,然后在学习程式设计软体,多实际操作!

我想学黑客技术,希望高手推荐一本书籍。谢谢各位高手,大神

如何从零开始学习黑客技术。求大佬推荐书籍和大致计划。

先学习基础。最好掌握一门程式语言。多学习多练习,最好找个人带你学习最好了

零基础自学黑客技术需要多少时间学会?

因人而异,在你想学习黑客的时候建议先明白电脑基础

想学黑客技术,需要哪些基础知识

首先你需要了解系统,这个是最基本的。如果连最基本的系统都不清楚,那么就不要学什么黑客了。
WINDOWS LINUX等,不只是要会用。还要知道服务,埠,系统档案,系统命令等。如:WINDOWS里面的远端桌面也就是常看到的3389埠,这个就是个WINDOWS系统的一个服务,很多小菜都说这个是漏洞。
LINUX中的SSH服务,如果这个都不知道,那么你怎么入侵LINUX系统呢?
系统了解了,就可以学习程式了,我推荐先学C和汇编。C++/VC这一类以后再学。因为你了解了C和汇编对于黑客来说已经够了。因为这个是最重要的两门语言。懂了汇编你就可以学着反编译程式了。会了C那么就可以编写出黑客程式。
这些都会了你才刚刚入门。

想学太极,有哪些书籍、视讯推荐?零基础。

真要练的话去找培训班吧,要是看书看视讯有用还要培训班干什么。
一般大学的体育馆和健身房有相关的培训班,你可以去看看。
如果不是你们那边的人基本上对于这些问题是不知道的。
此外如果是假期班的话其实都差不多没有高下之分,如果是打算报日常班那么就去健身房看看,如果要具体的地址估计也没人知道的,建议用百度地图在自己附近看看有没有健身房或者大学的体育馆比较好。
如果是会馆的话,一般会馆都是采用多项教学的方法也就是散打,跆拳道,截拳道等等专案都会有,你只要去看看就能找到。
ps:太极的一般不多,如果是年轻人,男的我一般推荐散打,女的则是跆拳道。

零基础学c语言书籍推荐,想学到精通。

不是不爱国 ,国内C语言发展时间不长,教材多不推荐
谭浩强书作为教材有教授讲解还好,自学请不要选择此书

《》早已是红遍全球的一款游戏了,想必大家都已经玩腻了。那么不妨来试试这款《》,添加了独特的西游记模式全新40道西

我要回帖

更多关于 perl编程 的文章

 

随机推荐