gene-based关联分析研究是SNP-based关联分析研究的一个补充。

目前有很多工具支持gene-based关联分析研究,比如GCTA,VEGAS2等。

下面主要介绍一下怎么用VEGAS2做gene-based的关联分析研究。

先说VEGAS2的优点,输入特别简单,不需要准备太多输入文件。

缺点,我后面再提。

VEGAS2提供了两种方式跑gene based的关联分析。

一种是在线的,一种是离线的。

下面分别介绍这两种。

1、基于在线跑VEGAS2的方式

在线网址:https://vegas2.qimrberghofer.edu.au/

这种输入方式很简单,准备一个文件,文件包含两列,分别为SNP的rs编号和P值,如下所示:

rs1004739 0.00341

rs2898687 0.005083

rs7162781 0.6343

rs2905794 0.9469

rs1801052 0.9469

rs1013948 0.2093

准备好后,按如下图所示提交分析

2、基于Linux跑VEGAS2的方式

这种方式优点是不需要像在线那种方式需要等对方返回结果。直接就能在服务器上跑。

缺点也很明显。

第一、

配置麻烦。安装很不友好。不适合生信小白拿来练手。

会让你越练越挫,越练越生气。最后从入门到放弃。

第二、

即便你安装成功了,能跑了。你会发现,特别占CPU。

我相信等你跑完所有染色体后,早被课题组的人骂惨了。

所以,真心建议,放弃这个软件,或者直接选用在线版本。

如果你坚持要在Linux下用这个软件,请看下面的教程。

2.1 VEGAS2下载、安装

wget https://vegas2.qimrberghofer.edu.au/VEGAS2offline.tgz

tar -zxvf zVEGAS2offline.tgz

解压后,会看到以下两个可执行文件:

  1. VEGAS2.pl
  1. VEGAS2.config

以及两个文件夹:

a. VEGAS2database

b. VEGAS2scripts

2.2 config VEGAS2

sh vegas2.config VEGAS2database VEGAS2scripts

2.3 确保服务器安装了perl,plink和R

which perl

which plink

which R

如果安装了perl,plink和R,在输入上面命令后,会返回perl,plink和R的地址。没有返回哪个软件的地址,则需要自己手动export进去。

例如,假如没有返回plink软件,但是你又明确知道plink安装在/usr/bin下,则用以下命令:

export PATH=/usr/bin/:$PATH

2.3 安装R的依赖包

install.packages("mvtnorm")

install.packages("corpcor")

2.4 开始跑gene-based关联分析研究。

默认参数:

vegas2 test_vegas2input.txt -pop 1000GEURO -subpop EURO -genesize 0kbloc -top 100 -sex BothMnF -max 1000000 -out genebased.V2out

注意:

–chr 和 –genelist参数不要同时使用,同样,–top 和 –bestsnp参数也不要同时使用。不然没法工作。
-pop是指研究样本的群体来源,默认是欧洲( 1000GEURO );

-subpop是指子群体,比如芬兰,北方汉族等;

-genesize To specify which gene definition to use. There are five options available viz. 0kbloc(default), 10kbloc, 20kbloc, 50kbloc and 0kbldbin

-chr To run vegas2 on specific chromosome. It could be in between 1 to 23.

-genelist To run vegas2 on specific list of genes.

-top It tell vegas2 to perform top percentage test where it consider specified percentage of top SNPs

-bestsnp It tell vegas2 to perform best SNP test.

-sex This option is provided for X-chromosome analysis. It tells vegas2 to consider either male (Default) of female 1000G individuals to make ld matrix for simulations.

-max It tells VEGAS2 the maximum number of simulation to perform. It must be above 1e6.

-adjust To get genomic inflation corrected p-values. It will create one more file “.corrected”

-out It tells VEGAS2 the output file name.

如果幸运的话,在这个阶段就能跑成功了。

这个时候,能得到如下示例结果:

但如果不幸。报错了。

下面我再推荐一个备份的跑法。

2.5 备份跑法:gene-based关联分析研究。

跑之前,需要先修改vegas2.pl的代码。

修改vegas2.pl

vi vegas2.pl

进入vegas2.pl文件以后,改动的代码如下:

1)第209行

将原始代码:

my $path_sub_population = "/scratch/aniketM/VEGAS2/$reference_population/1000G$sub_population.extract";

修改为:

my $path_sub_population = "/VEGAS2/VEGAS2offline2/VEGAS2database/$reference_population/1000G$sub_population.extract";

其中,/VEGAS2/VEGAS2offline2/VEGAS2database/指的是你服务器VEGAS2database绝对路径

也就是说,如果你的VEGAS2database文件夹放在/usr/VEGAS2/VEGAS2offline2/VEGAS2database/这个路径上,

那么这里应该修改为:

my $path_sub_population = "/usr/VEGAS2/VEGAS2offline2/VEGAS2database/$reference_population/1000G$sub_population.extract";

2)第212行

将原始代码:

my $path_merge_database = "/scratch/aniketM/VEGAS2/$reference_population/$definition_gene";

修改为:

my $path_merge_database = "/VEGAS2/VEGAS2offline2/VEGAS2database/$reference_population/$definition_gene";

修改的路径同209行的修改方式,这里不多做解释。

3)第215行

修改方式同209行,

/scratch/aniketM/VEGAS2/

改为

/VEGAS2/VEGAS2offline2/VEGAS2database/

4)第218行

修改方式同209行,

/scratch/aniketM/VEGAS2/

改为

/VEGAS2/VEGAS2offline2/VEGAS2database/

5)第340行

将原始代码:

system("cp /home/aniketM/bin/VEGAS2scripts/genemerge.sh genemerge.sh");

修改为:

system("cp /VEGAS2/VEGAS2offline2/VEGAS2scripts/genemerge.sh genemerge.sh");

其中,/VEGAS2/VEGAS2offline2/VEGAS2scripts/指的是你服务器VEGAS2scripts绝对路径

也就是说,如果你的VEGAS2scripts文件夹放在/usr/VEGAS2/VEGAS2offline2/VEGAS2scripts/这个路径上,

那么这里应该修改为:

system("cp /usr/VEGAS2/VEGAS2offline2/VEGAS2scripts/genemerge.sh genemerge.sh");

6)第341-346行

修改方式同340行,

/home/aniketM/bin/VEGAS2scripts/

改为

/VEGAS2/VEGAS2offline2/VEGAS2scripts/

保存vegas2.pl

完成以上1)-6)的工作后,输入:wq 保存vegas2.pl

开始运行gene-based关联分析研究

输入以下代码:

/path/to/perl vegas2.pl test_vegas2input.txt -pop 1000GEURO -subpop EURO -genesize 0kbloc -top 100 -sex BothMnF -max 1000000 -out genebased.V2out

其中,/path/to/perl是指服务器放perl的路径;

vegas2.pl是VEGAS2跑gene-based的perl脚本,与test_vegas2input.txt放在同一个路径里

3、内容补充:

运行这个软件,可能会遇到以下报错:

3.1 报错1

Can't locate Data/UUID.pm in @INC (@INC contains: /home/chenwenyan/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /software/VEGAS2/VEGAS2offline2/vegas4.pl line 4.

解决方案是:安装Data::GUID模块。

具体解决方式:

1)下载、解压Data::GUID模块

wget https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Data-UUID-1.224.tar.gz

tar -xzvf Data-UUID-1.224.tar.gz

2)安装Data::GUID模块

cd Data-UUID-1.224/

perl Makefile.PL

make

make test

make install

完成以上测试后,如果没有报任何的错误,说明Data::GUID模块已经正确安装。

3.2 报错2

gcc:error:unrecognized command line option ‘-fstack-protector-strong’

这个报错说明需要升级GCC的版本。

-fstack-protector-strong要求GCC 4.9版本以上

可以通过命令gcc -v查看服务器GCC的版本。

如果没有达到4.9,则需要升级。

gcc各种版本在这:http://ftp.gnu.org/gnu/gcc/

关于升级GCC,有写的比我更详细的教程,推荐看这篇:
https://www.cnblogs.com/julie-yang/p/4695845.html

这里我就不再赘述。

使用VEGAS2(Versatile Gene-based Association Study)进行gene based的关联分析研究的更多相关文章

  1. 数据关联分析 association analysis (Aprior算法,python代码)

    1基本概念 购物篮事务(market basket transaction),如下表,表中每一行对应一个事务,包含唯一标识TID,和购买的商品集合.本文介绍一种成为关联分析(association a ...

  2. 全基因组关联分析(Genome-Wide Association Study,GWAS)流程

    全基因组关联分析流程: 一.准备plink文件 1.准备PED文件 PED文件有六列,六列内容如下: Family ID Individual ID Paternal ID Maternal ID S ...

  3. CAFE: a computational tool for the study of gene family evolution

    1.摘要 摘要:我们提出了CAFE(计算分析基因家族进化),这是一个统计分析基因家族进化规模的工具.它使用随机的出生和死亡过程来模拟一个系统发育过程中基因家族大小的进化.对于一个特定的系统发育树,并给 ...

  4. Rare-Variant Association Analysis | 罕见变异的关联分析

    Rare-Variant Association Analysis: Study Designs and Statistical Tests 10 Years of GWAS Discovery: B ...

  5. GWAS在农业上应用

    农业的组学技术应用虽然落后于人的研究,这是什么意义的问题,但有时农业基因组有自己无可比拟的优势,那就是材料.下面介绍GWAS应用. GWAS(Genome-wide association study ...

  6. 32、Differential Gene Expression using RNA-Seq (Workflow)

    转载: https://github.com/twbattaglia/RNAseq-workflow Introduction RNAseq is becoming the one of the mo ...

  7. CQRS, Task Based UIs, Event Sourcing agh!

    原文地址:CQRS, Task Based UIs, Event Sourcing agh! Many people have been getting confused over what CQRS ...

  8. augustus, gene prediction, trainning

    做基因组注释 先用augustus训练,然后再用maker做基因注释 augustus提供一些训练好的,如果有和你的物种非常接近的,直接用提供的,没有的话再自己训练. 网址: http://bioin ...

  9. [认证授权] 6.Permission Based Access Control

    在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证.那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务 ...

随机推荐

  1. flask 源码浅析(flask 如何处理请求(多线程,多进程,IO多路复用))

    2018-04-04 13:09:47 lucky404 阅读数 5724更多 分类专栏: python   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接 ...

  2. php迭代器模式(iterator pattern)

    ... <?php /* The iterator pattern is used to traverse a container and access its elements. In oth ...

  3. thinkphp5 数据库查询之paginate: 同时获取记录总数和分页数据

    thinkphp5中要想同时获得查询记录的总数量以及分页的数据, 可以用paginate(), 真的非常方便! 表结构: CREATE TABLE `t_users` ( `id` int(11) u ...

  4. Spring Boot 之:Actuator 监控

    在 Spring Boot 2.x 中为了安全,Actuator 只开放了两个端点 /actuator/health 和 /actuator/info.可以在配置文件中设置打开. Actuator 默 ...

  5. 利用Java反射机制优化简单工厂设计模式

    之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信.发送邮件.当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发.就是一个程序员和 ...

  6. Mobx | 强大的状态管理工具 | 可以用Mobx来替代掉redux

    来源简书 电梯直达 https://www.jianshu.com/p/505d9d9fe36a Mobx是一个功能强大,上手非常容易的状态管理工具.就连redux的作者也曾经向大家推荐过它,在不少情 ...

  7. 珠峰培训node正式课--【笔记】|全局对象 | process | util | fs | stream 流

    全局对象: console  : __filename     ; __dirname     ; setTimeOut     ; setImmediate(把参数函数放在下一个环节执行) proc ...

  8. Xcode 创建.a和framework静态库(转)

    最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.iOS中的静 ...

  9. Substrings SPOJ - NSUBSTR (后缀自动机)

    Substrings \[ Time Limit: 100ms\quad Memory Limit: 1572864 kB \] 题意 给出一个长度为 \(250000\) 的字符串,求出所有 \(x ...

  10. 第八次 Java 作业 重写正方形周长方法

    # 题目 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法. 再创建一个矩形类的子类——正方形类,类中定义求面积方法.重写求周长的方法. 在主类中,输入一个正方形边长,创建正 ...