Skip to main content

The first smart microscope, Howard C. Berg, and bacterial chemotaxis

Chemotaxis of bacteria is a molecular mechanism by which they sense chemicals and swim through  a biased random walk toward preferred concentrations. It has been studied extensively since late 60-s and became a triumph of quantitative system biology, thanks to giants like Julius Adler, Howard C. Berg, Daniel Koshland, to name a few.

Perhaps the most instrumental in this scientific revolution was Howard Berg’s tracking microscope (Berg 1971; PDF), which could follow a freely swimming E.coli cell in 3D in real time. Yes, in 1971. It allowed precise quantification of cell swimming trajectories in spatial and temporal gradients of chemicals, which led to discovery that E.coli performs a biased random walk, with longer runs toward increasing concentrations of attractive chemicals (Berg and Brown, 1972; PDF). This work laid the foundation of quantitative approach to bacterial chemotaxis, which led to multiple breakthroughs on it’s biochemical and physical mechanisms.

Even today in 2017, building a tracking microscope which keeps a rapidly swimming organism in focus is not an easy task. The system had to keep track of rapidy swimming bacterium within a very small depth of field and accurately update servo positions with at least 50 Hz frequency (20 ms intervals). Fast sCMOS cameras, real-time operating system, LabView, FPGA, and C/C++ were unknown words in the late 1960-s. Computers were using punch cards and magnetic tapes.


In a stunning tour de force Howard  Berg created a tracking microscope using only optic fibers, photomultipliers, off-the-shelf analog electronic components, and electomagnetic coils on top of a Nikon upright microscope, at a cost about $5K (equivalent of ~30K in 2017).  Machining and electronics he did himself. The tracking data were stored using an oscilloscope or magnetic tapes.


The principle of tracking H.Berg proposed was simple and elegant. A phase-contrast image of a bacterium is relayed onto 3 pairs of photomultipliers (PMTs), x1, x2, y1, y2, z1, z2. Displacement of the bacterium in +x direction excites the x1 PMT, so the difference between x1-x2 PMTs is high  - it is then amplified and fed into the electromagnetic drive coil which moves the chamber with bacteria. This feedback loop returns the bacteria back to the center of visual field. In z direction, when bacteria swims up it’s image becomes more focused on PMT z1, the difference of signals z1-z2 is amplified and fed into the drive coil for z axis. If bacteria swims beyond the range of drive coils, the microscope automatically returns to the center position and waits for another bacteria to swim by to start a new tracking.

“The scene through the binocular is extraordinary. The bacterium being tracked seems to be stuck to the center of the field, turning this way and that trying to free itself, while the other bacteria drift in and out of focus, then to and from, in apparent synchrony. If the bacterium being tracked is long, it seems to be stuck at one end and then at the other; the microscope will track on any part.” (Berg 1971)

How was this all possible?

The exact details on how to tune all the analog control loops, select the right materials and components are hard to grasp by us, the digital generation. Real-time LabView with FPGA? Use op-amps, resistors and capacitors instead.

Fast and precise piezo stages? None in 1971. Use coils and cylindrical magnets, springs and rods. Ah, don't forget to make the rods from tungsten - they should be non-magnetic and stiff.



Berg's tracking microscope is an inspiration and example of scientific instrumentation mastery - bold ideas and finesse of implementation, applied for making groundbreaking discoveries in biology. Prof. Howard C Berg devoted his long career to the amazing world of bacteria, molecular mechanisms of chemotaxis and flaggelar motors, and his book Random Walks in Biology is an all-time classic, where physics marries biology.

A projection of the track of a wildtype E. coli obtained with a microscope which automatically follows its motion in three dimensions (from H.C.Berg's website).

Comments

Popular posts from this blog

3D modeling in a lab

About once a week I am asked by my colleagues which 3D modeling software I am using - usually when I am staring at the new part being 3D printed. I am using  Autodesk Inventor for a few reasons: it is a professional software for engineers and has huge community around it it provides free academic license there are thousands of youtube videos with detailed tutorials by enthusiasts easy to learn at a basic level, but there is always a lot of room for growth In a lab, there are two main workflows where Inventor is necessary: 3D modeling of complex assemblies (like custom-built microscope) and 3D printing. There are many youtube tutorials for beginners , so I here only review some things that Inventor can do, without any specific instructions.  3D modeling of parts and assemblies Before building a new microscope, you can create its virtual model and check dimensions, required adapters, and whether things will fit together. Luckily, Thorlabs has 3D model of near...

Programming NI DAQmx board in Python: easier than you think!

For my DIY microscope I had a task - generate a train of digital pulses which simulate camera trigger, so that other devices (galvo and laser) are synched. I wanted to do it in Python , so that it seamlessly integrates in my data acquisition and analysis Jupyter notebook. After some quick search I found a PyDAQmx library which seemed mature and had good examples to begin with. Installation was smooth: download, unzip, open Anaconda prompt, python setup.py install After only 30 min fiddling, I was able to solve my problem in just a few lines of code: Holy crap, it just works, out of the box. Oscilloscope shows nice digital pulses every 100 ms, each 1 ms long. The code is much shorter and cleaner than would be in C, C#, or LabView. PyDAQmx appears to be a full-power wrapper around native NI DAQmx drivers (yes, they need to be installed), so presumably it can do all that can be done in C or even LabView (this statement needs to be tested). One can use PyDAQmx to control ga...

How to connect a rotary encoder to Arduino and make your first PCB board

After I discovered the OpenStage project for cheap DIY microscopy stage automation, I decided to add a twist to it - control the stage positions manually with a rotary encoder, in addition to already-implemented serial port (USB). I found a nice RGB illuminated rotary encoder from Sparkfun  - it's shaft works as a button, and it is internally illuminated by built-in 3-color LEDs - a perfect device to switch speeds and manually control the stages. Hooking it up to Arduino seemed easy, and there is a very nice Encoder library to do just that. But when I started to test it, I fell into a deep rabbit hole called 'debouncing'. In short, real-world switches are never perfect and the 'moment' of switching has many messy things happening between the two leads, creating noise in the logic of reading device (Arduino). So, the voltage readout from a real rotary encoder looks like this: Note the high-frequency chirp in yellow line when it falls from high to low. T...