Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • ETHANol
    Senior Member
    • Feb 2010
    • 308

    Perl or Python

    I'm a molecular biologist that has gotten sucked into the world of next-generation sequencing. I'm mostly interested epigenetics related stuff like ChIP-seq, RNA-seq, RRBS-seq, 4C-seq, etc. It seems learning some perl or python could save me some time and increase my ability to answer the questions I want to answer.

    Would you recommend I learn Perl or Python? Does one language have advantages over the other? Is one easier then the other to learn?
    --------------
    Ethan
  • lukas1848
    Member
    • Jun 2011
    • 54

    #2
    If you follow this great Unix and Perl tutorial, your Perl skills should be at a good level to start with. Since I don't know of any similar script for learning Python, I'd just recommend learning Perl...

    But I'd say that for RNAseq, you should definitly spend just as much time on learning R as you spend on learning Perl or Python.

    Comment

    • Richard Finney
      Senior Member
      • Feb 2009
      • 701

      #3
      Both are adequate and relatively easy to understand. You'll find "modules" addressing nextgen problems in both. The downsides are that they are interpreted languages and tend to struggle with the staggering volume of data in nextgen datasets ... when programs are implemented strictly in that language and not calling external modules, often written in a "lower" level language. You'll find fans (and fanboys) of both so don't be surprised if a lurid prose battle erupts below.

      If I had to pick, I'd go with Python, strictly based on the comp-sci grad students I've talked with think it's "cool" and Perl stodgy ... something that hackers like me tinkered with back in the stone age: the 1990s!!! A bad reason, I know.

      Personally I wish something like Affy Power Tools (which became the toolset for old school array data) would emerge for next gen and I could use any language I wanted to play with the output, like R, or Java, or C, or awk and sed and ...

      That day is coming, we got part of it now: samtools.

      Comment

      • ETHANol
        Senior Member
        • Feb 2010
        • 308

        #4
        I went through the tutorial UNIX and Perl tutorial for Biologists, which took a lot less time and was easier then I had thought. It really opened my eyes to the laborious work arounds I have implemented to address lack of programming knowledge. Before I spent more time and effort I thought I'd try to make a more informed decision on where to focus my efforts. Of course I could just go back to watching Jersey Shore before I go to sleep but that is twice as boring as the Perl tutorial.

        I am aware of the fanboy issues involved but I assume there are some real differences as well.

        As for R and Bioconductor, it's been kind of an off and on mostly unsuccessful project of mine. I still haven't found a good lesson plan for R. I find the vignettes from Bioconductor to be very ambiguous. But point well taken. I'll get back on R. Thanks.
        --------------
        Ethan

        Comment

        • Richard Finney
          Senior Member
          • Feb 2009
          • 701

          #5
          What is the state of R/bioconductor/nextgen ?

          I was just thinking yesterday, "I bet those R guys have gotten around to doing something about nextgen". As many many of you know, google has become almost useless over the last 3 years, and I didn't find much. ETHANol's comments are pretty good: useless vignettes. Is there a good link to nextgen and R somewhere?

          Comment

          • damiankao
            Member
            • Jan 2010
            • 49

            #6
            You can probably do most of it with R. I personally prefer python to perl. I think it's easier to learn too.

            Comment

            • rubyb
              Junior Member
              • Jun 2011
              • 6

              #7
              Hi Ethanol,

              I would say Python. Easier to learn, more readable & most of all object oriented (though you can do some kind of OO with perl).

              DAGOBAH -- DAY
              With Yoda strapped to his back, Luke climbs up one of
              the many thick vines that grow in the swamp until he
              reaches the Dagobah statistics lab. Panting heavily, he
              continues his exercises -- grepping, installing new
              packages, logging in as root, and writing replacements for
              two-year-old shell scripts in Python.

              YODA: Code! Yes. A programmer's strength flows from code
              maintainability. But beware of Perl. Terse syntax... more
              than one way to do it... default variables. The dark side
              of code maintainability are they. Easily they flow, quick
              to join you when code you write. If once you start down the
              dark path, forever will it dominate your destiny, consume
              you it will.

              LUKE: Is Perl better than Python?

              YODA: No... no... no. Quicker, easier, more seductive.

              LUKE: But how will I know why Python is better than Perl?

              YODA: You will know. When your code you try to read six months
              from now.

              Comment

              • RDW
                Member
                • Oct 2008
                • 63

                #8
                I'm a Perl fan, but they are both excellent languages, and which you choose is largely a matter of taste. There's a core philosophical difference, as expressed in the Perl slogan 'there's more than one way to do it' (i.e., the language often allows you to choose between multiple methods of achieving the same thing). This is seen by Perl hackers as a major advantage (the language adapts to you), but Pythonistas tend to view things differently (perhaps freedom is dangerous, if it allows you to make bad choices). But a good, disciplined programmer is going to write clear, maintainable code in either language.

                You could make a pragmatic decision based on what your colleagues are using, or on the amount (and quality) of available code for your particular applications. Or you could try some tutorials and see which you prefer. I'll leave it to the Python guys to point you towards the best places to learn that language. For Perl there are quite a few places to avoid - old tutorials that teach bad habits that date back to the Perl 4 days, and will have you writing the sort of ugly code that some people imagine is standard Perl. Unfortunately, these tend to be some of the top Google hits when people are looking for tutorials! Instead, you might take a look at this:

                Take control of your programming with Modern Perl. Perl programmers solve problems and get things done. Perl’s the secret weapon they reach for when they have to solve a problem right now. Modern Perl takes that productivity to the next level. Learn the philosophy of Perl to unlock the language’s full power. Explore the best the CPAN has to offer. See how new features of Perl 5.20 and 5.22 will improve your code and help you finish your job faster—and have more fun too.

                A Perl blog which explores how Modern Perl helps how great programmers solve their problems quickly and effectively.


                and get the (up to date) 6th edition of this classic book:

                If you're just getting started with Perl, this is the book you want—whether you're a programmer, system administrator, or web hacker. Nicknamed "the Llama" by two generations of... - Selection from Learning Perl, 6th Edition [Book]


                and drop in on this community:

                Last edited by RDW; 11-04-2011, 01:10 PM. Reason: On 2nd thoughts, let's keep the links completely Modern!

                Comment

                • adaptivegenome
                  Super Moderator
                  • Nov 2009
                  • 436

                  #9
                  I vote PERL as it is great for simple parsing tasks. Also it is incredibly simple to learn. Python is more structured and more readable but personally if I am not hacking together a quick script in PERL I usually jump straight to C/C++.

                  Comment

                  • rnaseek
                    Member
                    • Nov 2011
                    • 22

                    #10
                    Had to chime in, even though it is too late now. For beginners, Python is a better option to start off. Che out a couple of free python books available online

                    Comment

                    • ETHANol
                      Senior Member
                      • Feb 2010
                      • 308

                      #11
                      Thanks everyone. Special thanks for the links to the tutorials. Most of the stuff that comes up with Google is garbage. I kind of got going with perl just because of a nice tutorial. I think the bottom line is take a look at both and see what I fall into better. But python sounds a little more organized. All I really plan on doing is pretty trivial stuff so in the end it probably doesn't matter much. But it's still nice to here some opinions.

                      If anyone knows a good R tutorial oriented towards biologists (or even better next gen sequencing), I'd like to know. Or really anything good. Something to help make sense of the cryptic Bioconductor packages.
                      --------------
                      Ethan

                      Comment

                      • RDW
                        Member
                        • Oct 2008
                        • 63

                        #12
                        The Bioconductor docs tend to assume a fair bit of R knowledge, so a general tutorial/reference is probably what you need. The official Introduction to R is quite good, but pretty terse:



                        For a much more comprehensive book, take a look at:


                        Why learn R? Because it's rapidly becoming the standard for developing statistical software. R in a Nutshell provides a quick and practical way to learn this increasingly popular... - Selection from R in a Nutshell [Book]


                        I have and like this (but note that reviewers have spotted some typos, presumably to be fixed in the 2nd edition scheduled for next April).

                        Here's one I can't vouch for yet, but looks like it will be my next purchase:

                        With more than 200 practical recipes, this book helps you perform data analysis with R quickly and efficiently. The R language provides everything you need to do statistical work,... - Selection from R Cookbook [Book]



                        Incidentally, some of the O'Reilly Perl, Python and R books (including 'R in a nutshell', the almost up to date 5th edition of 'Learning Perl', and the excellent 'Perl Cookbook', though not the 'R Cookbook') are available as very cheap iPhone apps, basically a proprietary reader packaged with an .epub of the text. You can buy these apps through iTunes even if you don't have an iPhone or iPad, then liberate the books as standard epubs that can be read anywhere just by unzipping the package and re-zipping the .epub content alone. This 'hack' is officially sanctioned by the publisher:


                        Comment

                        • Zigster
                          Jeremy Leipzig
                          • May 2009
                          • 117

                          #13
                          Originally posted by Richard Finney View Post
                          I was just thinking yesterday, "I bet those R guys have gotten around to doing something about nextgen". As many many of you know, google has become almost useless over the last 3 years, and I didn't find much. ETHANol's comments are pretty good: useless vignettes. Is there a good link to nextgen and R somewhere?
                          I don't know whether to laugh or cry

                          --
                          Jeremy Leipzig
                          Bioinformatics Programmer
                          --
                          My blog
                          Twitter

                          Comment

                          • Richard Finney
                            Senior Member
                            • Feb 2009
                            • 701

                            #14
                            "I don't know whether to laugh or cry"

                            Yeah, I get that feeling whenever I type in the example of an R vignette. I can't count the number of times I've had to get the source and type in printfs to figure 'em out. Gets tedious after a while.

                            Comment

                            • Mark
                              Member
                              • Nov 2008
                              • 54

                              #15
                              Though I am just learning python and have many years experience with perl, what I like about perl is its flexibility. Sure, certain things in python are easy if a function exists to do exactly what you want but considerably more difficult if not. Perl focuses more on the tools to concisely create your own functionality tailored to your specific needs.

                              Comment

                              Latest Articles

                              Collapse

                              • SEQadmin2
                                Nine Things a Sample Prep Scientist Thinks About Before Sequencing
                                by SEQadmin2


                                I’m not a sequencing expert. I’m a purification scientist who uses NGS to evaluate workflows my group develops. With this perspective, we think about the sample first and the NGS workflow second. The sequencer is an exceptionally honest reporter, but it can only report on what you give it, so whether you get clean, interpretable data from an NGS workflow is largely determined before you begin.


                                Here are nine questions we think about, in roughly the order they matter, before...
                                06-18-2026, 07:11 AM
                              • SEQadmin2
                                From Collection to Sequencing: Why Sample Preparation and Preservation Define Sequencing Data
                                by SEQadmin2


                                Data variability is still an issue in sequencing technologies despite the advances in reproducibility and accuracy of these platforms. But the problem does not originate in the sequencing itself, but in the previous steps, before the sample reaches the sequencer.


                                The first step is collection, followed by preservation and sample preparation for analysis. Most scientists overlook those steps, but not being careful might just be skewing the experiment’s results.
                                ...
                                06-02-2026, 10:05 AM
                              • SEQadmin2
                                Single-Cell Sequencing at an Inflection Point: Early Impacts of New Platforms and Emerging Trends
                                by SEQadmin2


                                With the launch of new single-cell sequencing platforms in 2026, the field stands at an exciting inflection point. This article surveys the most impactful advances in the field and discusses how they’re reshaping research in cancer, immunology, and beyond.


                                Introduction

                                Single-cell sequencing technologies have undergone remarkable advances over the past decade, transitioning from low-throughput experimental approaches to highly scalable platforms capable of...
                                05-22-2026, 06:42 AM

                              ad_right_rmr

                              Collapse

                              News

                              Collapse

                              Topics Statistics Last Post
                              Started by SEQadmin2, 06-17-2026, 06:09 AM
                              0 responses
                              20 views
                              0 reactions
                              Last Post SEQadmin2  
                              Started by SEQadmin2, 06-09-2026, 11:58 AM
                              0 responses
                              38 views
                              0 reactions
                              Last Post SEQadmin2  
                              Started by SEQadmin2, 06-05-2026, 10:09 AM
                              0 responses
                              45 views
                              0 reactions
                              Last Post SEQadmin2  
                              Started by SEQadmin2, 06-04-2026, 08:59 AM
                              0 responses
                              49 views
                              0 reactions
                              Last Post SEQadmin2  
                              Working...