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
解壓后,會看到以下兩個可執行文件:
- VEGAS2.pl
- 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
這里我就不再贅述。