R与bioconductor–ExpressionSet SummarizedExperiment GEOquery biomaRt S4-Classes S4-Methods[亲测有效]

R与bioconductor–ExpressionSet SummarizedExperiment GEOquery biomaRt S4-Classes S4-Methods[亲测有效]使用Bioconductor分析基因组科学数据来自于约翰霍普金斯大学

大家好,欢迎来到IT知识分享网。博主自学了coursera上来自约翰霍普金斯大学<使用Bioconductor分析基因组科学数据>,很不错,推荐给大家

ExpressionSet Overview
ExpressionSet
-Expression Matrix
-Phenotype data Feature data
eSet:仅仅是有多个Expression Matrix
R与bioconductor--ExpressionSet SummarizedExperiment GEOquery biomaRt S4-Classes S4-Methods[亲测有效]



ExpressionSet

library(ALL)
data(ALL)
experimentData(ALL)
exprs(ALL)[1:4,1:4]
head(sampleNames(ALL))
head(featureNames(ALL))
head(pData(ALL))
ALL$sex
ALL[1:10,1:5]
featureData(ALL)#包含关于基因的信息,但是经常没有
ids <- featureNames(ALL)[1:5]
library(hgu95av2.db)#之前数据集里面写了芯片平台hgu95av2.db
as.list(hgu95av2ENTREZID[ids])
phenoData(ALL)#不如使用pData(ALL),phenoData(ALL)内容更多些
names(pData(ALL))#有时相当于varLabels(ALL),有时varLabels(ALL)更详细


SummarizedExperiment

#SummarizedExperiment
library(airway)
data(“airway”)
airway
colData(airway)#pData(ALL)
airway$cell
colnames(airway)
head(rownames(airway))
assayNames(airway)#要想获得表达矩阵,使用assay accessor,用assayNames()获得全部表达矩阵名
assay(airway,”counts”)[1:4,1:4]
length(rowRanges(airway))
rowRanges(airway)#SummarizedExperiment特别之处在于每行每列都有关联的GRanges
start(airway)
gr = GRanges(“1”,ranges = IRanges(start = 1,end = 10^7))
subsetByOverlaps(airway,gr)
#’正是有着关联GRanges,可以取出染色体”某一区域内”基因的表达值


GEOquery

library(GEOquery)
eList <- getGEO(“GSE11675”)
length(eList)
eData = eList[[1]]
eData
names(pData(eData))
eList2 = getGEOSuppFiles(“GSE11675”)#下载原始tar包
eList2



biomaRt

library(biomaRt)
head(listMarts())
mart <- useMart(“ensembl”)
mart
head(listDatasets(mart))
ensemble <- useDataset(“hsapiens_gene_ensembl”,mart)
values <- c(“202763_at”,”209310_s_at”,”207500_at”)
getBM(attributes = c(“ensembl_gene_id”,”affy_hg_u133_plus_2″),
      filters = “affy_hg_u133_plus_2”,values = values,mart = ensemble)
attributes <- listAttributes(ensemble)#可以查询到的条目
nrow(attributes)#可以把一个物种的基因转换到另一个物种的同源基因
head(attributes)
filters <- listFilters(ensemble)#可以查询到的条目
nrow(filters)#可以把一个物种的基因转换到另一个物种的同源基因
head(filters)
attributePages(ensemble)#attributes存储在一个一个page中,可以用这个减小搜索范围
attributes <- listAttributes(ensemble,page = “feature_page”)
nrow(attributes)

R S4 Classes

library(ALL)
library(GenomicRanges)
#’S3对象就是像一个list,list中每个对象都有各自的name
#’而S4对象定义了每个class应该是有些什么东西
data(“ALL”)
ALL
class(ALL)
isS4(ALL)
class?ExpressionSet#查看一个class的简介
?”ExpressionSet-class”#查看一个class的简介
#’list的规则:首字母大写
#’构造方法
ExpressionSet()
getClass(“ExpressionSet”)#Slots插槽,就是这个class由哪儿些小class构成
ALL@annotation
annotation(ALL)
#class升级了,定义改变了,用updateObject
OLD_OBJECT = updateObject(OLD_OBJECT)
validObject(ALL)#检测对象是否正确,是否符合class的定义


R S4 Methods

library(GenomicRanges)
GenomicRanges::as.data.frame#S4方法
base::as.data.frame#S3方法
showMethods(“as.data.frame”)#可以看见,X类型不同,后续选用的程序代码也不同
#查看传入某一特定类型,对应的相关程序代码
getMethod(“as.data.frame”,”GenomicRanges”)
getMethod(“as.data.frame”,signature(x=”GenomicRanges”))
#查看传入某一特定类型,对应的帮助文档
method?”as.data.frame,DataFrame”
method?”as.data.frame,GenomicRanges”
?”as.data.frame,DataFrame-method”
?”as.data.frame,GenomicRanges-method”
showMethods(“findOverlaps”)
getMethod(“findOverlaps”,signature(query = “Ranges”,subject = “Ranges”))
?”findOverlaps,Ranges,Ranges-method”
#’S4缺点:难以找到help文档,难以直接看源代码,难以debug
#’但是最好S4写一个package,方便管理

最后是完整代码片段
#ExpressionSet
library(ALL)
data(ALL)
experimentData(ALL)
exprs(ALL)[1:4,1:4]
head(sampleNames(ALL))
head(featureNames(ALL))
head(pData(ALL))
ALL$sex
ALL[1:10,1:5]
featureData(ALL)#包含关于基因的信息,但是经常没有
ids <- featureNames(ALL)[1:5]
library(hgu95av2.db)#之前数据集里面写了芯片平台hgu95av2.db
as.list(hgu95av2ENTREZID[ids])
phenoData(ALL)#不如使用pData(ALL),phenoData(ALL)内容更多些
names(pData(ALL))#有时相当于varLabels(ALL),有时varLabels(ALL)更详细

#SummarizedExperiment
library(airway)
data("airway")
airway
colData(airway)#pData(ALL)
airway$cell
colnames(airway)
head(rownames(airway))
assayNames(airway)#要想获得表达矩阵,使用assay accessor,用assayNames()获得全部表达矩阵名
assay(airway,"counts")[1:4,1:4]
length(rowRanges(airway))
rowRanges(airway)#SummarizedExperiment特别之处在于每行每列都有关联的GRanges
start(airway)
gr = GRanges("1",ranges = IRanges(start = 1,end = 10^7))
subsetByOverlaps(airway,gr)
#'正是有着关联GRanges,可以取出染色体"某一区域内"基因的表达值

library(GEOquery)
eList <- getGEO("GSE11675")
length(eList)
eData = eList[[1]]
eData
names(pData(eData))
eList2 = getGEOSuppFiles("GSE11675")#下载原始tar包
eList2

library(biomaRt)
head(listMarts())
mart <- useMart("ensembl")
mart
head(listDatasets(mart))
ensemble <- useDataset("hsapiens_gene_ensembl",mart)
values <- c("202763_at","209310_s_at","207500_at")
getBM(attributes = c("ensembl_gene_id","affy_hg_u133_plus_2"),
      filters = "affy_hg_u133_plus_2",values = values,mart = ensemble)
attributes <- listAttributes(ensemble)#可以查询到的条目
nrow(attributes)#可以把一个物种的基因转换到另一个物种的同源基因
head(attributes)
filters <- listFilters(ensemble)#可以查询到的条目
nrow(filters)#可以把一个物种的基因转换到另一个物种的同源基因
head(filters)
attributePages(ensemble)#attributes存储在一个一个page中,可以用这个减小搜索范围
attributes <- listAttributes(ensemble,page = "feature_page")
nrow(attributes)


library(ALL)
library(GenomicRanges)
#'S3对象就是像一个list,list中每个对象都有各自的name
#'而S4对象定义了每个class应该是有些什么东西
data("ALL")
ALL
class(ALL)
isS4(ALL)
class?ExpressionSet#查看一个class的简介
?"ExpressionSet-class"#查看一个class的简介
#'list的规则:首字母大写
#'构造方法
ExpressionSet()
getClass("ExpressionSet")#Slots插槽,就是这个class由哪儿些小class构成
ALL@annotation
annotation(ALL)
#class升级了,定义改变了,用updateObject
OLD_OBJECT = updateObject(OLD_OBJECT)
validObject(ALL)#检测对象是否正确,是否符合class的定义

library(GenomicRanges)
GenomicRanges::as.data.frame#S4方法
base::as.data.frame#S3方法
showMethods("as.data.frame")#可以看见,X类型不同,后续选用的程序代码也不同
#查看传入某一特定类型,对应的相关程序代码
getMethod("as.data.frame","GenomicRanges")
getMethod("as.data.frame",signature(x="GenomicRanges"))
#查看传入某一特定类型,对应的帮助文档
method?"as.data.frame,DataFrame"
method?"as.data.frame,GenomicRanges"
?"as.data.frame,DataFrame-method"
?"as.data.frame,GenomicRanges-method"

showMethods("findOverlaps")
getMethod("findOverlaps",signature(query = "Ranges",subject = "Ranges"))
?"findOverlaps,Ranges,Ranges-method"
#'S4缺点:难以找到help文档,难以直接看源代码,难以debug
#'但是最好S4写一个package,方便管理



免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24539.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信