GWAS全基因组关联分析工具GAPIT最新版!详细安装教程与报错解决方案笔记(Linux版)

简介: GWAS全基因组关联分析工具GAPIT最新版!详细安装教程与报错解决方案笔记(Linux版)

GAPIT最新版安装与报错解决

本篇笔记主要内容是GWAS分析软件GAPIT最新版的安装和使用教程,包括常见的报错以及解决方案,主要出错位置在LDheatmap、stringi、nloptr、lme4等,测试安装的环境是东方天意的ECS云服务器(Linux centos7),R版本为4.2.2,虚拟环境使用conda。

什么是GWAS分析?

GWAS,即基因组关联分析(Genome-wide Association Study),是一种广泛应用于生物医学研究中的遗传学方法。其主要目的是在全基因组水平上,寻找基因与特定性状或疾病之间的关联性,从而揭示其遗传基础。

什么是GAPIT软件?

GAPIT(Genome Association and Prediction Integrated Tool)是一个R语言中的工具包,封装了多种GWAS分析方法,包括基于混合线性模型(MLM)的GWAS、基于广义线性模型(GLM)的GWAS等。GAPIT可以自动处理GWAS数据的预处理、基因型数据的质量控制、单倍型的估计、基因型-表型的联合分析等步骤。

GAPIT具体功能

  1. 数据预处理:通过对原始数据进行过滤、清洗、转换等操作,构建分析所需的数据集。
  2. 质量控制:对基因型数据进行清洗,剔除掉质量不好的标记点和个体。
  3. 单倍型估计:估计个体的单倍型,以便进行基因型-表型关联分析。
  4. GWAS分析:使用MLM和GLM模型进行GWAS分析,找出和表型相关的标记点和基因。
  5. 群体结构控制:通过控制群体结构,减少假阳性结果。
  6. 基因型-表型关联分析:对经过控制群体结构后的基因型数据进行表型相关性分析,找出和表型显著相关的标记点和基因。
  7. 数据可视化:通过绘制散点图、直方图、QQ图等图表,直观展示统计结果。

综上所述,GAPIT包是一个功能较为完整的GWAS分析工具,具有数据处理、质量控制、GWAS分析、群体结构控制、基因型-表型关联分析和数据可视化等多种功能,能够方便快捷地进行基因组关联分析。

如何安装GAPIT?

方法一:Github

R> install.packages("devtools")
R> devtools::install_github("jiabowang/GAPIT",force=TRUE)
R> library(GAPIT)

该方法的前提是有网络,而且能访问Github,安装的过程比较友好。

方法二:ZZlab

R> source("http://zzlab.net/GAPIT/gapit_functions.txt")

该方法是直接运行安装函数,也可以访问网站下载后在本地安装。

方法三:本地安装

bash$ git clone git@github.com:jiabowang/GAPIT.git
bash$ R CMD build GAPIT
bash$ R CMD INSTALL GAPIT_3.2.0.9000.tar.gz
R> install.packages("GAPIT_3.2.0.9000.tar.gz", repos = NULL, type="source")

该方法是先从Github下载最新的relase文件,然后本地进行安装,适合没有联网的服务器。

  • 提示:设置清华大学的CRAN镜像,比官方提供的速度更快
options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")))

报错与解决方案

直接运行安装命令后,最终可能会出现如下报错,主要是某些依赖包没有安装,因此需要逐个解决。

  • nloptr
$ conda install r-nloptr
Collecting package metadata (current_repodata.json): done
Solving environment: done
  added / updated specs:
    - r-nloptr
The following packages will be downloaded:
    package                    |            build
    ---------------------------|-----------------
    r-nloptr-2.0.3             |    r42hb5eb8f6_0         658 KB  defaults
    ------------------------------------------------------------
                                           Total:         658 KB
The following NEW packages will be INSTALLED:
  r-nloptr           anaconda/pkgs/r/linux-64::r-nloptr-2.0.3-r42hb5eb8f6_0 
Proceed ([y]/n)? 
Downloading and Extracting Packages
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
  • stringi
install.packages("stringi") # 先试试普通安装

首先,从下面这个网站下载本地安装包,然后在手动安装。补充一点,这个包出错的主要原因是ICU data library (icudt)数据集下载不了,可能是网站自身有关,因此建议本地安装。

https://cran.r-project.org/src/contrib/stringi_1.7.12.tar.gz

下载后进行本地安装,出现下面的报错信息,推测可能是icu数据的链接问题,由于文件较大,网速不行导致断开。

Error: Stopping on error
In addition: Warning messages:
1: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  downloaded length 1413993 != reported length 11454999
2: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  URL 'https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': Timeout of 60 seconds was reached
3: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  downloaded length 1423942 != reported length 11454999
4: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  URL 'https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': Timeout of 60 seconds was reached
Execution halted
*** *********************************************************************
*** stringi cannot be built.
*** Failed to download the ICU data library (icudt). Stopping now.
*** For build environments that have no internet access,
*** see the INSTALL file for a workaround.
*** *********************************************************************
ERROR: configuration failed for package ‘stringi’

通过下面的网址可以直接下载该数据集,然后上传到服务器,进行安装

http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip
# icu数据的路径下运行下面一行代码
R CMD INSTALL --configure-vars='ICUDT_DIR=/home/zjw/download/' stringi_1.7.12.tar.gz

注意:该步骤需要退出R,回到bash进行执行,最终如果出现下面这样的界面说明安装成功

** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
DONE (stringi)
  • lme4
$ conda install r-lme4
Collecting package metadata (current_repodata.json): done
Solving environment: done
  added / updated specs:
    - r-lme4
The following packages will be downloaded:
    package                    |            build
    ---------------------------|-----------------
    r-boot-1.3_28              |    r42h6115d3f_0         612 KB  defaults
    r-lattice-0.20_45          |    r42h76d94ec_0         1.1 MB  defaults
    r-lme4-1.1_29              |    r42h884c59f_0         4.3 MB  defaults
    r-matrix-1.4_1             |    r42h76d94ec_0         4.2 MB  defaults
    r-minqa-1.2.4              |    r42hb5eb8f6_4         137 KB  defaults
    r-nlme-3.1_157             |    r42h640688f_0         2.2 MB  defaults
    r-rcppeigen-0.3.3.9.2      |    r42h884c59f_0         1.2 MB  defaults
    ------------------------------------------------------------
                                           Total:        13.7 MB
The following NEW packages will be INSTALLED:
  r-boot             anaconda/pkgs/r/noarch::r-boot-1.3_28-r42h6115d3f_0 
  r-lattice          anaconda/pkgs/r/linux-64::r-lattice-0.20_45-r42h76d94ec_0 
  r-lme4             anaconda/pkgs/r/linux-64::r-lme4-1.1_29-r42h884c59f_0 
  r-matrix           anaconda/pkgs/r/linux-64::r-matrix-1.4_1-r42h76d94ec_0 
  r-minqa            anaconda/pkgs/r/linux-64::r-minqa-1.2.4-r42hb5eb8f6_4 
  r-nlme             anaconda/pkgs/r/linux-64::r-nlme-3.1_157-r42h640688f_0 
  r-rcppeigen        anaconda/pkgs/r/linux-64::r-rcppeigen-0.3.3.9.2-r42h884c59f_0 
Proceed ([y]/n)? 
Downloading and Extracting Packages
Preparing transaction: done                                                                                                                     
Verifying transaction: done                                                                                                                     
Executing transaction: done
  • LDheatmap
# Install the latest development version from GitHub with
devtools::install_github("SFUStatgen/LDheatmap")

该方法需要首先安装devtools,但是linux下安装devtools很麻烦,容易出现以下报错信息:

对于centos系统来说,使用sudo yum install harfbuzz-devel fribidi-devel安装依赖库文件,然后依次安装下列几个依赖包

Warning messages:
1: In install.packages("devtools") :
  installation of package ‘textshaping’ had non-zero exit status
2: In install.packages("devtools") :
  installation of package ‘ragg’ had non-zero exit status
3: In install.packages("devtools") :
  installation of package ‘pkgdown’ had non-zero exit status
4: In install.packages("devtools") :
  installation of package ‘devtools’ had non-zero exit status

安装方法:

conda install r-textshaping
conda install r-ragg
conda install r-pkgdown
conda install r-devtools
R #进入R操作界面
install.packages("devtools")

然后,又出现了新的报错,html相关的版本太低,需要更新,报错信息如下:

Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  namespace ‘htmltools’ 0.5.2 is being loaded, but >= 0.5.4 is required
Calls: <Anonymous> ... namespaceImport -> loadNamespace -> namespaceImport -> loadNamespace
Execution halted
ERROR: lazy loading failed for package ‘devtools’
* removing ‘/home/zjw/miniconda3/envs/R420/lib/R/library/devtools’
The downloaded source packages are in
        ‘/tmp/RtmpAvUGkq/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning message:
In install.packages("devtools") :
  installation of package ‘devtools’ had non-zero exit status

使用下面这行代码进行解决,即可安装成功!

install.packages("htmltools")
install.packages("devtools") #然后再次安装

最后,运行安装LDheatmap的命令,完成安装。

devtools::install_github("SFUStatgen/LDheatmap")

解决了所有的依赖包安装问题,可以再次运行GAPIT安装程序了,我这里使用的是Github方法。

> devtools::install_github("jiabowang/GAPIT",force=TRUE)
Downloading GitHub repo jiabowang/GAPIT@HEAD

编译安装中。。。。。。

* DONE (GAPIT)
  > library(GAPIT)
  > # 没有报错,说明安装成功!yes

建议与提示

  1. 使用conda先创建一个虚拟环境,再利用conda直接安装r-base
  2. 安装R包通常有3种方法,官方的install.packages、Github上的包用devtools、下载文件到本地安装
  3. 如果上面的方法还装不上,试试退出R后用conda安装,说不定会有惊喜
  4. 依赖包的安装如果碰到系统依赖库文件缺失,需要管理员安装对应的库文件(一般是libxxx.so)
  5. 编译安装需要tar.gz格式的source资源包,成功率最高

END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

文献丨高通量表型组图像识别与GWAS

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

图书丨R语言、Python、Linux

超算丨数据分析时电脑配置不够用?试试

软件 | 如何进行基因家族分析?TBtools

服务器丨家用联想台式机重装Linux系统

转录组丨一套完整的操作流程案例

转录组丨利用limma包进行差异表达分析

Python笔记丨函数和类相关基础知识总结

Python笔记丨条件与循环流程知识总结

Python笔记丨数据类型基础与易错点总结

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
相关文章
|
5天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
54 25
|
15天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
78 32
|
18天前
|
缓存 网络协议 Linux
PCIe 以太网芯片 RTL8125B 的 spec 和 Linux driver 分析备忘
本文详细介绍了 Realtek RTL8125B PCIe 以太网芯片的规格以及在 Linux 中的驱动安装和配置方法。通过深入分析驱动源码,可以更好地理解其工作原理和优化方法。在实际应用中,合理配置和优化驱动程序可以显著提升网络性能和稳定性。希望本文能帮助您更好地使用和管理 RTL8125B,以满足各种网络应用需求。
64 33
|
23天前
|
监控 安全 Ubuntu
Linux下如何安装配置Fail2ban防护工具
通过以上步骤,可以在Linux系统中成功安装和配置Fail2ban,从而有效保护服务器免受暴力破解等攻击。Fail2ban通过实时监控日志文件,自动更新防火墙规则,为系统安全提供了一层重要的保护。
93 36
|
9天前
|
Linux API
Linux下载工具wget与curl
`wget` 是一个用于从网络下载文件的命令行工具,支持HTTP、HTTPS和FTP协议。它能自动处理下载中断,并支持递归下载网站内容。基本用法:`wget URL`,可指定文件名(`-O`)、保存目录(`-P`),还支持断点续传(`-c`)、限速(`--limit-rate`)和递归下载(`-r`)。相比之下,`curl` 更侧重于发送各种HTTP请求(如GET、POST),并支持文件上传、自定义请求头和cookie等功能。
43 10
|
19天前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
49 20
|
6天前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
19 4
|
18天前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
53 16
|
1月前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
96 28
|
21天前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
56 10