一、BSgenome和BSgenome数据包

Bioconductor提供了某些物种的全基因组序列数据包,这些数据包是基于Biostrings构建的,称为BSgenome数据包。不同物种的BSgenome数据包都有类似的数据结构,可以用统一的方式进行处理。但是BSgenome数据包仅包含有数据,它们的处理的方法由另外一个软件包提供,即BSgenome包。

先安装BSgenome包(如果没有安装):

if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager")BiocManager::install("BSgenome")

载入BSgenome包,并查看当前版本提供的BSgenome数据包:

library(BSgenome)
(ag <- available.genomes())

#当前版本提供了18个物种的37个基因组包

unique(gsub("BSgenome\\.([^\\.]+).*", "\\1", ag))

获取拟南芥的BSgenome数据包(BSgenome.Athaliana.TAIR.TAIR9):

biocLite("BSgenome.Athaliana.TAIR.TAIR9")

载入BSgenome.Athaliana.TAIR.TAIR9包,查看数据信息:

library(BSgenome.Athaliana.TAIR.TAIR9)
# BSgenome.Athaliana.TAIR.TAIR9只定义了一个对象
ls("package:BSgenome.Athaliana.TAIR.TAIR9")

#查看总体信息

Athaliana

#不载入序列就可以获取染色体名称和长度信息

seqnames(Athaliana)
seqlengths(Athaliana)

二、BSgenome方法

BSgenome数据包内包含的序列为DNAString,DNAStringSet或MaskedDNAString对象,完全可以使用Biostrings包的方法进行处理:

#可以使用多种方式获取某一序列

Athaliana$Chr1
Athaliana[[1]]
Athaliana[["Chr1"]]

下面使用sapply函数统计碱基组成和GC含量。
#统计碱基组成

sapply(seqnames(Athaliana), function(x) alphabetFrequency(Athaliana[[x]]))

#计算GC含量

sapply(seqnames(Athaliana), function(x) letterFrequency(Athaliana[[x]], letters = "GC", as.prob = TRUE))

但是BSgenome包试图提供一些简便的方法来处理基因组水平的BSgenome类数据,例如类似于apply函数的bsapply函数。要使用bsapply函数得先构建BSParams类对象,用于设置以下参数:

X:将要处理的BSgenome对象
FUN:将要对X中每条染色体进行处理函数
exclude:字符向量,表示排除的染色体名称
simplify:逻辑向量,它的意义和与sapply的simplify参数一样。默认为FALSE,bsapply返回GenomeData类数据;如果设置为TRUE,函数的结果尽量使用表格(数据框)类型显示
maskList:逻辑向量,表示各染色体使用掩膜的应用状态
motifList:字符向量,对序列进行掩膜的motif
userMask:RangesList对象,每个元素将用于对响应染色体进行掩膜处理,为用户提供额外的掩膜。
invertUserMask:TRUE/FALSE,表示是否对userMask进行反转。

FUN函数的其他参数可以在bsapply函数中以有名参数的方式进行设置。 下面代码的作用和前面sapply函数的应用是相同的:

op <- options()
options(digits = 4)
params <- new("BSParams", X = Athaliana, FUN = letterFrequency, simplify = TRUE)
bsapply(params, letters = "GC", as.prob = TRUE)

BSParams是S4类,对象数据可以修改,方便重复使用:

params@motifList <- "N"
bsapply(params, letters = "GC", as.prob = TRUE)
options(op)
params@FUN <- alphabetFrequency
bsapply(params, baseOnly = TRUE)

BSgenome包实现了BSgenome类对象的matchPWM,countPWM,vmatchPattern,vcountPattern,vmatchPDict和vcountPDict等操作,除继承了Biostrings中相应的方法外还增加了一些针对BSgenome类对象的参数设置(和bsapply函数参数类似):

vmatchPattern("ACGTGKC", Athaliana, fix = "subject", exclude = c("ChrC", "ChrM"))

BSgenome包还提供了其他一些方法,比如用户自行构建BSgenome数据包和SNP的处理等。这些不在我的关心范围之内,没去了解。

转载自:https://blog.csdn.net/u014801157/article/details/24372467

BSgenome简介相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  5. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  6. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  7. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  8. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  9. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

最新文章

  1. fwm环境APP菜品数据加载失败的优化操作
  2. java常见问题排查
  3. 【控制】传递函数零极点解析
  4. 判断字符串是否以指定字符开头
  5. 自己动手写了个 Web 框架,我膨胀了
  6. 每日程序C语言12-统计字符个数
  7. Linux系统MySQL开启远程连接
  8. 2008_11_05_星期三
  9. [JavaWeb-JavaScript]JavaScript_Data日期对象
  10. 朴素贝叶斯算法注意事项(有待完善)
  11. 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
  12. 老鸟成长之路:菜鸟入门八种安全工具(转)
  13. python滑稽脸代码_如何用python进行简单的syn flood滑稽(带代码@)
  14. MetaMask账号注册
  15. 如何用计算机if函数,Excel IF函数怎么用
  16. 5G+北斗融合定位技术介绍
  17. 【转载】win10环境下,利用自带虚拟机hyper-v安装centos7方法详解
  18. 一本通1375:骑马修栅栏(fence)
  19. 尚硅谷01 数据结构与算法_数据结构与算法介绍+稀疏数组
  20. HTML+CSS实现(排行榜+棋盘+表格+图片商品列表)

热门文章

  1. Unity 中实现截图画笔橡皮擦工具
  2. 『重磅』免费无限量下载知网/万方/维普等数据库文献的正规渠道
  3. mysql 5.6.24 64位_CentOS 6.4 64位 安装 mysql 5.6.24
  4. UltraISO软碟通软件(绿色单文件版)
  5. DeepCTR:易用可扩展的深度学习点击率预测算法库
  6. 机器人电焊电流电压怎么调_电焊电流的调节技巧
  7. Android使用Vitamio来打造自己的视频播放器
  8. ajax的blur调用,jQuery事件blur()方法的使用实例讲解
  9. Nike新款鞋子型錄 vgav wluj yltn
  10. CentOS7 安装Tomcat