内容

1R

1.1向量

原子的矢量

  • 逻辑()整型()数字()字符(),……

    X <- c(1,3,5) y <- 1:5
  • 接口:长度()(< -

列表

  • 接口:长度()(< -[[[[< -< -美元

麻烦了!

  • NA

    x <- c(TRUE, FALSE, NA) outer(x, x, ' & ')
    # #[1][2][3] # #【1】真正的假NA # #(2)假假假# #(3)假NA NA
    Outer (x, x, ' | ')
    # #[1][2][3] # #(1)真的真的真的# #[2]真的假的NA # #【3】真正的NA NA
  • 因素

    x <- c(“男性”,“女性”,“男性”)性别<- factor(x, levels=c(“女性”,“男性”))性别
    ##[1]男女等级:女男

1.2对象

data.frame

X <- rnorm(100) hist(X)

Y <- x + rnorm(100) df <- data.frame(x, Y) plot(Y ~ x, df)

基本data.frame操作

  • 列访问[[
  • 二维构造子集
Ridx <- df$x > 0表(Ridx)
## ridx ##错误正确## 49 51
Plot (y ~ x, df[ridx,])

更复杂的对象和作用于它们的方法

拟合<- lm(y ~ x, df)类(拟合)
##[1]“lm”
方差分析(适合)
##方差分析表## ##响应:y ## Df Sum Sq Mean Sq F value Pr(>F) ## x 1 168.92 168.921 152.36 < 2.2e-16 *** #残差98 108.65 1.109 ##—##显著值。代码:0 '***' 0.001 '**' 0.01 '*' 0.05 '。' 0.1 ' ' 1
(y ~ x, df)曲线(拟合)

1.3

库(ggplot2)
Ggplot (df, aes(x, y)) + geom_point() + geom_smooth(method="lm")

2整洁R

2.1使用“tidyverse”

readr用于数据输入

库(readr)
pdata_file <- file.choose() # ALL-sample-sheet.csv
Pdata <- read_csv(pdata_file)
##用列规范解析:## cols(## .default = col_character(), ## age = col_double(), ## t(4;11) ' = col_logical(), ## t(9;22) ' = col_logical(), ## cyto。Normal = col_logical(), ## CCR = col_logical(), ## relapse = col_logical(), ## transplant = col_logical() ##)
##参见spec(…)获取完整的列规范。
pdata
一个小码:128 x 22样本鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> <空空的> <双> <空空的> <空空的> <空空的> < >从而向# # 1 01005 1005 5/21/1997 53 B2 cr cr 8/6/19…# # 2 01010 1010 3/29/2000 19 B2 cr cr 6/27/2…# # 3 03002 3002 6/24/1998 F 52 B4 cr cr 8/17/1…# # 4 04006 4006 7/17/1997 38 B1 cr cr 9/8/19…# # 5 04007 4007 7/22/1997 57 B2 cr cr 9/17/1…# # 6 04008 4008 7/30/1997 17 B1 cr cr 9/27/1…# # 7 04010 4010 10/30/19 18 F B1 cr cr 1/7/19…# # 8 04016 4016 2/10/2000 16 B1 cr cr 4/17/2…# # 9 06002 6002 3/19/1997 15 B2 cr cr 6/9/19…# # 1008001 8001 1/15/1997 M 40 B2 CR CR 3/26/1…## #…与118多行,和13个变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ## # '融合蛋白' , MDR , kinet , CCR , ## #复发,移植, f.u , '最后一次见到日期' 

dplyr用于数据操作

库(dplyr)
Pdata %>% select(样本,性别,年龄,mol.biol)
# # #一个宠物猫:128 x 4 # #样本性别年龄mol.biol # # <空空的> <空空的> <双> < >从而向# # 1 01005 53 BCR / ABL # # 2 01010 19 NEG # # 3 03002 F 52 BCR / ABL # # 4 04006 38 ALL1 / AF4 # # 5 04007 57 NEG # # 6 04008 17 NEG # # 7华氏04010度18 NEG # # 8 04016 16 NEG # # 9 15 NEG # # 10 08001 06002 40 BCR / ABL  ## # ... 与118多行
pdata %>% filter(性别== "F",年龄< 50)
## #小码:33 x 22样本鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> <空空的> <双> <空空的> <空空的> <空空的> < >从而向# # 1 04010 4010 10/30/19 18 F B1 cr cr 1/7/19…# # 2 09017 9017 2/3/2000 F 27 B cr cr 3/23/2…# # 3 12012 12012 5/21/1997 F 36 B3 REF REF < NA > # # 4 16009 16009 7/11/2000 F 43 B2 < NA > < NA > < NA > # # 5 19005 19005 11/15/19 F 48 B1 cr cr 2/3/19…# # 6 22009 22009 8/10/1999 F 19 B < NA > < NA > < NA > # # 7 22010 22010 12/31/19…F 26 B < NA > < NA > < NA > # # 8 24001 24001 10/4/1996 F 17 B2 cr cr 12/20 /…# # 9 24005 24005 1/3/1997 F 45 B1 cr cr 4/8/19…# #10 24008 24008 5/14/1997 F 20 B2 CR CR 7/31/1…## #…与23个更多的行,和13个更多的变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ## # '融合蛋白' , MDR , kinet , CCR , ## #复发,移植, f.u , '最后一次见到日期' 
pdata %>%突变(性别=因子(性别,水平= c("F", "M"))))
一个小码:128 x 22样本鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> < fct > <双> <空空的> <空空的> <空空的> < >从而向# # 1 01005 1005 5/21/1997 53 B2 cr cr 8/6/19…# # 2 01010 1010 3/29/2000 19 B2 cr cr 6/27/2…# # 3 03002 3002 6/24/1998 F 52 B4 cr cr 8/17/1…# # 4 04006 4006 7/17/1997 38 B1 cr cr 9/8/19…# # 5 04007 4007 7/22/1997 57 B2 cr cr 9/17/1…# # 6 04008 4008 7/30/1997 17 B1 cr cr 9/27/1…# # 7 04010 4010 10/30/19 18 F B1 cr cr 1/7/19…# # 8 04016 4016 2/10/2000 16 B1 cr cr 4/17/2…# # 9 06002 6002 3/19/1997 15 B2 cr cr 6/9/19…# # 1008001 8001 1/15/1997 M 40 B2 CR CR 3/26/1…## #…与118多行,和13个变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ## # '融合蛋白' , MDR , kinet , CCR , ## #复发,移植, f.u , '最后一次见到日期' 
pdata %>% summary (n = n(), ave_age = mean(年龄,na.rm=TRUE))
## #一个小块:1 x 2 ## n ave_age ##   ## 1 128 32.4
Pdata %>% group_by(性别)%>% summary (n = n(), ave_age = mean(年龄,na。rm = TRUE))
## # A tibble: 3 x 3 ## sex n ave_age ##    ## 1 F 42 35.2 ## 2 M 83 30.9 ## 3  3 NaN

2.2整理数据

输入

Pdata_file <- file.choose() # air -sample-sheet.csv count_file <- file.choose() # air -read-counts.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() ##)
pdata <- pdata %>% select(Run, cell, dex)
计数<- read_csv(count_file)
## cols(## .default = col_double(), ## Run = col_character() ##)
##参见spec(…)获取完整的列规范。
Eg <- counts[, 1:6] #使它易于使用Eg
# # #一个宠物猫:8 x 6 # #运行ENSG00000000003 ENSG00000000419 ENSG00000000457 ENSG00000000460 # # <空空的> <双> <双> <双> <双> # # 1 SRR1…# # 2 SRR1…679 467 260 448 515 211 55 # # 3 SRR1…873 621 263 40 # # 4 SRR1…408 365 164 35 # # 5 SRR1…1138 587 245 78 # # 6 SRR1…1047 799 331 63 # # 7 SRR1……770 417 233 76 # # 8 SRR1 60 572 508 229  ## # ... 一个变量:ENSG00000000938 <双>

加入

数据<- left_join(pdata, eg)
##加入,by = "Run"
数据
# # #一个宠物猫:8 x 8 # #运行细胞敏捷ENSG00000000003 ENSG00000000419 ENSG00000000457 # # <空空的> <空空的> <空空的> <双> <双> <双> # # 1 SRR1 N613……untrt 679 467 260 # # 2 SRR1 N613……泰爱泰党448 515 211 # # 3 SRR1 N052……untrt 873 621 263 # # 4 SRR1 N052……泰爱泰党408 365 164 # # 5 SRR1 N080……untrt 1138 587 245 # # 6 SRR1 N080……泰爱泰党1047 799 331 # # 7 SRR1 N061……untrt 770 417 233 # # 8 SRR1 N061…泰爱泰党572 508 229  ## # ... 有两个变量:ENSG00000000460 <双>,ENSG00000000938 <双>

收集

库(tidyr)
tbl <- gather(data, "Gene", "Count", -(1:3)) tbl
## #小猫咪:40 x 5 # #运行细胞敏捷基因数# # <空空的> <空空的> <空空的> <空空的> <双> # # 1 SRR1039508 N61311 untrt ENSG00000000003 679 # # 2 SRR1039509 N61311泰爱泰党ENSG00000000003 448 # # 3 SRR1039512 N052611 untrt ENSG00000000003 873 # # 4 SRR1039513 N052611泰爱泰党ENSG00000000003 408 # # 5 SRR1039516 N080611 untrt ENSG00000000003 1138 # # 6 SRR1039517 N080611泰爱泰党ENSG00000000003 1047 # # 7 SRR1039520 N061011 untrt ENSG00000000003 770 # # 8 SRR1039521 N061011泰爱泰党ENSG00000000003 572 # # 9 SRR1039508 N61311 untrtENSG00000000419 467 ## 10 SRR1039509 N61311 trt ENSG00000000419 515 ## #
tbl %>% group_by(Run) %>% summary (lib_size = sum(Count))
## 1 SRR1039508 1466 ## 2 SRR1039509 1229 ## 3 SRR1039512 1799 ## 4 SRR1039513 972 ## 5 SRR1039516 2049 ## 6 SRR1039517 2240 ## 7 SRR1039520 1496 ## 8 SRR1039521 1369
tbl %>% group_by(Gene) %>% summary (ave_count = mean(Count), ave_log_count = mean(log(1 + Count)))
## # A tibble: 5 x 3 ##基因ave_count ave_log_count ##    ## 1 ENSG00000000003 742。6.55 ## 2 ensg00000000419 535。6.26 ## 3 ensg00000000457 242 5.48 ## 4 ensg00000000460 58.4 4.05 ## 5 ensg00000000938 0.375 0.224

2.3可视化

整理所有数据。

counts_tbl <- gather(counts, "Gene", "Count", - run) data_tbl <- left_join(pdata, counts_tbl)
##加入,by = "Run"
data_tbl
## #小猫咪:267752 x 5 # #运行细胞敏捷基因数# # <空空的> <空空的> <空空的> <空空的> <双> # # 1 SRR1039508 N61311 untrt ENSG00000000003 679 # # 2 SRR1039508 N61311 untrt ENSG00000000419 467 # # 3 SRR1039508 N61311 untrt ENSG00000000457 260 # # 4 SRR1039508 N61311 untrt ENSG00000000460 60 # # 5 SRR1039508 N61311 untrt ENSG00000000938 0 # # 6 SRR1039508 N61311 untrt ENSG00000000971 3251 # # 7 SRR1039508 N61311 untrt ENSG00000001036 1433 # # 8 SRR1039508 N61311 untrt ENSG00000001084 519 # # 9 SRR1039508 N61311 untrtENSG00000001167 394 ## 10 SRR1039508 N61311 untrt ENSG00000001460 172 ## #

总结每个基因的平均“表达”。

gene_summaries <- data_tbl %>% group_by(Gene) %>% summary (ave_count = mean(Count), ave_log_count = mean(log(1 + Count))
## #一个tibble: 33,469 x 3 ##基因ave_count ave_log_count ##    ## 1 ENSG00000000003 742。6.55 ## 2 ensg00000000419 535。6.26 ## 3 ensg00000000457 242 5.48 ## 4 ensg00000000460 58.4 4.05 ## 5 ensg00000000938 0.375 0.224 ## 6 ensg00000000971 6035。8.63 ## 7 ensg00000001036 1305 7.15 ## 8 ensg00000001084 6156.40 ## 9 ensg00000001167 392。5.89 ## 10 ensg00000001460 188。5.21 ## #…多33,459行

可视化使用ggplot2

库(ggplot2)
Ggplot (gene_summaries, aes(ave_log_count)) + geom_density()

3.Bioconductor

3.1对象很重要

库(Biostrings)
seq = c("AAACA", "CATGC") dna <- DNAStringSet(seq) reversecsupplement (dna)
一个DNAStringSet实例,长度为2 ## width seq# # [1] 5 tgttt# # [2] 5 GCATG
Dm3_upstream_file <- system。文件(package="Biostrings", "extdata", "dm3_upstream2000.fa.gz")
# #[1]”> NM_078863_up_2000_chr2L_16764737_f chr2L: 16764737 - 16764737”# #[2]# #“gttggtggcccaccagtgccaaaatacacaagaagaagaaacagcatctt”[3]“gacactaaaatgcaaaaattgctttgcgtcaatgactcaaaacgaaaatg”# #[4]“tttttgtgcttttcgaacaaaaaattgggagcagaatattggattcgctt”# #[5]“ttttcgcatcgaatatcttaagggagcaagggaagaaccatctagaataa”# #[6]“taaagaagaccaaaatgtatcgtaactaaaggttttttttattaattatt”# #[7]“aaatgttaaatattaacttataccaactcattggctttacaagtacaaca”# #[8]“aataaccccaaaataatttattgtcaggtgctaaattgttgtttgttgtt”# # [9]##[10]“aattctgctcgacaatgtcacagattttgtttcagaaacttagcaaaaag”
dna <- readnastringset (dm3_upstream_file
##长度为26454的DNAStringSet实例## width seq names ## [1] 2000GTTTACCGGTTGCACGGT NM_078863_up_2000……## [2] 2000 ttattttatgtaggcgcccg…CGGAAAGTCATCCTCGAT NM_001201794_up_2……## [3] 2000 ttattttatgtaggcgcccg…CGGAAAGTCATCCTCGAT NM_001201795_up_2……## [4] 2000 ttattttatgtaggcgcccg…CGGAAAGTCATCCTCGAT NM_001201796_up_2……## [5] 2000 ttattttatgtaggcgcccg…CGGAAAGTCATCCTCGAT NM_001201797_up_2……## ... ... ... ## [26450] 2000 ATTTACAAGACTAATAAAG...ATTAAATTTCAATAAAAC NM_001111010_up_2... ## [26451] 2000 GATATACGAAGGACGACCT...TTTGAGTTGTTATATATT NM_001015258_up_2... ## [26452] 2000 GATATACGAAGGACGACCT...TTTGAGTTGTTATATATT NM_001110997_up_2... ## [26453] 2000 GATATACGAAGGACGACCT...TTTGAGTTGTTATATATT NM_001276245_up_2... ## [26454] 2000 CGTATGTATTAGTTAACTC...AAGTGTAAGAACAAATTG NM_001015497_up_2...
gc <- letterFrequency(dna, " gc ", as。hist(gc)

库(BSgenome)库(BSgenome.Hsapiens.UCSC.hg38)
BSgenome.Hsapiens.UCSC.hg38
##人类基因组:## #生物:智人(人类)## #提供者:UCSC ## #提供者版本:hg38 ## #发布日期:2013年12月## #发布名称:基因组参考联盟GRCh38 ## # 455序列:## # chr1 chr2 chr3 ## # chr4 chr5 chr6 ## # chr7 chr8 chr9 ## # chr10 chr11 chr12 ## # chr13 chr14 chr15 ## # ... ... ...chrUn_KI270751v1 chrUn_KI270751v1 chrUn_KI270752v1 ## #(使用'seqnames()'查看所有序列名称,使用'$'或'[[]' ##操作符访问给定序列)
chr17 <- BSgenome.Hsapiens.UCSC. cn“chr17”hg38 [[]] chr17
# # # # 83257441 -信“DNAString”实例seq: NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN…NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
letterFrequency(chr17, "GC", as.prob=TRUE)
## g b c

3.2对象的接口很重要

库(S4Vectors)

矢量是什么?

  • 长度(),……

什么是DataFrame?

  • 如上所定义的一列向量
数据帧(x = rnorm(100), y = rnorm(100))
##数据帧100行2列## x y ## <数字> <数字> ## 1 -0.944041504379253 -0.455610766974721 ## 2 -0.271818699506858 0.288951532687977 ## 3 0.376593013180833 2.25049393969679 ## 4 2.08865852110716 -1.07803387444287 ## 5 0.121827514586298 -0.33510144878213 ## ... ... ...## 96 -1.89795810437905 ## 97 1.59604096379008 0.686796046925052 ## 98 -2.63000888891303 0.804185609470674 ## 99 -1.10334520519311 0.00814316376383511 ## 100 -2.66678004450304 0.387616874336104

DNAStringSet是一个向量吗?

长度(dna)
## [1] 26454
dna [1:4]
##长度为4的DNAStringSet实例##宽度序列名称## [1]2000 GTTGGTGGCCCACCAGTGCCA…AAGTTTACCGGTTGCACGGT NM_078863_up_2000……## [2] 2000 ttatttatgtaggcgcccgtt…TACGGAAAGTCATCCTCGAT NM_001201794_up_2……## [3] 2000 ttatttatgtaggcgcccgtt…TACGGAAAGTCATCCTCGAT NM_001201795_up_2……## [4] 2000 ttatttatgtaggcgcccgtt…TACGGAAAGTCATCCTCGAT NM_001201796_up_2……

所以…

NMS = names(dna) pos = sub("。* ", "", nms) df <- DataFrame(dna = unname(dna), pos = pos) df$gc <- letterFrequency(df$dna, " gc ", as.prob=TRUE)[,1] df
## DataFrame有26454行和3列## dna pos gc ##  <字符> <数字> ## 1 GTTGGTGGCC…GTTGCACGGT chr2L:16764737-16766736 0.3785 ## 2 TTATTTATGT…CATCCTCGAT chr2L:8382455-8384454 0.43 ## 3 TTATTTATGT…CATCCTCGAT chr2L:8382455-8384454 0.43 ## 4 TTATTTATGT…CATCCTCGAT chr2L:8382455-8384454 0.43 ## 5 TTATTTATGT…CATCCTCGAT chr2L:8382455-8384454 0.43 ## ... ... ... ...## 26450 atttacaaga…TCAATAAAAC chrXHet:73686-75685 0.3455 ## 26451 GATATACGAA…GTTATATATT chrXHet:12884-14883 0.3065 ## 26452 GATATACGAA…GTTATATATT chrXHet:12884-14883 0.3065 ## 26453 GATATACGAA…GTTATATATT chrXHet:12884-14883 0.3065 ## 26454 CGTATGTATT…GAACAAATTG chrYHet:277861-279860 0.3865

3.4安装软件

库(BiocManager)
BiocManager::可用(“BSgenome.Hsapiens”)
bsgenome . hsapiens .1000个基因组。hs37d5" ## [2] "BSgenome.Hsapiens.NCBI。GRCh38" ## [3] "BSgenome.Hsapiens.UCSC。hg17" ## [4] " bsgenome . hspiens . ucsc .hg17。蒙面“##[5]”BSgenome.Hsapiens.UCSC。hg18" ## [6] " bsgenome . hspiens . ucsc .hg18。蒙面“##[7]”BSgenome.Hsapiens.UCSC。hg19" ## [8] " bsgenome . hspiens . ucsc .hg19。蒙面“##[9]”BSgenome.Hsapiens.UCSC。hg38" ## [10] " bsgenome . hspiens . ucsc .hg38.mask "
##也可以安装CRAN, github包BiocManager::install("BSgenome.Hsapiens.UCSC.hg38")

4出处

sessionInfo ()
## R version 3.6.0 Patched (2019-04-26 r76431) ##平台:x86_64-apple-darwin17.7.0(64位)##运行在macOS High Sierra 10.13.6 ## ##矩阵产品:default ## BLAS: /Users/ma38727/bin/R-3-6-branch/lib/libRblas。/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]stats4并行统计图形grDevices utils数据集##[8]方法基础## ##其他附加包:## [7] Biostrings_2.53.0 XVector_0.25.0 ## [9] IRanges_2.19.10 S4Vectors_0.23.17 ## [11] BiocGenerics_0.31.4 tidyr_0.8.3 ## [13] dplyr_0.8.2 readr_1.3.1 ## [15] ggplot2_3.2.0 BiocStyle_2.13.2 ## ##通过命名空间加载(并且没有附加):# # # # [1] Rcpp_1.0.1 lattice_0.20-38 [3] Rsamtools_2.1.2 assertthat_0.2.1 # # [5] zeallot_0.1.0 digest_0.6.19 # # [7] utf8_1.1.4 R6_2.4.0 # # [9] backports_1.1.4 evaluate_0.14 # # [11] pillar_1.4.2 zlibbioc_1.31.0 # # [13] rlang_0.4.0 lazyeval_0.2.2 # # [15] Matrix_1.2-17 rmarkdown_1.13 # # [17] labeling_0.3 BiocParallel_1.19.0 # # [19] stringr_1.4.0 rcurl_1.95 - 4.12 # # [21] munsell_0.5.0 DelayedArray_0.11.2 # # [23] compiler_3.6.0 xfun_0.8 # # [25] pkgconfig_2.0.2 htmltools_0.3.6 # # [27] tidyselect_0.2.5[31] bookdown_0.11 codetools_0.2-16 ## [35] fansi_0.4.0 crayon_1.3.4 ## [37] withr_2.1.2 genome alignments_1.21.4 ## [39] bitops_1.0-6 grid_3.6.0 ## [43] scales_1.0.0 cli_1.1.0 ## [45] stringi_1.4.3 vctrs_0.1.0 ## [47] tools_3.6.0 Biobase_2.45.0 ## [49] glue_1.3.1 purrr_0.3.2 ## [53] colorspace_1.4-1 knitr_1.23