Good day everyone,

I am very much interested in math, biology, and programming; ideally I would like to study bioinformatics and, as such, was wondering what languages are typically used by bioinformaticians? Particularly for fields of bioinformatics relevant to biochemistry, virology, and immunology, what are the most useful programming languages to know, as well as their strengths and limitations? (i.e. in what setting would it be better to program in C++ than Python, is R good to know and if so why, etc.)

Thank you in advance.

  • 4
    $\begingroup$ I believe many relevant pointers can be found over at biology.stackexchange.com/questions/15292/…. In short: If you're expecting to do data analysis and visualisation, R. Anything else where you work on the biology itself, Python. Everything else is unpredictable; you might end up doing modelling in Mathematica or C++, or developing plugins for FIJI in Java. $\endgroup$ – Armatus Nov 3 '18 at 22:24
  • $\begingroup$ Hi welcome to Bio.SE! This question is unfortunately off-topic here, and likely will be closed. However, in addition to the already linked post, a related discussion exists on our Meta site that might also interest you: What program(s) do biologists use for statistics? $\endgroup$ – theforestecologist Nov 5 '18 at 3:36

The languages currently popular for bioinformatics work are Python, Java, R, Perl, and BASH, though the use of Perl is gradually declining. Note that Python has become the most popular language in a general context, so it's natural that it's the most popular in bioinformatics too. Of course 'most popular' doesn't mean 'best'. Pick a computer language and I'll point you to some publication that uses that language in a bioinformatics context (perhaps excepting COBOL, and RPG).

Some bioinformaticists spend most of their time performing analyses using existing software, perhaps using a scripting language like Python or BASH to 'glue' together existing programs or to control the submission of jobs to a computational cluster. Scripts and packages using the R language are often used in these analysis pipelines to perform sophisticated statistical analysis and visualizations.

Other bioinformaticists are developing new algorthims. In these cases computational speed can be very important, so languages like C, C++, or Java are often used. However, newer languages like Go, Julia, and Rust are also used, according to the taste of the researcher. New machine learning tools are often prototyped using MATLAB.

If your interest is primarily biology (biochemistry, virology, and immunology) then you'll want to focus on learning the biology, and supplement it with Python, BASH, and R. If your interest is primarily in developing new algorithms, then focus on statistics, and computer science. You'll still want to learn Python, BASH, and R, but you'll also want to add something like C++ or Java. The good news is that once you've learned 2 or 3 computer languages, you can pick up additional languages much more easily.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.