Beginning Perl for Bioinformatics

(Source Template)


reviews/begin_perl_for_bio.xml

    <?xml version="1.0"?>
    
    <page title="Beginning Perl for Bioinformatics" keywords="">
    
    <item>
      <p>Author: James Tisdall</p>
      <p>ISBN: <isbn>0-596-00080-4</isbn></p>
      <p>Publisher: O'Reilly</p>
      <p>Reviewed by: Chris Devers</p>
    </item><item>
    <p>
    As the banner above the title of James Tisdall's _Beginning Perl
    for Bioinformatics_ indicates, this book is "an introduction to
    Perl for biologists". What the banner doesn't mention is that it's
    also an introduction to biology and bioinformatics for Perl
    programmers, and it's also an introduction to both Perl *and*
    biology for people that have never really been exposed to either
    field. The banner may not mention this, but the author has clearly
    thought a lot about making one book to please these different
    audiences, and he has pulled it off nicely, in a way that manages
    to explain basic topics to people learning about each field for
    the first time while not coming off as condescending to slow-paced
    to those that might already have some exposure to it.
    </p><p>
    Superficially, this book isn't all that different from a lot of
    introductory Perl books: the Perl material starts out with an
    overview of the language, followed by a crash course on installing
    Perl, writing programs, and running them. From there, it goes on
    to introduce all the various language constructs, from variables
    to statements to subroutines, that any programmer is going to have
    to get comfortable with. Pretty run of the mill so far. The
    interesting thing is the two assumptions that all of this is written
    with: [1] that the reader may never written a computer program
    before, and so needs to learn how to engineer a robust application
    that will do its job efficiently &amp; well, and [2] that the reader
    wants to know how to write programs that can solve a series of
    biological problems, specifically in genetics and proteomics.
    </p><p>
    As such, there is at least as much material about the problems that
    a biologist faces and the places she can go to get the data she
    needs as there is about the issues that a Perl programmer needs to
    be aware of. The author introduces the reader to the basics of DNA
    chemistry, the cellular processes that convert DNA to RNA and then
    proteins, and a little bit about how &amp; why this is important to
    the biologist and what sorts of information would help a biologist's
    research. The main sources of public genetic data are noted, and
    the often confusing -- and *huge* -- datafiles that can be obtained
    from these sources are examined in detail.
    </p><p>
    With the code he presents for solving these problems, Tisdall makes
    a point of not falling into the indecipherable Perl trap:  this is
    a useful language, well-suited to the essentially text-analysis
    problems that bioinformatics means, and he doesn't want to encourage
    the kind of dense, obscure, idiomatic coding style that has given
    Perl an undeservedly bad reputation. Some of Perl's more estoeric
    constructs are useful, and they show up when they're needed, but
    they're left out when they would only serve to confuse the reader.
    This is a good decision.
    </p><p>
    Rather, the focus is on teaching readers how to solve biological
    problems with a carefully developed library of code that happens
    to leverage some of Perl's most useful properties. The result is
    pretty much a biologist's edition of Christiansen &amp; Torkington's
    _Perl Cookbook_ or Dave Cross' _Data Munging With Perl_. The author
    presents a series of issues that a working bioinformaticist might
    have to deal with daily -- parsing over BLAST, GenBank, and PDB
    files, finding relevant motifs in that parsed data, and preparing
    reports about all of it. If a bioinformaticist's job is to be able
    to report on interesting patterns from these various sources, then
    the programming techniques that Tisdall explains in clear, easy to
    follow prose would be an excellent way to go about doing it.
    </p><p>
    And when I say "programming techniques", note that I'm not specifically
    mentioning Perl. The code in this book is clear and organized, and
    all programs are carefully decomposed into logical subroutines that
    are then packaged up into a library file that each later sample
    program gets to draw from. Each new program typically contains a
    main section of a dozen lines of code or less, followed by no more
    than two or three new subroutines, along with calls to routines
    written earlier and called from the BeginPerlBioinfo.pm that is
    built up as the book progresses. This sample is typically proceeded
    by a description of what it's trying to accomplish and followed by
    a detaild description of how it was done, as well as suggestions
    of other ways that might have worked or not worked.
    </p><p>
    This modular approach is fantastic -- too many Perl books seem to
    focus so heavily on the mechanics of getting short scripts to work
    that they lose sight of how to build up a suite of useful methods
    and, from those methods, to develop ever more sophistocated
    applications. It isn't quite object oriented programming, but that's
    clearly where Tisdall is headed with these samples, and given a
    few more chapters he probably would have started formally wrapping
    some of this code into OO packages.
    </p><p>
    If I have a complaint with the book, that's it: everything is good,
    but it ends too soon. Seemingly important topics such as OO
    programming, XML, graphics (charts &amp; GUIs), CGI, and DBI are
    mentioned only in passing, under "further topics" in the last
    chapter. I also have a feeling that some of the biology was shorted,
    and the book barely touches upon the statistical analysis that
    probably is a critical aspect of the advanced bioinformaticist's
    toolbox. I can understand wanting to keep the length of a beginner's
    book relatively short, and this was probably the right decision,
    but it would have been nice to see some of the earlier sample
    problems revisited in these new contexts by, for example, formally
    making an OO library, showing a sample program that provided a web
    interface to some of the methods already written, or presenting
    code that presented results as XML or exchanged them with a database.
    </p><p>
    But these are minor quibbles, and if the reader is comfortable with
    the material up to this point, she shouldn't have a hard time
    figuring out how to go a step further and do these things alone.
    It's a solid book, and one that should be able to get people learning
    Perl, genetics, or both up to speed and working on real world
    problems quickly.
    </p>
    
    
    
    	</item>
    </page>
    
    

reviews/begin_perl_for_bio.xml

    <?xml version="1.0"?>
    
    <page title="Beginning Perl for Bioinformatics" keywords="">
    
    <item>
      <p>Author: James Tisdall</p>
      <p>ISBN: <isbn>0-596-00080-4</isbn></p>
      <p>Publisher: O'Reilly</p>
      <p>Reviewed by: Chris Devers</p>
    </item><item>
    <p>
    As the banner above the title of James Tisdall's _Beginning Perl
    for Bioinformatics_ indicates, this book is "an introduction to
    Perl for biologists". What the banner doesn't mention is that it's
    also an introduction to biology and bioinformatics for Perl
    programmers, and it's also an introduction to both Perl *and*
    biology for people that have never really been exposed to either
    field. The banner may not mention this, but the author has clearly
    thought a lot about making one book to please these different
    audiences, and he has pulled it off nicely, in a way that manages
    to explain basic topics to people learning about each field for
    the first time while not coming off as condescending to slow-paced
    to those that might already have some exposure to it.
    </p><p>
    Superficially, this book isn't all that different from a lot of
    introductory Perl books: the Perl material starts out with an
    overview of the language, followed by a crash course on installing
    Perl, writing programs, and running them. From there, it goes on
    to introduce all the various language constructs, from variables
    to statements to subroutines, that any programmer is going to have
    to get comfortable with. Pretty run of the mill so far. The
    interesting thing is the two assumptions that all of this is written
    with: [1] that the reader may never written a computer program
    before, and so needs to learn how to engineer a robust application
    that will do its job efficiently &amp; well, and [2] that the reader
    wants to know how to write programs that can solve a series of
    biological problems, specifically in genetics and proteomics.
    </p><p>
    As such, there is at least as much material about the problems that
    a biologist faces and the places she can go to get the data she
    needs as there is about the issues that a Perl programmer needs to
    be aware of. The author introduces the reader to the basics of DNA
    chemistry, the cellular processes that convert DNA to RNA and then
    proteins, and a little bit about how &amp; why this is important to
    the biologist and what sorts of information would help a biologist's
    research. The main sources of public genetic data are noted, and
    the often confusing -- and *huge* -- datafiles that can be obtained
    from these sources are examined in detail.
    </p><p>
    With the code he presents for solving these problems, Tisdall makes
    a point of not falling into the indecipherable Perl trap:  this is
    a useful language, well-suited to the essentially text-analysis
    problems that bioinformatics means, and he doesn't want to encourage
    the kind of dense, obscure, idiomatic coding style that has given
    Perl an undeservedly bad reputation. Some of Perl's more estoeric
    constructs are useful, and they show up when they're needed, but
    they're left out when they would only serve to confuse the reader.
    This is a good decision.
    </p><p>
    Rather, the focus is on teaching readers how to solve biological
    problems with a carefully developed library of code that happens
    to leverage some of Perl's most useful properties. The result is
    pretty much a biologist's edition of Christiansen &amp; Torkington's
    _Perl Cookbook_ or Dave Cross' _Data Munging With Perl_. The author
    presents a series of issues that a working bioinformaticist might
    have to deal with daily -- parsing over BLAST, GenBank, and PDB
    files, finding relevant motifs in that parsed data, and preparing
    reports about all of it. If a bioinformaticist's job is to be able
    to report on interesting patterns from these various sources, then
    the programming techniques that Tisdall explains in clear, easy to
    follow prose would be an excellent way to go about doing it.
    </p><p>
    And when I say "programming techniques", note that I'm not specifically
    mentioning Perl. The code in this book is clear and organized, and
    all programs are carefully decomposed into logical subroutines that
    are then packaged up into a library file that each later sample
    program gets to draw from. Each new program typically contains a
    main section of a dozen lines of code or less, followed by no more
    than two or three new subroutines, along with calls to routines
    written earlier and called from the BeginPerlBioinfo.pm that is
    built up as the book progresses. This sample is typically proceeded
    by a description of what it's trying to accomplish and followed by
    a detaild description of how it was done, as well as suggestions
    of other ways that might have worked or not worked.
    </p><p>
    This modular approach is fantastic -- too many Perl books seem to
    focus so heavily on the mechanics of getting short scripts to work
    that they lose sight of how to build up a suite of useful methods
    and, from those methods, to develop ever more sophistocated
    applications. It isn't quite object oriented programming, but that's
    clearly where Tisdall is headed with these samples, and given a
    few more chapters he probably would have started formally wrapping
    some of this code into OO packages.
    </p><p>
    If I have a complaint with the book, that's it: everything is good,
    but it ends too soon. Seemingly important topics such as OO
    programming, XML, graphics (charts &amp; GUIs), CGI, and DBI are
    mentioned only in passing, under "further topics" in the last
    chapter. I also have a feeling that some of the biology was shorted,
    and the book barely touches upon the statistical analysis that
    probably is a critical aspect of the advanced bioinformaticist's
    toolbox. I can understand wanting to keep the length of a beginner's
    book relatively short, and this was probably the right decision,
    but it would have been nice to see some of the earlier sample
    problems revisited in these new contexts by, for example, formally
    making an OO library, showing a sample program that provided a web
    interface to some of the methods already written, or presenting
    code that presented results as XML or exchanged them with a database.
    </p><p>
    But these are minor quibbles, and if the reader is comfortable with
    the material up to this point, she shouldn't have a hard time
    figuring out how to go a step further and do these things alone.
    It's a solid book, and one that should be able to get people learning
    Perl, genetics, or both up to speed and working on real world
    problems quickly.
    </p>
    
    
    
    	</item>
    </page>