Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010062136 | QH324.2 J36 2003 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Working on the assumption that the reader has no formal training in programming, Perl Programming for Biologists demonstrates how Perl is used to solve biological problems. Each chapter opens with a set of learning objectives, provides numerous review questions and self-study exercises, and concludes with a bulleted summary of key points. The author incorporates numerous real-life examples throughout the text. Upon completing the book, readers are able to quickly perform such tasks as correcting recurring errors in spreadsheets, scanning a Fasta sequence for every occurrence of an EcoRI site, adapting other writers' scripts to one's own purposes, and most important, writing reusable and maintainable scripts that spare the rote repetition of code.
Author Notes
Curtis Jamison received his B.A. (Molecular, Cellular and Developmental Biology) from the University of Colorado, Boulder in 1985, and his Ph.D. (Biological Sciences) from the University of Denver in 1991. He held an NSF CISE postdoctoral fellowship while at National Center for Supercomputing Applications, University of Illinois, Champaign-Urbana, where he received a patent for his work on distributed application gateways and database federation. Dr. Jamison continued his work on database federation with plant genome databases for the USDA Agricultural Genome Information Service, and then later evolved to work on higher organisms at the National Institutes of Health where he created computational tools for genome mapping for the Human Genome Project. He is currently an Associate Professor of Bioinformatics at George Mason University, and is director of the Bioinformatics Ph.D. program.
Table of Contents
Part I. The Basics | p. 1 |
Introduction | p. 3 |
Chapter 1. An Introduction to Perl | p. 7 |
1.1 The Perl Interpreter | p. 7 |
1.2 Your First Perl Program | p. 8 |
1.3 How the Perl Interpreter Works | p. 9 |
Chapter Summary | p. 10 |
For More Information | p. 11 |
Exercises | p. 11 |
Chapter 2. Variables and Data Types | p. 13 |
2.1 Perl Variables | p. 13 |
2.2 Scalar Values | p. 14 |
2.3 Calculations | p. 17 |
2.4 Interpolation and Escapes | p. 19 |
2.5 Variable Definition | p. 22 |
2.6 Special Variables | p. 23 |
Chapter Summary | p. 23 |
For More Information | p. 24 |
Exercises | p. 24 |
Programming Challenges | p. 24 |
Chapter 3. Arrays and Hashes | p. 27 |
3.1 Arrays | p. 27 |
3.3 Array Manipulation | p. 30 |
3.3.1 Push and Pop, Shift and Unshift | p. 30 |
3.3.2 Splice | p. 31 |
3.3.3 Other Useful Array Functions | p. 33 |
3.3.4 List and Scalar Context | p. 34 |
3.4 Hashes | p. 37 |
3.5 Maintaining a Hash | p. 38 |
Chapter Summary | p. 40 |
For More Information | p. 40 |
Exercises | p. 40 |
Programming Challenge | p. 41 |
Chapter 4. Control Structures | p. 43 |
4.1 Comparisons | p. 44 |
4.2 Choices | p. 45 |
4.2.1 If | p. 45 |
4.2.2 Boolean Operators | p. 46 |
4.2.3 Else | p. 47 |
4.3 Loops | p. 49 |
4.3.1 For Loops | p. 50 |
4.3.2 Foreach Loops | p. 52 |
4.4 Indeterminate Loops | p. 54 |
4.4.1 While | p. 54 |
4.4.2 Repeat Until | p. 56 |
4.5 Loop Exits | p. 57 |
4.5.1 Last | p. 57 |
4.5.2 Next and Continue | p. 57 |
Chapter Summary | p. 59 |
Exercises | p. 59 |
Programming Challenges | p. 60 |
Part II. Intermediate Perl | p. 61 |
Chapter 5. Subroutines | p. 63 |
5.1 Creating a Subroutine | p. 63 |
5.2 Arguments | p. 64 |
5.3 Return | p. 65 |
5.3.1 Wantarray | p. 66 |
5.4 Scope | p. 67 |
5.4.1 My | p. 67 |
5.5 Passing Arguments with References | p. 70 |
5.6 Sort Subroutines | p. 71 |
Chapter Summary | p. 73 |
For More Information | p. 74 |
Exercises | p. 74 |
Programming Challenges | p. 74 |
Chapter 6. String Manipulation | p. 75 |
6.1 Array-Based Character Manipulation | p. 75 |
6.2 Regular Expressions | p. 78 |
6.2.1 Match | p. 79 |
6.2.2 Substitute | p. 81 |
6.2.3 Translate | p. 81 |
6.3 Patterns | p. 82 |
6.3.1 Atoms | p. 83 |
6.3.2 Special Atoms | p. 83 |
6.3.3 Quantifiers | p. 84 |
6.3.4 Assertions | p. 85 |
6.3.5 Alternatives | p. 85 |
Chapter Summary | p. 86 |
For More Information | p. 87 |
Exercises | p. 87 |
Programming Challenges | p. 87 |
Chapter 7. Input and Output | p. 89 |
7.1 Program Parameters | p. 89 |
7.2 File I/O | p. 90 |
7.2.1 Filehandles | p. 90 |
7.2.2 Working with Files | p. 91 |
7.2.3 Built-in File Handles | p. 92 |
7.2.4 File Safety | p. 93 |
7.2.5 The Input Operator | p. 94 |
7.2.6 Binary I/O | p. 97 |
7.3 Interprocess Communications | p. 97 |
7.3.1 Processes | p. 98 |
7.3.2 Process Pipes | p. 98 |
7.3.3 Creating Processes | p. 99 |
7.3.4 Monitoring Processes | p. 100 |
7.3.5 Implicit Forks | p. 101 |
Chapter Summary | p. 102 |
For More Information | p. 102 |
Exercises | p. 102 |
Programming Challenges | p. 103 |
Chapter 8. Perl Modules and Packages | p. 105 |
8.1 Modules | p. 105 |
8.2 Packages | p. 107 |
8.3 Combining Packages and Modules | p. 109 |
8.4 Included Modules | p. 110 |
8.4.1 CGI | p. 110 |
8.4.2 Getopt | p. 110 |
8.4.3 Io | p. 112 |
8.4.4 File::Path | p. 112 |
8.4.5 Strict | p. 113 |
8.5 The CPAN | p. 114 |
8.5.1 Setting Up the CPAN Module | p. 114 |
8.5.2 Finding Modules | p. 115 |
8.5.3 Installing Modules | p. 117 |
8.5.4 Managing Installed Modules | p. 119 |
Chapter Summary | p. 121 |
For More Information | p. 121 |
Exercises | p. 121 |
Programming Challenges | p. 122 |
Part III. Advanced Perl | p. 123 |
Chapter 9. References | p. 125 |
9.1 Creating References | p. 125 |
9.2 ref() | p. 126 |
9.3 Anonymous Referents | p. 127 |
9.4 Tables | p. 128 |
Chapter Summary | p. 130 |
Exercises | p. 130 |
Programming Challenge | p. 130 |
Chapter 10. Object-Oriented Programming | p. 133 |
10.1 Introduction to Objects | p. 133 |
10.1.1 The OOP Approach | p. 134 |
10.1.2 Class Design | p. 135 |
10.1.3 Inheritance | p. 136 |
10.2 Perl Objects | p. 136 |
10.2.1 Rule Number One | p. 137 |
10.2.2 Rule Number Two | p. 137 |
10.2.3 Rule Number Three | p. 138 |
10.2.4 Methods | p. 139 |
10.2.5 Constructors | p. 141 |
10.2.6 Accessors | p. 143 |
10.2.7 OOP Versus Procedural | p. 143 |
Chapter Summary | p. 145 |
For More Information | p. 146 |
Exercises | p. 146 |
Programming Challenges | p. 146 |
Chapter 11. Bioperl | p. 147 |
11.1 Sequences | p. 147 |
11.2 SeqFeature | p. 149 |
11.3 Annotation | p. 150 |
11.4 Sequence I/O | p. 151 |
11.5 Cool Tools | p. 152 |
11.6 Example Bioperl Programs | p. 154 |
11.6.1 Primer.pl | p. 154 |
11.6.2 Primer3.pm | p. 156 |
Chapter Summary | p. 161 |
For More Information | p. 161 |
Exercises | p. 161 |
Programming Challenges | p. 162 |
Appendix A. Partial Perl Reference | p. 163 |
Chapter 3 | p. 163 |
Chapter 4 | p. 163 |
Chapter 5 | p. 164 |
Chapter 6 | p. 164 |
Chapter 7 | p. 164 |
Chapter 8 | p. 165 |
Chapter 9 | p. 165 |
Appendix B. Bioinformatics File Formats | p. 167 |
GenBank | p. 167 |
ASN.1 | p. 170 |
EMBL | p. 175 |
PDB | p. 177 |
Fasta | p. 181 |
BLAST | p. 182 |
ACEDB | p. 183 |
Index | p. 185 |