15

Vcf文件的突变ID号注释

VCF是1000genome计划定义的测序比对突变说明文件,熟悉VCF文件的都知道,第三列是ID号,也就是说对该突变在dbsnp的数据库的编号。大多时候都是用点号占位,代表不知道在dbsnp的数据库的编号,这时候就需要我们自己来注释了。

Vcf文件的突变ID号注释134

其实,这是一个非常简单的事情,因为有了CHROM和pos,只要找到一个文件,就可以自己写脚本来映射到它的ID号,但是找这个文件比较困难,我也是搜索了好久才找到的。

http://varianttools.sourceforge.net/Annotation/DbSNP

这里面提到了最新版的数据库是dbSNP138

The default version of our dbSNP annotation is currently referring to dbSNP138 (using hg19 coordinates) as shown below. However, users can also retrieve older versions of dbSNP: db135, dbSNP129, dbSNP130, dbSNP131 and dbSNP132. The 129 and 130 versions use hg18 as a reference genome and 131, 132, 135 and later use hg19. The archived versions can be used by a variant tools project by referring to their specific names - for example: dbSNP-hg18_129.

所以我就换了关键词,终于搜的了

http://www.ncbi.nlm.nih.gov/projects/SNP/snp_summary.cgi?view+summary=view+summary&build_id=138

http://asia.ensembl.org/info/genome/variation/sources_documentation.html?redirect=no

SNP 138 database (232,952,851 million altogether).

Vcf文件的突变ID号注释1276

有一个bioconductor包是专门来做snp过滤的

http://www.bioconductor.org/packages/release/bioc/html/VariantAnnotation.html

首先下载vcf文件。

nohup wget ftp://ftp.ncbi.nih.gov/snp/organisms/human_9606/VCF/00-All.vcf.gz &

这个文件很大,解压开是

如果大家对snp不了解,可以去查看它的各种介绍以及分类

http://moma.ki.au.dk/genome-mirror/cgi-bin/hgTrackUi?db=hg19&g=snp138

 

其实我这里本来有个hg19_snp141.txt文件,如下

1 10020 A - .

1 10108 C T .

1 10109 A T .

1 10139 A T .

1 10145 A - .

1 10147 C - .

1 10150 C T .

1 10177 A C .

1 10180 T C .

1 10229 A - .

 

还可以下载一些文件,如bed_chr_1.bed

chr1 175292542 175292543 rs171 0 -

chr1 20542967 20542968 rs242 0 +

chr1 6100897 6100898 rs538 0 -

chr1 93151988 93151989 rs546 0 +

chr1 15220328 15220329 rs549 0 +

chr1 203744004 203744005 rs568 0 +

chr1 23854550 23854551 rs665 0 -

chr1 53213656 53213657 rs672 0 +

chr1 173907422 173907423 rs677 0 -

当然还有那个ftp://ftp.ncbi.nih.gov/snp/organisms/human_9606/VCF/00-All.vcf.gz  18G的文件,是VCF格式

##fileformat=VCFv4.0

##fileDate=20150218

##source=dbSNP

##dbSNP_BUILD_ID=142

##reference=GRCh38

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO

1       10108   rs62651026      C       T       .       .       RS=62651026;RSPOS=10108;dbSNPBuildID=129;SSR=0;SAO=0;VP=0x050000020005000002000100;WGT=1;VC=SNV;R5;ASP

所以这个文件就是我们想要的最佳文件,提取前三列就够啦

#CHROM  POS     ID

1 10108 rs62651026

1 10109 rs376007522

1 10139 rs368469931

1 10144 rs144773400

1 10150 rs371194064

1 10177 rs201752861

1 10177 rs367896724

1 10180 rs201694901

1 10228 rs143255646

1 10228 rs200462216

这样就可以通过脚本用hash把我们自己找到的hash跟数据库的rs编号对应起来啦

 

21

Hg19基因组的分析

下载地址我就不贴了,随便谷歌一下即可!

Genome Reference Consortium Human  ---》  GRCh3

Feb. 2009 (hg19, GRCh37)这个是重点

Mar 2006 assembly = hg18 = NCBI36.

May 2004 assembly = hg17 = NCBI35.

July 2003 assembly = hg16 = NCBI34

以前的老版本就不用看啦,现在其实都已经有hg38出来啦,GRCh38 (NCBI) and hg38(UCSC)

参考:http://age.wang.blog.163.com/blog/static/119252448201092284725460/

http://www.ncbi.nlm.nih.gov/projects/genome/assembly/grc/human/

Hg19基因组的分析570

人的hg19基因组是3G的大小,因为一个英文字符是一个字节,所以也是30亿bp的碱基。

包括22条常染色体和X,Y性染色体及M线粒体染色体。

Hg19基因组的分析643

查看该文件可以看到,里面有很多的N,这是基因组里面未知的序列,用N占位,但是觉得部分都是A.T.C.G这样的字符,大小写都有,分别代表不同的意思。

然后我用linux的命令统计了一下里面这个文件的行数,

perl -lne 'END { print $. }'  hg19.fa

awk 'END { print NR }'  hg19.fa

wc -l hg19.fa

Hg19基因组的分析834

然后我写了一个脚本统计每条染色体的长度,42秒钟完成任务!

Hg19基因组的分析1125

看来这个服务器的性能还是蛮强大的,读取文件非常快!

[perl]

while(<>){

        chomp;

        if  (/>/){

if  (exists $hash_chr{$key} ){

$len = length $hash_chr{$key};

print "$key   =>   $len\n";

}

undef %hash_chr;

$key=$_;

}

else {

$hash_chr{$key}.=$_;

}

}

[/perl]

 

然后我用seed统计了一下hg19的词频(我不知道生物信息学里面的专业描述词语是什么)

Hg19基因组的分析1171

我的程序耗费了42分钟才跑完,感觉我写的程序应该是没有问题的,让我吃惊的是总共竟然只有105万条独特的10bp短序列。然后我算了一下4的10次方,(⊙o⊙)…悲剧,原来只有1048576,之所以出现这种情况,是因为里面有N这个字符串,不仅仅是A.T.C.G四个字符。我用grep -v N seed10.txt |wc -l命令再次统计了一下,发现居然就是1048576,也就是说,任意A.T.C.G四个字符组成的10bp字符串短序列在人的基因组里面都可以找到!!!

Hg19基因组的分析1407

然后我测试了一下,还是真是这样的,真是一个蛮有意思的现象。虽然我无法解释为什么,但是根据这个结果我们可以得知连续的A或者T在人类基因组里面高频出现,而连续的G或者C却很少!

如果我们储存这个10bp字符串的同时,也储存着它们在基因组的位置,那么就可以根据这个seed来进行比对,这就是blast的原理之一!