新書推薦:
《
罗马政治观念中的自由
》
售價:HK$
50.4
《
中国王朝内争实录:宠位厮杀
》
售價:HK$
61.6
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:HK$
44.6
《
未来特工局
》
售價:HK$
55.8
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:HK$
54.9
《
英国简史(刘金源教授作品)
》
售價:HK$
98.6
《
便宜货:廉价商品与美国消费社会的形成
》
售價:HK$
77.3
《
读书是一辈子的事(2024年新版)
》
售價:HK$
77.3
|
編輯推薦: |
生命科学学院的Python课程教材,适合本科教学或行业人士的Python短期培训。
|
內容簡介: |
本书实例意在解决生物学问题,通过编程技法的形式,涵盖尽可能多的组织、分析、表现结果的策略。在每章结尾都会有为生物研究者设计的编程题目,适合教学和自学。本书由六部分组成:Python语言基本介绍,语言所有成分介绍,高级编程,数据可视化,生物信息通用包Biopython,*后给出20个"编程秘笈,范围涵盖了从二级结构预测、多序列比对到蛋白质三维结构的广泛话题。此外,本书附录还包括了大量的生物信息常用资源的信息。
|
關於作者: |
Allegra Via,意大利罗马第一大学物理系助理教授。研究方向为生物信息学,在生物信息学数据处理和Python编程方面具有丰富的实践经验。 Allegra Via,意大利罗马第一大学物理系助理教授。研究方向为生物信息学,在生物信息学数据处理和Python编程方面具有丰富的实践经验。
|
目錄:
|
第一部分入门
第1章Python shell
1.1本章知识点
1.2案例: 计算ATP水解的G
1.2.1问题描述
1.2.2Python会话示例
1.3命令的含义
1.3.1如何在电脑上运行这个例子
1.3.2变量
1.3.3导入模块
1.3.4计算
1.4示例
1.5自测题
第2章第一个Python程序
2.1本章知识点
2.2案例: 如何计算胰岛素序列中的氨基酸频率
2.2.1问题描述
2.2.2Python会话示例
2.3命令的含义
2.3.1如何执行程序
2.3.2程序如何工作
2.3.3注释
2.3.4字符串变量
2.3.5用for进行循环
2.3.6缩进
2.3.7打印至屏幕
2.4示例
2.5自测题
第一部分小结
第二部分数 据 管 理
第3章分析数据列
3.1本章知识点
3.2案例: 树突长度
3.2.1问题描述
3.2.2Python会话示例
3.3命令的含义
3.3.1读取文本文件
3.3.2写入文本文件
3.3.3将数据收入列表
3.3.4将文本转换为数字
3.3.5将数字转换为文本
3.3.6将数据列写入文本文件
3.3.7计算数值列表
3.4示例
3.5自测题
第4章解析数据记录
4.1本章知识点
4.2案例: 整合质谱数据, 转化到代谢通路中
4.2.1问题描述
4.2.2Python会话示例
4.3命令的含义
4.3.1ifelifelse语句
4.3.2列表数据结构
4.3.3简洁列表创建方式
4.4示例
4.5自测题
第5章搜索数据
5.1本章知识点
5.2案例: 将RNA序列翻译为相应的蛋白质序列
5.2.1问题描述
5.2.2Python会话示例
5.3命令的含义
5.3.1字典
5.3.2while语句
5.3.3用while循环搜索
5.3.4字典搜索
5.3.5列表搜索
5.4示例
5.5自测题
第6章过滤数据
6.1本章知识点
6.2案例: 使用RNAseq输出数据
6.2.1问题描述
6.2.2Python会话示例
6.3命令的含义
6.3.1用简单的for...if组合过滤
6.3.2合并两个数据集
6.3.3两组数据之间的差异
6.3.4从列表、 字典和文件中删除元素
6.3.5保持或不保持顺序地删除重复
6.3.6集合
6.4示例
6.5自测题
第7章管理表数据
7.1本章知识点
7.2案例: 确定蛋白浓度
7.2.1问题描述
7.2.2Python会话示例
7.3命令的含义
7.3.1二维表的表示方法
7.3.2访问行和单元格
7.3.3插入和删除行
7.3.4访问列
7.3.5插入和删除列
7.4示例
7.5自测题
第8章数据排序
8.1本章知识点
8.2案例: 数据表排序
8.2.1问题描述
8.2.2Python会话示例
8.3命令的含义
8.3.1Python列表有利于排序
8.3.2内置函数sorted
8.3.3用itemgetter排序
8.3.4按升序降序排序
8.3.5数据结构(元组、 字典)排序
8.3.6按长度对字符串排序
8.4示例
8.5自测题
第9章模式匹配和文本挖掘
9.1本章知识点
9.2案例: 在蛋白质序列中搜索磷酸化模体
9.2.1问题描述
9.2.2Python会话示例
9.3命令的含义
9.3.1编译正则表达式
9.3.2模式匹配
9.3.3分组
9.3.4修改字符串
9.4示例
9.5自测题
第二部分小结
第三部分模块化编程
第10章将程序划分为函数
10.1本章知识点
10.2案例: 处理三维坐标文件
10.2.1问题描述
10.2.2Python会话示例
10.3命令的含义
10.3.1如何定义和调用函数
10.3.2函数参数
10.3.3struct模块
10.4示例
10.5自测题
第11章用类化繁为简
11.1本章知识点
11.2案例: 孟德尔遗传
11.2.1问题描述
11.2.2Python会话示例
11.3命令的含义
11.3.1用类创建实例
11.3.2类以属性的形式包含数据
11.3.3类包含的方法
11.3.4__repr__方法可打印类和实例
11.3.5使用类有助于把握复杂程序
11.4示例
11.5自测题
第12章调试
12.1本章知识点
12.2案例: 程序无法运行时应该怎样处理
12.2.1问题描述
12.2.2Python会话示例
12.3命令的含义
12.3.1语法错误
12.3.2运行时错误
12.3.3处理异常情况
12.3.4未报告出错信息
12.4示例
12.5自测题
第13章使用外部模块: R语言的Python调用接口
13.1本章知识点
13.2案例: 从文件中读取数据, 并通过Python使用R计算其平均值
13.2.1问题描述
13.2.2Python会话示例
13.3命令的含义
13.3.1rpy2和r实例的robjects对象
13.3.2从Python中读取R对象
13.3.3创建向量
13.3.4创建矩阵
13.3.5将Python对象转换成R对象
13.3.6如何处理包含点的函数参数
13.4示例
13.5自测题
第14章构建程序流程
14.1本章知识点
14.2案例: 构建NGS流程
14.2.1问题描述
14.2.2Python会话示例
14.3命令的含义
14.3.1如何使用TopHat和Cufflinks
14.3.2什么是程序流程
14.3.3在程序中交换文件名和数据
14.3.4编写程序包装器
14.3.5关闭文件时的延迟
14.3.6使用命令行参数
14.3.7测试模块: if__name__=='__main__'
14.3.8处理文件和路径
14.4示例
14.5自测题
第15章编写良好的程序
15.1本章知识点
15.2问题描述: 不确定性
15.2.1程序编写存在不确定性
15.2.2程序项目实例
15.3软件工程
15.3.1将编程项目分成小任务
15.3.2将程序分为函数和类
15.3.3编写格式良好的代码
15.3.4使用存储库控制程序版本
15.3.5如何将自己的程序分发给其他人
15.3.6软件开发的周期
15.4示例
15.5自测题
第三部分小结
第四部分数据可视化
第16章创建科学图表
16.1本章知识点
16.2案例: 核糖体的核苷酸频率
16.2.1问题描述
16.2.2Python会话示例
16.3命令的含义
16.3.1matplotlib库
16.3.2绘制竖的柱状图
16.3.3为x轴和y轴添加标注
16.3.4添加刻度
16.3.5添加一个图例框
16.3.6添加图的标题
16.3.7设置图表的边界
16.3.8以低分辨率和高分辨率导出一个图像文件
16.4示例
16.5自测题
第17章使用PyMOL创建分子图像
17.1本章知识点
17.2示例: 锌指
17.2.1什么是PyMOL
17.2.2PyMOL会话示例
17.3用七个步骤来创建高分辨率的图像
17.3.1创建一个PyMOL脚本文件
17.3.2加载和保存分子
17.3.3选取分子的局部
17.3.4为每个选取选择展现形式
17.3.5设置颜色
17.3.6设置摄影位置
17.3.7导出高分辨率图像
17.4示例
17.5自测题
第18章处理图像
18.1本章知识点
18.2案例: 画一个质粒
18.2.1问题描述
18.2.2Python会话示例
18.3命令的含义
18.3.1创建一个图像
18.3.2读和写图像
18.3.3坐标
18.3.4绘制几何形状
18.3.5旋转图像
18.3.6添加文本标记
18.3.7颜色
18.3.8辅助变量
18.4示例
18.5自测题
第四部分小结
第五部分Biopython
第19章使用序列数据
19.1本章知识点
19.2案例: 如何将一条DNA编码序列翻译成对应的蛋白质序列, 并把它写入
FASTA文件
19.2.1问题描述
19.2.2Python会话示例
19.3命令的含义
19.3.1Seq对象
19.3.2把序列当成字符串工作
19.3.3MutableSeq对象
19.3.4SeqRecord对象
19.3.5SeqIO模块
19.4示例
19.5自测题
第20章从网络资源中检索数据
20.1本章知识点
20.2案例: 在PubMed中用关键词搜索文献, 下载并解析对应的记录
20.2.1问题描述
20.2.2Python会话示例
20.3命令的含义
20.3.1Entrez模块
20.3.2Medline模块
20.4示例
20.5自测题
第21章使用三维结构数据
21.1本章知识点
21.2案例: 从PDB文件中提取原子名及其三维坐标
21.2.1问题描述
21.2.2Python会话示例
21.3命令的含义
21.3.1Bio.PDB模块
21.3.2SMCRA结构层次
21.4示例
21.5自测题
第五部分小结
第六部分编 程 秘 笈
编程秘笈1: PyCogent库
编程秘笈2: 反向互补和随机化序列
编程秘笈3: 用概率创建随机序列
编程秘笈4: 用Biopython解析多序列联配
编程秘笈5: 从多序列联配中计算共有序列
编程秘笈6: 计算系统发生树的节点间的距离
编程秘笈7: 核苷酸序列的密码子频率
编程秘笈8: 解析Vienna格式的RNA二级结构
编程秘笈9: 解析BLAST的XML输出
编程秘笈10: 解析SBML文件
编程秘笈11: 运行BLAST
编程秘笈12: 访问、 下载和读取网页
编程秘笈13: 解析HTML文件
编程秘笈14: 将PDB文件分割成PDB链文件
编程秘笈15: 在PDB结构上找到两个最靠近的C原子
编程秘笈16: 提取两个PDB链间的界面
编程秘笈17: 用Modeller建立同源模型
编程秘笈18: 用ModeRNA分析RNA三维同源模型
编程秘笈19: 从三级结构计算RNA碱基配对
编程秘笈20: 结构重叠的真实实例: 丝氨酸蛋白酶催化三分子
附录
附录A命令概览
附录BPython资源
附录C记录样板
附录D处理目录和用UNIX编程
|
內容試閱:
|
该书是面向生物学读者的编程好书之一。随着高通量技术(例如DNA微阵列或DNARNA测序)的改进,生物数据量正在迅速增长。管理和分析生物数据的需求越来越多,编程技术的应用将成为标准做法。Python由于其功能强大,语言优雅简单,成为提高编程技能的优秀工具!本书以Python数据管理为核心,主题广泛,结构合理,各章相互依赖程度低,便于读者自定学习的切入点。
作者清晰地诠释了Python在数据管理(解析数据记录、过滤和排序数据)与数据可视化(使用Python接口R)中的应用。本书还提供了模块化编程的描述,引导读者编写简单的函数,通过编写类而构建程序流程一切都按照Python编码标准和易于提高的方式进行。
对于面临计算挑战的生物学家和从业者,本书既适合Python入门学习,又可助力中级Python用户学习一些新的技巧,进而在自己的代码中实现。书中实例意在解决生物学问题,通过编程技法的形式,涵盖尽可能多的组织、分析、表现结果的策略。在每章结尾都会有为生物研究者设计的编程题目,适合教学和自学。本书由六部分组成:Python语言基本介绍,语言所有成分介绍,高级编程,数据可视化,生物信息通用包Biopython,以及最后给出的20个编程秘笈。编程秘笈的范围涵盖了从二级结构预测、多序列比对到蛋白质三维结构的广泛话题。此外,本书附录还包括了大量的生物信息常用资源的信息和简单的UNIX教程。
序
大约在20年前,国内还很少有学者从事专门的生物信息学研究,我国直到2001年才召开了第一次全国性的生物信息学大会。近些年来,随着各种高通量组学数据的急剧增长,生物信息学领域在短时间内快速成长起来:一方面,从事这方面专门研究的学者的数量成倍增加;另一方面,生物学其他领域的很多学者也在关注和学习生物信息学技术。目前,无论是学术界还是工业界,对于生物信息学专门人才的需求都很大。近年来,国内几乎所有重点高校都开设了生物信息学课程,一些高校和科研院所还设置了研究生专业,在部分高校甚至开设了生物信息学本科专业。虽然对于学科内涵的界定还在不断修订中,但是这些高校在培养生物信息学人才方面已经进行了有意义的探索。
在生物信息学教育及培训中,一个基本的共识是对计算机编程的重视。可以说,熟练掌握一门或多门计算机语言是从事生物信息学研究的基础。计算机语言种类众多,无论是C、Java还是Perl、Python等,都有自己的特点和优势,在生物信息学研究中都得到广泛使用。但是对于生物信息学初学者而言,我还是建议他们首先在脚本语言Perl和Python中选择精通一种:脚本语言易于学习;对于重复使用率较低的代码,脚本语言的实现成本要低得多。相对而言,Perl更擅长于模式匹配;而Python的计算效率更高,代码的可读性也更强。在过去的十几年中,国外相继出版了一批通过生物信息学实例来讲授Perl和Python编程的书籍,其中一些讲授Perl的书籍已有中文译本。而据我了解,目前还缺少在生物信息学语境下讲授Python编程的中文书籍或外文书籍的中文译本。这本中文译本的出现,从小处讲,可以让生物信息学初学者在学习Python时多一本参考书;从大处讲,对于推动我国的生物信息学教育及培训是有益的。
作为生物信息学领域的从业人员,我们都希望能够为整个领域的发展做出自己的贡献,这些贡献可以体现在各个方面,包括产出原创科研成果、培养学科专业人才、教育及科学普及等。这本书的主译者卢宏超博士从我的课题组毕业已近十年;近几年来,宏超在工作之余一直热心于Python在生物信息学领域的推广,之前他在自己博客中还翻译了另外一本Python的书籍。据我所知,宏超为这本书的翻译工作花费了很多时间和精力,从我的课题组毕业的另一位学生李绍娟也是译者之一。我看了一部分译文,从中能感受到这些年轻人认真做事的态度,对此我感到很高兴。我觉得生物信息学领域的学者,特别是年轻学者,都应该以自己的方式为这个蓬勃发展的领域做一些实实在在的事。最后希望这本中文译本的出版能够帮助生物信息学初学者掌握Python。
陈润生
中国科学院院士
译者序
随着生命科学科研领域的需要和测序技术的发展, 生物信息这个交叉学科近年来愈来愈兴旺起来, 从业者也越来越多。与传统的理论和实验学科不同, 生物信息是一门数据科学, 这就需要从业者具备一定数据收集、 管理、 处理和分析的能力。在海量的组学数据面前, 使用别人开发的软件及图形界面操作往往不能解决工作中的问题, 而简单的编程就可能解决问题, 因而编程即成为一个生物信息工作者的必备技能。这本书就是为生物信息初学者设计的编程教程。
我从事生物信息工作以来, 编程语言开始一直以Perl和C为主, 从2007年开始使用Python, 初时也因为块缩进的问题不习惯, 但很快被其可读性和开放性所吸引, 喜欢上了这门语言, 并作为最主要的脚本语言使用至今。近年来, 国内大部分生物信息工作者仍以Perl作为主要的工作语言, 我很想为Python在这个领域的推广做些工作, 有幸得到电子工业出版社马岚老师的推荐, 见到本书, 就与陈一情和李绍娟合作进行了翻译。
正如书中所说, 编程就像写菜谱做饭或者是按流程做生物实验一样, 不是一件很难的事情。对于有过逻辑训练的生物研究者只要能熟悉了编程的思想, 掌握这项技能是容易的。但是如何选择一个切入点和提高途径, 真正把它运用到自己的工作中就是另外一件事情, 为什么推荐这本Python书作为生物信息数据管理编程的入门书呢?
Python语言提供了从入门到高手的良好的学习曲线。Python语言是至今为止最接近自然语言的编程语言, 学过其他一些编程语言的学员甚至不需要太多的训练就能读写其代码; 模块化和面向对象的支持使得学员能不费力地从一个只能写几行代码的操作员变成一个管理千行代码的程序员, 同时书写良好可读性代码的编程习惯也会令其受益终生; 丰富的标准库和第三方包使得Python语言成为当前最好的胶水语言, 把多方资源整合到一起来解决工作中的问题。
本书的风格非常适合对编程的初学者。它从生物数据管理分析实践出发, 由浅入深地介绍编程的基础知识, 特别是对错误处理和程序调试等初学者常见的问题做了精辟的阐述; 本书在内容上对生物信息中的经常遇到的数据整理和作图分析有较重的篇幅, 还包含了大量的Python第三方工具库接口, 充分地体现了Python开放性胶水语言的特点。该书采用章节的篇幅都不长, 每每切中要点, 便于读者围绕主题、 消化概念, 且后面的练习难度适中, 所以很适合作为本科生或研究生低年级的教材; 书后的编程秘诀对于进入科研实践的研究者也有颇多的参考价值。
非常感谢我的博士导师陈润生院士能在百忙中为本书作序。陈一情翻译了第1章至第15章, 李绍娟翻译第16章至第18章, 我翻译了其余内容并负责译稿统稿。感谢李大伟博士对蛋白质结构翻译部分的意见。非常荣幸能得到电子工业出版社马岚老师的支持, 才得以出版此书。
希望这本书能对有志于生物信息的同行有所帮助。
卢宏超
前言
在几年前, 编程只是计算科学工作者的特权。虽然如此, 编程正加速变成生物等其他领域专家的一种需要。作为一个生物学研究者, 不需要对成为一个编程专家感兴趣, 但是需要把编程作为多个工具中的一种来继续科学工作。可能读者已经意识到编程技巧可以大幅地加速管理和分析数据。可能读者需要处理大规模的数据, 多次重复某种相同的分析, 或者从一个非通用格式的文件中解析数据。可以确信的是, 在所有这些情形下, 编程可以帮助你。然而, 因为读者从来没有对枯燥无味和概念艰深的计算机科学学科有很大兴趣, 就可能会感到不习惯。如果是这样的情况, 这本书是适合你的。
本书是为那些需要更多地掌控数据, 因此需要学习一些编程的生命科学工作者而写的。目标是使得那些以前没有编程经验的生物科学工作者能够自己用Python对生物数据进行分析。
在前言中, 包括全书内容的概述及编程介绍, 最后是对Python编程语言的概览。
我们希望这本编程书是为生物学工作者的读者量身定制的, 能帮助分析读者的数据, 从而尽早有所收获。
本书内容概述
本书中, 读者不仅能够学到如何编程, 还有怎样管理数据, 包括了从文件中读取数据, 分析和处理它们, 把结果写到文件中或计算机屏幕上。每个在本书中描述的单个代码段都旨在解决生物学问题, 每个例子都处理生物疑问。本书的目标是包含尽可能多的实例, 覆盖更多的组织、 分析和表现数据的策略, 用编程秘笈的方式来解决生物问题。在每一章后面的自测题可以用来自测或在对面向生物学工作者的编程课程上使用。
本书分六部分组织, 共21章。第一部分介绍Python语言, 如何写第一个程序。第二部分介绍这个语言的所有基本元件, 使读者能够独立地写小的程序。第三部分是关于运用技巧来创建组织优良、 性能高效和代码正确的较长的程序。第四部分致力于数据可视化, 可以学到如何绘制数据, 或者为一篇文章或演示用的PPT文件配图。还介绍了PyMOL, 一个对大分子结构可视化的程序。第五部分介绍Biopython, 它可以帮助读写多种生物文件格式, 便捷查询NCBI的在线数据库, 从网络上检索生物记录。第六部分是一个实用手册, 包含了20个特定的编程秘笈, 从二级结构预测和多序列联配分析到蛋白三维结构的叠加。
此外, 这本书还有四个附录。附录A提供了包括Python和UNIX命令的概览; 附录B列出了几个在网上免费可用的Python资源的链接; 附录C包含了遍布在本书中引用的样本文件格式, 例如序列的FASTA格式, 序列的GenBank格式, PDB文件和MSA示例等。最后, 附录D是一个简短的UNIX教程。
什么是编程
这本书将讲授如何写程序。程序准确地说是什么呢?一个程序在概念上类似一个菜谱。正如菜谱在开始时列出了成分和厨具一样,
|
|