如果您喜欢我们的文章,请设“关注”哦~
对于生物信息学领域的初学者来说,在黑色的终端窗口中使用命令行控制没有用户友好的 UI 的 Linux系统可能会让人望而生畏。
然而,命令行并非一个神秘的编程工具,而是一个功能强大、精确且可重复的数字化实验台。在生物信息学中,绝大多数前沿工具都是为命令行环境设计的,这使得掌握命令行技能成为现代科研中不可或缺的一环。
与图形用户界面(GUI)工具相比,命令行能够执行复杂的多步骤分析(即“管道”),以及实现高效的自动化工作流程。这是 GUI 无法比拟的。
往期回顾:
通用结构:
command [options][arguments]
command[options][arguments]
理解这个结构是掌握命令行的第一步,之后你就可以举一反三学习和理解别的Linux命令。
命令:你的科研仪器
command 是可执行程序的名称。有些命令是系统内置的简单工具(如 ls、pwd、cd),而另一些则是需要专门安装的复杂软件包(如 bwa、samtools, blastn)。
后者是生物信息学中的核心研究工具:bwa 是你的序列比对器,samtools 是比对文件的操作套件,而 blastn 则是你的序列搜索工具。
需要注意的是,许多强大的程序,如 bwa、samtools 或 git,并非单一功能的工具,而是一个包含多种相关功能的“工具套件” 。
你可以将 bwa 想象成一个多功能的瑞士军刀。这个主程序本身包含了多种不同的算法和功能,每种功能都通过一个特定的子命令来调用 。
-
bwa 是主程序或工具套件的名称。 -
mem 是您选择要使用的具体工具或算法的名称。bwa 软件包实际上包含了多种比对算法,通过不同的子命令调用,例如 mem、aln 和 bwasw 。
此外,bwa 还有其他辅助功能的子命令,如 index,它专门用于为参考基因组构建索引 。
那么为什么子命令没有连字符 (-)呢?
连字符是用来标识选项 (options) 的,它们的作用是修饰或改变一个动作的默认行为。而子命令本身就是要执行的核心动作。因此,一个更精确的命令结构可以表示为:
program subcommand [options][arguments]
选项(标志):校准你的仪器
选项用于修改命令的默认行为,如同调节仪器上的旋钮和开关。它们主要有两种形式:
短选项与长选项:
短选项:由单个连字符 - 和单个字母组成(例如 -h)。优点是输入快捷 。
长选项:由两个连字符 -- 和一个描述性单词组成(例如 --help),优点是可读性强。
很多情况下,这两种形式是等效的。
选项的类型:
标志/开关 (Flags/Switches):这类选项不接受额外的值,它的出现与否本身就代表一种布尔开关(开或关)。
例如,在
bwa mem -M命令中,-M 标志告诉BWA将较短的拆分比对(split hits)标记为次要比对,这是某些下游分析工具(如GATK)所要求的。键值对 (Key-Value Pairs):这类选项需要一个值或参数来协同工作。
例如,在
head -n 20中,-n 是“键”,20 是“值”。值的传递语法可能有所不同,有些工具使用空格分隔(如--lines 20),而有些则需要使用等号(如--lines=20)。
参数:你的生物样本
参数通常是命令操作的输入文件或目标对象。在生物信息学中,这通常是你的数据文件。
例如,在命令 bwa mem ref.fasta reads_1.fq reads_2.fq 中,参考基因组文件 ref.fasta 和两个 FASTQ测序文件就是参数。有些命令必须有参数才能运行(如 less),而有些则可以不带任何参数(如 ls)。
但是我们如何知道哪个命令有什么选项,每个命令具体又怎么使用呢?请期待下一期的man和help。
有任何问题/感兴趣的小伙伴欢迎添加小助手微信(SDbioinfo_2023),加入交流群,我们一起学会Linux!SDbioinfo
作者:刘鑫鹏(哥本哈根大学)
编辑:黎琛
排版:刘宇昂
⭐ SDbioinfo-往期回顾 ⭐
【栏目1:播客分享会】
【栏目2:前沿信息早知道】
诺奖给了Treg,如何用单细胞测序寻找它的“主控开关”?
【栏目3:知识解读】
马尔科夫链蒙特卡洛方法mcmc原理
【栏目4:最新招聘】
SDbioinfo嘉宾-张心仪博士组招聘
【?我是谁?】
SDbioinfo,专注「计算生物学」领域的学习智库
我们汇聚了来自哈佛剑桥港大、北清复交等高校科研工作者。我们的愿景:链接领域最强大脑,用数据和分析改变生命。
不管你是:
⭐ 找实习、找工作、出国留学
⭐ 找校友、找搭子、找资源
⭐ 找科研方法、前沿信息、大咖分享
统统可以帮你,加入SDbioinfo,和全球生信人一起成长!
(添加微信:SDbioinfo_2023)

