生信学习笔记:利用GATK call SNP
SNP是指在基因组上单个核苷酸的变异,包括置换、颠换、缺失和插入。SNP在基因组中分布相当广泛,近来的研究表明在很多物种基因组中每300bp就出现一次。大量存在的SNP位点,使人们有机会发现与各种疾病,包括肿瘤相关的基因组突变。既然SNP那么广泛存在,获得SNP就变成一项重要的任务。在经历了样本收集、测序、质控和mapping后,我们输出了bam格式的数据。之后,我们就要尝试利用GATK call SNP了。
安装GATK
GATK提供多种方法安装,初学者容易陷入混乱,这里提供一张较为便捷的方法,后面附录在介绍其他安装办法。
- 配置要求
GATK官网有明确说明,有以下要求:
- 支持Linux和MacOS系统,不支持Windows系统(本文用的centos7环境)
- 需要java8环境
- 需要python2.6或以上版本,以及python3.6.2的版本,可以用conda切换python版本。两者都用于运行一些python脚本。
- 需要R 3.2.5,用于画一些图
注意这只是运行要求,GATK安装分为直接解压运行版和build版,这里介绍规范的build过程,直接解压运行的在附录中会提到。
- 配置java环境
这个很多同学都会配置,但是鉴于有部分同学还是不是很会配置,这里我们将介绍。
有些同学不知道自己的系统有没有安装适合的java版本,可以用以下命令查看:
$ java -version
如果是1.8就跳过这一步骤,不过比这个版本低的话就继续阅读本步骤的内容。
首先到官网下载jdk到本地,先用浏览器到官网上寻找自己要的版本,然后获得链接,在centos上用wget下载(如果下载得很慢的话可以试试先下载的Windows上,然后用传输工具传输到centos机子上),如要下载jdk-8u171-linux-x64.tar.gz,则在合适的文件夹下面用wget下载:
$ wget https://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/jdk-8u221-linux-x64.tar.gz
需要注意的是无论从Windows浏览器下载还是利用centos命令行下载都需要接受它们的license。因此应当用以下的指令,否则可能出现错误。
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
此外还要注意自己的目标系统的版本,是64位还是32位的,以及下载rpm包安装还是下载压缩包解压安装,这里演示利用压缩包安装的步骤。
$ tar -zxvf jdk-8u221-linux-x64.tar.gz # 具体版本以自己下载为准
$ cd jdk-8u221-linux-x64
# 配置环境变量
$ vim /etc/profile # 这种不是很安全,可以用以下更多安全的方法
或
$ vim ~/.bash_profile
在上面其中一个文件末尾加入下列内容(根据自己的情况修改):
export JAVA_HOME=(你自己的jdk路径)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
最后记得检查下是否按照jdk8成功
$ java -version
另外我想到一个更加简单的办法,可以直接在有管理员权限的前提下,使用yum安装。
$ sudo yum list java-1.8*
$ yum install java-1.8.0-openjdk* -y
$ java -version
- 配置gradle环境
安装gradle的方法其实和按照java的方法一样,在官网下载安装包,解压后设置环境变量。
传统的按照方法当然也可以,但是这里推荐一个更加简单的办法,那就是用sdkman安装。
这个sdkman很有意思,编写人估计想给它赋予类似人的智商,所以help、安装过程和网站都与众不同。在官网也有介绍便捷的安装方式,这里简单说一下:
$ curl -s "https://get.sdkman.io" | bash
在打入这个指令之后会冒出一段话,同学们应当根据这段话最后的指令执行。执行完成后就算安装了。
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
检查安装
$ sdk version
如果出现版本的话就算安装成功了,然后就可以直接输入指令:
$ sdk java gradle
就可以安装最新版的gradle了,安装完后记得检查一下是否安装成功:
$ gradle -version
还有人说python和java也都可以用这个sdkman安装,大家可以试试看。
- 下载python2.6或以上版本
Centos7自带python 2.7,所以本身已经达到2.6的要求无需再升级。但是GATK要求安装python 3.6.2或以上,所以我们可以再安装python3.7,如果需要切换的话,可以手动切换,或者用conda切换。Python3.7的安装方法这个博主已经说得很清楚了,大家按照他的方法安装就可以了。地址:
https://www.cnblogs.com/cosiray/p/9946401.html
- 下载R 3.2.5或以上版本
R的安装也十分方便,直接用yum和EPEL安装就可以了。
首先安装EPEL:
$ sudo yum install epel-release # 如果安装了就无需再安装