找回密码
 注册
查看: 15122|回复: 40

生物信息学中的R程序— R promgraming in Bioinformatics

[复制链接]
发表于 2010-12-5 22:13:47 | 显示全部楼层 |阅读模式
1 Introducing R 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 A note on the text . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 R Language Fundamentals 5
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 A brief introduction to R . . . . . . . . . . . . . . . . 5
2.1.2 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3 A very brief introduction to OOP in R . . . . . . . . . 7
2.1.4 Some special values . . . . . . . . . . . . . . . . . . . 8
2.1.5 Types of objects . . . . . . . . . . . . . . . . . . . . . 9
2.1.6 Sequence generating and vector subsetting . . . . . . . 11
2.1.7 Types of functions . . . . . . . . . . . . . . . . . . . . 12
2.2 Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Atomic vectors . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Numerical computing . . . . . . . . . . . . . . . . . . 15
2.2.3 Factors . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 Lists, environments and data frames . . . . . . . . . . 18
2.3 Managing your R session . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Finding out more about an object . . . . . . . . . . . 24
2.4 Language basics . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.1 Operators . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5 Subscripting and subsetting . . . . . . . . . . . . . . . . . . . 28
2.5.1 Vector and matrix subsetting . . . . . . . . . . . . . . 29
2.6 Vectorized computations . . . . . . . . . . . . . . . . . . . . . 36
2.6.1 The recycling rule . . . . . . . . . . . . . . . . . . . . 37
2.7 Replacement functions . . . . . . . . . . . . . . . . . . . . . . 38
2.8 Functional programming . . . . . . . . . . . . . . . . . . . . . 39
2.9 Writing functions . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.10 Flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.10.1 Conditionals . . . . . . . . . . . . . . . . . . . . . . . 44
2.11 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . 45
2.12 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.12.1 Standard evaluation . . . . . . . . . . . . . . . . . . . 51
2.12.2 Non-standard evaluation . . . . . . . . . . . . . . . . . 52
vii
viii
2.12.3 Function evaluation . . . . . . . . . . . . . . . . . . . 53
2.12.4 Indirect function invocation . . . . . . . . . . . . . . . 54
2.12.5 Evaluation on exit . . . . . . . . . . . . . . . . . . . . 54
2.12.6 Other topics . . . . . . . . . . . . . . . . . . . . . . . 55
2.12.7 Name spaces . . . . . . . . . . . . . . . . . . . . . . . 57
2.13 Lexical scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.13.1 Likelihoods . . . . . . . . . . . . . . . . . . . . . . . . 61
2.13.2 Function optimization . . . . . . . . . . . . . . . . . . 62
2.14 Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3 Object-Oriented Programming in R 67
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2 The basics of OOP . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.1 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.2 Dispatch . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.3 Abstract data types . . . . . . . . . . . . . . . . . . . 72
3.2.4 Self-describing data . . . . . . . . . . . . . . . . . . . 73
3.3 S3 OOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.1 Implicit classes . . . . . . . . . . . . . . . . . . . . . . 76
3.3.2 Expression data example . . . . . . . . . . . . . . . . 77
3.3.3 S3 generic functions and methods . . . . . . . . . . . . 78
3.3.4 Details of dispatch . . . . . . . . . . . . . . . . . . . . 81
3.3.5 Group generics . . . . . . . . . . . . . . . . . . . . . . 83
3.3.6 S3 replacement methods . . . . . . . . . . . . . . . . . 83
3.4 S4 OOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.4.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.4.2 Types of classes . . . . . . . . . . . . . . . . . . . . . . 98
3.4.3 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.4.4 Class unions . . . . . . . . . . . . . . . . . . . . . . . 99
3.4.5 Accessor functions . . . . . . . . . . . . . . . . . . . . 100
3.4.6 Using S3 classes with S4 classes . . . . . . . . . . . . . 100
3.4.7 S4 generic functions and methods . . . . . . . . . . . . 101
3.4.8 The syntax of method declaration . . . . . . . . . . . 105
3.4.9 The semantics of method invocation . . . . . . . . . . 106
3.4.10 Replacement methods . . . . . . . . . . . . . . . . . . 107
3.4.11 Finding methods . . . . . . . . . . . . . . . . . . . . . 107
3.4.12 Advanced topics . . . . . . . . . . . . . . . . . . . . . 108
3.5 Using classes and methods in packages . . . . . . . . . . . . . 110
3.6 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.6.1 Finding documentation . . . . . . . . . . . . . . . . . 110
3.6.2 Writing documentation . . . . . . . . . . . . . . . . . 111
3.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.8 Managing S3 and S4 together . . . . . . . . . . . . . . . . . . 112
3.8.1 Getting and setting the class attribute . . . . . . . . 113
3.8.2 Mixing S3 and S4 methods . . . . . . . . . . . . . . . 114
ix
3.9 Navigating the class and method hierarchy . . . . . . . . . . 115
4 Input and Output in R 119
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2 Basic file handling . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.1 Viewing files . . . . . . . . . . . . . . . . . . . . . . . 124
4.2.2 File manipulation . . . . . . . . . . . . . . . . . . . . . 125
4.2.3 Working with R’s binary format . . . . . . . . . . . . 129
4.3 Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.3.1 Text connections . . . . . . . . . . . . . . . . . . . . . 131
4.3.2 Interprocess communications . . . . . . . . . . . . . . 133
4.3.3 Seek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.4 File input and output . . . . . . . . . . . . . . . . . . . . . . 137
4.4.1 Reading rectangular data . . . . . . . . . . . . . . . . 138
4.4.2 Writing data . . . . . . . . . . . . . . . . . . . . . . . 139
4.4.3 Debian Control Format (DCF) . . . . . . . . . . . . . 140
4.4.4 FASTA Format . . . . . . . . . . . . . . . . . . . . . . 141
4.5 Source and sink: capturing R output . . . . . . . . . . . . . . 142
4.6 Tools for accessing files on the Internet . . . . . . . . . . . . . 143
5 Working with Character Data 145
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.2 Builtin capabilities . . . . . . . . . . . . . . . . . . . . . . . . 146
5.2.1 Modifying text . . . . . . . . . . . . . . . . . . . . . . 151
5.2.2 Sorting and comparing . . . . . . . . . . . . . . . . . . 152
5.2.3 Matching a set of alternatives . . . . . . . . . . . . . . 153
5.2.4 Formatting text and numbers . . . . . . . . . . . . . . 155
5.2.5 Special characters and escaping . . . . . . . . . . . . . 155
5.2.6 Parsing and deparsing . . . . . . . . . . . . . . . . . . 158
5.2.7 Plotting with text . . . . . . . . . . . . . . . . . . . . 159
5.2.8 Locale and font encoding . . . . . . . . . . . . . . . . 159
5.3 Regular expressions . . . . . . . . . . . . . . . . . . . . . . . . 159
5.3.1 Regular expression basics . . . . . . . . . . . . . . . . 160
5.3.2 Matching . . . . . . . . . . . . . . . . . . . . . . . . . 166
5.3.3 Using regular expressions . . . . . . . . . . . . . . . . 167
5.3.4 Globbing and regular expressions . . . . . . . . . . . . 169
5.4 Prefixes, suffixes and substrings . . . . . . . . . . . . . . . . . 169
5.5 Biological sequences . . . . . . . . . . . . . . . . . . . . . . . 171
5.5.1 Encoding genomes . . . . . . . . . . . . . . . . . . . . 172
5.6 Matching patterns . . . . . . . . . . . . . . . . . . . . . . . . 173
5.6.1 Matching single query sequences . . . . . . . . . . . . 174
5.6.2 Matching many query sequences . . . . . . . . . . . . 175
5.6.3 Palindromes and paired matches . . . . . . . . . . . . 177
5.6.4 Alignments . . . . . . . . . . . . . . . . . . . . . . . . 179
x
6 Foreign Language Interfaces 183
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.1.2 The C programming language . . . . . . . . . . . . . . 185
6.2 Calling C and FORTRAN from R . . . . . . . . . . . . . . . 185
6.2.1 .C and .Fortran . . . . . . . . . . . . . . . . . . . . . 186
6.2.2 Using .Call and .External . . . . . . . . . . . . . . . 187
6.3 Writing C code to interface with R . . . . . . . . . . . . . . . 188
6.3.1 Registering routines . . . . . . . . . . . . . . . . . . . 188
6.3.2 Dealing with special values . . . . . . . . . . . . . . . 189
6.3.3 Single precision . . . . . . . . . . . . . . . . . . . . . . 191
6.3.4 Matrices and arrays . . . . . . . . . . . . . . . . . . . 191
6.3.5 Allowing interrupts . . . . . . . . . . . . . . . . . . . . 193
6.3.6 Error handling . . . . . . . . . . . . . . . . . . . . . . 193
6.3.7 R internals . . . . . . . . . . . . . . . . . . . . . . . . 193
6.3.8 S4 OOP in C . . . . . . . . . . . . . . . . . . . . . . . 197
6.3.9 Calling R from C . . . . . . . . . . . . . . . . . . . . . 198
6.4 Using the R API . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.4.1 Header files . . . . . . . . . . . . . . . . . . . . . . . . 198
6.4.2 Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . 199
6.4.3 Random numbers . . . . . . . . . . . . . . . . . . . . . 199
6.5 Loading libraries . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.5.1 Inspecting DLLs . . . . . . . . . . . . . . . . . . . . . 203
6.6 Advanced topics . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.6.1 External references and finalizers . . . . . . . . . . . 204
6.6.2 Evaluating R expressions from C . . . . . . . . . . . . 206
6.7 Other languages . . . . . . . . . . . . . . . . . . . . . . . . . 209
7 R Packages 211
7.1 Package basics . . . . . . . . . . . . . . . . . . . . . . . . . . 212
7.1.1 The search path . . . . . . . . . . . . . . . . . . . . . 212
7.1.2 Package information . . . . . . . . . . . . . . . . . . . 213
7.1.3 Data and demos . . . . . . . . . . . . . . . . . . . . . 215
7.1.4 Vignettes . . . . . . . . . . . . . . . . . . . . . . . . . 215
7.2 Package management . . . . . . . . . . . . . . . . . . . . . . . 216
7.2.1 biocViews . . . . . . . . . . . . . . . . . . . . . . . . 218
7.2.2 Managing libraries . . . . . . . . . . . . . . . . . . . . 219
7.3 Package authoring . . . . . . . . . . . . . . . . . . . . . . . . 219
7.3.1 The DESCRIPTION file . . . . . . . . . . . . . . . . . . 220
7.3.2 R code . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
7.3.3 Documentation . . . . . . . . . . . . . . . . . . . . . . 221
7.3.4 Name spaces . . . . . . . . . . . . . . . . . . . . . . . 224
7.3.5 Finding out about name spaces . . . . . . . . . . . . . 226
7.4 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
7.4.1 Event hooks . . . . . . . . . . . . . . . . . . . . . . . . 227
xi
8 Data Technologies 229
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.1.1 A brief description of GO . . . . . . . . . . . . . . . . 229
8.2 Using R for data manipulation . . . . . . . . . . . . . . . . . 230
8.2.1 Aggregation and creating tables . . . . . . . . . . . . . 230
8.2.2 Apply functions . . . . . . . . . . . . . . . . . . . . . . 232
8.2.3 Efficient apply-like functions . . . . . . . . . . . . . . 234
8.2.4 Combining and reshaping rectangular data . . . . . . 234
8.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
8.4 Database technologies . . . . . . . . . . . . . . . . . . . . . . 238
8.4.1 DBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.4.2 SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.4.3 Using AnnotationDbi . . . . . . . . . . . . . . . . . 243
8.5 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
8.5.1 Simple XPath . . . . . . . . . . . . . . . . . . . . . . . 256
8.5.2 The XML package . . . . . . . . . . . . . . . . . . . . 257
8.5.3 Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . 257
8.5.4 Example data . . . . . . . . . . . . . . . . . . . . . . . 258
8.5.5 DOM parsing . . . . . . . . . . . . . . . . . . . . . . . 258
8.5.6 XML event parsing . . . . . . . . . . . . . . . . . . . . 261
8.5.7 Parsing HTML . . . . . . . . . . . . . . . . . . . . . . 263
8.6 Bioinformatic resources on the WWW . . . . . . . . . . . . . 264
8.6.1 PubMed . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.6.2 NCBI . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.6.3 biomaRt . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.6.4 Getting data from GEO . . . . . . . . . . . . . . . . . 270
8.6.5 KEGG . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
9 Debugging and Profiling 273
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
9.2 The browser function . . . . . . . . . . . . . . . . . . . . . . . 274
9.2.1 A sample browser session . . . . . . . . . . . . . . . . 275
9.3 Debugging in R . . . . . . . . . . . . . . . . . . . . . . . . . . 276
9.3.1 Runtime debugging . . . . . . . . . . . . . . . . . . . . 277
9.3.2 Warnings and other exceptions . . . . . . . . . . . . . 278
9.3.3 Interactive debugging . . . . . . . . . . . . . . . . . . 279
9.3.4 The debug and undebug functions . . . . . . . . . . . . 281
9.3.5 The trace function . . . . . . . . . . . . . . . . . . . . 285
9.4 Debugging C and other foreign code . . . . . . . . . . . . . . 289
9.5 Profiling R code . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.5.1 Timings . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.6 Managing memory . . . . . . . . . . . . . . . . . . . . . . . . 293
9.6.1 Memory profiling . . . . . . . . . . . . . . . . . . . . . 294
9.6.2 Profiling memory allocation . . . . . . . . . . . . . . . 295
9.6.3 Tracking a single object . . . . . . . . . . . . . . . . . 298
xii
References 301


下载:   R program for bioinfomatics.pdf (1.67 MB, 下载次数: 131, 售价: 10 金钱)

为长期从事生物统计行业的各位提供下载资料。
为了避免恶意下载和滥用,本贴设置了下载积分限制。
生物统计家园提醒您:您在生物统计家园的活动都可能会增加您的积分,使您获得更多权限。
多发些资料供别人下载也可以赚取积分!
如何获得积分(详细): http://www.biostatistic.net/home.php?mod=spacecp&ac=credit&op=rule


回复

使用道具 举报

发表于 2011-3-19 15:38:56 | 显示全部楼层
这么好的资料看不到,郁闷ing.
回复 支持 反对

使用道具 举报

发表于 2011-4-25 21:06:05 | 显示全部楼层
想要啊   
回复 支持 反对

使用道具 举报

发表于 2011-5-14 21:24:56 | 显示全部楼层
积分不够啊,郁闷。这可是好东东啊!
回复 支持 反对

使用道具 举报

发表于 2011-5-14 22:04:46 | 显示全部楼层
不错啊,呵呵,发给我一份吧,我的邮箱是:gouweichaoyan@163.com
谢谢啊!
回复 支持 反对

使用道具 举报

发表于 2011-5-14 22:05:03 | 显示全部楼层
不错啊,呵呵,发给我一份吧,我的邮箱是:gouweichaoyan@163.com
谢谢啊!
回复 支持 反对

使用道具 举报

发表于 2011-6-23 19:01:15 | 显示全部楼层
这么好的资料看不到,郁闷ing.
回复 支持 反对

使用道具 举报

发表于 2011-6-30 23:14:22 | 显示全部楼层
看到过这本书,当时就很想有一本。
里面有很多包,对其中统计分析的特别感兴趣。
回复 支持 反对

使用道具 举报

发表于 2011-8-25 21:42:47 | 显示全部楼层
想看啊,~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

发表于 2011-10-20 13:08:10 | 显示全部楼层
强赞一个!可惜积分不够!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 18:16 , Processed in 0.032728 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表