简介
在数据分析过程中,会需要用到非常多的软件,每个软件的安装方法都不太一样,每一个软件所依赖的系统环境也不尽相同,甚至会相冲突,如 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 ~/bin
echo 'export "PATH=~/bin:$PATH"' >> ~/.bashrc
source ~/.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 --help
Usage template for all tools (uses --spark-runner LOCAL when used with a Spark tool)
gatk AnyTool toolArgs
Usage template for Spark tools (will NOT work on non-Spark tools)
gatk SparkTool toolArgs [ -- --spark-runner <LOCAL | SPARK | GCS> sparkArgs ]
Getting help
gatk --list Print the list of available tools
gatk Tool --help Print help on a particular tool
Configuration File Specification
--gatk-config-file PATH/TO/GATK/PROPERTIES/FILE
gatk forwards commands to GATK and adds some sugar for submitting spark jobs
--spark-runner <target> controls how spark tools are run
valid targets are:
LOCAL: run using the in-memory spark runner
SPARK: run using spark-submit on an existing cluster
--spark-master must be specified
--spark-submit-command may be specified to control the Spark submit command
arguments to spark-submit may optionally be specified after --
GCS: run using Google cloud dataproc
commands 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 translated
to 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 the
java 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 a
particular port number. This in turn will add the necessary java VM arguments
so 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 suspended
waiting for a debugger to connect. By default the port number is 5005 but
can 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
,为了方便使用,将其添加到环境变量,注意这里是两个大于号 >>
表示追加,不要打漏了:
# 添加 PATH
echo 'export PATH=~/.aspera/connect/bin/:$PATH' >> ~/.bashrc
source ~/.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.9
make
make install
# 编译完成后,即可通过路径的形式调用帮助文档
./samtools --help
# 添加PATH
ln -s /home/nickier/biosoft/samtools-1.9/samtools ~/bin/
Java 编译软件安装
前面提到的 GATK 也是一个 java 软件,不过集成性较高,软件开发团队已经让其可以通过可执行文件的形式调用。接下来介绍另一种 java 程序的调用方法:
java -jar xxx.jar
其中, xxx.jar
就是下载的 java 程序,调用的时候,需要制定其具体路径,可以用绝对路径,也可以用相对路径。