Effective Python Development for Biologists: Tools and techniques for building biological programs
by: Dr Martin Jones
ISBN-10 书号： 153910303X
ISBN-13 书号： 9781539103035
Release Finelybook 出版日期： 2016-09-26
pages 页数： 296
Python is rapidly becoming the standard language for many talks in scientific research,and is particularly popular in biology and bioinformatics. One of the great strengths of Python is the ecosystem of tools and libraries that have grown up around it.
This book introduces the novice biologist programmer to tools and techniques that make developing Python code easier and faster and will help you to write more reliable,performant programs. Written by a biologist,it focusses on solving the problems that students and researchers encounter every day:
How do I make my program run faster?
How can I be sure that my results are correct?
How do I share this program with my colleagues?
How can I speed up the process of writing my code?
Environments for development – learn how you can take advantage of different tools for actually writing code,including those designed specifically for scientific work.
Organising and sharing code – learn how Python’s module and packaging system works,how to effectively reuse code across multiple projects,and how to share your programs with colleagues and the wider world.
Testing – learn how automated testing can make your code more reliable,how to catch bugs before they impact your work,and how to edit code with confidence.
Performance – learn how to make your code run quickly even on large datasets,how to understand the scaling behaviour of your code,and explore the trade offs involved in designing code.
User interfaces – learn how to make your code more user friendly,how to design effective interfaces,and how to automate record-keeping with Python’s logging system.
1: Introduction 1
About this book » 1
Typography and formatting » 5
Getting in touch » 8
2: Environments for developing in Python 10
Introduction » 10
What you actually write code in » 10
Integrated development environments » 14
Managing Python and packages » 19
Working in a debugger » 25
Alternatives to pdb » 57
Recap » 59
3: Organizing and sharing code 61
Introduction » 61
Working with modules » 63
Distributing code » 80
Recap » 86
4: Testing your code 88
Introduction » 88
Testing with assert » 89
Automated testing with nose » 105
Types of assertions » 119
Designing for testing » 127
Special types of testing » 131
Recap » 137
5: Performance 139
Introduction » 139
Benchmarking » 140
Benchmarking memory » 147
Profiling » 160
Guidelines for performance optimization » 179
Specific tips for improving performance » 181
Further topics in performance » 194
Recap » 197
6: Building user interfaces 198
Why do we need a user interface? » 198
A simple program » 200
A simple interactive interface » 203
A simple command line interface » 207
Command line interfaces with argparse » 216
Alternatives to argparse » 241
Configuration files » 243
Web interfaces » 250
Graphical user interfaces » 257
Logging » 269
Logging messages » 273
Logging to a file » 276
Recap » 283