基于Biostrings的基因组数据包Bioconductor项目提供了包含给定生物体全基因组序列的数据包。这些软件包称为基于Biostrings的基因组数据包,因为它们包含的序列存储在Biostrings软件包中定义的一些基本容器中,如DNAString,DNAStringSet或MaskedDNAString容器。不管它们包含的特定序列数据如何,所有的基于生物基因组的基因组数据包非常相似,可以以一致且简单的方式进行操作。为了正常工作,他们都需要使用BSgenome软件包。不同于基于Biostrings的基因组数据包,这个软件包与是一个提供支持它们所需基础的软件包(这就是为什么基于Biostrings的基因组数据包也称为BSgenome数据包)。 BSgenome软件包本身需要Biostrings软件包。 安装BSgenome包(如果没有安装)source('https:///biocLite.R')
biocLite('BSgenome.Hsapiens.UCSC.hg19')
载入BSgenome包,并查看当前版本提供的BSgenome数据包:library(BSgenome)
(ag <- available.genomes())
unique(gsub('BSgenome\\.([^\\.]+).*', '\\1', ag))
通过运行结果可得知,当前版本提供了24个物种基因组包 [1] 'Alyrata' 'Amellifera' 'Athaliana'
[4] 'Btaurus' 'Celegans' 'Cfamiliaris'
[7] 'Dmelanogaster' 'Drerio' 'Ecoli'
[10] 'Gaculeatus' 'Ggallus' 'Hsapiens'
[13] 'Mfascicularis' 'Mfuro' 'Mmulatta'
[16] 'Mmusculus' 'Osativa' 'Ptroglodytes'
[19] 'Rnorvegicus' 'Scerevisiae' 'Sscrofa'
[22] 'Tgondii' 'Tguttata' 'Vvinifera'
获取Ecoli 的BSgenome数据包,bing载入BSgenome.Ecolide包,查看数据信息: biocLite('BSgenome.Ecoli.NCBI.20080805')
library(BSgenome.Ecoli.NCBI.20080805)
结果如下: [1] 'BSgenome.Ecoli.NCBI.20080805'
[2] 'Ecoli'
查看数据包的概况: E. coli genome: # organism: Escherichia coli (E. coli)
# provider: NCBI
# provider version: 2008/08/05 (发行日期)
# release date: NA
# release name: NA
# 13 sequences: (包含的序列)
# NC_008253 NC_008563 NC_010468
# NC_004431 NC_009801 NC_009800
# NC_002655 NC_002695 NC_010498
# NC_007946 NC_010473 NC_000913
# AC_000091
# (use 'seqnames()' to see all the
# sequence names, use the '$' or '[['
# operator to access a given sequence)
获取每个染色体的名字还有其对应的长度: > seqnames(Ecoli)
[1] 'NC_008253' 'NC_008563' 'NC_010468'
[4] 'NC_004431' 'NC_009801' 'NC_009800'
[7] 'NC_002655' 'NC_002695' 'NC_010498'
[10] 'NC_007946' 'NC_010473' 'NC_000913'
[13] 'AC_000091'
> seqlengths(Ecoli)
NC_008253 NC_008563 NC_010468 NC_004431
4938920 5082025 4746218 5231428
NC_009801 NC_009800 NC_002655 NC_002695
4979619 4643538 5528445 5498450
NC_010498 NC_007946 NC_010473 NC_000913
5068389 5065741 4686137 4639675
AC_000091
4646332
查看其中一条染色体 Ecoli$NC_008253
4938920-letter 'DNAString' instance
seq: AGCTTTTCATTCTGAC...TTAGTAAGTGATTTTC
查看NC_008253序列中GC的数量 > letterFrequency(Ecoli$NC_008253,'GC')
G|C
2495020
查看NC_008253序列中GC的含量 > letterFrequency(Ecoli$NC_008253,'GC',as.prob=TRUE)
G|C
0.5051752
结合sapply函数统计碱基组成和GC含量 #统计碱基组成
> sapply(seqnames(Ecoli), function(x) alphabetFrequency(Ecoli[[x]]))
NC_008253 NC_008563 NC_010468
A 1222723 1256126 1164516
C 1251581 1285309 1204681
G 1243439 1283517 1209555
T 1221177 1256945 1167466
M 0 11 0
R 0 34 0
W 0 25 0
S 0 17 0
Y 0 24 0
K 0 16 0
V 0 0 0
H 0 0 0
D 0 0 0
B 0 0 0
N 0 1 0
- 0 0 0
+ 0 0 0
. 0 0 0
统计GC含量
> sapply(seqnames(Ecoli), function(x) letterFrequency(Ecoli[[x]], letters = 'GC',
+ as.prob = TRUE))
NC_008253.G|C NC_008563.G|C NC_010468.G|C NC_004431.G|C NC_009801.G|C
0.5051752 0.5054729 0.5086652 0.5047480 0.5062162
NC_009800.G|C NC_002655.G|C NC_002695.G|C NC_010498.G|C NC_007946.G|C
0.5081961 0.5038297 0.5053706 0.5049668 0.5060419
NC_010473.G|C NC_000913.G|C AC_000091.G|C
0.5078129 0.5078970 0.5079958
学习心得虽然我对R也不是特别熟悉,跟着教程一个一个代码来跑,然后逐步理解也不难,希望大家也可以像我一样做到。最后也给大家推荐Coursera上讲解BSgenome专题的一个视频,帮助大家进一步理解这个包。文章链接:https://www./learn/bioconductor/lecture/E57YU/biostrings
|