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 except 1st), by Randal Schwartz and Tom Phoenix. (O'Reilly)
- This book has been around so long that it might be possible to borrow a copy. Any edition
from 6, ISBN:9781449303587, through 3, ISBN:9780596001322, is adequate. Edition 6 will cost about $24 from Amazon.com. You
can find edition 3 used for around $10 at Amazon.com or Alibris.com.
- 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 (2nd edition, 2012 or 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 (4th edition), by Larry Wall et al (O'Reilly), ISBN:0596004923
- 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 or 4th 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. Some Recommended Perl References.
Nearly indispensable for those who want to continue to apply techniques learned in this course on a regular basis.
- 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 may be 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. I've left off chapter numbers for Learning Perl as they vary across the editions but the titles are the same throughout unless noted. 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:
-
- Chapter: Introduction [optional]
- Chapter: Scalar Data
- Chapter: Lists and Arrays
- Chapter: Hashes
- Programming Perl:
-
- Chapter: An Overview of Perl [optional]
- Chapter: Bits and Pieces, stop at section Typeglobs and Filehandles
- Chapter: Unary and Binary Operators
- 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:
-
- Chapter: Subroutines
- Chapter: More Control Structures
- Chapter: Strings and Sorting
- Programming Perl:
-
- Chapter: Statements and Declarations
- Chapter: Subroutines
- 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:
-
- Chapter 7: (In the World/Concepts) of Regular Expressions
- Chapter 8: (Matching with/More about) Regular Expressions
- Chapter 9: (Processing Text with/Using) Regular Expressions
- Programming Perl:
-
- Chapter: Pattern Matching
- Beginning Perl for Bioinformatics:
-
- Chapter 9: Restriction Maps and Regular Expressions (14 pages)
(Regular expressions were introduced in earlier chapters.)
- Learning Perl:
-
- Chapter: Input and Output
- Chapter: File Tests
- Chapter: Directory Operations
- 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:
-
- Chapter: Bits and Pieces, start at section Typeglobs and Filehandles
- 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.
- Bonus reading for everyone:
-
- Intermediate Perl:
-
- Chapter: Introduction [optional]
- Chapter: Intermediate Foundations
- Chapter: Using Modules
- Chapter: Reference and Scoping, start at section Creating an Anonymous Hash
- Chapter: Subroutine References
- 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:
-
- Chapter: References
- Chapter: Data Structures
- Chapter: Packages, stop at section Symbol Tables
- Chapter: Modules
- Mastering Perl for Bioinformatics:
-
- Chapter 1: Modular Programming with Perl (27 pages)
- Chapter 2: Data Structures and String Algorithms (34 pages)
- Learning Perl:
-
- Bonus reading for everyone:
-
- 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:
-
- Chapter: Objects, stop at section Instance Destructors and jump to Managing Class Data
- Chapter: Overloading [optional]
- Chapter: Tied Variables [optional]
- Mastering Perl for Bioinformatics:
-
- Chapter 3: Object-Oriented Programming in Perl (57 pages)
- Bonus reading for everyone:
-
- WWW.Bioperl.ORG:
-
- HOWTO: SeqIO (HTML)
- HOWTO: SearchIO (HTML)
- Mastering Perl for Bioinformatics:
-
- Learning Perl:
-
- Chapter: Some Advanced Perl Techniques