February 14, 2018

Welcome

to “Computing for Molecular Biology 2”

What is this about?

The previous course was “Introduction to Data Science”

  • also know as “Computers are not typewriters”

This course is “Scientific Computing”

  • a.k.a. “Computational Thinking”
  • a.k.a. “Quantitative Thinking”

Why?

Because computers are essential tools for Molecular Biologists

  • They control the instruments

  • The help us to understand the results

  • They help us to design the experiments

We will focus on the last 2 items

Software as a Scientific Tool

“Scientists spend an increasing amount of time building and using software. However, most scientists are never taught how to do this efficiently”

“Software is as important to modern scientific research as telescopes and test tubes”

Software as a Scientific Tool

“…recent studies have found that scientists typically spend more than 30% of their time developing software…”

“We believe that software is just another kind of experimental apparatus and should be built, checked, and used as carefully as any physical apparatus”

Software skills are important

“However, most scientists do not know how reliable their software is. This can lead to serious errors impacting the central conclusions of published research”

“Recent high-profile retractions, technical comments, and corrections because of errors in computational methods include papers in Science, PNAS, the Journal of Molecular Biology, Ecology Letters, the Journal of Mammalogy, Journal of the American College of Cardiology, Hypertension, and The American Economic Review”.

Who said so?

Wilson et al. “Best Practices for Scientific Computing.” PLoS Biology 12,1 (2014)

  • University of Ontario Institute of Technology, Canada
  • Michigan State University, USA
  • Space Telescope Science Institute, USA
  • University of Toronto, Canada
  • Monterey Bay Aquarium Research Institute, USA
  • University of California Berkeley, USA
  • University of British Columbia, Canada
  • Queen Mary University of London,United Kingdom
  • University College London, United Kingdom
  • University of California Davis, USA

Quantitative Methods

Harvard Medical School

Modern biology increasingly requires computational and quantitative methods to collect, process, and analyze data, as well as to understand and predict the behavior of complex systems.

Whereas throughout much of the 20th century computational and mathematical biology were niche disciplines, their methods are now becoming an integral part of the practice of biology across all fields.

Stefan et al. “The Quantitative Methods Boot Camp: Teaching Quantitative Thinking and Computing Skills to Graduate Students in the Life Sciences”. PLoS Comput. Biol. 11, 1–12 (2015).

Learning Goals and Objectives

The authors say:

“We broadly categorize these goals into three domains”

  • thinking
  • doing
  • feeling

This reflects our belief that developing practical programming skills (“doing”) is of limited use if one does not also develop both the ability to think about problems algorithmically (“thinking”) and a positive attitude towards computing (“feeling”).

Thinking

Students will be able to

  • recognize when you can use computational methods
  • analyze a problem so you can have a computational solution
  • use simulations to learn about biological systems
  • compare the results of simulations to real-world data

Thinking

  • formulate and test hypotheses
  • understand a project as a collection of smaller parts
  • prepare a plan to solve a problem
  • think of ways to test if the computational approach is valid

Doing

Students will be able to

  • import large datasets
  • put them into appropriate computational structures
  • visualize a dataset in multiple ways
  • compute summary statistics

(we already did this)

Doing

  • use ideas of programming to solve problems
  • use trial and error to design a computational approach
  • write a program to automatize data analysis
  • find and fix errors in a piece of code

Documenting

  • read and understand documentation
  • read and understand someone else’s code
  • document their code

Feeling

Students will

  • understand the value of computational approaches
  • feel confident about solving a computational problem
  • keep working when they find a problem difficult
  • recognize that successful coding can be fun as well as useful

Feeling

  • know when to ask for help and where to find support
  • be willing and ready to learn more
  • evaluate the quality of computational methods in science
  • help the work of others with examples of good practice

How will we do it?

A lot of practice

  • Solving problems from Molecular Biology
    • genome analysis
    • experimental design
  • Quizzes

  • Forum

Forum

Remember that you can ask any question related to the course

  • On the Web:

    https://groups.google.com/d/forum/iu-cmb

  • by Email:

    iu-cmb@googlegroups.com

You get 1 point for each real question, and 2 points for each practical answer

Resources

Papers

  • Stefan, M. I., Gutlerner, J. L., Born, R. T. & Springer, M. “The Quantitative Methods Boot Camp: Teaching Quantitative Thinking and Computing Skills to Graduate Students in the Life Sciences”. PLoS Comput. Biol. 11, 1–12 (2015). doi:10.1371/journal.pcbi.1004208.

  • Wilson, G., D. a. Aruliah, C. T. Brown, N. P. Chue Hong, M. Davis, R. T. Guy, S. H. D. Haddock, et al. “Best Practices for Scientific Computing.” PLoS Biology 12, no. 1 (2014): e1001745. doi:10.1371/journal.pbio.1001745.

  • Noble, William Stafford. “A Quick Guide to Organizing Computational Biology Projects.” PLoS Computational Biology 5, no. 7 (2009): 1–5. doi:10.1371/journal.pcbi.1000424.

Let’s do something Fun

Animation in Scratch

Key words

Exercise 1: 🍎

Make a scratch of a falling apple

  • Start at X=0, Y=100
  • How does the apple move?
  • Question: what happens when the apple hits the floor?
  • This version should repeat until the apple hits the floor

Exercise 2: 🏀

Make a scratch of a falling ball

  • Start at X=0, Y=100
  • The ball must bounce

Exercise 3: 🎾

Make a realistic ball

  • velocity changes
  • acceleration due to gravity

Data Elements

We store data in variables

These elements allow us to do things to variables

  • Set variable
  • Change variable

Control elements

  • Repeat N times

  • Repeat until …

  • If … then …

  • If … then … else …

Logical Operators

Notice that TRUE/FALSE blocks have a particular shape

Comparing two values always gives either TRUE or FALSE

Boolean Operators

George Boole (1815–1864) was an English mathematician, educator, philosopher and logician. He is best known as the author of The Laws of Thought which contains Boolean algebra.

Boolean Operators

They have diamond shape: logic

Question: How do they work?