SummarizedExperiment
?分析()
,分析()
:一个矩阵
-类或列表矩阵
形状相同尺寸的物体矩阵
例如:实现昏暗的()
,dimnames ()
,和二维[
,(< -
方法。colData ()
:每列上的注释,作为DataFrame
.rowData ()
和/或rowRanges ()
:每行标注。rowRanges ()
:转录物中基因/外显子的坐标。rowData ()
:P差异表达分析后各基因的-值和对数倍变化。元数据()
:描述对象整体内容的非结构化元数据的列表。SummarizedExperiment
对象库(SummarizedExperiment)
的气道实验数据包总结了一项研究人类平滑肌气道细胞系经地塞米松处理的RNA-seq实验。加载库和数据集。
库(气道)数据(气道)气道
## class: rangedsummarizeexperiment ## dim: 64102 8 ## metadata(1): " ## assays(1): counts ## rownames(64102): ENSG00000000003 ENSG00000000005…LRG_98 LRG_99 ## rowData names(0): ## colnames(8): SRR1039508 SRR1039509…SRR1039520 SRR1039521 ## colData names(9): SampleName cell…样本BioSample
SummarizedExperiment
锻炼是什么?昏暗的()
而且dimnames ()
呼吸道物体的?在原始实验中,这些行和列对应什么?提示:使用dplyr:看到()
看看每一个的前几个元素dimnames
.
锻炼使用函数分析()
,colData ()
,rowRanges ()
要提取出三个主要成分气道
数据集。分析()
是大的,那么就把它串起来用吗类()
,昏暗的()
而且头()
而不是简单地打印到屏幕上。就这个对象中总结的RNASeq实验而言,这些部分分别对应什么?
SummarizedExperiment
作为一个快速复习,一个R矩阵
set.seed(123) m <- matrix(rnorm(12), nrow = 4, ncol = 3, dimnames = list(字母[1:4],字母[1:3])
## A B C ## A -0.56047565 0.1292877 -0.6868529 ## B -0.23017749 1.7150650 -0.4456620 ## C 1.55870831 0.4609162 1.2240818 ## d 0.07050839 -1.2650612 0.3598138
它的界面有三个主要组成部分,昏暗的()
,dimnames ()
,二维[
构造子集。
暗(m)
## [1] 4 3
dimnames (m)
# # # #[1]([1])“a”“b”“c”“d " ## ## [[ 2]] # #[1]“A”“B”“C”
m (1:2, 2:1)
## A 0.1292877 -0.5604756 ## B 1.7150650 -0.2301775
m [1:2]
## A B C ## A -0.5604756 0.1292877 -0.6868529 ## B -0.2301775 1.7150650 -0.4456620
一个棘手且不幸的行为是,对矩阵的单行或列进行子集设置会导致默认情况下矩阵被强制转换为一个向量
m [1]
## a b c# # -0.5604756 0.1292877 -0.6868529
m [1]
## a b c d ## -0.56047565 -0.23017749 1.55870831 0.07050839
方法避免这种行为drop = FALSE
论点。
m[1,, drop = FALSE]
## A B C ## A -0.5604756 0.1292877 -0.6868529
SummarizedExperiment
实现'矩阵类'接口。这意味着它支持这些功能昏暗的()
,dimnames ()
,二维[
构造子集。
锻炼子集气道
包含前5行和前4列。查看colData ()
,rowRanges ()
,分析()
结果对象的。
分析()
值回到我们的简单矩阵
米
## A B C ## A -0.56047565 0.1292877 -0.6868529 ## B -0.23017749 1.7150650 -0.4456620 ## C 1.55870831 0.4609162 1.2240818 ## d 0.07050839 -1.2650612 0.3598138
变换一个矩阵很简单,例如加1
M + 1
## A B C ## A 0.4395244 1.1292877 0.3131471 ## B 0.7698225 2.7150650 0.5543380 ## C 2.5587083 1.4609162 2.2240818 ## d 1.0705084 -0.2650612 1.3598138
或者应用一个变换
Abs (m + 1)
## A B C ## A 0.4395244 1.1292877 0.3131471 ## B 0.7698225 2.7150650 0.5543380 ## C 2.5587083 1.4609162 2.2240818 ## d 1.0705084 0.2650612 1.3598138
有一些用于行和列操作的特殊函数,通常在矩阵上执行(请参阅matrixStats用于进一步数学运算的包),例如,
colSums (m)
## a b c# # 0.8385636 1.0402077 0.4513808
rowMeans (m)
## a b c d ## -0.3726803 0.3464085 1.0812354 -0.2782463
锻炼提取分析()
的组成部分气道
然后计算列和。这些数字代表什么?
锻炼转换分析()
矩阵加1,取自然日志()
,然后创建一个表示变换后矩阵每一行的平均值的向量。这个向量代表什么?用直方图、密度图或其他表示方式将其可视化。
SummarizedExperiment
我们提到,总结的实验实现了矩阵类二维[
构造子集接口。
的colData ()
的气道
包含有关实验设计的信息,例如每个样本的细胞系和地塞米松治疗水平。
colData(气管)
## 8行9列的DataFrame ## SampleName cell dex albut运行avgLength ## ## SRR1039508 GSM1275862 N61311 untrt untrt SRR1039508 126 ## SRR1039509 GSM1275863 N61311 trt untrt SRR1039509 126 ## SRR1039513 GSM1275866 N052611 untrt untrt SRR1039513 87 ## SRR1039516 GSM1275867 N052611 untrt untrt SRR1039516 120 ## srr1275871 N080611 trt untrt SRR1039517 126 ## SRR1039517SRR1039520 GSM1275874 N061011 untrt untrt SRR1039520 101 ## SRR1039521 GSM1275875 N061011 trt untrt SRR1039521生物样品## <因子> <因子> <因子> ## SRR1039508 SRX384345 SRS508568 SAMN02422675 ## SRR1039509 SRX384346 SRS508567 SAMN02422675 ## SRR1039513 SRX384349 SRS508571 SAMN02422678 ## SRR1039513 SRX384353 SRS508575 SAMN02422682 ## SRR1039517 SRX384354 SRS508576 SAMN02422673 ## SRR1039521 SRX384354 SRS508576 SRS508575 ## SRR1039521 srx1039522 SRX384353 SRS508575 SAMN02422670 ## SRR1039517 SRX384354 SRS508576 srs508557 SRS508579Samn02422683 ## srr1039521 srx384358 srs508580 samn02422677
访问每一列都有捷径,例如,
气道美元敏捷
## [1] untrt trt untrt trt untrt trt trt ##级别:trt untrt
Exercies使用此快捷方式快速子集气道
所以它只有untrt
样品现在。验证分析()
数据也得到了正确的子集。
在处理矩阵时,常见的情况是根据某种标准操作行组,例如,如果希望保持行的平均值大于0,就可以这样做
ridx <- rowMeans(m) > 0 m[ridx,, drop = FALSE]
## A B C ## B -0.2301775 1.7150650 -0.445662 ## C 1.5587083 0.4609162 1.224082
锻炼中删除所有行气道
在所有样本中都没有基因表达。有多少行没有表达式?重新计算剔除这些行的对数变换平均表达式的直方图。
GRangesList
一个R列表()
是包含不同类型的向量(包括其他列表)的对象。这里有一个简单的例子
L <- list(a = 1:5, b = month.abb)
到列表的接口允许长度()
,[
(返回原始列表的子集)和[[
(根据名称或位置提取列表中的单个元素)。列表的元素可以命名,但不一定要命名。
名称(左)
## [1] "a" "b"
长度(l)
## [1]
l (c (2, 1))
# # $ b # #[1]“1”“2”“3”“4月”“可能”“君”“7月”“8月”“9”“10月”“11月”# #[12]“12月”# # # # $ # # [1]1 2 3 4 5
L[2] #长度为1的列表,包含原始列表的元素2
# # $ b # #[1]“1”“2”“3”“4月”“可能”“君”“7月”“8月”“9”“10月”“11月”# #[12]“12月”
L[[2]] #元素2的原始列表
# #[1]“1”“2”“3”“4月”“可能”“君”“7月”“8月”“9”“10月”“11月”# #[12]“12月”
一个有用的函数是长度()
,它返回lsit中每个元素长度的向量
长度(l)
## a b ## 5 12
的IRanges,S4Vectors,GenomicRanges包实现了几个实现这个列表类接口的类;所有类都以name结尾*列表
,例如,GRangesList
.
锻炼提取行范围气道
,使用类()
来发现对象的类型。列表中的每个元素代表什么?整个列表代表什么?
r <- rowRanges(气道)
锻炼向自己证明对象实现了一个类似列表的接口,支持长度()
,[
而且[[
构造子集。
锻炼使用长度()
来确定每个基因中的外显子数量。一个外显子有多少基因?什么基因的外显子最多?
GRangesList
农庄
/GRangesList
对象包含有关范围所指向的基因组的来源信息,可访问使用seqinfo ()
.
锻炼使用seqinfo(右)
提取基因组范围所基于的序列信息。
锻炼请注意基因组
总是NA
.快速浏览一下插图browseVignettes(“气道”)
,向下扫描到“对齐阅读”部分。我们被告知用于校准的参考基因组是“GRCh37”。更新行范围以包含此信息
基因组(r) <- "GRCh37" seqinfo(r)
## seqnames seqlengthiscircular genome ## 1 249250621 FALSE GRCh37 ## 2 243199373 FALSE GRCh37 ## 3 198022430 FALSE GRCh37 ## 4 191154276 FALSE GRCh37 ## 5 180915260 FALSE GRCh37 ## ... ... ... ...## LRG_94 12428 FALSE GRCh37 ## LRG_96 93210 FALSE GRCh37 ## LRG_97 25996 FALSE GRCh37 ## LRG_98 18750 FALSE GRCh37 ## LRG_99 13294 FALSE GRCh37
更新rowRanges ()
的气道
有了这个更完整的信息。
rowRanges(气道)<- r
请注意,SummarizedExperiment
是否有方便的功能可以直接访问来源
seqinfo(气管)
## seqnames seqlengthiscircular genome ## 1 249250621 FALSE GRCh37 ## 2 243199373 FALSE GRCh37 ## 3 198022430 FALSE GRCh37 ## 4 191154276 FALSE GRCh37 ## 5 180915260 FALSE GRCh37 ## ... ... ... ...## LRG_94 12428 FALSE GRCh37 ## LRG_96 93210 FALSE GRCh37 ## LRG_97 25996 FALSE GRCh37 ## LRG_98 18750 FALSE GRCh37 ## LRG_99 13294 FALSE GRCh37
锻炼使用为()
将序列信息强制为农庄
对象,并选择14号染色体对应的基因组范围。
库(dplyr) # %>%
chr14 < - seqinfo (r) % > %作为(“农庄”)% > %子集(seqnames = =“14”)
的% / %
函数对运算符左侧与运算符右侧重叠的每个范围返回TRUE。因此14号染色体重叠的行范围为
Idx <- r% / % chr14 r[Idx]
长度为2244的GRangesList对象:## $ENSG00000006432# # seqnames范围链| exon_id exon_name # # < Rle > < IRanges > < Rle > | <整数> <人物> # # [1]14 71189243 - 71197581 | 453195 ENSE00002597852 # # 14 [2] 71196368 - 71197581 | 453196 ENSE00002485643 # # [3] 14 71196383 - 71197581 | 453197 ENSE00002510454 # # 14 [4] 71196653 - 71197581 | 453198 ENSE00002249042 # # [5] 14 453199 - 71197581 | 71196852 ENSE00001518020 ## ... ... ... ... . ... ...# [22] 14 71249940-71250162 - | 453216 ENSE00002524190 ## [23] 14 71267384-71267797 - | 453217 ENSE00001137145 ## [24] 14 71275483-71275888 - | 453218 ENSE00001518024 ## [25] 14 71275483-71276223 - | 453219 ENSE00002468641 ## [26] 14 71275483-71276251 - | 453220 ENSE00002511719 ## ------- ## seqinfo: 722序列(1循环)来自GRCh37基因组## ##…## <2243 more elements>
锻炼的多少个范围r
14号染色体重叠?
锻炼使用idx
对子集气道
只包含14号染色体上的基因
锻炼我们走了很长的路才得到这个重叠子集;用两行代码总结我们的故事,允许我们进行子集气道
通过重叠。
SummarizedExperiment
物体“手工”库(readr)库(宠物猫)
Pdata_file <- file.choos() #气道-sample-sheet.csv counts_file <- file.choose() #气道-read-counts.csv
锻炼使用read_csv ()
导入样例表并读取计数。
Pdata <- read_csv(pdata_file)
使用列规范解析:## cols(## SampleName = col_character(), ## cell = col_character(), ## dex = col_character(), ## albut = col_character(), ## Run = col_character(), ## avgLength = col_double(), ## Experiment = col_character(), ## Sample = col_character(), ## BioSample = col_character() ##)
count <- read_csv(counts_file)
## cols(## .default = col_double(), ## Run = col_character() ##)
查看spec(…)获取完整的列规范。
锻炼组装SummarizedExperiment
从转置计数
而且pdata
.的“运行”
列需要在两个pdata
而且计数
对象。
pdata <- column_to_rownames(pdata, "Run") counts <- column_to_rownames(counts, "Run") se <- summarizeexperiment (t(counts), colData = pdata) se
## class: summarizeexperiment ## dim: 33469 8 ## metadata(0): ## assays(1): " ## rownames(33469): ENSG00000000003 ENSG00000000419…## ENSG00000273492 ENSG00000273493 ## rowData names(0): ## colnames(8): SRR1039508 SRR1039509…SRR1039520 SRR1039521 ## colData names(8): SampleName cell…样本BioSample
锻炼以下例子从讲座,计算总文库大小和绘图平均日志基因表达从您新创建SummarizedExperiment
.
sessionInfo ()
## R版本3.6.0 Patched (2019-04-26 r76431) ##平台:x86_64-apple-darwin17.7.0(64位)##运行在:macOS High Sierra 10.13.6 ## ## Matrix products: default ## BLAS: /Users/ma38727/bin/R-3-6-branch/lib/libRblas. #dylib ## LAPACK: /Users/ma38727/bin/R-3-6-branch/lib/libRlapack。dylib # # # #语言环境:# # [1]en_US.UTF-8 / en_US.UTF-8 en_US.UTF-8 / C / en_US.UTF-8 / en_US。UTF-8 ## ##附加的基本包:## [1]parallel stats4 stats graphics grDevices utils datasets ## [8] methods base ## ##其他附加的包:# [1] tibble_2.1.3 readr_1.3.1 ## [3] dplyr_0.8.2 airway_1.5.0 ## [5] SummarizedExperiment_1.15.5 DelayedArray_0.11.2 ## [7] Biobase_2.45.0 matrixstats_0.0.4.0 ## [9] Biobase_2.45.0基因组icranges_1 .37.14 ## [11] GenomeInfoDb_1.21.1 IRanges_2.19.10 ## [13] S4Vectors_0.23.17 BiocGenerics_0.31.4 ## [15] BiocStyle_2.13.2 ## ##通过命名空间加载(并没有附加):# [1] Rcpp_1.0.1 pillar_1.4.2 compiler_3.6.0 ## [4] BiocManager_1.30.5.1 XVector_0.25.0 bitops_1.0-6 ## [7] tools_3.6.0 zlibbioc_1.31.0 digest_0.6.19 ## [10] evaluate_0.14 lattice_0.20-38 pkgconfig_2.0.2 ## [13] rlang_0.4.0 Matrix_1.2-17 yaml_2.2.0 ## [13] rlang_0.4.0 GenomeInfoDbData_1.2.1 stringr_1.4.0 ## [16] knitr_1.23 hms_0.4.2 tidyselect_0.2.5 ## [25] rmarkdown_1.13 bookdown_0.11 purrr_0.3.2 ## [28] magrittr_1.5 codetools_0.2-16 htmltools_0.3.6 ## [31]## [34] crayon_1.3.4 . ##