一、什么是生物信息学?
生物信息学(Bioinformatics)是研究生物信息的采集、处理、存储、传播,分析和解释等各方面的学科,也是随着生命科学和计算机科学的迅猛发展,生命科学和计算机科学相结合形成的一门新学科。它通过综合利用生物学,计算机科学和信息技术而揭示大量而复杂的生物数据所赋有的生物学奥秘。
生物信息学的主要研究方向包括:基因组学 - 蛋白质组学 - 系统生物学 - 比较基因组学。本人目前的研究方向主要涉及比较基因组学,主要基于blast等工具查找同源基因,通过序列比对等常规手段比较物种间的基因序列,查看每个生物自身特征基因,基因之间是否存在保守motif,或基因是否在进化过程中出现丢失,复制或水平转移等现象,从而揭示物种间的分化时间和演化关系以及新基因的产生与进化。常见分析包括寻找直系同源基因、系统进化分析等。
随着测序技术的高速发展以及组学数据的膨胀,产生了海量的生物学数据。面对庞大的生物大数据,利用生物信息学对数据进行分析继而深度挖掘其内在的生物学意义已成为突破生命科学研究领域问题不可或缺的手段。
二、开展生信分析前需要准备什么?
1.设备条件:拥有自己的服务器(实验室/工作单位)、服务器ip、登录服务器的用户名和密码。(小白没有自己的服务器 可以在某宝租,别问我,我可没租过 或者 安装虚拟机练习操作,推荐VMware)参考安装教程戳这里
2.Linux操作系统基础,参考Linux操作系统基础_c.的博客-CSDN博客_linux操作系统。
为什么需要Linux操作系统? 最关键的原因是因为生信分析过程计算资源大,其他系统难以满足需求;大多数生信软件只为Linux开发大多数生物信息学/计算生物学的软件只为Linux开发。
目前比较常用的版本有: Ubuntu、CentOS、Debian、Red Hat。这些操作系统都是基于Linux 的内核进行开发而成。我用的是Ubuntu版本。这里的基础指的是要掌握日常工作中常用的命令,如ls,cd,pwd,rm,cp,mv,vim等等,多个平台(哔哩哔哩、慕课、YouTube、CSDN、...)均有免费视频教程,也可通过阅读一些经典入门书籍(《鸟哥的linux私房菜》等等,自己搜)+实操来掌握。
3.必要的编程/统计基础:建议小白可以先学习Python,原因:Python是一种解释性、编译性、互动性和面向对象的脚本语言,具有兼容性、可移植性、可扩展性、可嵌入性好、可读性强,易于学习、阅读与维护等优点。再逐步学习Perl(一种功能丰富的计算机程序语言,易于使用、高效、完整,最大的缺点是可读性差),R语言(用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具)。
学习编程主要是工作的需要,例如读入物种基因组fna文件(去除每行的换行符),跑完blast(找同源序列)之后你需要对多个结果文件进行分析、筛选你要的序列;又或者需要根据blast的结果找到比对上的某一段同源序列的完整ORF(开放阅读框);或者需要将已知的一段完整ORF(核苷酸序列)翻译为氨基酸序列;又或者判断在一段氨基酸序列中的某个氨基酸对应的密码子是否为XXX。辅助用途:利用脚本根据设定的keyword爬取文献数据库中的文献或者建立xx数据库等。
编程知识的学习没有捷径,想要快速掌握的方法就是多学、多思、多练、多用、学会举一反三。小白可在小破站看相关视频结合自己线下电脑实操进行巩固。根据实际课题目的练习和应用掌握效果会更好。
4.辅助软件(Windows系统下安装):
XShell 7——简单好用的远程终端连接管理软件,学生免费,下载戳这里,也可用PuTTY或者其他同类软件代替;
FileZilla Client——通过使用FTP客户端,用户可以在远程服务器上上载,下载,删除,重命名,移动和复制文件。最常用的文件传输工具)官网下载地址 有中文版本,懒的找, 需要可自行到网上去找;
ToDesk——多平台远程控制软件,偷懒不上班的时候(不是 偶尔有事不能对办公电脑直接操作的时候,可通过远程软件连接到办公电脑进行操作,戳这里下载。可用向日葵或其他远程控制软件代替。
Python + Pycharm(社区版×,专业版才能开启远程连接,学生每年免费激活)——Python是多数平台上写脚本和快速开发应用的编程语言,Pycharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。参考Download and Install
要想本地写的脚本在服务器中运行(数据分析脚本),需要将Pycharm远程连接服务器,可用jupyter notebook服务器开启远程连接和Visual Studio Code远程连接服务器替代。(小孩子才做选择,我全都要,嘻嘻^_^(工作需求),建议各位还是根据实际需求取舍,并不是说越多越好哟~)下载好之后别忘了远程连接服务器,不然没法跑数据~(严谨而言,也不是不行,只要头够铁,你的电脑硬件能够媲美服务器,那就随便你玩咯~)
Pycharm示例界面如下:
jupyter notebook是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。机器学习爱好者必备。jupyter notebook 源自 IPython,是一种交互式 shell,与普通的 Python shell 相似。最初,notebook 的工作方式是,将来自 Web 应用(你在浏览器中看到的 notebook)的消息发送给 IPython 内核(在后台运行的 IPython 应用程序)。内核执行代码,然后将结果发送回 notebook,摘自原文 什么是Jupyter notebook。
jupyter notebook最大的优点是可以将代码分块运行,逐行调试代码,并且立竿见影地返回输出结果。
这里避免混淆,简单说明一下,Pycharm和Visual Studio Code是在Windows系统安装(你的办公电脑),jupyter notebook是在远程服务器的docker中运行命令-jupyter notebook,在本地浏览器使用(前提是开启远程连接,设置好了配置文件)。
示例:
Visual Studio Code是可运行于 Mac OS X、Windows和 Linux 系统的一个跨平台源代码编辑器,可在桌面上运行,该编辑器支持多种语言和文件格式的编写,支持如下37种语言或文件:F#、HandleBars、Markdown、Python、Java、PHP、Haxe、Ruby、Sass、Rust、PowerShell、Groovy、R、Makefile、HTML、JSON、TypeScript、Batch、Visual Basic、Swift、Less、SQL、XML、Lua、Go、C++、Ini、Razor、Clojure、C#、Objective-C、CSS、JavaScript、Perl、Coffee Script、Dockerfile、Dart。
VS Code示例界面如下:
5.在服务器安装anaconda3(必备!)——anaconda3包括Conda、Python以及一大堆安装好的工具包。详情参考这篇。可以顺便在服务器安装R,这里就不列举了,感兴趣的朋友可以自己在网上搜搜。
6.在服务器安装生信分析工具:根据不同的课题目的,在分析中常用到不同的生物软件包,如blast,muscle等等(最好创建一个专门存放软件的文件夹,专门作为软件的安装路径),需要自己到网上搜索查找,可以到官网或其他正规网址或者GitHub等等去下载,找到软件安装说明(通常是README.txt),然后安装好(安装三部曲),根据实际需求考虑是否将安装的path(通常是bin文件夹所在的当前路径)添加到系统环境变量,不添加需要写绝对路径调用软件包里的程序。后续更新会有详细介绍。
7.了解常用的生物数据库
8.学习资源的来源:哔哩哔哩学习视频、纸质或电子书籍、、CSDN、博客园、其他平台的交流论坛等。
差不多也就这些了,这是本人第一次在网上写帖子,写的不好,请大家见谅。今天总结的这些实际也是我自己在用或者用过的一些软件,也说不上是推荐,只是简单介绍这些工具和软件的用途和特点等等。正文蓝字内容均为相关内容的原文链接或官网下载地址,部分内容的下载和安装过程没有附上,如有需要,基本上都可以在CSDN网站中搜索到(以上链接若消失或过期,可重新在网站搜索框自行搜索相关词条)。特此声明,文中插入的原文链接非本人撰写,仅供读者学习参考。在此,十分感谢在各大平台提供帮助帖的作者们!
今天就暂时写到这吧。欢迎读者在评论区进行交流或答疑解惑。下期预告:介绍常用的Linux 操作系统基本命令(实用性) 下周见~