Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

  • #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


    • #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


      • #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


        • #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


          • #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


            • #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


              • #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 users, this … - Selection from Learning Perl, 6th Edition [Book]


                and drop in on this community:

                A community committed to sharing Perl knowledge and coding tips. The site contains questions and answers, useful snippets, and a library of code.
                Last edited by RDW; 11-04-2011, 01:10 PM. Reason: On 2nd thoughts, let's keep the links completely Modern!

                Comment


                • #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


                  • #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
                    Beginning to learn Python and in need of free Python materials? There are a number of wonderful Python resources online for free. Here is a list of free python eBooks that can be either read online or downloaded it as pdf files and read at your leisure. Although the Python Documentation is a great resource, […]

                    Comment


                    • #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


                      • #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 open source … - 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, but … - 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


                        • #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


                          • #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


                            • #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

                              • seqadmin
                                Strategies for Sequencing Challenging Samples
                                by seqadmin


                                Despite advancements in sequencing platforms and related sample preparation technologies, certain sample types continue to present significant challenges that can compromise sequencing results. Pedro Echave, Senior Manager of the Global Business Segment at Revvity, explained that the success of a sequencing experiment ultimately depends on the amount and integrity of the nucleic acid template (RNA or DNA) obtained from a sample. “The better the quality of the nucleic acid isolated...
                                03-22-2024, 06:39 AM
                              • seqadmin
                                Techniques and Challenges in Conservation Genomics
                                by seqadmin



                                The field of conservation genomics centers on applying genomics technologies in support of conservation efforts and the preservation of biodiversity. This article features interviews with two researchers who showcase their innovative work and highlight the current state and future of conservation genomics.

                                Avian Conservation
                                Matthew DeSaix, a recent doctoral graduate from Kristen Ruegg’s lab at The University of Colorado, shared that most of his research...
                                03-08-2024, 10:41 AM

                              ad_right_rmr

                              Collapse

                              News

                              Collapse

                              Topics Statistics Last Post
                              Started by seqadmin, Yesterday, 06:37 PM
                              0 responses
                              8 views
                              0 likes
                              Last Post seqadmin  
                              Started by seqadmin, Yesterday, 06:07 PM
                              0 responses
                              8 views
                              0 likes
                              Last Post seqadmin  
                              Started by seqadmin, 03-22-2024, 10:03 AM
                              0 responses
                              49 views
                              0 likes
                              Last Post seqadmin  
                              Started by seqadmin, 03-21-2024, 07:32 AM
                              0 responses
                              66 views
                              0 likes
                              Last Post seqadmin  
                              Working...
                              X