Genetics 211, Genomics, Suggested Reading
Perl Books available Online from: ProQuest, must be using a computer with a stanford.edu hostname.
Depending on your programming experiences you might want one or more of the following books. Reading assignments will be given for Learning Perl, multiple editions, and Programming Perl.
A. For those with no programming experience
- Learning Perl (any edition), by Randal Schwartz and Tom Phoenix. (O'Reilly)
- NOTE: If possible purchase or borrow edition 2, ISBN:1565922840.
Edition 5, ISBN:0596520107, 4, or 3 are also good. I just like edition 2
slightly better. Edition 5 will cost about $25 from Amazon.com. You
can find edition 2 used for less than $5 at Amazon.com or Alibris.com,
used edition 3 can be found from $15. All of these editions are adequate.
- NOTE: If you have programming experience you can just purchase
Programming PERL, see below. Programming PERL is a very good
reference, however is short on the programming concepts for those new
to programming.
- Advanced Perl Programming (1st edition, 1997), by Sriram Srinivasan. (O'Reilly), ISBN:1565922204
- This book includes topics that I feel should have been included in Learning Perl.
- After eight years, a 2nd edition was put out in 2005 by a different author (Simon Cozens) that is a substantially different book. The real successor to the 1st edition is the following text:
- Intermediate Perl (1st edition, 2006), by Randal L. Schwartz, Brian D. Foy and Tom Phoenix. (O'Reilly), ISBN:0596102062
- This book continues on where Learning Perl leaves off.
- This seems to be the current O'Reilly replacement for the original Advanced Perl Programming, 1st edition.
- Originally released in 2003 as Learning Perl Objects, References & Modules (1st edition), by Randal L. Schwartz with Tom Phoenix. (O'Reilly), ISBN:0596004788 If you have this earlier edition, the readings below for Intermediate Perl should be the same.
B. For those with programming experience
You understand the basic concepts of computer science and do not need as many examples. (This text is likely useful to everyone as a reference book).
- Programming PERL (3rd edition), by Larry Wall et al (O'Reilly), ISBN:0596000278
- The bible of Perl programming. Written by Larry
Wall, the creator of Perl, this book has descriptions of every
function and syntax included in Perl. Some of this information can
also be found at www.perldoc.com, minus Larry Wall's humorous prose.
- NOTE:The 3rd edition of this text is preferred but the 2nd edition is fine if that's what you already have but the reading list below won't correspond correctly to the chapters in the older book.
C. Recommended Books as References.
Each will be nearly indispensable for those who want to continue to apply techniques learned in this course on a regular basis.
- Using csh & tcsh, by Paul Dubois. (O'Reilly), ISBN:1565921321
- A good book on how to operate more efficiently in the most common UNIX environments.
- Object Oriented Perl, by Damian Conway and Randal Schwartz. (O'Reilly), ISBN:1884777791
- Essential for advanced Perl programming in the current modern style using Object-Oriented methodology.
- Official Guide to Programming with CGI.pm, by Lincoln Stein, (Wiley), ISBN:0471247448
- The definitive reference for using the CGI.pm package to produce Perl
CGI scripts for a Web site.
- This text is not needed for this course but is useful for those that go on to creating CGIs.
- Network Programming with Perl, by Lincoln Stein, (Addison-Wesley), ISBN:0201615711
- Advanced book on programming for the Internet with Object-Oriented
Perl. Lincoln Stein, researcher at Cold Spring Harbor Labs, says:
Everything you ever wanted to know about writing TCP/IP applications
in Perl.
- This text is not needed for this course but is useful for
those that go on to create UNIX network daemons in Perl.
Suggested Chapters
Pick from the following books, listed in order of preference. The Beginning Perl for Bioinformatics book is listed as an additional text for those who have access to it and want more information, or a different perspective.
- Learning Perl 2nd edition:
-
- Chapter 1: Introduction (30 pages) [optional]
- Preface (15 pages)
- Chapter 2: Scalar Data (17 pages)
- Chapter 3: Arrays and List Data (10 pages)
- Chapter 5: Hashes (5 pages)
- Learning Perl 5th edition:
-
- Chapter 1: Introduction [optional]
- Chapter 2: Scalar Data
- Chapter 3: Lists and Arrays
- Chapter 6: Hashes
- Learning Perl 4th edition:
-
- Chapter 1: Introduction (17 pages) [optional]
- Chapter 2: Scalar Data (19 pages)
- Chapter 3: Lists and Arrays (15 pages)
- Chapter 6: Hashes (11 pages)
- Learning Perl 3rd edition:
-
- Chapter 1: Introduction (17 pages) [optional]
- Chapter 2: Scalar Data (20 pages)
- Chapter 3: Lists and Arrays (15 pages)
- Chapter 5: Hashes (11 pages)
- Programming Perl 3rd edition:
-
- Chapter 1: An Overview of Perl (39 pages) [optional]
- Chapter 2: Bits and Pieces, stop at section Typeglobs and Filehandles(30 pages)
- Chapter 3: Unary and Binary Operators (23 pages)
- Beginning Perl for Bioinformatics:
-
- Chapter 1: Biology and Computer Science (4 pages) [optional]
- Chapter 2: Getting Started with Perl (9 pages)
- Chapter 3: The Art of Programming (9 pages) [optional]
- Chapter 4: Sequences and Strings (24 pages)
- Chapter 8: The Genetic Code (28 pages)
- Learning Perl 2nd edition:
-
- Chapter 4: Control Structures (6 pages)
- Chapter 8: Functions (9 pages)
- Chapter 9: Miscellaneous Control Structures (7 pages)
- Learning Perl 5th edition:
-
- Chapter 4: Subroutines
- Chapter 10: More Control Structures
- Chapter 14: Strings and Sorting
- Learning Perl 4th edition:
-
- Chapter 4: Subroutines (13 pages)
- Chapter 10: More Control Structures (18 pages)
- Chapter 13: Strings and Sorting (10 pages)
- Learning Perl 3rd edition:
-
- Chapter 4: Subroutines (15 pages)
- Chapter 10: More Control Structures (19 pages)
- Chapter 15: Strings and Sorting (11 pages)
- Programming Perl 3rd edition:
-
- Chapter 4: Statements and Declarations (25 pages)
- Chapter 6: Subroutines (14 pages)
- Beginning Perl for Bioinformatics:
-
- Chapter 5: Motifs and Loops, stop at section Writing Files (24 pages)
- Chapter 6: Subroutines and Bugs, stop at section Modules and Libraries of Subroutines (14 pages)
- Chapter 7: Mutations and Randomization (39 pages) [optional]
- Learning Perl 2nd edition:
-
- Chapter 7: Regular Expressions (16 pages)
- Chapter 15: Other Data Transformation (10 pages)
- Chapter 18: Converting Other Languages to Perl (3 pages) [optional]
- Learning Perl 5th edition:
-
- Chapter 7: In the World of Regular Expressions
- Chapter 8: Matching with Regular Expressions
- Chapter 9: Processing Text with Regular Expressions
- Learning Perl 4th edition:
-
- Chapter 7: In the World of Regular Expressions (6 pages)
- Chapter 8: Matching with Regular Expressions (12 pages)
- Chapter 9: Processing Text with Regular Expressions (13 pages)
- Learning Perl 3rd edition:
-
- Chapter 7: Concepts of Regular Expressions (5 pages)
- Chapter 8: More about Regular Expressions (8 pages)
- Chapter 9: Using Regular Expressions (12 pages)
- Programming Perl 3rd edition:
-
- Chapter 5: Pattern Matching (75 pages)
- Beginning Perl for Bioinformatics:
-
- Chapter 9: Restriction Maps and Regular Expressions (14 pages)
(Regular expressions were introduced in earlier chapters.)
- Learning Perl 2nd edition:
-
- Chapter 6: Basic I/O (4 pages)
- Chapter 10: Filehandles & File Tests (8 pages)
- Chapter 11: Formats (13 pages) [optional]
- Chapter 12: Directory Access (5 pages)
- Chapter 13: File & Directory Manipulation (8 pages)
- Learning Perl 5th edition:
-
- Chapter 5: Input and Output
- Chapter 12: File Tests
- Chapter 13: Directory Operations
- Learning Perl 4th edition:
-
- Chapter 5: Input and Output (19 pages)
- Chapter 11: File Tests (19 pages)
- Chapter 12: Directory Operations (10 pages)
- Learning Perl 3rd edition:
-
- Chapter 6: I/O Basics (11 pages)
- Chapter 11: Filehandles & File Tests (19 pages)
- Chapter 12: Directory Operations (9 pages)
- Chapter 13: Manipulating Files and Directories (16 pages)
- Programming Perl 3rd edition:
-
- Chapter 2: Bits and Pieces, start at section Typeglobs and Filehandles (6 pages)
- Chapter 7: Formats (7 pages) [optional]
- Beginning Perl for Bioinformatics:
-
- Chapter 4: Sequences and Strings, reread section Reading Proteins in Files (4 pages)
- Chapter 5: Motifs and Loops, start at section Writing Files (3 pages)
Intermediate Perl or Advanced Perl Programming are the texts of choice. The other books (or chapters from Learning Perl) are listed as an additional texts for those who have access to it and want more information, or a different perspective.
SysAdmin Magazine (bonus reading for everyone):
- Handout: Deep Copying, not Deep Secrets (3 pages)
- Intermediate Perl:
-
- Chapter 1: Introduction (4 pages) [optional]
- Chapter 2: Building Larger Programs, start at section Using require (10 pages)
- Chapter 3: Introduction to References (12 pages)
- Chapter 4: Reference and Scoping, start at section Creating an Anonymous Hash (6 pages)
- Chapter 6: Subroutine References, stop at section Autoloading (14 pages)
- Advanced Perl Programming 1st edition:
-
- Preface (12 pages) [optional]
- Chapter 1: Data References & Anonymous Storage, stop at section A View of the Internals (15 pages)
- Chapter 2: Implementing Complex Data Structures (13 pages)
- Chapter 3: Typeglobs & Symbol Tables (11 pages) [optional]
- Chapter 4: Subroutine References & Closures, stop at section Using Closures (8 pages)
- Chapter 6: Modules, stop at section Autoloading (10 pages)
- Programming Perl 3rd edition:
-
- Chapter 8: References (23 pages)
- Chapter 9: Data Structures (18 pages)
- Chapter 10: Packages, stop at section Symbol Tables (5 pages)
- Chapter 11: Modules (8 pages)
- Mastering Perl for Bioinformatics:
-
- Chapter 1: Modular Programming with Perl (27 pages)
- Chapter 2: Data Structures and String Algorithms (34 pages)
- Learning Perl 5th edition:
-
- Intermediate Perl:
-
- Chapter 8: Introduction to Objects (10 pages)
- Chapter 9: Objects with Data (10 pages)
- Chapter 10: Object Destruction, start at section Indirect Object Notation (7 pages)
- Chapter 11: Some Advanced Object Topics, just the first section UNIVERSAL Methods (3 pages)
- Chapter 12: Using Modules (11 pages)
- Advanced Perl Programming 1st edition:
-
- Chapter 7: Object-Oriented Programming (23 pages)
- Chapter 8: Object Orientation: The Next Few Steps, start at section Delegation (4 pages)
- Chapter 9: Tie (14 pages) [optional]
- Chapter 10: Persistence (15 pages)
- Chapter 11: Implementing Object Persistence (10 pages) [optional]
- Programming Perl 3rd edition:
-
- Chapter 12: Objects, stop at section Instance Destructors and jump to Managing Class Data (25 pages)
- Chapter 13: Overloading (14 pages) [optional]
- Chapter 14: Tied Variables (34 pages) [optional]
- Mastering Perl for Bioinformatics:
-
- Chapter 3: Object-Oriented Programming in Perl (57 pages)
- WWW.Bioperl.ORG:
-
- HOWTO: SeqIO (HTML)
- HOWTO: SearchIO (HTML)
- Mastering Perl for Bioinformatics:
-
- Learning Perl 5th edition:
-
- Chapter 17: Some Advanced Perl Techniques