面对生物数据的急速增长,对大数据的分析处理能力是生物学家普遍缺乏又急需掌握的能力。本书是在作者开发计算工具和帮助许多生物学家解决计算问题时总结经验的基础上诞生的,是针对生物学家撰写的简明实用教程它将一系列强大而灵活的实用工具汇集到一起,容易学习入门。本书内容以分子生物信息学数据为主,但也适用于多种其他生物数据的分析工作。本书原版问世至今,一直是欧美高校生物专业和相关研究机构必备的热销图书。
样章试读
目录
- 目录
在开始之前 1
引言 1
为什么要写这本书? 1
为什么只针对生物学家? 2
需要使用特定计算机或程序吗? 2
写给使用这本书自学的读者 3
写给使用这本书的教师 3
超越这本书 4
如何使用好这本书 4
第一部分 文 本 文 件
第1章 开始设置 9
关于文本文件的操作介绍 9
什么是文本文件 9
在一个文本文件内组织数据 10
文本编辑器 11
安装TextWrangler 11
在文本编辑器里优化文本外观 12
行尾结束符 13
示例文件 13
安装示例文件 14
探索示例文件 14
总结 15
第2章 正则表达式:强大的搜索和替换 16
一种用于搜索和替换的广泛语言 16
了解这个新工具箱的组件 17
设置文本编辑器 17
你的第一个通配符:\w 代替字母和数字 19
用()来捕获文本 20
量词:用+来对应一个或多个实体 21
用\进行标点符号字符转义 23
更为特殊的搜索项:\s\t\r\d 24
示例:分子数据文件的重新格式化 25
关于生成正则表达式的评论 26
总结 27
第3章 探索正则表达式的灵活性 28
字符集:定义你自己的通配符 28
用[]定义定制的字符集 28
应用自定义字符集 28
否定字符集:用[^]定义自定义字符集 30
边界:^开头和$结尾 31
使量词更加精密 32
另一个量词:*为零次或多次 32
用?修改贪婪程度 33
用{}符号控制匹配的数量 33
把所有都放在一起 34
生成替换关键词 35
构建可靠的搜索 36
总结 37
进一步学习 38
第二部分Shell命令
第4章 命令行操作:shell 41
初次接触:不要惧怕命令行 41
开始了解shell然后产生兴趣 42
开始了解shell 42
文件系统的命令行视图 43
路径 44
利用shell在计算机里遨游 45
用ls列出文件,用pwd 找出你在哪里 45
如何用cd来回移动位置 47
用~表示主目录 48
用mkdir和rmdir来添加和移除文件夹 49
复制文件 49
移动文件 51
命令行快捷键 51
向上箭头键 51
Tab 52
用命令行参数来修正命令的行为 53
用less命令浏览文件内容 54
在命令行中使用man命令查看帮助文件 55
命令行最终会使你的操作更容易 55
路径描述中的通配符 55
复制和移动多个文件 56
结束你的终端会话 57
总结 57
推荐阅读 58
第5章 在shell中处理文本 59
用nano在命令行里编辑文本文件 59
控制shell里的数据流 61
用>重定向输出到一个文件 61
用cat来显示和连接文件 62
用grep在命令行中使用正则表达式 64
处理一个大数据集 64
从文件中抽提特定的行 64
用管道|将输出从一个程序重定向到另一个程序 66
用grep跨越搜索多个文件 67
改善grep的行为 68
用curl 获取Web 上的内容 69
其他shell命令 71
总结 72
第6章 使用shell 编写脚本 73
组合命令 73
搜索路径 73
命令行如何找到它应执行的命令 73
创建你的工作区—脚本文件夹 75
编辑你的bash_profile文件来进行个性化设置 76
检查你的新$PATH 77
把文本文档型文件转变为软件 78
#!控制脚本文本用何种程序解释 79
通过调整权限使文本文件可以被执行 79
生成自动脚本 81
批量复制文件 81
灵活的文件重命名 84
运用curl自动检索参考文献 86
用curl编写脚本的几个常用方法 88
用Alias创建快捷别名 88
总结 89
进一步学习 89
第三部分 编 程
第7章 编程组件 93
程序是什么? 93
接下来几章的目标 93
实际编程 94
变量 95
变量的剖析 95
基本变量类型 96
能够容纳其他变量的变量 97
数组和列表 97
不同类型之间的转换 99
运行中的变量 99
数学运算符 99
比较运算符与逻辑运算符 100
函数 101
流控制 102
用if语句做决策 102
由for与while构成的循环 103
使用列表和字典 104
列表 104
字典 105
其他数据类型 105
输入和输出 106
用户交互 106
文件 106
库和模块 107
注释语句 108
对象 108
总结 109
第8章 开始使用Python编程 110
为什么选择Python110
编写程序 111
开始运行程序 111
构建dnacalcpy 程序 112
简单的print 语句 112
len()函数 114
使用str()、int()和float()转换变量类型 115
内置字符串函数count() 116
整数和浮点数的数学运算 116
使用#添加评论 118
使用%运算符控制字符串格式 118
获取用户输入 120
使用raw_input()收集用户输入 120
用replace()和upper()整理变量 121
回顾你的程序 123
总结 123
第9章 决策与循环 124
Python交互式提示符 124
获取Python的帮助 126
向dnacalcpy里添加更多的计算内容 127
if条件语句 127
使用缩进指定代码块 128
逻辑运算符 128
if语句 129
else:语句 130
for循环介绍 132
列表简介 132
在proteincalcpy中写入for 循环 133
创建字典 133
其他字典函数 139
应用你学会的循环技能 140
回顾列表 140
列表的索引 141
从列表中解包多个值 143
用range()函数定义一个列表 143
列表和字符串的比较 145
列表和字符串之间转换 146
向列表中添加元素 147
从列表中删除元素 148
查找列表的内容 148
给列表排序 148
识别列表及字符串中独有的元素 149
列表推导式 150
总结 152
进一步学习 153
第10章 读取与写入文件 154
目标概述 154
从文件中逐条读取每一行内容 156
读取数据文件之前的注意事项 156
打开并读取文本文件 157
用strip()删除行尾字符 159
跳过标题行 159
从行中解析数据 160
将行拆分为数据字段 160
从列表中选择元素 161
写入文件 162
扼要重述文件的基本读写过程 164
使用正则表达式解析值 165
导入re模块 165
通过re模块使用正则表达式 165
research()与resub()的使用总结 167
使用def创建自定义Python函数 168
用新格式打包数据 173
检查标记语言 173
在转换期间保留信息 174
转换为KML格式 174
KML文件格式 174
生成KML文本 175
总结 179
进一步学习 179
第11章 合并文件 180
从多个文件中读取数据 180
使用sysargv 获取用户的输入内容 181
将所有参数转换为文件列表 183
使用sysstderrwrite()提供反馈 184
循环遍历文件列表 185
打印输出并生成标题行 187
避免硬编码软件 187
文件读取的其他应用 190
总结 192
进一步学习 192
第12章 模块与库 194
导入模块 194
更多来自标准库的内置模块 196
urllib模块 196
os模块 197
math模块 197
random模块 198
time模块 199
第三方模块 200
NumPy 201
BioPython202
其他第三方模块 203
制作自己的模块 204
继续深入学习Python 205
总结 206
进一步学习 206
第13章 调试策略 207
在调试中学习 207
通用策略 208
建立工作元素 208
思考你的假设 208
具体的调试技术 209
隔离问题 209
编写冗长的软件 210
错误信息及其含义 211
常见的Python错误 211
shell错误 212
让你的程序更有效率 212
优化 212
使用try和except来处理错误 213
当你实在被困住时 214
总结 215
进一步学习 215
第四部分 多种方法合并
第14章 选择和组合工具 219
你的工具箱 219
数据处理任务的类别 219
获取数字数据 219
重新格式化文本文件 222
综合考虑 226
总结 226
进一步学习 226
第15章 关系型数据库 227
电子表格和数据组织 227
数据管理系统 229
剖析一个数据库 230
安装MySQL 231
开始使用MySQL和SQL 233
连接到命令行中的MySQL服务器 233
创建数据库和表 235
向表中添加数据行和显示表的内容 239
在Python中与MySQL进行交互 240
解析输入的文本 241
从数据中构造SQL 243
从Python中执行SQL命令 244
将文本文件导入到表格中 249
创建ctd表 250
用LOAD DATA命令导入数据文件 251
以SQL文件的形式导出和导入数据库 253
用SQL探索数据 253
用SELECT和COUNT命令汇总表 253
用GROUP BY校对数据 255
SQL中的数学运算 256
用WHERE对行进行精确选择 256
用UPDATE修改行 259
跨表选择数据 260
使用Python生成输出 262
继续向前看 264
数据库用户和安全性 264
创建一个root密码 265
添加一个新的MySQL用户 265
总结 266
进一步学习 267
推荐阅读 267
第16章 高级的shell和管道命令 268
其他有用的shell 命令 268
用head和tail提取行 268
用cut提取列 268
用sort对行排序 270
用uniq分离出独有的行 271
高级shell函数的整合 272
用agrep进行近似搜索 275
额外的grep技巧 276
还记得别名吗? 277
函数 278
用户输入的函数 281
一个字典函数 281
转换字符 281
循环遍历传递给函数的所有参数 282
删除文件扩展名 283
寻找文件 284
回顾管道命令 284
用循环重复操作 285
封装器 286
对管道的一些想法 287
总结 287
推荐阅读 288
第五部分 绘图
第17章 图像的概念 291
引言 291
常用的图像类型 291
矢量图与像素图 291
决定何时用矢量图?何时用像素图?或是二者都用? 292
图片分辨率与尺寸大小 294
图像大小调整和对DPI 的错误看法 295
图片的颜色 297
颜色模型和色空间 297
颜色模型的转换 298
色域与颜色配置文件 300
颜色选择 300
决策过程总结 301
图层 303
展示数据时通常需要考虑的因素 303
消除图像的混乱 303
对于重叠数据的透明化处理 304
合理利用空间 304
一致性 306
保持数据的完整性 306
为什么你应该避免使用PowerPoint幻灯片 307
总结 307
进一步学习 308
推荐阅读 308
第18章 矢量图的编辑和使用 310
矢量图简介及原理 310
文件格式 310
生成矢量图 310
从另一个程序输出图像 311
绘制一幅新的图像 311
从一张照片中提取图像 312
解析矢量图 313
贝塞尔曲线 313
线型与填充 313
矢量图编辑器的使用 314
选定并操作整个对象 314
选定并操作对象的一部分 315
利用钢笔工具生成贝塞尔曲线 316
对贝塞尔曲线进行修饰 316
联结功能 317
线条与填充 317
图层 318
Illustrator使用小贴士 319
Inkscape使用小贴士 321
一个典型的工作流程 321
生成规则排列的对象 323
生成矢量图的最佳实践 324
总结 325
进一步学习 325
第19章 使用像素图 326
图像压缩 326
通用原则 326
图像工作流的含义 326
像素图文件格式 327
透明度 328
像素图编辑器 329
处理像素图 329
遮罩和无损编辑 329
亮度水平的调整 329
灰度图像 330
抗锯齿 331
图层 331
GIMP的色彩 332
Photoshop快捷键 332
图像处理的命令行工具 333
sips程序 333
ImageMagick:convert和mogrify命令 333
ExifTool 334
图像创建和分析工具 334
ImageJ 334
MATLAB 336
R 336
动画制作 336
摄影 337
光圈和曝光时间 337
色彩平衡 339
自动vs手动操作 340
总结 340
进一步学习 340
第六部分 高级话题
第20章 在远程计算机上操作任务 343
连接到远程计算机 343
客户端和服务器 343
典型的远程访问情景 344
查找计算机:IP地址、主机名和DNS 344
安全性 346
使用ssh的安全命令行连接 346
ssh命令 347
ssh命令使用时的故障排除 347
在远程机器上操作 348
计算机之间的文件传输 349
文件归档和压缩 349
用sftp传送文件 350
用scp复制文件 350
SFTP中其他的文件传输程序 351
其他的文件传输协议 351
通过VNC对远程计算机进行完全GUI控制 351
排除远程连接障碍 352
使用虚拟专用网络(VPN)连接到本地 352
用traceroute命令追踪网络连接 353
配置backspace键 353
控制程序如何运行 354
结束进程 354
用&在后台开始任务 355
用ps和top命令来查看任务状态 355
暂停任务并把它移至后台 357
用kill命令来结束进程 358
用nohup命令使任务继续进行 359
用renice命令更改程序的优先级 360
高效计算 361
并行程序 361
大型计算机集群上的任务管理工具 361
搭建自己的服务器 362
配置ssh服务器 363
查找地址 363
用ssh 连接到你自己的计算机 364
总结 365
第21章 软件安装 366
概述 366
解释程序与编译程序 367
安装软件的方法 368
Readmetxt和Installtxt 368
通过预编译的二进制文件安装程序 368
自动安装工具 369
从源代码安装命令行程序 370
准备好你的计算机 370
解压源代码 370
编译与安装二进制文件 371
变化情况1:现成的Makefile 372
变化情况2:用/configure生成Makefile文件 372
安装Python组件 373
故障排除 374
软件无法编译或安装无法完成怎么办? 374
总结 376
进一步学习 376
第22章 电子学:与物理世界的互动 377
生物学中定制的电子产品 377
生物学中定制电子产品的典型情景 377
具有复杂微控制器的简单电路 378
电子基础 380
电流 380
基本元件 380
用电信号编码信息 381
模拟编码 381
数字编码信号 382
搭建电路 383
电路原理图 383
实验面包板 384
从电路原理图翻译成面包板电路 385
串行通信的实践应用 385
波特率和其他设置 386
零调制解调器 386
串行通信的软件 387
通过Python进行串行通信 388
Arduino微控制器板的实践应用 389
从哪里开始 389
用Arduino搭建电路 389
编程Arduino 390
其他数据采集的方法 393
常见的共同疑惑问题 394
测量电压 394
电流和电子流 394
上拉和下拉电阻 395
总结 395
进一步学习 396
推荐读物 396
附录
附录1 用其他操作系统工作 399
Microsoft Windows 399
我应该用Windows还是另外安装Linux? 399
在第1~3章中用于编辑文本和正则表达式的文本编辑器 399
在第4~6章中使用Cygwin模拟Unix shell操作 401
第8~12章中在Windows里使用Python402
第15章中在Windows里使用MySQL 404
第17~19章中在Windows里处理矢量图和像素图 404
Linux 405
安装Linux 405
在第1~3章中用jEdit进行文本编辑和使用正则表达式 409
在第4~6章中使用Linux shell进行shell操作 410
第8~12章中在Linux上使用Python 411
第15章使用MySQL 411
第17~19章在Linux中处理矢量图和像素图 411
附录2 正则表达式检索项 412
附录3 shell命令 414
附录4 Python快速参考 419
此附录的规定 419
Python中的格式、语法和标点符号 419
命令行解释器 419
命令总结 420
变量类型和统计 420
字符串 420
收集用户输入 421
建立字符串 421
比较和逻辑运算符 421
数学运算符 422
决策 422
循环 423
用正则表达式检索 423
用regexp在字符中寻找匹配子集 423
用regexp在字符串中做替换 424
使用列表 424
列表的理解 425
词典 426
创建函数 426
处理文件 427
使用模块和函数 428
容易混淆的Python操作 429
显示警告和反馈 429
捕捉错误 429
Python里的shell操作 429
参考及寻求帮助的渠道 429
附录5 程序模板 430
Python27或更早的版本 430
Python3 431
Perl 431
bash shell 431
C 432
C++ 433
Java 433
JavaScript 434
PHP 435
Ruby 435
MATLAB 436
R 436
Arduino 437
附录6 二进制、十六进制和ACSII码 438
交替的基本系统 438
十六进制 439
ASCII 码和Unicode字符 440
图像和色彩 441
十进制、十六进制、二进制和ASCII 码 442
附录7 SQL命令 446
老师推荐!希望自己能从书里面学到相关知识