简介
在数据分析过程中,会需要用到非常多的软件,每个软件的安装方法都不太一样,每一个软件所依赖的系统环境也不尽相同,甚至会相冲突,如 Python2 和 python3 等。
在 Linux 命令行安装软件与在 Windows 或 Mac 的可视化桌面安装软件区别较大。
在这里我们简单介绍一下几款软件的安装方法,后文会对每一种软件的安装和使用方法做详细介绍。下一节也会详细介绍如何使用conda来管理软件包和环境。
(注:Linux 用户分管理员用户和普通用户,管理员用户可以用 apt 或 yum 安装软件,但普通用户没有权限。以下介绍面向普通用户)
对于普通用户来说,一般安装软件的流程是:下载安装包—解压—编译—添加环境变量($PATH)
PATH 变量
$PATH 变量记录命令所在的路径,但我们在 Linux 命令行输入命令时,系统会去 $PATH 变量中记录的路径寻找是否有该命令,如果有,就会执行,否则报错提示命令不存在。一个初始化的 $PATH 变量记录的路径如下:
# 在 Linux 中 echo 命令是打印的意思$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
上面以冒号 : 分割的每一个路径下都保存了很多命令,比如我们最常用的 ls 命令,就存在以下这个目录:
$ which ls/usr/bin/ls
理解环境变量 PATH 是非常重要的,对后续的环境和软件管理都非常重要。比如部分用户会在自己家目录下创建一个 bin 文件夹并将其添加到环境变量,后续安装软件,就将软件的可执行文件拷贝或软连接到这个 bin 文件夹:
mkdir ~/binecho 'export "PATH=~/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc
二进制软件安装
二进制软件的安装比较简单,安装步骤主要是:下载—解压—添加到PATH。举个例子,GATK 是做基因组数据分析必不可少的软件,功能非常强大,但是其安装方法却很简单:
cd biosoft# 下载wget -c https://github.com/broadinstitute/gatk/releases/download/4.2.0.0/gatk-4.2.0.0.zip# 解压unzip gatk-4.2.0.0.zip
在没有添加到 PATH 之前,如果想要调用gatk,如调用帮助文档,需要用路径的形式调用:
# 绝对路径调用帮助文档$ ~/biosoft/gatk-4.2.0.0/gatk --helpUsage template for all tools (uses --spark-runner LOCAL when used with a Spark tool)gatk AnyTool toolArgsUsage template for Spark tools (will NOT work on non-Spark tools)gatk SparkTool toolArgs [ -- --spark-runner <LOCAL | SPARK | GCS> sparkArgs ]Getting helpgatk --list Print the list of available toolsgatk Tool --help Print help on a particular toolConfiguration File Specification--gatk-config-file PATH/TO/GATK/PROPERTIES/FILEgatk forwards commands to GATK and adds some sugar for submitting spark jobs--spark-runner <target> controls how spark tools are runvalid targets are:LOCAL: run using the in-memory spark runnerSPARK: run using spark-submit on an existing cluster--spark-master must be specified--spark-submit-command may be specified to control the Spark submit commandarguments to spark-submit may optionally be specified after --GCS: run using Google cloud dataproccommands after the -- will be passed to dataproc--cluster <your-cluster> must be specified after the --spark properties and some common spark-submit parameters will be translatedto dataproc equivalents--dry-run may be specified to output the generated command line without running it--java-options 'OPTION1[ OPTION2=Y ... ]' optional - pass the given string of options to thejava JVM at runtime.Java options MUST be passed inside a single string with space-separated values.--debug-port <number> sets up a Java VM debug agent to listen to debugger connections on aparticular port number. This in turn will add the necessary java VM argumentsso that you don't need to explicitly indicate these using --java-options.--debug-suspend sets the Java VM debug agent up so that the run get immediatelly suspendedwaiting for a debugger to connect. By default the port number is 5005 butcan be customized using --debug-port
将可执行文件软连接或者拷贝到 ~/bin 中,即可随时随地调用:
ln -s ~/biosoft/gatk-4.2.0.0/gatk ~/bin/gatk --help
当然,GATK 依赖 java ,所以需要系统上安装了 java。新版本 GATK 以不再依赖 java 8,即使系统上 java=11 也是可以的。
源码安装(需要编译)
示例一:Aspera
我们在下载 SRA 和 ENA 数据库的原始测序数据时,经常要用到一个软件 aspera
cd ~/biosoft# 下载wget -c https://download.asperasoft.com/download/sw/connect/3.8.1/ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz# 解压tar -zxvf ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz# 编译bash ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.sh
安装完成之后,会在家目录生成一个以点号隐藏文件夹 .aspera,为了方便使用,将其添加到环境变量,注意这里是两个大于号 >>表示追加,不要打漏了:
# 添加 PATHecho 'export PATH=~/.aspera/connect/bin/:$PATH' >> ~/.bashrcsource ~/.bashrc
上面这种添加 PATH 的方式虽然可行,但如果需要安装的软件有很多,PATH 就会变得非常臃肿,因此推荐上文提到的将可执行文件软连接到 ~/bin
ln -s ~/.aspera/connect/bin/* ~/bin
示例二:Samtools
samtools 是生信分析必不可少的一个软件,不管是什么组学,都需要直接或间接性用到这个软件。该软件为 C 语言编写,安装过程需要编译:
cd ~/biosoft# 下载wget -c https://github.com/samtools/samtools/releases/download/1.13/samtools-1.13.tar.bz2# 解压tar -jxf samtools-1.13.tar.bz2# 编译cd samtools-1.13./configure --prefix=/home/nickier/biosoft/samtools-1.9makemake install# 编译完成后,即可通过路径的形式调用帮助文档./samtools --help# 添加PATHln -s /home/nickier/biosoft/samtools-1.9/samtools ~/bin/
Java 编译软件安装
前面提到的 GATK 也是一个 java 软件,不过集成性较高,软件开发团队已经让其可以通过可执行文件的形式调用。接下来介绍另一种 java 程序的调用方法:
java -jar xxx.jar
其中, xxx.jar 就是下载的 java 程序,调用的时候,需要制定其具体路径,可以用绝对路径,也可以用相对路径。
