Bioinformatics have become an indispensable part of biomedical research. With diverse *omics research topics, the needs of distinct data formats and analysis software emerge. Even life science scientists need more computing and programming skills. This book, Build Bioinformatics Solutions with Perl, R and SQL, tries to fill the gap between bioinformatics theories and practical software development skills.
The intent of this book goes well: web application as an easy-to-use interface, R for core statistics and intelligence, MySQL for data storage, and Perl as the glue for everything. In addition, this book covers software-developing topics like unit test and version control. Moreover, this book doesn’t stop here and introduce other related alternatives when appropriate. The contents are arranged with good judgement so that readers can follow and try to build their own bioinformatics solutions.
Another good attempt of the book is shown by providing relative updated information about these programming languages and their packages/modules/libraries. Thus, encouraging users to adopt newer technologies. In Perl section, Moose, the new Perl object system, and Mojolicious, a new Perl web framework, are introduced. Since fewer new Perl-related books are published in recent years, these new sections are helpful.
However, the topics of this book are too broad and diverse to be well covered in the relatively thin volume. Each topic is only briefly discussed with one to two simple demo code. It seems that the original target audience can hardly build something without other supplemental materials. I think it was difficult for the authors to determine which to be written in one introductory-level book. Therefore, the readers of the book should not stop here but use this book as a guide to other stuffs.
Another important issue relates to the choice of Perl as the main programming language instead of Python or Java or other ones. Although Perl was once No.1 of interpreted language, some features of Perl make it suboptimal for software development. The original object system of Perl provides barely minimal usage, leading to messy object implementations. Even with the advent of Moose, the object system lacks natively intuitive interface of that of Python or Java. Flexible syntax of Perl contributes to the difficulty maintaining code. Research teams have to know the quirks and pitfalls of Perl and avoid them to keep good software. New libraries and services leave Perl interface but include Python or Java ones. Perl is fast as write-once scripts and one-liners; however, not equally good for development.
This book provides some nice tutorials, serving a good starter for its readers. However, it is doubtful that whether the original goal can be achieved solely with this single volume. Curious readers should further access online manuals and tutorials as supplemental materials.