Synopses & Reviews
Historically, programming hasn't been considered a critical skill for biologists. But now, with access to vast amounts of biological data contained in public databases, programming skills are increasingly in strong demand in biology research and development. Perl, with its highly developed capacities in string handling, text processing, networking, and rapid prototyping, has emerged as the programming language of choice for biological data analysis.Mastering Perl for Bioinformatics covers the core Perl language and many of its module extensions, presenting them in the context of biological data and problems of pressing interest to the biological community. This book, along with Beginning Perl for Bioinformatics, forms a basic course in Perl programming. This second volume finishes the basic Perl tutorial material (references, complex data structures, object-oriented programming, use of modules--all presented in a biological context) and presents some advanced topics of considerable interest in bioinformatics.The range of topics covered in Mastering Perl for Bioinformatics prepares the reader for enduring and emerging developments in critical areas of bioinformatics programming such as:
- Gene finding
- String alignment
- Methods of data storage and retrieval (SML and databases)
- Modeling of networks (graphs and Petri nets)
- Graphics (Tk)
- Parallelization
- Interfacing with other programming languages
- Statistics (PDL)
- Protein structure determination
- Biological models of computation (DNA Computers)
Biologists and computer scientists who have conquered the basics of Perl and are ready to move even further in their mastery of this versatile language will appreciate the author's well-balanced approach to applying Perl's analytical abilities to the field of bioinformatics. Full of practical examples and real-world biological problem solving, this book is a must for any reader wanting to move beyond beginner level Perl in bioinformatics.
Synopsis
This book, along with "Beginning Perl for Bioinformatics, " forms a basic course in Perl programming. It covers core Perl language and many of its module extensions.
About the Author
James Tisdall has worked as a musician, a programmer at Bell Labs (where he programmed for speech research and discovered a formal language for musical rhythm), and as a bioinformaticist at Mercator Genetics in Menlo Park, California, and at Fox Chase Cancer Center in Philadelphia. He has a B.A. in mathematics from the City College of New York and an M.S. in computer science from Columbia University; he is working towards a Ph.D. in computer science at the University of Pennsylvania. In his spare time, Jim teaches computer music at the Settlement Music School in Philadelphia. He is also the author of O'Reilly's Beginning Perl for Bioinformatics.
Table of Contents
Foreword; Preface; About This Book; What You Need to Know to Use This Book; Organization of This Book; Conventions Used in This Book; Comments and Questions; Acknowledgments; Object-Oriented Programming in Perl; Chapter 1: Modular Programming with Perl; 1.1 What Is a Module?; 1.2 Why Perl Modules?; 1.3 Namespaces; 1.4 Packages; 1.5 Defining Modules; 1.6 Storing Modules; 1.7 Writing Your First Perl Module; 1.8 Using Modules; 1.9 CPAN Modules; 1.10 Exercises; Chapter 2: Data Structures and String Algorithms; 2.1 Basic Perl Data Types; 2.2 References; 2.3 Matrices; 2.4 Complex Data Structures; 2.5 Printing Complex Data Structures; 2.6 Data Structures in Action; 2.7 Dynamic Programming; 2.8 Approximate String Matching; 2.9 Resources; 2.10 Exercises; Chapter 3: Object-Oriented Programming in Perl; 3.1 What Is Object-Oriented Programming?; 3.2 Using Perl Classes (Without Writing Them); 3.3 Objects, Methods, and Classes in Perl; 3.4 Arrow Notation (->); 3.5 Gene1: An Example of a Perl Class; 3.6 Details of the Gene1 Class; 3.7 Gene2.pm: A Second Example of a Perl Class; 3.8 Gene3.pm: A Third Example of a Perl Class; 3.9 How AUTOLOAD Works; 3.10 Cleaning Up Unused Objects with DESTROY; 3.11 Gene.pm: A Fourth Example of a Perl Class; 3.12 How to Document a Perl Class with POD; 3.13 Additional Topics; 3.14 Resources; 3.15 Exercises; Chapter 4: Sequence Formats and Inheritance; 4.1 Inheritance; 4.2 FileIO.pm: A Class to Read and Write Files; 4.3 SeqFileIO.pm: Sequence File Formats; 4.4 Resources; 4.5 Exercises; Chapter 5: A Class for Restriction Enzymes; 5.1 Envisioning an Object; 5.2 Rebase.pm: A Class Module; 5.3 Restriction.pm: Finding Recognition Sites; 5.4 Drawing Restriction Maps; 5.5 Resources; 5.6 Exercises; Perl and Bioinformatics; Chapter 6: Perl and Relational Databases; 6.1 One Perl, Many Databases; 6.2 Popular Relational Databases; 6.3 Relational Database Definitions; 6.4 Structured Query Language; 6.5 Administering Your Database; 6.6 Relational Database Design; 6.7 Perl DBI and DBD Interface Modules; 6.8 A Rebase Database Implementation; 6.9 Additional Topics; 6.10 Resources; 6.11 Exercises; Chapter 7: Perl and the Web; 7.1 How the Web Works; 7.2 Web Servers and Browsers; 7.3 The Common Gateway Interface; 7.4 Rebase: Building Dynamic Web Pages; 7.5 Exercises; Chapter 8: Perl and Graphics; 8.1 Computer Graphics; 8.2 GD; 8.3 Adding GD Graphics to Restrictionmap.pm; 8.4 Making Graphs; 8.5 Resources; 8.6 Exercises; Chapter 9: Introduction to Bioperl; 9.1 The Growth of Bioperl; 9.2 Installing Bioperl; 9.3 Testing Bioperl; 9.4 Bioperl Problems; 9.5 Overview of Objects; 9.6 bptutorial.pl; 9.7 bptutorial.pl: sequence_manipulation Demo; 9.8 Using Bioperl Modules; Appendixes; Perl Summary; Command Interpretation; Comments; Scalar Values and Scalar Variables; Assignment; Statements and Blocks; Arrays; Hashes; Complex Data Structures; Operators; Operator Precedence; Basic Operators; Conditionals and Logical Operators; Binding Operators; Loops; Input/Output; Regular Expressions; Scalar and List Context; Subroutines; Modules and Packages; Object-Oriented Programming; Built-in Functions; Installing Perl; Installing Perl on Your Computer; Versions of Perl; Internet Access; Downloading; How to Run Perl Programs; Finding Help; Colophon;