Solving problem at the correct level

From the twitter thread

Problems can be roughly organized in hierarchy of complexity. The insight here is that you can’t solve lower-tier problems while using solutions on higher-tier level. For example, if your university doesn’t support you because of bias and xenophobia, you will not be able to solve that problem by “sciencing” harder or being smarter.


The bottom line is not that we can’t improve things from top-down, but it is much harder to do. Problem needs to be addressed on appropriate level.

Writing is about changing reader’s ideas

And other nuggets of wisdom from Larry McEnerney, Director of the University of Chicago’s Writing Program. Including:

  • Nobody cares about inside of your head
  • Writing is participation in the conversation of people who decide what is knowledge
  • “New” doesn’t make anything valuable without value
  • Writing sets up from instability (we know something but…) and cost/benefit (…the resolution will get us something of value)
  • Writing is done for the particular reading community, to solve their problem, or problem they care about
  • The definition of the problem and solution should be articulated in coded language, accepted in the given community
  • Simplest example is to start by “wow, are you smart people, you did so much for the community, but there is this little thing that is wrong”

Presenting: solve listener’s problems

Stealing this from Scott Berkun and his latest book.

When presenting anything, to anyone, figure out what problem they have. And then solve it.

As Nathan Kontny puts is:

Nobody cares until they have an empty box in their head

Why are you presenting and talk about A when the audience wants to hear about B? Well, for example, because A is the only thing you know how to talk about?…

If the audience of undergrads is looking for a lab rotation or research experience, don’t tell them about textbook molecular biology you are working on. Tell them how your day looks, and how the lab space looks

If the audience wants to know whether your microscope is good for their problems, don’t give lecture on physics of light. Show images of samples and experiments that come out.

If the audience wants to go home and be left alone… present the absolute minimum amount that will satisfy your supervisor, and let everyone free. Seriously, everyone loves when meetings end early

Q. What if you get to Q&A sooner, but there aren’t any questions?

A. Everyone goes to get a beer! Seriously, if there are no questions it means all questions were answered or the audience isn’t interested. In both cases it’s time to go.

Q&A from Toughest Public Speaking Situations, Scott Berkun

Campus & labs reopening plans

Few articles and books that could help with grad school and writing

Short notes

Great Mentoring in Graduate School: A QUICK START GUIDE FOR PROTÉGÉS
Laura Gail Lunsford, PhD & Vicki L. Baker, PhD

What Should a PhD Thesis Look Like
Dr. Barry Witcher

Writing guide from Chan lab
Dr. C. Savio Chan

Longer articles

How to Write a Research Manuscript
Deborah J. Frank

The Two Cultures and the Scientific Revolution
C. P. Snow


Writing Your Dissertation in Fifteen Minutes a Day: A Guide to Starting, Revising, and Finishing Your Doctoral Thesis
Joan Bolker

Confessions of a Public Speaker
Scott Berkun

The Visual Display of Quantitative Information
Edward Tufte

Brag!: The Art of Tooting Your Own Horn without Blowing It
Peggy Klaus

Making Things Happen: Mastering Project Management (Theory in Practice)
Scott Berkun

The Good Research Code Handbook
Patrick J Mineault

When in doubt — “Bonjour-hi”

Apparently there is language drama in Montreal:

The unofficial greeting in the bilingual Canadian city of Montreal has long been a friendly “Bonjour, Hi!”

But that standard is no more since a motion mandating store clerks to greet customers only in French was passed in Quebec’s provincial legislature.

The problem is that Montreal is officially French-speaking. But English is extremely popular, and the main language of tourism. So ingenious citizens came up with “Bonjour-hi” as a way to be inclusive, and signal that they are capable of speaking english and french.

We have something to learn here. When in doubt: offer options.

  • When giving a suggestion, offer two if you don’t know for sure
  • When asking boss for advice, offer two possible solutions
  • When trying to make a decision, consider at least two options
  • When somebody is [un]comfortable, offer them option to stay or leave

Picking one out of two is hard, so let’s recall what Agile Software Development teaches us:

When faced with two or more alternatives that deliver roughly the same value, take the path that makes future change easier.

Dave Thomas

By following “Bonjour-hi” approach, we are not diluting power or wasting time, we are showing that we are empathetic and thoughtful. Offering option doesn’t need to be artificial, stick to your guns when you are sure. But otherwise — consider two options.

Setting up artificial limitations will teach you new tricks

In creating art, there is one technique that always attracts attention. That is setting up artificial limitations or restriction to the process.

In writing, there is whole zoo of techniques or challenges (see wiki and TV Tropes articles) that aspiring artist can borrow from. In movies, one can try to make a film using a single continuous shot (Russian Ark) or only using natural light (even indoors, see Barry Lyndon).

Constrained writing Wikipedia article

In software development one successful artificial constrained that comes to mind is 10+ Deploys per Day at Flickr that contributed to the launch of DevOps culture.

In cooking we have Plating Carrot in One Minute or dinner under $10. We have challenges of finishing game in least amount of time or beating games blindfolded. In programming we can try to implement algorithm with the least amount of bytes or program while drunk.

All these attempts at meeting strict restrictions (apart from being artistic goal) lead to generation of very creative solutions. When used as an exercise, this approach attempts to artificially limit most crucial resources, or resources we are bad at managing. You can’t finish project in a month? Try one day! Always over monthly budget? Here is $50 / $100 / $150 for a week of groceries.

In science we’ve seen several examples of setting up artificial constraints. Comes to mind: 3 Minute Thesis, 72 hour science, and 3 year PhD thesis (don’t take that one too seriously).

All these examples teach us valuable skills of time and resource management, allow us to get better at scope definition, and help understand what is slowing us down.

To work through the problem, force your process to be starved for key resource. The approach is to pick something that feels the most painful, and try to aim for it. You can only pick things you control (no “10 Science papers a year” but “10 co-authorships a year” is doable). In academics it is most likely going to be time.

Image result for cost time scope
Triangle of doom. When restraining quality, we have to balance time, cost, and scope to achieve result. When one resource is limited, others need to be sacrificed

You will have to sacrifice some things: either pay more, or aim for lesser scientific achievement. But amount of information and training you’ll gain might be well worth it.

Updated on March 19, 2020:

As the world struggles through COVID-19, many labs are struggling with shut-downs, order to work from home, terrible expectations with salaries and funding, and more.

This is an opportunity. Not to out-work your competition. But to re-evaluate process, goals, and human aspect of the research. Each lab get an opportunity to take a break with daily grind, reset the clock, and establish new policies and management procedures.

It can start with reducing amount of meetings, increasing quality of meetings, increasing amount of written communications, establishing proper project management, re-evaluating one-on-one meetings between staff and PIs, write down as much protocols as possible, get better at presenting.

It should not be just “do your best” but an opportunity for meta-discussion. We shouldn’t just “write”, but we should talk about how to write, and how to write better. Same for presentations. Same for lab management. Same for being a PI.


Hi, my name is Andrey.

I started this blog to record ideas on running projects, making better presentations, and so on, in context of scientific research.

The goal of this site is to write down instructions, HowTos, protocols and checklist that could help manage research projects, get through grad school, and improve professional climate in academia.

Why is it called “Extreme Sciencing”? I shamelessly copied Extreme Programming for that name. In my experience, we can learn a lot from practices of software development, such as Agile, Scrum, or DevOps. I have spent time studying those and tried to borrow and adapt things that might help us with better sciencing.

We need more clear plots with high information density

When presenting data we’d like to balance two goals:

  1. Present finding in a clear, unambiguous fashion
  2. Reflect variation in data and observations that go against the hypothesis

This should be also combined with the notion that Every pixel costs you money.

When highlighting difference between conditions, we can condense data in different ways. For example, we can start with bar graph with error bars. Asterisks signify significance level (p-value) of the difference between two conditions.

Bar chart with error bars compared to Gardner-Altman plot. Gardner-Altman plot shows data points as well as an inset that highlights what’s important: the difference between means of the two distributions and confidence interval. “+1.15C” is a bit confusing identification of that difference because it just “floats” in the space.

If we know that two conditions are applied to same sample (for example, we measure temperature of patient #1 before and after treatment) then it might be useful to show that using lines:

Example of line plot to show change in parameter before and after treatment. While most patients improved, there are some outliers. Paired-sample t-test, p<0.01

We sometimes want to show bunch of different stuff on the same plot. Consider this graphics, that overlays multiple fluorescence excitation spectra:

Spectral analysis of fluorescent variants GECO, Understanding the Fluorescence Change in Red Genetically Encoded Calcium Ion Indicators

It took me a lot of time to understand it, because it uses two sets of axes for each subplot. That can be an effective tool, and can be easily implemented, say in MATLAB [example one] [example two], but it can also cause confusion. Let’s focus and try to improve single panel:

Panel D. Color represent amount of Ca2+ ions, texture represents single- (F1) or two-photon (F2) excitation modes

The plot is using color and dashing in order to define 4 different spectra of a calcium-sensitive fluorescent protein. Dashing is used to signify excitation mode (single-photon or two-photon) and color is used to mean presence or absence of calcium. This plot can be improved by flipping this relationship, keeping dashing for calcium amount, and keeping color for illumination mode:

Revised plot. Color now means means imaging conditions and matches axis

We can see, that least important information (plot of calcium-free fluorescence) is now hidden by dashing, and important stuff (the spectra of excitation) is elevated. We also color-coded the graph lines, as well as axis, so that two graphs can be viewed in the same panel, but also be distinguished visually: the purple line is being read using purple axis, and the green line is being read using green axis.

As final note, few resources on making graphics clear and statistically sound:

Free resources to practice programming languages

This short list covers few sources of practice for Python, MATLAB, R, and Javascript


Main source: official tutorial MATLAB Academy.

Bonus points for problems from MATLAB certification practice test.

Extra bonus points: online interpreter of Octave with functionality of shared coding. You can loop in another person to help you get through. GNU Octave is designed to be compatible with MATLAB syntax


Interactive Python exercises

36 exercises for learning Python. It does require having development environment set up, and might require someone to help you at the beginning.

R and RStudio

Swirl is a library that you run inside RStudio, that guides you through tutorial

There is also an interactive online tool, LearnR hosted on RStudio’s Github


There are many services that allow practicing JS. But we like Javascript because it can be useful for programming dynamic data visualization. Online platforms such as Glitch, Codepen or JSFiddle allow free-of-charge prototyping and sharing of small web applications.