Header Leaderboard Ad

Collapse

Developing programming experience for bioinformatics

Collapse

Announcement

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

  • #16
    Originally posted by ETHANol View Post
    That's it you think it is all about the program and never about the biology. Wake up and realize that a lot of people have other interests then you, which can be better served by learning one of these languages you despise so much. I am a wet lab scientist, I would be a total wast of my time to learn C++, while some Unix, Perl and R are extremely useful.
    Well, go study something else then, and quit whining about the realities PERL's lack of merit.

    Comment


    • #17
      Why must you be such a troll.

      Normally, I would ignore such blatant trolling but being a confused molecular biologist not so long ago I thought it was important for this guy to understand what we are dealing with here, i.e. trolling and not useful information.

      rskr, I'm done you win. All interpreted languages are without merit and you cannot be a good scientist if you use them. People that program in C++ are superior.
      --------------
      Ethan

      Comment


      • #18
        Originally posted by ETHANol View Post
        Why must you be such a troll.

        Normally, I would ignore such blatant trolling but being a confused molecular biologist not so long ago I thought it was important for this guy to understand what we are dealing with here, i.e. trolling and not useful information.

        rskr, I'm done you win. All interpreted languages are without merit and you cannot be a good scientist if you use them. People that program in C++ are superior.
        I gave my "opinion", which has been attacked by people who can't tell an integer from a char, and obviously have some stake in having people believe certain ways about certain languages, these languages which they do not even know. For example that "C has a very long development time"(it probably does if you don't know it in the first place. Or that "C++ programmers aren't interested in biology". etc. Or that "C++ is poor career choice." Or "I believe the interpreted languages are without merit", I said lack of merit, not without merit. I use interpreted languages, however there are many a program which I wish were written in C++ instead, a prime example are the AMOS tools that didn't scale to high-throughput sequencing. If the programs had been written in C++ they would have been better.

        So I would like an apology if you have the time, since many of the things you said were not true and offensive to me.

        Comment


        • #19
          Me too

          Would like to weigh in on the side of rskr. As a biologist employed by hard core computer scientists, they do their thing and I do mine to complete our deliverables. True, we mostly find each other's science mostly boring and I admit I am not even motivated to learn Linnux or shell scripting or much else that would contribute to making me a practicing bioinformaticist. I strongly believe biology totally needs core computational scientists as allies to provide us their perspectives and facilitations to add to and progress our own field. Sometimes the realizations I arrive at here about biological scientists are shameful= we do not yet have a global, uniform and systematic way to name new genes and to mention practicing the use of a gene ID number over some letter symbol is talking to the wall, for example.

          Comment


          • #20
            ... I said lack of merit, not without merit...
            A rather pedantic difference, if you ask me. But maybe we shouldn't expect anything else from a person who knows the difference between an 'int' and a 'char'. :-)

            Given the number of people on this forum for whom American English is not their first language I think we should allow a bit of leeway for the subtle differences in stating their opinions.

            BTW: I agree with "dpryan". Learn the shell. Learn Perl/Python (or maybe Ruby). Learn R. Learn C. As for the differences between the 4 -- R is the most different in syntax. The other 3 are similar enough to be easy to pick up once you know one of them (although all are hard to master.)

            Comment


            • #21
              "...the difference between an 'int' and a 'char'."

              An ent (sic int) is a tree-like giant of Middle Earth; a char is a tasty cold-water fish.

              (Sorry, I'm a little punchy from lack of sleep)

              Comment


              • #22
                I normally think you'd need a good command over unix shell, your choice of scripting language (Perl/Pythin/Ruby) and one object oriented programming language. A decent understanding of SQL queries might be pretty helpful as well depending on the kind of set up you work in.

                However for a biologist, writing bioinformatics software in C will be a very steep learning curve, mainly due to understanding memory management, not many computer science majors have a good command over it, so java is a much friendlier programming language which is well used around bioinformatics software.

                Comment


                • #23
                  Originally posted by rskr View Post
                  In a forward looking manner I wouldn't bother with Perl/Python/Java they are mostly just fads and any location you might want to work is just as likely to use the one you don't know, for no other reason than the CEO liked the monty python jokes or coffee. These scripting languages are easy enough to pick up if you know how to program in C, and most cool molecular dynamics simulators are in C for obvious performance reasons. Unix command line utilities are very handy for getting things done, and PERL and Python both draw heavily on the conventions so if you encounter a script done in either of these you should be able to figure out what it does(knowing linux that is).
                  The distinction between "scripting languages" and "real languages" is a silly one, propagated by snobs. Suggesting that Perl is a fad when it has contributed solidly to science for over 20 years is more than a bit silly. Java is core to using a number of modern high performance frameworks such as Hadoop. The Broad's GATK is entirely in Java.

                  I am a biologist first & program mostly in Perl, because it fits my brain well. So did C#, which I suspect you would also denigrate -- and I wrote some very sophisticated dynamic programming algorithms (if I do say so myself) in C#.

                  For most biologists, the extra bookkeeping required by C/C# isn't worth the execution speed advantage. Many other languages offer higher levels of abstraction that are a better fit to their line of thinking.

                  Ultimately, if you have the time it is worth exploring multiple languages, as many people find that there are a subset that fit their brain well. A rare few individuals are excellent at most. For me, Perl & C# have been the best fits, with Scala probably just missing out.

                  It's also worth contemplating the huge fraction of security holes in the world that are due to buffer overflow, an easy error to make in C/C++ and a challenging one to make in languages which supply memory management. It's also useful to think of all the poor user interfaces in the world, such as entry boxes for social security numbers or credit cards which do not accept human-friendly punctuation or spacing, that are there because it was hard to do in C or a similar language, and so trivial to do in Perl that almost nobody could be too lazy to do them.

                  Biologists & hard core computer scientists need to forge links, but I've always found it was the polylingual & inclusive computer whizzes who were a joy to work with; language snobs are likely to have other motes in their eyes which will interfere with collaborations.

                  Comment


                  • #24
                    I'm actually in the same position as Greenhilly, I have started seriously programming about a month ago with background knowledge in Python and bash. My work has been in bash and R though. I use R for calculations and I use bash for data formatting and pipe lining. Eventually I do hope to learn some C for writing functions but I see that as a while away.

                    Where does Perl/Python fit into the mix?

                    Comment


                    • #25
                      Originally posted by Artem View Post
                      Where does Perl/Python fit into the mix?
                      They are a more powerful glue than Bash while being an easier language than C.

                      A person can write multi-hundred line Bash routines but at some point the scripts become hard to maintain and expand at which point you should use Perl/Python unless you wish to go into the complexities of C/C++.

                      BTW: My longest bash script is 430 lines and is used to set up ABySS runs in various combinations of paired-end and single-end runs. My Perl scripts can run many times that length.

                      As I have said before, I consider 'R' to be a different path than bash/perl/python/C. Those languages are similar enough to have a common way of thinking. 'R' is all about statistical computing.
                      Last edited by westerman; 05-30-2012, 10:23 AM. Reason: Added a comment about 'R'.

                      Comment


                      • #26
                        I have used a travel agent work few years

                        Comment


                        • #27
                          Originally posted by krobison View Post
                          It's also worth contemplating the huge fraction of security holes in the world that are due to buffer overflow, an easy error to make in C/C++ and a challenging one to make in languages which supply memory management.
                          In terms of security holes there is a reason no one uses PERL for web development, even though that is what it was originally designed for. Oops my input field has an @ or a $ in it.
                          Originally posted by krobison View Post
                          It's also useful to think of all the poor user interfaces in the world, such as entry boxes for social security numbers or credit cards which do not accept human-friendly punctuation or spacing, that are there because it was hard to do in C or a similar language, and so trivial to do in Perl that almost nobody could be too lazy to do them.
                          A) It is funny that people will spend tens of years programming languages that take five minutes to learn yet spend hours a day waiting for the programs to run.

                          B) Don't write thousands of lines of code in bash or perl they aren't designed for it. They are weakly typed and don't take advantage of compiler checking, not to mention the languages don't facilitate porting to many platforms.

                          Comment


                          • #28
                            Originally posted by greenhilly View Post
                            I have an extensive molecular biology background but am relatively new to bioinformatics. Would like to extend my computational/programming skills to maximize utility in analyzing sequencing and other high-throughput data, as well as to improve my own marketability.

                            Many job postings refer to some combination of Perl/Python/C++/Java experience. Any suggestions regarding where to focus effort, particularly in a forward-looking manner?

                            Thanks for any suggestions.
                            Please note that bioinformatics can be done at various levels. Here is my modest attempt to answer your question.

                            http://www.homolog.us/blogs/2011/07/...matics-part-i/

                            http://www.homolog.us/blogs/2011/07/...atics-part-ii/

                            Searching at a website for folding of a set of miRNA sequences is bioinformatics. Writing server side code for the program that does that folding is also bioinformatics. Analyzing hundreds of expression numbers in excel or R is bioinformatics as well. Those three tasks take three different skills.
                            Last edited by samanta; 06-11-2012, 12:54 PM.
                            http://homolog.us

                            Comment


                            • #29
                              Hi Samanta,
                              Two very good links, thanks for the posts.

                              Comment


                              • #30
                                Originally posted by rskr View Post
                                A) It is funny that people will spend tens of years programming languages that take five minutes to learn yet spend hours a day waiting for the programs to run.

                                B) Don't write thousands of lines of code in bash or perl they aren't designed for it. They are weakly typed and don't take advantage of compiler checking, not to mention the languages don't facilitate porting to many platforms.
                                I don't think the majority of people really care. I know I don't. I'm first and foremost a biologist. Sequencing is just a tool. Bioinformatics is just a tool. The real scientific question is the biology, not which is the best programming language. 10 years from now C and most of the bioinformatics will be outdated and lie unused, sequencing will be completely different, but the biology will remain. I think most of the hard core computer scientists here get that and certainly the biologists do. For most of us it is a waste of time writing new programs or rewriting old ones in a different language. It is far far smarter spending an extra hour of my time reusing a slightly slower program written by someone else in perl or python or java and getting my answer that week than spending a year trying to develop something completely new and then getting scooped by the guy who focused on the biology.

                                I've collaborated with enough computer scientists to know that it typically goes one of two ways:

                                1) They reuse tools already out there, which would be no different than what I could do on my own.

                                or

                                2) They want to develop something completely new and then I don't get my answer for 6 months, when I could have had it within the week and begun doing the follow up experiments.

                                So I have come to the conclusion that if I am going to collaborate to have that nice new program written in C, I'd rather do my own work and get that published and let the Computer Scientist develop a program around already published data. Because if I get scooped waiting around that long, I'm the one whose screwed.
                                Last edited by chadn737; 06-11-2012, 02:08 PM.

                                Comment

                                Latest Articles

                                Collapse

                                • seqadmin
                                  A Brief Overview and Common Challenges in Single-cell Sequencing Analysis
                                  by seqadmin


                                  ​​​​​​The introduction of single-cell sequencing has advanced the ability to study cell-to-cell heterogeneity. Its use has improved our understanding of somatic mutations1, cell lineages2, cellular diversity and regulation3, and development in multicellular organisms4. Single-cell sequencing encompasses hundreds of techniques with different approaches to studying the genomes, transcriptomes, epigenomes, and other omics of individual cells. The analysis of single-cell sequencing data i...

                                  01-24-2023, 01:19 PM
                                • seqadmin
                                  Introduction to Single-Cell Sequencing
                                  by seqadmin
                                  Single-cell sequencing is a technique used to investigate the genome, transcriptome, epigenome, and other omics of individual cells using high-throughput sequencing. This technology has provided many scientific breakthroughs and continues to be applied across many fields, including microbiology, oncology, immunology, neurobiology, precision medicine, and stem cell research.

                                  The advancement of single-cell sequencing began in 2009 when Tang et al. investigated the single-cell transcriptomes
                                  ...
                                  01-09-2023, 03:10 PM

                                ad_right_rmr

                                Collapse
                                Working...
                                X