Basic Programming Skills Might be a Good Idea for Someone in the Sciences

Written by
marc.cormier

Wait what?

So, how exactly did I arrive at MLT? I'm not quite sure myself and from all the confused looks I got when I started, my colleagues might not be sure too.

I took a weird path after high school. I knew I wanted to study something, but what? I settled on 3 choices: visual arts, IT or chemistry. At this point, programming was not in the picture. Somehow, I never really understood or realized it was a thing. Thinking my choices over, I figured it would be easier to make the jump from chemistry to tech or art rather than the other way around:analytical chemistry it was.

During one of the summers, between semesters, I was exploring Montreal. I had a conversation with a friend who suggested that having some basic programming skills might be a good idea for someone in the sciences. That summer, I was also reading Kushner's telling of the stories of the early days at iD software and John Carmack’s adventure in code in Masters of Doom1. These two factors combined – although I’m not sure which came about before the other, made me want to take a step into that world.

I jumped in, slowly started learning when I was not too busy, forcing myself to use it in my assignments, or building small projects.

Directly after I graduated, I was very lucky and got an opportunity to work with one of my professors as a research assistant. We undertook a new project for his research group: to complement the research with molecular modeling or more specifically molecular docking2–4. A relatively recent field compared to other established branches in chemistry, computer simulations are used to get some insight into how molecules interact. Our specific interest5,6 was in Protein - Ligand interactions. The goal was to help understand how Caffeic acid phenethyl ester(CAPE) and its derivatives interact with Arachidonate 5-Lipoxygenase(5-LO)7–9. Or said more simply: how a drug, as in a medication, interacts with a specific type of "machinery" in your body. That "machinery" may have implications in asthma10 and cancer11, among other health problems12,13. As molecular modeling consists of computer simulations, the gap between both worlds started to bridge. I now needed to use my previously accumulated knowledge of computers and merge it with my freshly gained knowledge of chemistry. It also forced me to learn a lot more about both worlds.

After working on these projects for a while, I decided I needed a change and looked for a new job. I started the on-boarding training process, I asked myself how I fitted in at MLT and integrated into an existing research project. As I started to work, some aspects fitted instantly with what I knew and was used to, but in other cases, there were big differences. Thinking about them and looking back on it now, 3 popped out to me;

Comms or Your Life

Comms or your life

I was glad to find that communication was similarly important as in chemistry, as already illustrated by Sebastian in one of hisprevious blog post. I will reiterate how important it is to communicate clearly and efficiently. In chemistry, anytime lab work is involved, communicating becomes essential. This involves more than simply "talking to others". You should understand what you are doing and what is happening. If you don't, you may not understand what the dangers are, what the limits are, what actions may ruin your hard work. This may mean stopping what you are doing and communicating with coworkers to make certain everything is understood. Working in chemistry, someone could get injured because of misunderstandings. For software development, the stakes may be lower, but it does not mean that you should treat communication differently. It’s not fun to do work only to realize later that you need to redo something because you assumed or misunderstood something. The approach to communication is also reflected everywhere in the lab. Everything must be labelled correctly and appropriately to a minimum amount of information. That unmarked glassware I just broke by accident: should I vacate the room immediately and call a hazardous materials team? Or was it just water and a small chemical spill kit, paper towels, will do? Again, the stakes may be lower, but a similar communication is accomplished with variable names and commit messages among other things. You are communicating with your coworkers what is present and what actions are taken, shaping their understanding of the code written underneath. If I build a small machine, code, so hard to understand that no one knows how to use it, at some point, I’m no longer helping or working with my coworkers. Essentially, in both professions, you need to communicate at all levels, sometimes in ways that are not apparent, and have a generally good understanding of each other.

Chemistry research vs Software research, aka The Researching

Coming from an academic research background and going into corporate was interesting to see the similarities and differences. Some of these may and probably differ from team to team and from project to project. See in Table 1 a summarized flow of a research project14,15.

Table 1: Comparison of research in Chemistry and Software Development (we like tables in chemistry)

Chemistry

Software Development

Unknowns want to be known and explored. Knowledge can be gained and may benefit someone or something.

You begin exploring and researching this unknown and realise that they are more unknowns at various levels of your new project.

You have an idea of what you want to know, and you probably have a general idea of what to expect as results, which may or may not be supported by other research or similar cases. A vague plan starts to form.

You have a general idea of what new feature or product you want and how it might work, which may or may not be supported by existing software, technology or research. A vague plan starts to form.

You need to gather funding to do that research.

Congrats, you now have a hopefully fully funded research project J

You plan out your approach depending on resources, parameters and/or requirements and adapt as you learn more.

More research may be required, what worked with specific parameters may not work with different parameters. This may involve experimenting. You may also notice after you started experimenting that more research is required.

You may need more research. If you are lucky you may be able to identify existing reusable code that can easily be repurposed to accomplish the task or software libraries to help.

Experimenting can start.

Development can start.

You can start processing the data. You may need to apply conversion, calculations or statistics. Are they satisfactory based on what you identified as your needs? Can you trust them, can they be improved?

You can now start testing if what was built works. Does it satisfy the requirements? Can it be improved? Can you identify bugs?

Your project is now mostly completed, you move on to something new, iterate or move to the new questions that have formed during this project.

 

The previous table summarizes the process from start to finish. However, in most cases someone already did all the heavy lifting and you only come in when experimenting or development starts. Before work can start, the project must be introduced. It must be chosen how much information will be given. Either everything can be explained by giving a general understanding of the project, or in some cases it may be decided that only partial information will be given. In chemistry, the second case is sometimes used to try and eliminate bias when experimenting and analyzing the data: if you know the bare minimum information needed to complete the experiment, you are essentially making it a "blind taste test". I found it interesting and refreshing that sometimes limiting information was also used while doing research in a software development context. Less information is given than usual and the developer is left to explore how to best accomplish the task.

In general, while the details may differ, the general approach are similar in both types of research, and that came as a surprise to me.

Abstract Astronomy

So, are you sure about that?

This one may be a bit less of a comparison and more of a general observation. But I'm happy to see that developers and the tech industry in general are starting to think more about the implications of what they are building.Carl Sagan has a great quote on the subject related to technology:Exactly the same technology can be used for good and for evil. It is as if there were a God who said to us, ‘I set before you two ways: you can use your technology to destroy yourselves or to carry you to the planets and the stars. It's up to you.’16.Richard Feynman has a similar quote related to science: Scientific knowledge is an enabling power to do either good or bad — but it does not carry instructions on how to use it.17. You don't need to look far to get a cold reminder of the negative impact science had on the world. You may also not need look far to get a warm reminder of how science positively impacted the world. I hope everyone involved at every level of the chain continues to think about and discuss how their work interacts18 with the world and how it can be used19.

The words you put at the end because you didn't really know where else to place them or because they sum up what you wrote, sometimes?

I may no longer get the trill of working with dangerous chemicals, doing hours of glassware cleaning and I may no longer play with very expensive fun toys... eh... scientific equipment but I do still get to play with fun toys... eh... technology, learn every day, get the shit confused out of me weekly, the amazement that anything ever works at all and how everything is beautifully interconnected.

Do you agree with my observations? Do you feel these similarities and differences seem well represented or am I trying to make links were none exist? How do they relate compared to your profession or industry? I'd love to hear from your different perspectives!

Marc Cormier, Jr Web developer
Missing Link Technologies

Bibliography

1.Kushner, D. Masters of Doom: How two guys created an empire and transformed pop culture. (Random House Trade Paperbacks, 2004).

2. Englebienne, P. et al. Evaluation of docking programs for predicting binding of Golgi α-mannosidase II inhibitors: A comparison with crystallography. Proteins Struct. Funct. Bioinforma. 69, 160–176 (2007).

3. Huang, N., Shoichet, B. K. & Irwin, J. J. Benchmarking sets for molecular docking. J. Med. Chem. 49, 6789–6801 (2006).

4. Liu, R., Perez-Aguilar, J. M., Liang, D. & Saven, J. G. Binding Site and Affinity Prediction of General Anesthetics to Protein Targets Using Docking: Anesth. Analg. 114, 947–955 (2012).

5. Doiron, J. A. et al. Structure–activity relationship of caffeic acid phenethyl ester analogs as new 5-lipoxygenase inhibitors. Chem. Biol. Drug Des. 89, 514–528 (2017).

6. Touaibia, M. et al. Sinapic acid phenethyl ester as a potent selective 5-lipoxygenase inhibitor: Synthesis and structure–activity relationship. Chem. Biol. Drug Des. (2018).

7. Rådmark, O., Werz, O., Steinhilber, D. & Samuelsson, B. 5-Lipoxygenase, a key enzyme for leukotriene biosynthesis in health and disease. Biochim. Biophys. Acta BBA-Mol. Cell Biol. Lipids 1851, 331–339 (2015).

8. Rådmark, O. Arachidonate 5-lipoxygenase. Prostaglandins Other Lipid Mediat. 6869, 211–234 (2002).

9. Rådmark, O. Arachidonate 5-lipoxygenase. J. Lipid Mediat. Cell Signal. 12, 171–184 (1995).

10. Leff, J. A. et al. Montelukast, a leukotriene-receptor antagonist, for the treatment of mild asthma and exercise-induced bronchoconstriction. N. Engl. J. Med. 339, 147–152 (1998).

11. Sarveswaran, S., Chakraborty, D., Chitale, D., Sears, R. & Ghosh, J. Inhibition of 5-lipoxygenase selectively triggers disruption of c-Myc signaling in prostate cancer cells. J. Biol. Chem. 290, 4994–5006 (2015).

12. Chen, M. et al. Neutrophil-derived leukotriene B4 is required for inflammatory arthritis. J. Exp. Med. 203, 837–842 (2006).

13. Mehrabian, M. et al. Identification of 5-lipoxygenase as a major gene contributing to atherosclerosis susceptibility in mice. Circ. Res. 91, 120–126 (2002).

14. Skoog, D. A., West, D. M. & Holler, F. J. Chimie analytique. (De Boeck Supérieur, 1997).

15. Skoog, D. A., Holler, F. J. & West, M. D. Analytical Chemistry: An Introduction. (Cengage Learning, 2000).

16. Adrian Malone. Who Speaks for Earth? Cosmos: A Personal Voyage (1980).

17. Feynman, R. P. The value of science. Eng. Sci. 19, 13–15 (1955).

18. Sep 18, R. P. · C. N. · P. & September 18, 2018 4:00 AM ET | Last Updated: Facial recognition is everywhere — here’s why that’s concerning | CBC News. CBC (2018). Available at: https://www.cbc.ca/news/technology/facial-recognition-technology-concerns-1.4826931. (Accessed: 16th November 2018)

19. Delay, Deny and Deflect: How Facebook’s Leaders Fought Through Crisis - The New York Times. Available at: https://www.nytimes.com/2018/11/14/technology/facebook-data-russia-election-racism.html. (Accessed: 16th November 2018)

Software Development, Chemistry, Science

Comments

*

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.