前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >生物信息学命令行入门的十个简单规则

生物信息学命令行入门的十个简单规则

作者头像
生信菜鸟团
发布2021-04-13 14:47:33
发布2021-04-13 14:47:33
7850
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

随着测序技术的发展,基因组学变得越来越受欢迎,并且已经应用到农业医学环境保护等不同的领域。这使得许多具有生物学和遗传学背景的研究员,面临着大数据分析的挑战。在这里,我们为有兴趣使用命令行进入生物信息学领域的任何人提供了10条简单规则。简单来说,这十条规则可以总结为下图。

规则1:熟悉计算机术语

对计算机和相关术语有基本了解,对于确定如何有效运行生物信息学的命令非常有帮助。它还可以帮助我们解决运行过程中的错误。了解术语可以使我们了解计算的需求,来回答我们想回答的生物学问题。常见的术语如下:

算法:由计算机程序执行的一组规则或计算。某些算法可能更适合于特定的数据集,并且可能在性能(例如速度或准确性)上有所不同。 中央处理器(CPU):在计算节点或VM上执行实际计算的芯片。 计算节点:包含多个CPU和关联的RAM的单台计算机。 :CPU的一部分。单核处理器每个CPU包含1个核,这意味着CPU和核通常是可互换的。 CPU时间:CPU实际处理数据所花费的时间(通常为CPU时间〜= Walltime * CPU数量)。 依赖性:成功执行另一个工具或管道所需的软件。 可执行文件:包含工具/程序的文件。某些软件具有单个可执行文件,而其他软件具有针对不同命令/步骤的多个可执行文件。 高性能计算机(HPC):连接的计算节点的集合。 操作系统(OS):支持计算机基本功能的基本软件。一些最常见的基于Linux的操作系统包括Debian发行版(Ubuntu)和RedHat发行版(Fedora和CentOS)。 管道:管道是由各种步骤(命令)和/或工具组成的工作流程,这些步骤和命令或工具处理给定的一组输入以创建所需的输出文件。 编程语言:用于指示计算机执行特定任务的特定语法和规则。生物信息学中使用的通用编程语言包括Bash,Python,Perl,R,C和C ++。 随机存取存储器(RAM):临时存储CPU所需的所有信息(可以由关联的节点或VM上的所有CPU进行访问)。 计划程序:管理在共享的HPC环境中运行的作业(脚本)。一些常见的调度程序包括SLURM,PBS,Torque和SGE。 脚本:包含以单一编程语言执行的代码的文件。 线程:程序可以同时执行的计算数量-取决于内核数(通常为1个内核= 1个线程)。 工具:对输入数据集进行分析以提取有意义的输出/信息的软件程序-工具,软件和程序通常可互换使用,但指的是生物信息学管道的核心组成部分。 VM:虚拟机-类似于计算节点,因为它表现为一台计算机,并且包含所需数量的CPU和关联的RAM(通常与云计算关联)。

规则2:了解您的数据并需要确定要使用哪个工具或管道

这通常可能是最困难的一步,因为对于每种特定的生物信息学分析,通常有许多不同的工具和流程可供选择。尽管我们可以自己编写工具来执行特定任务,但通常在网络上已经存在一种可以满足我们的需求的预先存在的工具,或者可能只需要进行少量调整即可达到所需的结果。清楚地了解我们的数据和我们要提出和解决的问题类型将大大有助于我们对工具或流程选择。选择最合适的流程或工具将取决于许多因素,其中包括:

我们的目标物种和数据质量。 一些生信流程/软件可能基于其独特特征(例如,基因组大小,重复序列复杂性,倍性等)或基于数据质量(例如,数据读长。)。阅读有关相似物种的其他已发表论文将有助于对此进行选择。

可用的计算资源和时间限制。 不同软件可能基于不同的算法,这可能会导致计算资源和使用时间的显着减少或增加。某些共享的HPC基础结构可能有适当的时间限制,或者在使用个人计算资源时,RAM或内核的数量可能是一个限制因素。

哪些工具随时可用? 研究人员可以免费使用许多生物信息学管道和工具,但有些管道和工具需要购买许可证。

与从事类似项目的同事交谈并通读文献,通常是确定用于确定最佳特定分析的软件的方法。有许多出版物对不同的工具进行了基准测试,并比较了类似管道的优缺点。也有许多在线网络论坛(例如BioStars ),能帮助你选择工具的使用。确保在不同的网络论坛中进行搜索,以查看是否有其他研究人员也问过与你相同或相似的问题(通常是这种情况)。如果找不到解决方案,请确保你发布的所有问题清晰明了,并附有代码示例或错误示例,以最大程度地提供有用的答复和答案。

规则3:估算您的计算需求

一旦选择了所需的工具或流程,下一个关键步骤便是为所选分析估算所需的计算需求。估计需求不仅将使您能够确定最适合运行平台(例如,HPC还是个人电脑),而且还将减少用于排除基本计算资源错误(例如,用尽RAM或储存空间)。此外,在任何给定的计算基础架构上运行任何工具或流程之前,这一步不可缺少。例如,在共享的HPC环境中,您的作业脚本将需要包括您请求的计算资源(内核,RAM,wall time),并且需要确保您有足够的磁盘空间可用于您的帐户。默认情况下,许多生物信息学工具都可以在单个内核上运行,但这会导致更长的使用时间。增加内核数量可以极大地减少您的挂墙时间,尽管通常在此与其他重要因素(例如RAM使用率,成本,排队时间等)之间取得平衡。通常,对于大多数常见的生物信息学流程来说,在合理的时间范围内运行通常需要32核和128 GB的RAM。话说如此,有些程序可能需要比这少得多的东西,而另一些程序可能具有更高的内存要求或实现更大的并行化。

规则4:探索不同的计算平台

在估计了所选工具或者流程的计算需求之后,我们将需要确定这些资源在何处可用以及哪种基础架构最适合我们的需求。尽管许多大型生物信息学流程(特别是在处理具有大型基因组的生物(如哺乳动物和植物)时使用)需要大量计算资源,而这些工具将远远超过标准PC,但某些工具可能会在个人计算机上轻松运行。

与传统的共享HPC资源相比,云计算具有许多关键优势,包括:

  • 为你想使用的每个生物信息工具或流程定制计算资源的能力;
  • 可控制的计算环境(例如,操作系统,软件安装,文件系统结构等);
  • 缺少排队系统,从而缩短了研究运行时间;
  • 无限的可扩展性和易于重现性
  • 利用云资源还可以防止研究人员购买和维护自己的物理计算机硬件。

但是,商业云计算确实要付出一定的金钱,其具体使用可能还会有点陡峭的学习曲线。

规则5:了解软件安装的基础

当想要将不同生信工具用于你的构建生物信息学流程中时,你将需要熟悉所需工具的各种安装方法。尽管管理员有时会为某些共享的HPC平台提供软件安装作为服务,但了解软件安装的基础有助于解决所有基于安装的错误,并无需root权限自己可以本地安装的软件。常见的工具安装方法包括,使用系统自带的APT(高级软件包工具),使用conda软件包管理工具,使用container,例如Docker或Singularity,通过GitHub等下载源代码,进行手动安装。

规则6:精心策划和测试脚本

对流程中,每个步骤执行测试运行。在运行流程之前,重要的是首先通读软件帮助文档,以确保了解不同的输入,输出和分析选项。一旦拥有了最终流程脚本,就必须对其进行快速测试,以确定是否有任何即时错误。从简单的拼写错误或语法错误(导致找不到文件或目录或命令与无效选项混淆)到无法找到所需的软件或配置有问题的依赖项而错误配置的软件。这些错误都是每个生信工作者都会遇到的错误。

规则7:监控和优化你的流程

一旦脚本运行完毕,监视流程以确定是否有效地利用了分配给它的计算资源就很重要。了解流程使用的资源可以帮助你扩展或缩减计算资源,以免浪费资源或达到资源限制。在共享的HPC基础结构上,通常可以从作业日志文件或特定于调度程序的命令中查看使用的计算资源的摘要。诸如最大RAM和CPU使用率以及CPU时间和运行时间之类的指标在调整脚本时会很有用。以便正确地请求所需的最佳资源量。这使管道能够高效运行。

当您在云中运行管道时,由于可以完全控制所有计算资源,因此可以进行更具体的监视。像htop(https://hisham.hm/htop/)这样的简单程序可以用于对CPU和RAM使用率等基本指标进行快速实时监控。许多生物信息流程本质上是“单独的”,这意味着单个流水线中的不同步骤可能具有截然不同的计算要求。一些步骤/工具可能对内存的要求很高,但仅使用少数几个内核,而其他一些步骤/工具可能会在大量内核上很好地实现多线程,但需要的内存最少。了解每个步骤所需的计算资源可能会帮助你分隔流程,并在不同的机器类型上运行每个阶段,从而提高成本效益。监视整个流程中的磁盘空间需求也很重要,因为许多生物信息学工具需要大量临时存储,这些临时存储通常在管道完成后便会清除。附加存储在云中的成本可能很高,因此确保仅请求必要的内容也将减少流程运算的成本。

规则8:熟悉基本的bash命令

作为生物信息学家,你需要对各种生物信息工具和流程进行来回操作,排序和过滤输入和输出文件。例如,你想提取特定样本或特定基因的信息。或者在包含数据表的文件中,希望按特定列对输出文件进行排序,或者选择包含特定值的行。你可能想要用列表中的相应名称替换某个ID,或对列中的值执行计算。幸运的是,生物信息学中使用的许多输入和输出文件都是常规文本文件,因此可以轻松实现这些任务。这是一些标准的unix shell命令行实用程序(即grep,AWK和sed实用程序)发挥作用的地方。

规则9:写下来!

在开始使用命令行生物信息学时要写下来并保留有用的注释。可以在一组生物数据上运行的流程或分析的数量有时可能非常广泛,并且通常使用不同参数。即使是那些记忆力很强的人,也常常会在发布时回顾结果,并思考“我们为什么使用该工具?”或“我们最终决定为该分析确定哪些参数?”。保留详细的注释可能是真正的救星。跟踪不同的脚本文件以及每个脚本所需的计算资源不仅很重要,以及随附的注释,说明了为什么选择特定工具的原因以及为成功运行管道而必须进行的任何故障排除。还需要一个易于访问的文档,其中包含所有你惯用的命令和精美的代码,这些代码可能一次又一次地派上用场!熟悉有用的代码文本编辑器,例如Visual Studio Code(https://code.visualstudio.com或Atom(https://atom.io),并花一些时间学习有用的标记语言(例如Markdown)将有助于保持详细,有条理和格式正确的使用的流程中的脚本和文档。

规则10:耐心是关键

成为成功的生物信息学家的1号钥匙(我们一直保存到最后)是耐心。你的大部分时间将花费在故障排除软件安装,计算错误,管道错误,脚本错误或奇怪的结果上。有些问题很容易解决,而另一些则可能要花一些时间。你可能会感到,向前迈出的每一步,都将跨越另一个障碍。但是,如果你耐心等待并解决所遇到的每个错误,那么征服生物信息学流程,并将大量数值数据或A,T,C和G转化为具有生物学意义是令人振奋的。当你遇到困难时,不要害怕举手并寻求帮助。如果事情没有按计划进行,Google将成为你最好的朋友。在极少数情况下,无休止的网络搜寻可能会导致你无所适从,请教同行专家也是个好办法。人们经常乐于分享他们的知识和解决问题的方法。

小结

在全基因组测序的新时代,生物信息学家现在比以往任何时候都受到追捧。进入命令行生物信息学世界可能是一个艰难的学习过程。希望这10条简单的规则将使任何有抱负的生物信息学家,在探索隐藏在其生物数据集的深处的有意义的含义的旅程中披荆斩棘。

整理翻译于:

https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1008645

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 规则1:熟悉计算机术语
  • 规则2:了解您的数据并需要确定要使用哪个工具或管道
  • 规则3:估算您的计算需求
  • 规则4:探索不同的计算平台
  • 规则5:了解软件安装的基础
  • 规则6:精心策划和测试脚本
  • 规则7:监控和优化你的流程
  • 规则8:熟悉基本的bash命令
  • 规则9:写下来!
  • 规则10:耐心是关键
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档