内容

1开始你减价文档

创建一个新的.Rmd文件

处理.Rmd文件

解剖学

更多的帮助在减价“帮助”- >“减价快速参考

锻炼走了,离开YAML头,但是删除一切。

2处理数据

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

我们将使用以下库;附加到你的电流R会话。

库(readr)库(dplyr)

如果R响应

错误在图书馆(readr):没有包称为“readr”

或类似的,这意味着图书馆需要安装。“Bioconductor库安装(安装的方式凹口Bioconductor包)是使用BiocManager包中。确保你有BiocManager包安装

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”)

然后安装所需要的包

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

2.2read_csv ()

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

pdata_file < - file.choose ()

然后输入数据使用read_csv ()

pdata < - read_csv (pdata_file)
# #与列规范解析:# #关口(# # .default = col_character(), # #年龄= col_double (), # # ' t (4; 11) = col_logical (), # # ' t (9; 22) ' = col_logical(), # #阶段。正常= col_logical (), # # ccr = col_logical (), # # = col_logical复发(),# #移植= col_logical () # #)
# #看到全列规范。规范(…)

如果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…# # 10 08001 8001 1/15/1997 40 B2 cr cr 3/26/1…# # #…118多行,和13个变量:‘t (4, 11) < lgl >, # # #的t (9; 22) < lgl >、阶段。正常< lgl >, citog <科>,mol.biol <科>,# # #融合蛋白的<科>,mdr <科>,将其<科>、ccr < lgl >、< lgl > # # #复发,移植< lgl >, f。u <科>日期最后一次看到的<空空的>

这是22个变量收集128个样本从一个典型的微阵列实验。一些列名称神秘;我们只关注几个。

3更新你的减价文档

添加一个顶级节标题(一行开始#)像

# 1天:R / Bioconductor实用

添加备注你学到的关键功能到目前为止,使用项目符号列表

主要功能:——“file.choose()”:交互式地选择一个文件位置。——“图书馆(readr)”:把readr包当前_R_会话——“read_csv ()”

按下“编织”按钮,调试出现的任何错误。

创建一个代码块包含指令数据输入,使用“栅栏”紧随其后{r}

' ' ' {r}图书馆(readr) pdata_file =“路径/ /文件”pdata < - readr (pdata_file) pdata’‘

按下“编织”按钮。注意,代码实际上是评估,当正确的将导入的数据pdata_file

4处理数据(继续):探索

4.1安排()

使用安排()命令行从年轻到老的人

pdata % > %安排(年龄)
# # #一个宠物猫: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…# # 10 01007 1007 9/30/1998 F 16 T3 cr cr 11/30 /…# # #…118多行,和13个变量:‘t (4, 11) < lgl >, # # #的t (9; 22) < lgl >、阶段。正常< lgl >, citog <科>,mol.biol <科>,# # #融合蛋白的<科>,mdr <科>,将其<科>、ccr < lgl >、< lgl > # # #复发,移植< lgl >, f。u <科>日期最后一次看到的<空空的>

如果R响应与

> pdata % > %安排(年龄)错误pdata % > %总结(n = n()):找不到函数“% > %”

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

安排从最大的到最小的

pdata % > %安排(desc(年龄))
# # #一个宠物猫: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…M 54 B4 cr cr 12/30 /…# # 9 62002 62002 1/15/1998 54 B4 < NA >亲爱的…< NA > # # 10 01005 1005 5/21/1997 53 B2 cr cr 8/6/19…# # #…118多行,和13个变量:‘t (4, 11) < lgl >, # # #的t (9; 22) < lgl >、阶段。正常< lgl >, citog <科>,mol.biol <科>,# # #融合蛋白的<科>,mdr <科>,将其<科>、ccr < lgl >、< lgl > # # #复发,移植< lgl >, f。u <科>日期最后一次看到的<空空的>

锻炼你将如何使用安排()订购样品从年轻到老,与个人的平等年龄下令吗?

4.2总结()group_by ()

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

pdata % > %总结(n = n ())
# # #一个宠物猫:1 x 1 # # # # < int > # 128 # 1

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

pdata % > % group_by(性)

然后执行总结操作…

pdata % > % group_by(性)% > %总结(n = n ())
# # #一个宠物猫:3 x 2 # #性n # # <空空的> < int > # # 1 F 42 # # 2 M 83 # # 3 < NA > 3

锻炼是什么NA性?使用filter ()确定3记录is.na(性)

锻炼使用安排()desc ()从多到少安排汇总表频繁。

锻炼添加另一个列ave_age总结(),使用意思是()计算由性行为的平均年龄。你需要使用na。rm = TRUE参数计算平均年龄的缺失值。

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

我们想比较男性和女性的平均年龄在研究中使用t.test ()t.test ()需要一个公式年龄~性别(年龄的函数)我们想描述的比较。它还需要一个参数data =包含数据我们想执行学习任务。与功能到目前为止我们所遇到的要处理的数据是第一个参数,t.test ()预计数据作为第二个参数。适应t.test ()使用,我们需要明确地表明,数据应该是第二个参数。这样做的方法之一是使用特殊符号代表输入数据的位置,调用t。测试(年龄~性别,data =)。:

pdata % > % t。测试(年龄~性别,data =)。

锻炼执行学习任务是否有证据表明两性之间的年龄差异。我们如何改变默认值var.equal真正的吗?这是适合的吗?

运动(高级)的返回值t.test ()并不很适合整洁数据分析,因为它是一个复杂的对象,并不表示为一个宠物猫因此不能计算在使用常见的整洁的动词。编写一个简单的函数t_test ()更tidy-friendly,接受data =的第一个参数,使用t.test ()在内部计算的结果,并返回一个宠物猫包含结果为后续的计算格式。探索扫帚::整洁()许多基函数作为一种变换R对象为tidy-friendly数据结构。

4.4filter ()%,%

看一看mol.biol列,使用group_by ()和方便的功能count ()

pdata % > % group_by (mol.biol) % > %数()
# # #一个宠物猫:6 x 2 # # #组:mol.biol [6] # # mol.biol n # # <空空的> < int > # # 1 ALL1 / AF4 10 # # 2 BCR / ABL 37 # # 3 ea2 / PBX1 5 # # 4负的74 # # 5 nu - 98 1 # # 6 p15 / p16 1

这些代表染色体等事件的出现BCR / ABL融合基因,或底片(标准)的染色体。

锻炼使用filter ()创建一个新的数据集bcrabl包含所有22列但只有BCR / ABL和底片行。它将有助于使用%,%操作符返回TRUE当一个对象在左边是出现在右边的对象。

c (“a”、“b”、“c”,“b”,“一个”)% % c (“a”、“c”)
# #[1]真的假的真的假真的

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

5更新你的减价文档

继续减价文档总结的项目符号列表的关键功能覆盖在这一节中。围栏内包含的示例代码,并确保代码是评估“编织”按钮被按下。

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(宽度= 1。高度= 0)
# #警告:删除5行(stat_boxplot)含有非限定的值。
5 # #警告:删除含有缺失值的行(geom_point)。

锻炼会如何pdata过滤与未知样品的年龄被排除在外,因此只有两类轴?

锻炼还有其他显示器传达总结的结果和实际数据吗?

7更新你的减价文档

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

创建一个短DNA序列的特征向量。

序列< - c (“AAATCGA”、“ATACAACAT”,“TTGCCA”)

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

序列
# # [1]“AAATCGA”“ATACAACAT”“TTGCCA”
长度(序列)
# # 3 [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响应与

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

然后有必要首先安装包(确保你正确地拼包的名称,包括资本化!)

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“Biostrings”)库(Biostrings)

8.2DNAStringSet ()

创建一个DNAStringSet从我们的特征向量

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

锻炼的对象dna支持上面的操作说明一个特征向量,特别是长度(),nchar (),(,样品()吗?

锻炼向自己证明至少其他一些有用的,DNA-specific,功能的存在,例如,反向()reverseComplement ()

锻炼当你试图创建一个DNAStringSet ()从一个对象等my_sequence上面定义的,不包含DNA序列?警告:消息是很神秘的,你能提供一个“人类”翻译?

锻炼为什么DNAStringSet (“ACGTMRW”)不会创建一个错误,因为股价不是标准的核苷酸吗?提示,请参阅部分的DNA字母:“在帮助页面DNAString ?

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

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

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

与类相关的一系列方法操作类。

锻炼发现很多(不幸的是,并不是所有的)方法作用于一个对象的类DNAStringSet使用方法(class = " DNAStringSet”)。验证reverseComplement是这些方法之一。

帮助页面描述一个特定的方法可以使用吗?,与搜索查询引用和tab补齐提供提示适当的帮助主题。

锻炼找到的帮助页面reverseComplement方法操作DNAStringSet对象,使用?”reverseComplement DNAStringSet-method”

帮助页面提供所需的技术细节的描述创建类和使用方法。小插曲提供更叙事整体包使用的描述。

锻炼使用browseVignettes(包=“Biostrings”)看到小插曲用于这个包;探索一些小品文的可能的内容。

8.4readDNAStringSet ()

我们不太可能进入1000年的DNA序列的“手工”。相反,我们可以从一个标准的文件格式读取数据。DNA序列的标准文件格式通常是一个“FASTA”文件,有时略延长.fa通常压缩和额外的扩展.fa.gz。的一个例子FASTA上游文件包含2000个基点的DNA序列的核苷酸的基因注释黑腹果蝇dm3基因组的构建,是分布式的Biostrings包中。这是FASTA文件的路径。

fa_file < -系统。文件(package="Biostrings", "extdata", "dm3_upstream2000.fa.gz")

锻炼峰的结构FASTA文件通过查看第一个五行。

readline (fa_file, 5)
# # [1]" > NM_078863_up_2000_chr2L_16764737_f chr2L: 16764737 - 16764737”# # [2] # #“gttggtggcccaccagtgccaaaatacacaagaagaagaaacagcatctt”[3]“gacactaaaatgcaaaaattgctttgcgtcaatgactcaaaacgaaaatg”# # [4]“tttttgtgcttttcgaacaaaaaattgggagcagaatattggattcgctt”# # [5]“ttttcgcatcgaatatcttaagggagcaagggaagaaccatctagaataa”

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

尾(readline (fa_file 44), 5)
# # # # [1]“cacgcacaccgatcgtcgaatcgaaaagctttcggggtcttacgggatcc”[2] # #“atgggtatcaagttgccccgtataaaaggcaagtttaccggttgcacggt”[3]“> NM_001201794_up_2000_chr2L_8382455_f chr2L: 8382455 - 8382455”# # [4]“ttatttatgtaggcgcccgttcccgcagccaaagcactcagaattccggg”# # [5]“cgtgtagcgcaacgaccatctacaaggcaatattttgatcgcttgttagg”

我们可以很轻松的为这种格式编写自己的解析器,但这将是容易出错的和不必要的。

锻炼输入文件

< - dna readDNAStringSet (fa_file) dna
# # 26454 # #宽度长度的DNAStringSet实例seq名字# # [1]2000 GTTGGTGGCCCACCAGTGC…GTTTACCGGTTGCACGGT NM_078863_up_2000……# # [2]2000 TTATTTATGTAGGCGCCCG…CGGAAAGTCATCCTCGAT NM_001201794_up_2……# # [3]2000 TTATTTATGTAGGCGCCCG…CGGAAAGTCATCCTCGAT NM_001201795_up_2……# # [4]2000 TTATTTATGTAGGCGCCCG…CGGAAAGTCATCCTCGAT NM_001201796_up_2……# # [5]2000 TTATTTATGTAGGCGCCCG…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...

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

8.5letterFrequency ()GC:计算内容

锻炼使用letterFrequency ()确定每个DNA序列的GC含量dna。的论点应该是“垃圾收集”;作为。概率= TRUE返回值在0和1之间。返回的数据矩阵1列。

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

8.6整洁Bioconductor吗?

虽然Bioconductor强调正式的物品,例如DNAStringSet而不是宠物猫例如数据帧,一些与之交互的整洁的方式可以应用到数据Bioconductor对象。例如,GC含量例子可能是写在“传统”形式

gc < - letterFrequency (dna,“gc”。概率= TRUE)

但可以使用管道和编写reesult加在宠物猫更容易操作

gc < - dna % > % letterFrequency (“gc”。概率= TRUE) % > %宠物猫:as_tibble gc ()
# # #一个宠物猫:26454 x 1 # #的G | C # 0.378 # <双> # # 1 # # 2 0.43 0.43 0.43 # # 3 # # 4 # 5 # 0.43 # 6 # 0.43 # 0.43 # 7 # 0.43 # 8 # 0.43 # 9 # 0.43 # 10 # # #…26444多行

锻炼上面的修改其他代码,按照这种风格的分析。有好处/基地诗句“整洁”方法的局限性?

锻炼有理由为什么我们不把我们的呢序列向量的DNA序列宠物猫,从那里开始?

9更新你的减价文档

进一步指出减价文档总结你学到的实用功能和对象。

10出处:完成你的减价文档

完成你的减价防护部分评估文档sessionInfo ()命令。

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

这里的包用于实际:

sessionInfo ()
# # R版本3.6.0修补(2019-04-26 r76431) # #平台:x86_64-apple-darwin17.7.0(64位)# #下运行:macOS高塞拉10.13.6 # # # #矩阵产品:默认# #布拉斯特区:/用户/ ma38727 / bin / R-3-6-branch / lib / libRblas。dylib # # LAPACK: /用户/ 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跑龙套数据集# #[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 # # [16] xfun_0.8 withr_2.1.2 stringr_1.4.0 # # [19] knitr_1.23 vctrs_0.1.0 hms_0.4.2 # # [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.5 # # [31] backports_1.1.4 scales_1.0.0 codetools_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