内容

1开始你的markdown文档

创建一个新的.Rmd文件

处理.Rmd文件

解剖学

更多的帮助下,“帮助”->“markdown快速参考

锻炼要继续,请保留YAML头,但删除其他所有内容。

2处理数据

2.1图书馆()install.packages (),BiocManager:安装()

我们将使用以下库;将它们连接到电流上R会话。

库(readr)库(dplyr)

如果R响应

在库(readr)中出现错误:没有名为“readr”的包

或者类似的情况,这意味着需要安装库。“Bioconductor’的库安装方式(能够安装凹口而且Bioconductor包)是要使用的BiocManager包中。确保你有BiocManager包安装

如果(!requireNamespace("BiocManager", quiet = TRUE))安装包("BiocManager")

然后安装所需的软件包

BiocManager:安装(c(“readr”、“dplyr”))

2.2read_csv ()

找到数据文件" ALL-sample-sheet.csv "

Pdata_file <- file.choose()

然后输入数据使用read_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(…)获取完整的列规范。

如果R响应

错误在read_csv():无法找到函数“read_csv”

这意味着readr包还没有贴上去R会话;补救措施和库(readr)

看一下数据,看看我们有什么

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 , '最后一次见到日期' 

这代表了从一个经典的微阵列实验中收集到的128个样本上的22个变量。有些列名是模糊的;我们只关注其中的几个。

3.更新你的降价文档

添加顶级节标题(以)像

第一天:R / Bioconductor实用

添加到目前为止你学过的关键功能的注释,使用项目列表,如

关键功能:—' file.choose() ':交互选择文件位置。- ' library(readr) ':将readr包附加到当前_R_会话- ' read_csv() '

按下“Knit”按钮,调试发生的任何错误。

创建一个包含数据输入指令的代码块,使用“fence”后跟{r}

{r} library(readr) pdata_file = "path/to/file" pdata <- readr(pdata_file) pdata ' ' ' '

按下“针织”按钮。注意,代码实际上是求值的,正确时将从pdata_file

4处理数据(续):探索

4.1安排()

使用安排()从最年轻到最年长的人排列

Pdata %>% age
一个小码:128 x 22样本鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> <空空的> <双> <空空的> <空空的> <空空的> < >从而向# # 1 08018 8018 8/27/1999 5 B3 cr cr 10/18 /…# # 2 19017 19017 3/17/2000 14 T2 cr cr 6/15/2…# # 3 06002 6002 3/19/1997 15 B2 cr cr 6/9/19…# # 4 25003 25003 5/22/1998 15 B2 cr cr 8/4/19…# # 5 04016 4016 2/10/2000 16 B1 cr cr 4/17/2…# # 6 24010 24010 6/3/1997 F 16 B2 cr cr 8/11/1…# # 7 24019 24019 5/4/1999 16 B4 cr cr 7/28/1…# # 8 28001 28001 10/19/19…16 B3 REF REF < NA > # # 9 28044 28044 7/20/1999 16 B3 cr cr 9/20/1…# # 1001007 1007 9/30/1998 F 16 T3 CR CR 11/30/…## #…与118多行,和13个变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ## # '融合蛋白' , MDR , kinet , CCR , ## #复发,移植, f.u , '最后一次见到日期' 

如果R响应与

> pdata %>% arrange(age)错误在pdata %>% summary (n = n()):无法找到函数"%>%"

然后我们需要附加dplyr包,库(dplyr)

从大到小排列

Pdata %>% arrange(desc(age))
一个小码:128 x 22样本鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> <空空的> <双> <空空的> <空空的> <空空的> < >从而向# # 1 16004 16004 4/19/1997 F 58 B1 cr cr 7/15/1…# # 2 20002 20002 5/9/1997 F 58 B2 cr cr 8/19/1…# # 3 04007 4007 7/22/1997 57 B2 cr cr 9/17/1…# # 4 24017 24017 9/15/1998 57 B2 cr cr 12/7/1…# # 5 08012 8012 10/22/19…55 B3 cr cr 1/9/19…# # 6 28021 28021 3/18/1998 F 54 B3 cr 5/22/1…亲爱的…# # 7 30001 30001 1/16/1997 F 54 B3 < NA >亲爱的…< NA > # # 8 43007 43007 10/14/19…54 B4 cr cr 12/30 /…# # 9 62002 62002 1/15/1998 54 B4 < NA >亲爱的…… ## 10 01005 1005 5/21/1997 M 53 B2 CR CR 8/6/19…## #…与118多行,和13个变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ## # '融合蛋白' , MDR , kinet , CCR , ## #复发,移植, f.u , '最后一次见到日期' 

锻炼你会如何使用安排()将样本按年龄由小到大排列,每个人的年龄相等年龄下令

4.2总结()而且group_by ()

让我们问一下男性和女性的平均年龄。首先,使用总结()n ()函数创建一个tibble与每个性别的样本数量。

总结(n = n())
1 * 1 ## n ##  ## 1 128

我们现在知道有多少样本。使用group_by ()告诉dplyr分别考虑每个性别

Pdata %>% group_by(性别)

然后执行汇总操作…

Pdata %>% group_by(sex) %>% summary (n = n())
## # A tibble: 3 x 2 ## sex n ## #   ## 1 F 42 ## 2 M 83 ## 3  3

锻炼什么是NA性?使用filter ()识别3条记录is.na(性)

锻炼使用安排()而且desc ()按频率从高到低排列汇总表。

锻炼添加另一列ave_age总结(),使用意思是()按性别计算平均年龄。你需要使用na。rm = TRUE参数来计算缺少值时的平均年龄。

4.3t.test (),一个不整洁的函数

我们想比较研究中男性和女性的平均年龄t.test ()t.test ()需要一个公式年龄~性别年龄作为函数)描述我们想做的比较。它还需要一个参数data =它包含了我们想要进行t检验的数据。与我们迄今为止遇到的要处理的数据是第一个参数的函数不同,t.test ()将数据作为第二个参数。适应t.test ()为了使用,我们需要显式地指出data应该是第二个参数。这样做的一种方法是使用特殊符号表示传入数据的位置,调用T.test(年龄~性别,数据= .)

t.test(年龄~性别,data = .)

锻炼进行t检验,询问是否有证据表明性别之间的年龄差异。的默认值如何更改var.equal真正的?这样合适吗?

运动(高级)的返回值。t.test ()不太适合整洁数据分析,因为它是一个复杂的对象,不能表示为宠物猫因此不能通过使用常见的整齐动词来计算。写一个简单的函数t_test ()这样更整洁,更容易接受data =作为它的第一个参数,使用t.test ()在内部计算结果,并返回一个宠物猫包含用于后续计算的格式化结果。探索扫帚::整洁()作为一种变换多种碱基的方法R对象转换为整洁友好的数据结构。

4.4filter ()而且%, %

看一下mol.biol列,使用group_by ()还有便利函数count ()

Pdata %>% group_by(mol.biol) %>% count()
## #一个tibble: 6 x 2 ## #组:mol.biol [6] ## mol.biol n ##   ## 1 ALL1/AF4 10 ## 2 BCR/ABL 37 ## 3 E2A/PBX1 5 ## 4 NEG 74 ## 5 NUP-98 1 ## 6 p15/p16 1

这些代表染色体事件,如存在BCR/ABL融合基因,或NEG(标准)染色体。

锻炼使用filter ()创建一个新的数据集bcrabl包含所有22列,但只有BCR/ABL和NEG行。这将有助于使用%, %运算符,当左边集合中的一个对象出现在右边的对象中时,该运算符返回TRUE。

C ("a", "b", " C ", "b", "a") %in% C ("a", " C ")
##[1]真假真假真

锻炼使用t.test ()问这些分子生物学之间是否存在年龄差异。

5更新你的降价文档

通过在项目列表中总结本节所涵盖的关键功能,继续您的降价文档。包括围栏内的代码示例,并确保在按下“Knit”按钮时对代码进行评估。

6处理数据(续):可视化

6.1ggplot ()

加载ggplot2图书馆。

库(ggplot2)

通过提供要显示的数据来源以及“美学”来创建图表。aes ()描述要使用的数据。

Ggplot (pdata, aes(x =性别,y =年龄))

6.2geom_boxplot ()

这足以确定显示的整体尺寸,但我们仍然需要添加“几何”geom_ * ()显示感兴趣的关系的对象。为初始可视化添加一个箱线图。

Ggplot (pdata, aes(x =性别,y =年龄))+ geom_boxplot()
##警告:删除5行包含非有限值(stat_boxplot)。

6.3geom_jitter ()

添加叠加实际数据的第二层geom_jitter ()调用,以便值的水平位置(宽度= 1),而年龄则以其实际垂直位置(高度= 0).

Ggplot (pdata, aes(x =性别,y =年龄))+ geom_boxplot() + geom_jitter(width = .1, height = 0)
##警告:删除5行包含非有限值(stat_boxplot)。
##警告:删除5行包含丢失的值(geom_point)。

锻炼会如何pdata过滤掉年龄未知的样本,x轴上只有两类?

锻炼是否有其他显示同时传达结果摘要和实际数据?

7更新你的降价文档

8处理数据(续):Bioconductor对象

创建DNA序列的短字符向量。

序列<- c("AAATCGA", "ATACAACAT", "TTGCCA")

在基地R我们可以询问这些序列的属性并执行一些操作

序列
##[1]“aaatcga”“atacaacat”“ttgcca”
长度(序列)
## [1]
nchar(序列)
## [1] 7 9 6
序列(c(1、3))
## [1] " aaatcga " " ttgcca "
样本(序列)
##[1]“ttgcca”“aaatcga”“atacaacat”

基地R没有与DNA序列相关的操作概念,例如,

reverseComplement(序列)

失败。同样,我们可以给一个变量起任何名字,变量名的语义并不是强制的R

my_sequence <-“整个世界是一个舞台,所有的男人和女人只是演员”

8.1库(Biostrings)

加载Biostrings图书馆

库(Biostrings)

如果R响应与

> library(Biostrings)错误在库(Biostrings):没有包称为“Biostrings”

然后必须首先安装包(确保您正确拼写了包名,包括大写!)

如果(!requireNamespace("BiocManager", quiet = TRUE) install.packages("BiocManager") BiocManager::install("Biostrings") library(Biostrings)

8.2DNAStringSet ()

创建一个DNAStringSet从我们的字符向量

dna <- DNAStringSet(序列)dna
一个DNAStringSet实例,长度3 ## width seq# # [1] 7 AAATCGA ## [2] 9 ATACAACAT ## [3] 6 TTGCCA

锻炼这个物体dna支持上面描述的字符向量的操作长度()nchar (),样品()

锻炼向你自己证明至少还有其他一些有用的、dna特有的功能存在,例如,反向()而且reverseComplement ()

锻炼当您尝试创建一个DNAStringSet ()从一个对象,如my_sequence,定义如上,不包含DNA序列?警告:这条信息很神秘,你能提供一个“人工”翻译吗?

锻炼为什么DNAStringSet(“ACGTMRW”)不会产生错误,因为股价不是标准的核苷酸吗?有关提示,请参阅帮助页上的“DNA字母表”部分DNAString ?

8.3方法(),帮助,和browseVignettes ()

这个函数DNAStringSet ()返回一个对象它有一个特殊的类

类(dna)
# #[1]“DNAStringSet”# # attr(“包”)# #[1]“Biostrings”

与类相关的有一系列方法对类起作用。

锻炼发现作用于类对象的许多(不幸的是,不是全部)方法DNAStringSet使用方法(class = "DNAStringSet").验证reverseComplement就是这些方法之一。

描述特定方法的帮助页可以使用,其中引用了搜索查询,并使用制表符补全提供了关于适当的帮助主题是什么的提示。

锻炼的帮助页reverseComplement操作于DNAStringSet对象,使用?”reverseComplement DNAStringSet-method”

帮助页提供了创建类和使用方法所需的技术细节的描述。小插图提供了对整个包使用的更有叙述性的描述。

锻炼使用browseVignettes(package = "Biostrings")要查看可用于此包的小插图;探索一些小插图来了解可能的内容。

8.4readDNAStringSet ()

我们不太可能“手工”输入1000个DNA序列。相反,我们可以从标准文件格式读取数据。对于DNA序列,标准文件格式通常是“FASTA”文件,有时用扩展名缩写.fa通常还会加上额外的扩展进行压缩.fa.gz.中注释的所有基因的2000bp上游核苷酸的DNA序列的FASTA文件的一个示例黑腹果蝇dm3基因组构建,是分布式的Biostrings包中。下面是FASTA文件的路径。

Fa_file <- system。文件(package="Biostrings", "extdata", "dm3_upstream2000.fa.gz")

锻炼通过查看FASTA文件的前五行来了解FASTA文件的结构。

readline (fa_file, 5)
##[5]“>NM_078863_up_2000_chr2L_16764737_f chr2L:16764737-16766736”##[2]“gttggttggcccaccagtgccaaaaaatacacaagagaaaacagagaacagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagacagcatctt”##[2]“gacactaaaatgcaaaaattgacgaaatg”##[4]“tttttgtgcttttcttcgaacaaaaaattgggagcagaattattggattattcgctt”

第一行是一个标识符,包含有关基因的信息NM_078863以及该序列的基因组坐标chr2L: 16764737 - 16766736.下一行是DNA序列。在一定数量的行之后,一个新的记录开始。

tail(readLines(fa_file, 44), 5)
## [2] ">NM_001201794_up_2000_chr2L_8382455_f chr2L:8382455-8384454" ## [5] " cgtgtagcgcaacgaccatctacaaggcaatatcgcttttgcttgttagggg " ## [2] "

我们可以相当“容易”地为这种格式编写自己的解析器,但这很容易出错,而且没有必要。

锻炼输入文件

dna <- readnastringset (fa_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...

锻炼查询对象的基本属性,例如it 's长度()每个序列中的字符数是2000独特的(nchar (dna))

8.5letterFrequency ():计算GC含量

锻炼使用letterFrequency ()来测定每个DNA序列的GC含量dna.的参数应该是“垃圾收集”作为。问题= TRUE返回0到1之间的值。数据作为一个只有一列的矩阵返回。

锻炼图中GC频率的分布dna对象使用基本图形嘘()而且情节(密度()),以及使用ggplot ()

8.6整洁Bioconductor

虽然Bioconductor强调形式对象,比如DNAStringSet而不是宠物猫就像数据帧一样,我们可以应用一些与整洁数据交互的方式Bioconductor对象。例如,GC内容示例可能以“传统”形式编写为

gc <- letterFrequency(dna, " gc ", as。问题= TRUE)

但是可以使用管道来编写,并产生一个tibble,以便更容易地进行下游操作

gc <- dna %>% letterFrequency(" gc ",如。prob = TRUE) %>% tibble::as_tibble() gc
## #一个tibble: 26,454 x 1 ## ' G|C ' ## #  ## 1 0.378 ## 2 0.43 ## 3 0.43 ## 4 0.43 ## 5 0.43 ## 6 0.43 ## 7 0.43 ## 8 0.43 ## 9 0.43 ## 10 0.43 ## ##

锻炼修改上面的其他代码,以遵循这种分析风格。基本方法和“整洁”方法是否有优点/局限性?

锻炼我们为什么不把我们的序列DNA序列的载体宠物猫,然后从那里出发?

9更新你的降价文档

在标记文档中添加进一步的注释,总结您在本实践中所学到的函数和对象。

10出处:完成你的降价文件

属性的围栏部分完成标记文档sessionInfo ()命令。

' ' ' {r} sessionInfo ()' ' '

以下是用于此实用程序的包:

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 datasets ##[8]方法基础## ##其他附加包:## [1]Biostrings_2.53.0 XVector_0.25.0 IRanges_2.19.10 ## [4] S4Vectors_0.23.17 BiocGenerics_0.31.4 ggplot2_3.2.0 ## [7] dplyr_0.8.2 readr_1.3.1 BiocStyle_2.13.2 ## ##通过命名空间加载(且未附加):## [1] Rcpp_1.0.1 pillar_1.4.2 compiler_3.6.0 ## [4] BiocManager_1.30.5.1 zlibbioc_1.31.0 tools_3.6.0 ## [7] zeallot_0.1.0 digest_0.6.19 evaluate_0.14 ## [10] tibble_2.1.3 gtable_0.3.0 pkgconfig_2.0.2 ## [13] rlang_0.4.0 cli_1.1.0 yaml_2.2.0 ## [13] xfun_0.8 withr_2.1.2 string_1 .4.0 ## [22] grid_3.6.0 tidyselect_0.2.5 glue_1.3.1 ## [25] R6_2.4.0 fansi_0.4.0 rmarkdown_1.13 ## [28] bookdown_0.11 purrr_0.3.2 magrittr_1. 1.5 ## [31] backports_1.1.4 scales_1.0.0codetools_0.2-16 ## [34] htmltools_0.3.6 assertthat_0.2.1 colorspace_1.4-1 ## [37] labeling_0.3 utf8_1.1.4 stringi_1.4.3 ## [40] lazyeval_0.2.2 munsell_0.5.0 crayon_1.3.4