创建一个新的.Rmd
文件
处理.Rmd
文件
解剖学
YAML的头与文档的信息
- - -标题:“笔记”作者:“马丁·摩根”日期:“6/30/2019”输出:html_document - - -
纯文本“减价”
#
:顶级标题;# #
二级标题,…更多的帮助在减价“帮助”- >“减价快速参考
锻炼走了,离开YAML头,但是删除一切。
图书馆()
,install.packages ()
,BiocManager:安装()
我们将使用以下库;附加到你的电流R会话。
库(readr)库(dplyr)
如果R响应
错误在图书馆(readr):没有包称为“readr”
或类似的,这意味着图书馆需要安装。“Bioconductor库安装(安装的方式凹口和Bioconductor包)是使用BiocManager包中。确保你有BiocManager
包安装
如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”)
然后安装所需要的包
BiocManager:安装(c (“readr”、“dplyr”))
read_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个样本从一个典型的微阵列实验。一些列名称神秘;我们只关注几个。
添加一个顶级节标题(一行开始#
)像
# 1天:R / Bioconductor实用
添加备注你学到的关键功能到目前为止,使用项目符号列表
主要功能:——“file.choose()”:交互式地选择一个文件位置。——“图书馆(readr)”:把readr包当前_R_会话——“read_csv ()”
按下“编织”按钮,调试出现的任何错误。
创建一个代码块包含指令数据输入,使用“栅栏”紧随其后{r}
' ' ' {r}图书馆(readr) pdata_file =“路径/ /文件”pdata < - readr (pdata_file) pdata’‘
按下“编织”按钮。注意,代码实际上是评估,当正确的将导入的数据pdata_file
。
安排()
使用安排()
命令行从年轻到老的人
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 <科>日期最后一次看到的<空空的>
锻炼你将如何使用安排()
订购样品从年轻到老,与个人的平等年龄
下令性
吗?
总结()
和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
参数计算平均年龄的缺失值。
t.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数据结构。
filter ()
和%,%
看一看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 ()
问是否有年龄差异这些分子生物学。
继续减价文档总结的项目符号列表的关键功能覆盖在这一节中。围栏内包含的示例代码,并确保代码是评估“编织”按钮被按下。
ggplot ()
加载ggplot2
图书馆。
库(ggplot2)
情节是由提供源数据显示,以及“美学”aes ()
描述所使用的数据。
ggplot (pdata aes (x =性,y =年龄)
geom_boxplot ()
这是足以确定显示的总体尺寸,但是我们仍然需要添加“几何”geom_ * ()
对象显示感兴趣的关系。添加一个箱线图几何学的可视化。
ggplot (pdata aes (x =性,y =年龄)+ geom_boxplot ()
# #警告:删除5行(stat_boxplot)含有非限定的值。
geom_jitter ()
添加第二个层,添加实际的数据使用geom_jitter ()
调用,这样性
值是流离失所的随机量对其水平位置(宽度= 1。
),而在其实际年龄是绘制垂直位置(身高= 0
)。
ggplot (pdata aes (x =性,y =年龄)+ geom_boxplot () + geom_jitter(宽度= 1。高度= 0)
# #警告:删除5行(stat_boxplot)含有非限定的值。
5 # #警告:删除含有缺失值的行(geom_point)。
锻炼会如何pdata
过滤与未知样品的年龄被排除在外,因此只有两类轴?
锻炼还有其他显示器传达总结的结果和实际数据吗?
创建一个短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 <——“世界是个舞台,所有的男男女女,演员而已”
库(Biostrings)
加载Biostrings图书馆
库(Biostrings)
如果R响应与
>库(Biostrings)错误在图书馆(Biostrings):没有包称为“Biostrings”
然后有必要首先安装包(确保你正确地拼包的名称,包括资本化!)
如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“Biostrings”)库(Biostrings)
DNAStringSet ()
创建一个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 ?
。
方法()
、帮助和browseVignettes ()
这个函数DNAStringSet ()
返回一个对象有一个特定的类
类(dna)
# # [1]“DNAStringSet”# # attr(“包”)# # [1]“Biostrings”
与类相关的一系列方法操作类。
锻炼发现很多(不幸的是,并不是所有的)方法作用于一个对象的类DNAStringSet
使用方法(class = " DNAStringSet”)
。验证reverseComplement
是这些方法之一。
帮助页面描述一个特定的方法可以使用吗?
,与搜索查询引用和tab补齐提供提示适当的帮助主题。
锻炼找到的帮助页面reverseComplement
方法操作DNAStringSet
对象,使用?”reverseComplement DNAStringSet-method”
。
帮助页面提供所需的技术细节的描述创建类和使用方法。小插曲提供更叙事整体包使用的描述。
锻炼使用browseVignettes(包=“Biostrings”)
看到小插曲用于这个包;探索一些小品文的可能的内容。
readDNAStringSet ()
我们不太可能进入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))
。
letterFrequency ()
GC:计算内容锻炼使用letterFrequency ()
确定每个DNA序列的GC含量dna
。的信
论点应该是“垃圾收集”
;作为。概率= TRUE
返回值在0和1之间。返回的数据矩阵1列。
锻炼情节的GC频率的分布dna
使用基本图形对象嘘()
和情节(密度())
,使用ggplot ()
。
虽然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序列宠物猫
,从那里开始?
进一步指出减价文档总结你学到的实用功能和对象。
完成你的减价防护部分评估文档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