...
首页> 外文期刊>Frontiers in Genetics >Book Review: Computing for Biologists: Python Programming and Principles
【24h】

Book Review: Computing for Biologists: Python Programming and Principles

机译:书评:生物学家的计算:Python编程和原理

获取原文
   

获取外文期刊封面封底 >>

       

摘要

Fifteen years ago a student could go through the whole curriculum in any of the life sciences without ever switching a computer on but, as bioinformatics and systems biology gained weight in the field, biologists became first users and then developers of increasingly sophisticated computer programs. Even for professionals far away from these disciplines, it is nowadays unthinkable to plan an experiment without first checking some databases, designing some primers or analyzing a sequence. These changes have created a need to include basic courses in the biology curriculum where students with little or no inclination toward computer science have to learn the ropes of programming. The main challenge when teaching such a course is to find a good balance between presenting examples that are complex enough to motivate the students and simple enough to be accessible for them. This book is precisely a guide for such an introductory course. Using python as a first programming language and assuming no previous knowledge, the authors follow a practical approach to teach the basic programming skills. The book is structured in four parts, preceded by a twenty pages tutorial on the basics of python. The examples in each of the first three parts revolve around a unifying biological theme, which turns each of them into a simple yet interesting project. Abstract computational concepts like recursion or memoization are introduced as they are needed to solve diverse problems. At the end of each part, a problem is formulated to solve a real case study using the material covered so far. Abundant examples, additional explanations on these problems and source code with the solutions are available through he companion website. The first part starts with simple tasks like computing GC content of a DNA sequence or converting DNA to its corresponding mRNA. Through these simple examples, the usage of different data types is introduced as well as the basics of flow control and functions. The rest of the first part is dedicated to the consolidate knowledge on these basic concepts understanding the general organization of a program. These concepts are then used to find ORFs in a genome and sequences that are associated with pathogenicity in Salmonella . The second part covers sequence alignments, building up toward finding homology between genes and then chromosomes. It is all exemplified by comparing X chromosome in humans and Z chromosome in chicken. The third part covers phylogenetic trees and ends with mitocondrial DNA comparison between humans and neanderthals. finally, a more heterogeneous part closes the book presenting three different examples that depart from the rest: RNA folding, finding gene regulation networks and genetic algorithms. The text is extremely well written, with clear explanations and interesting examples. The pace is slow but entertaining, ensuring that the student can keep up with the step by step explanations while sitting in front of the computer and trying things right away. No previous knowledge is assumed, and the most basic programming concepts are explained from scratch, stopping to indicate possible pitfalls and preparing the reader for potential difficulties. There are many introductory texts to Python, including some aimed to biologists. What makes this book different is that it does not focus on teaching a particular programming language or some useful algorithms. The authors present biological problems and keep the attention focused on them. Python is just taken as a vehicle to introduce very abstract concepts by example. This makes the book valuable as a guide for an undergraduate course. Even if the students never use python after the course is over, they will have acquired the basic programming skills they may need. I haven't found a book that follows this approach so successfully since “Beginning Perl for Bioinformatics” by James Tisdall, 15 years ago. Author contributions The author confirms being the sole contributor of this work and approved it for publication. Funding This work was funded by the German Ministry of Education and Research (BMBF) through the e:Bio initiative (project OpHeLia—0316197). Conflict of interest statement The author declares that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.
机译:15年前,学生可以在不打开计算机的情况下学习任何生命科学的全部课程,但是随着生物信息学和系统生物学在该领域的发展越来越重要,生物学家成为了越来越复杂的计算机程序的第一个用户,然后是开发人员。即使对于远离这些学科的专业人士,如今也无法计划一项实验,而无需先检查一些数据库,设计一些引物或分析序列。这些变化导致需要在生物学课程中包括基础课程,在这些课程中,对计算机科学几乎没有兴趣的学生必须学习编程的绳索。教授此类课程时的主要挑战是,在呈现足以激发学生动力的示例和足以让学生接触的简单示例之间找到良好的平衡。这本书正是此类入门课程的指南。使用python作为第一门编程语言,并且假设没有以前的知识,作者将遵循一种实用的方法来教授基本的编程技能。本书分为四个部分,在此之前有二十页的有关python基础的教程。前三个部分中的每个示例都围绕一个统一的生物学主题,使每个主题都变成了一个简单而有趣的项目。引入了诸如递归或记忆之类的抽象计算概念,以解决各种问题。在每个部分的末尾,将使用到目前为止介绍的材料来制定问题以解决实际案例研究。丰富的示例,有关这些问题的其他说明以及解决方案的源代码可通过其配套网站获得。第一部分从简单的任务开始,例如计算DNA序列的GC含量或将DNA转换为其相应的mRNA。通过这些简单的示例,介绍了不同数据类型的用法以及流控制和功能的基础。第一部分的其余部分致力于巩固有关这些基本概念的知识,从而理解程序的总体组织。然后将这些概念用于在基因组和序列中寻找与沙门氏菌致病性相关的ORF。第二部分介绍序列比对,逐步建立基因与染色体之间的同源性。通过比较人类的X染色体和鸡的Z染色体来举例说明。第三部分介绍了系统发育树,并以人与尼安德特人之间的线粒体DNA比较作为结束。最终,本书的异质性更强,给出了三个与众不同的示例:RNA折叠,寻找基因调控网络和遗传算法。文字写得很好,有清晰的解释和有趣的例子。速度缓慢但很有趣,可确保学生坐在电脑前并立即尝试操作时可以跟上逐步的说明。假定没有以前的知识,并且从头开始解释最基本的编程概念,然后停止表明可能的陷阱,并为读者准备潜在的困难。 Python有很多介绍性的文本,其中包括一些针对生物学家的文本。这本书的与众不同之处在于,它并不专注于教授特定的编程语言或一些有用的算法。作者提出了生物学问题,并将注意力集中在这些问题上。 Python仅作为示例引入非常抽象的概念的工具。这使这本书很有价值,可以作为本科课程的指南。即使学生在课程结束后从未使用过python,他们也已经掌握了可能需要的基本编程技能。自15年前James Tisdall撰写的“ Perl for Bioinformatics”(生物信息学的Perl入门)以来,我还没有找到一本书能如此成功地遵循这种方法。作者贡献作者确认是此项工作的唯一贡献者,并批准将其发表。资金这项工作是由德国教育和研究部(BMBF)通过e:Bio计划(项目OpHeLia-0316197)资助的。利益冲突声明作者声明,这项研究是在没有任何可能被解释为潜在利益冲突的商业或金融关系的情况下进行的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号