Your research has generated gigabytes of data and now you need to analyse it. You hate using spreadsheets but it is all you know, so what else can you do? Unix and Perl to the Rescue! will transform how you work with large and complex data sets, teaching you powerful programming tools for slicing and dicing data to suit your needs. Written in a fun and accessible style, this step-by-step guide will inspire and inform non-programmers about the essential aspects of Unix and Perl. It shows how, with just a little programming knowledge, you can write programs that could save you hours, or even days. No prior experience is required and new concepts are introduced using numerous code examples that you can try out for yourself. Going beyond the basics, the authors touch upon many broader topics that will help those new to programming, including debugging and how to write in a good programming style.
Part I. Introduction and Background:
1. Introduction
2. How to use this book
Part II. Installing Unix and Perl:
3. What do I need in order to learn Unix and Perl?
4. Installing Linux on a PC
5. Installing a code editor
Part III. Essential Unix:
6. Introduction to Unix
7. The Unix terminal
8. The Unix command prompt
9. Your first Unix command
10. The hierarchy of a Unix file system
11. Finding out where you are in the filesystem
12. How to navigate a Unix filesystem
13. Absolute and relative paths
14. Working with your home directory
15. The Unix shell
16. Environment variables
17. Introduction to command-line options
18. Main pages
19. Working with directories
20. The importance of saving keystrokes
21. Moving and renaming files
22. Moving and renaming directories
23. How to remove files
24. How to copy files and directories
25. Working with text files
26. Introduction to aliases
27. Editing text files
28. Automating Unix commands
29. How to hide files and find hidden files
30. Creating a configuration file
31. Programming with Unix
32. Unix file permissions
33. How to specify which directories contain programs
34. Creating useful shell scripts
35. Unix summary
Part IV. Essential Perl:
36. Hello world
37. Scalar variables
38. Use warnings
39. Maths and functions
40. Perl vs perl
41. Conditional statements
42. Use strict
43. Stopping programs
44. Working with strings
45. Dealing with special characters
46. Matching operators
47. The transliteration operator
48. List context
49. Introduction to arrays
50. Array manipulation
51. The @ARGV array
52. Defined and undefined variables
53. Sorting
54. Introduction to loops
55. More loops
56. Loop control
57. Data input and output
58. Reading and writing files
59. Introduction to hashes
60. Working with hashes
61. Introduction to regular expressions
62. Regular expression metacharacters
63. Working with regular expressions
64. Interacting with other programs
65. Using functions and subroutines
66. Returning data from a subroutine
67. Part IV summary
Part V. Advanced Unix:
68. Introduction to advanced Unix
69. Introduction to process control
70. The grep command
71. Viewing, and controlling, program output
72. Redirecting input and output
73. Standard error
74. Connecting commands with pipelines
75. Advanced text manipulation
Part VI. Advanced Perl:
76. Regular expressions revisited
77. Function libraries
78. References and 2-dimensional arrays
79. Records and other hash references
80. Using references with subroutines
81. Complex data structures
82. Adding command-line options
83. OOP basics
84. CPAN
Part VII. Programming Topics:
85. Debugging strategies
86. Common error messages
87. Code beautification
88. Abstraction
89. Data management
90. Documentation
91. Revision control
92. Working with other peoples' data
93. Getting help
Appendix
Index
Keith Bradnam is a project scientist in the Genome Center at the University of California, Davis. He has extensive experience working with model organism databases and spent four years as a project leader at WormBase, helping to develop this important bioinformatics resource. Ian Korf is an Associate Professor in Molecular and Cellular Biology at the University of California, Davis. His research seeks to understand structure and function in genomic DNA. He has developed new tools for gene prediction, co-authored the only book devoted to BLAST and helped in the development of BioPerl.