千人基因組計劃基因分型數據下載

最近需要下載千人基因組計劃中的中國人數據作爲參考,於是學習了下幾個下載方法。發現還是有幾個小技巧值得分享的,就記錄分享一下!我找到的主要方法有兩三個,分別是通過網頁下載,API批量下載和ftp批量下載。

1.網頁下載

這個比較簡單,也已經有很多教程,列在這裏,我就不寫了。

千人基因組計劃數據庫下載某段區域SNP

傳說中的千人基因組計劃

2.ftp或者ascp批量下載

1)下載所有的數據和位點

如果你需要所有的數據和位點,那麼ftp或者ascp批量下載是一個不錯的選擇,特別是後者,可以用完你的帶寬,節約你的時間。

比如,這個教程提供的下載命令:【直播】我的基因組55:簡單的PCA分析千人基因組的人羣分佈

#這個數據是分染色體下載的,還要合併,應該是幾十G的數據
nohup wget  -c -r -nd -np -k -L -p  ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502 &

1000 Genome Project找到一個ascp下載的命令:

ascp -i bin/aspera/etc/asperaweb_id_dsa.openssh -Tr -Q -l 100M -P33001 -L- [email protected]:vol1/ftp/release/20100804/ALL.2of4intersection.20100804.genotypes.vcf.gz ./

上面這個是linux系統下的命令,如果是Windows或者Mac參見我整理的命令,見下一篇推文。這個下載的數據看日期可能不如上面一個全面,60多G的數據,在100M的速度下,估計下載時間爲兩個小時左右。

2)下載特定個體或者snp

當你需要的是特定個體,區域或者位點的時候,官網的這個命令就派上了用場。

#首先,要下載個工具,從下面這個網頁下載
https://codeload.github.com/vcftools/vcftools/legacy.zip/master
#然後解壓
unzip vcftools-vcftools-v0.1.16-16-g954e607.zip
#安裝
cd vcftools-vcftools-v0.1.16-16-g954e607
export PERL5LIB=/Users/zd200572/Downloads/vcftools-vcftools-954e607/src/perl/
./autogen.sh
#如果提示缺少autoconf安裝之(ubuntu)
sudo apt install autoconf automake libtool
./configure
make
#在這裏 -c 可以指定多個個體,逗號分隔,還可以是一個文件
#-c, --columns <string>           File or comma-separated list of columns to keep in the vcf file. If file, one column per row
tabix -h ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20100804/ALL.2of4intersection.20100804.genotypes.vcf.gz 17:1471000-1472000 | perl vcftools-vcftools-954e607⁩/src⁩/⁨perl⁩/vcf-subset -c HG00098 | bgzip -c /tmp/HG00098.20100804.genotypes.vcf.gz

比較遺憾,總是報錯,下載始終沒有成功。報錯如下:

[E::hts_open_format] Failed to open file ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20100804//ALL.2of4intersection.20100804.genotypes.vcf.gz
Could not read ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20100804//ALL.2of4intersection.20100804.genotypes.vcf.gz

可是文件明顯是存在的,網頁可訪問,只好暫時作罷。

參考的官方網頁地這:https://www.internationalgenome.org/faq/how-do-i-get-sub-section-vcf-file/

和https://www.internationalgenome.org/faq/can-i-get-haplotype-data-1000-genomes-individuals/

3.API批量下載

其實這個千人基因組計劃的數據庫是完全開放的,可以以匿名用戶登陸的,如果你對數據庫完全熟悉,完全可以以命令行或者圖形客戶端來查看導出,更爲高效,無奈我水平不夠,只有使用官方現成Perl API了。

Server	User	Password	Port
mysql-db.1000genomes.org	anonymous	-	4272
#https://www.internationalgenome.org/public-ensembl-mysql-instance/

其實作爲一個API,它的安裝還是極其新手不友好的,各種安裝,編譯。我嘗試了下,沒有成功,好在官方提供了虛擬機鏡像,我想對於一般人,虛擬機夠用了,直接下載,導入就可以使用,有圖形界面,好操作。虛擬機的使用,官方給出了詳細教程,基本上已經是一步步的教程,很詳細,沒必要翻譯了,地址在這:

http://asia.ensembl.org/info/data/virtual_machine.html

#1.從這個地址下載虛擬機軟件
#https://www.virtualbox.org/wiki/Downloads
#2.下載虛擬機鏡像,用linux下axel 這個工具下載快點,其他多線程下載也可以,速度大概360k/s左右,下載完成要兩個多小時
axel http://ftp.ensembl.org/pub/current_virtual_machine/Ensembl99.ova
#3.按上面的地址教程導入就好了

使用API測試一下

單個數據的下載

我要下載的是千人基因組某個snp的全部樣本分型結果,官方有現成示例腳本,snp不多的話就直接下載了,多的話可以構建個循環進行,先看單個的下載。只做了一個改動,把$variation_adaptor->db->use_vcf(1);註釋去掉了。大概5分鐘一個結果,可能是數據庫龐大,需要這麼長時間,還是防止併發過多。反正速度不夠快,不過不急的話也夠用了。

perl get_genotype.pl rs123456 > rs123456.txt

#get_genotype.pl
use strict;
use warnings;
use Bio::EnsEMBL::Registry;

my $registry = 'Bio::EnsEMBL::Registry';

$registry->load_registry_from_db(
    -host => 'ensembldb.ensembl.org',
    -user => 'anonymous'
);

my $variation_adaptor = $registry->get_adaptor('homo_sapiens', 'variation', 'variation');

# OPTIONAL: uncomment the following line to retrieve 1000 genomes phase 3 data also
$variation_adaptor->db->use_vcf(1);

my $variation = $variation_adaptor->fetch_by_name($ARGV[0]);

my $genotypes = $variation->get_all_SampleGenotypes();

foreach my $genotype (@{$genotypes}) {
  print $genotype->sample->name, "\t", $genotype->genotype_string, "\n";
}

批量下載

這裏我寫了個python小腳本,perl曾經試圖學過,沒學會。很簡單,就兩句,應該shell更高效,估計一行就好,功力不到呀。

import os

li = [ "rs9469031", "rs6141383", "rs4809957", "rs41309931", "rs36600", "rs17728461" ]

for a in li:
	cmd = "perl ../test.pl %s > %s.txt" % (a, a)
	os.system(cmd)
	#break

好了,幾番折騰後,終於獲得了自己需要的數據,同樣的還可以獲得頻率什麼的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章