Forum:Is Software Development a key part of Bioinformatics?
7
7
Entering edit mode
9.9 years ago
xinuke ▴ 70

Do people who graduate from Bioinformatics programs, also have knowledge of software development for this field?

Is studying Bioinformatics related to software development at all?

EDIT:

How about developing/designing bioinformatics tools? Is it still out of the scope of a bioinformatician?

Software-Development • 15k views
ADD COMMENT
9
Entering edit mode
9.9 years ago
pld 5.1k

I'd imagine most people would have experience with some level of programming, although there's a difference between scripting and being a software engineer, with a large amount of room in between.

Bioinformatics is not related to software development/engineering. Bioinformatics is about using computational approaches to study biological questions that would be impossible or infeasible to approach with other methods. Software development is about developing, maintaining and supporting software.

Software development/engineering can be a useful set of skills for working in bioinformatics in the sense that you may need to develop new software to fill a gap in existing capabilities.There are plenty of people who do perfectly well in the informatics world with little to no programming. There's a large range too, some people can work with R on a package by package basis, some can work fairly well with one or more languages, some are very skilled programmers. These skills can be obtained specifically in classes or through experience gained in labs and elsewhere. For me, most of the scripts I end up writing are to streamline multiple tasks, reorganize data and do fairly simple analysis. Much of the actual work is done by software written by other people. I can and have written larger programs, but in the end I program to do the biology I want/need to do.

I think that the ability to program is and has been so important to bioinformatics because it is a relatively young field and at least partially a cultural component. The ability to program has been important because people have frequently needed to develop new capabilities as technologies have improved. I think many people view bioinformatics as being all about programming, so those who can't program don't get involved. Or, they don't consider the bioinformatics they're doing to be bioinformatics because they didn't write any code or sit in a cave lit only by the glow of several terminals. I'll agree that bioinformatics clearly attracts programmers, but I'm not sure if that's because of the chicken or the egg. When I started it was a mixture of being able to write C++ in a biology lab and being able to work on the problems at hand.

Still, I think this cultural component is a bad thing for many reasons but I don't want to get off topic.

It is already perfectly possible to do many tasks from a GUI and many more without a single bit of programming knowledge. I think in the future fewer people will come out of bioinformatics programs with decreasing amounts of computer science training but for the majority of people will have a fair amount of programming skill.

ADD COMMENT
3
Entering edit mode

I think the distinction between bioinformatics and the rest of biology will eventually disappear. I see most research in biology going the way that let's say astrophysics is done i.e. people spend some time producing/collecting data and then spend time analysing them themselves either with existing tools or by developing new ones. There will still be space for specialists but they will be working on increasingly complex problems.

ADD REPLY
0
Entering edit mode

This is an interesting viewpoint and I'm curious what motivates this idea (perhaps you work on a model species?). Though, I would disagree with the first statement. It's true that most beginning biologists are involved in all phases of their research (maybe out of necessity rather than desire) but at a higher level I don't see that. We will continue to need expert field biologists to identify animal behaviors or plant populations in the wild, we also need skilled molecular biologists to design new constructs and protocols, and we need experienced bioinformaticans to analyze the endless stream of data being generated for all those projects. I can't imagine the distinction between those fields disappearing. It seems impractical to design a large scale project (and do it in a timely manner) any other way, especially if you want to do high impact research.

ADD REPLY
0
Entering edit mode

There's a distinction to be made between large collaborative/multidisciplinary projects and more standard research projects. The distinction between fields in biology is not going to disappear, I am just stating that, as more aspects of biology are going digital, biologists in the different fields will have to adapt and learn some computational skills. As an example, in the area of cell and developmental biology, people acquire lots of microscopy images (nowadays, microscopes can spit out several terabytes of images in a few hours). These images have to be managed, converted between different formats, processed in various ways to extract relevant information that can then be statistically analyzed. It is simply not practical to have a computer scientist behind each biologist simply to run scripts to massage the data. Increasingly, cell and developmental biologists have to deal with the computational aspect of their work.

ADD REPLY
0
Entering edit mode

Thanks. This is great, and I appreciate everyone else's feedback.

Is designing and developing Bioinformatics tools a different discussion, then?

ADD REPLY
2
Entering edit mode

I don't think so. As I've said several times before on here, Bioinformatics is a huge field. Someone has to develop the tools, sure. But it's not necessary --nor desirable-- for everyone in the field to write software.

I do think that most bioinformaticians should be able to do basic coding in at least one language, though. There are just too many situations where no tool exists to provide exactly the information that's needed to answer a question. In these cases, a little coding knowledge can go a long way.

ADD REPLY
2
Entering edit mode

Think of it like this: Each tool in bioinformatics is a Lego block, a part of a larger puzzle. You need to combine them in the right way to solve any problem. Most of us play around with the blocks and create slightly larger, more reusable components with them. Some of the more algorithmically inclined of us start building custom blocks from scratch for others to use.

Like Dan says, a bit of problem solving (the thought) and programming (the language the thought is expressed in) go a long way in making your life easier.

ADD REPLY
2
Entering edit mode

YES. Biopieces is a perfect example of this line of thought.

ADD REPLY
0
Entering edit mode

So many great answers here. Thanks a lot to everyone.

Now let me ask one further question from a different scenario: What if someone is a "Software Development" Master's graduate, and has absolutely "no" knowledge of Biology and Bioinformatics. Can they get involved in the process of developing Bioinformatics tools?

ADD REPLY
2
Entering edit mode

Yes, a CS or IT person with a keen interest in the biological problem domain would be ideally suited to develop (or at least oversee the development of) a bioinformatics tool. When development is a background skill that you can call upon, the way you see problems changes, and that gives you an edge over pure biologists learning to program. So yes, pure software fellows can definitely get involved in building bioinformatics tools.

ADD REPLY
7
Entering edit mode
9.9 years ago
robert.davey ▴ 280

As others have said, software development isn't required for a life in bioinformatics, but if you can't program a bit in the shell and/or a scripting language like Perl or Python, you're going to find yourself at the bottom of a large pile of candidates who can.

I will disagree though that bioinformatics isn't related to software development/engineering. It most certainly is. Someone has to develop new algorithms for new data types, has to wrap the algorithms up into tools, has to glue tools together, has to understand how to go from experimental design to analytical robustness. If you have programming skills, you'll be in a far better place to carry out these tasks yourself.

Bioinformatics has exploded into so many spaces, especially in the last ten years, and it's true that much of the work lies in running existing tools. However more graduates are expected to do some development at least to create pipelines for automating repetitive analytical tasks over large datasets. This is why many courses teach basic programming in a scripting language to bring students up to speed with concepts such as loops, boolean logic and file processing to make them more attractive to employers.

I would say that bioinformatics is becoming more and more dependent on software, and as Dan D says, we have a great ethos of open source which benefits the whole community. Being part of that community as a developer, at whatever level, is what makes the discipline so interesting and forward thinking, IMO.

I would very much suggest that you check out training oufits such as Software Carpentry, Data Carpentry, rOpenSci and School of Data. These are great resources and opportunities to improve your skills as a bioinformatician.

ADD COMMENT
2
Entering edit mode
9.9 years ago

I don't know of a bioinformatics program that also teach software development but my knowledge in this area is limited. However, what I can tell from experience is that software development skills can come in handy when doing bioinformatics. Some bioinformatics jobs are even essentially about software development (just look at the job posts for software developers).

ADD COMMENT
2
Entering edit mode
9.9 years ago
Dan D 7.4k

Here's my perspective:

Do people who graduate from Bioinformatics programs, also have knowledge of software development for this field?

Not necessarily, and I've seen very few graduate programs in the United States which emphasize modern principles and techniques of effective software design as part of the required curriculum. There is a lot of focus on algorithms, but software design is a broader set of concepts, of which algorithms are a part.

Is studying Bioinformatics related to software development at all?

There is definitely some overlap. Most of the action in the bioinformatics field involves open-source--or at least open-access--software. Good software design principles make it easier to use, improve, and assess the scientific validity of these bioinformatics tools and thus contribute to the success and progress of the field.

ADD COMMENT
2
Entering edit mode
9.9 years ago
Ram 44k

My grad school (Masters) focused on programming. Not software development, but basic programming - asking biologists to write code that is even moderately future-proofed is almost impossible in the 2-year time frame. CS folks would focus on writing better code and various levels of automation in the pipelines, biologists were content if their stitched-together-in-a-frustration-shell-scripts worked.

As such, I do not see an emphasis on good SDLC practices (documentation, testing) in grad school - not unless your PI knows the true value of these, and I haven't met many PIs who are good programmers pro-level software developers.

ADD COMMENT
2
Entering edit mode
9.1 years ago
BioApps ▴ 800

I think you can be a decent bioinformatician without knowing a programming language. But you will never be a GOOD one!

Yes, you can install Linux and some bioinformatics tools on a machine and start playing around. You can do some nice standard sequence analysis this way. But at a moment you will hit a wall. You will want to do the analysis in a particular way. And no tool will be available for you to do it exactly the way you want it. So, you will contact the developer of the tool you are using and plea to implement the modifications you need. If you are lucky, some months later maybe you will have them. If not... well... it is never to late to start learning a new language. Right?

There is also the productivity issue also: (again with some luck) you can find all the tools to analyze the 1000 sequences you have, exactly the way you want it. But months later you get 10000 more files, and then another 100000 and then 1000000, and so on. Now, you have to figure out how to make all those tools (written in all kind of languages, and having different dependencies and drawback and incompatibilities) to together to work as an automation pipeline. Otherwise you have to pass your files through all those tools manually, one by one.

But again... all depends on how far you want to go. Nice/fast analysis can be done with the existing tools even if you only know some scripting.

ADD COMMENT

Login before adding your answer.

Traffic: 2756 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6