Here's a video from the paper. We are holding on to two micron sized plastic spheres with laser-beams (shown in the video as green/cyan cross-hairs). The lower beam/trap is stationary while the upper one is steerable. A ca 16um long DNA-molecule (invisible) is tethered between the beads.The experiment is performed in the presence of lambda exonuclease, an enzyme that "eats up" one strand of the DNA leaving just a single-stranded DNA-tether between the beads.
In the first part of the video a force-extension curve (bottom panel) is obtained using manual control. We stretch out the molecule by moving the upper trap upwards and check that the force-signal looks like it should when we have a single DNA-molecule of the right length between the beads.
In the second part, after t = 20 s, the tether is held force clamped at 3.4 pN (force shown in top panel). We're keeping the force constant with a PI-controller implemented on an FPGA that reads the force-signal from the lower bead and updates the position of the upper trap at around 200 kHz. As the molecule shortens the controller needs to move the upper trap/bead lower in order to maintain a 3.4 pN tension in the molecule. The video is at normal speed (1X) while the force extension curve is measured. During 13 min of force-clamp control the video is sped up 25-fold. During this time the exonuclease digests one strand of the double-stranded DNA molecule. When held at 3.4 pN of tension, single-stranded DNA is significantly shorter than double-stranded DNA. So the gradual conversion from a double-stranded tether to a single-stranded tether is seen as a decrease in the extension, i.e. a shortening of the distance between the plastic beads (middle panel). The tether broke at t = 880 s. Scale-bar 5 ?m.
I've continued to translate into C++ the old cam-experiments I wrote in C#. The kd-tree search for which triangles lie under the cutter seems to work, and the best way to visualize what is going on is through a video. Trying Vimeo for a change, to see if it's any better than youtube for these CAD/CAM-visualizations, since they advertise HD.
There are 360 original frames captured from VTK, and the original was created with
mogrify -format jpg -quality 97 *.png
followed by (copy/pasted from some site google found for me...)
OK, so the video doesn't really show what is going on with the kd-tree search at all 🙂 . It only shows two toolpaths, one coloured in many colours which is calculated without the kd-tree, and another one (offset upwards for clarity) that is calculated, much faster, using the kd-tree.
About 9 hours compressed into 38 seconds. 566 frames shot at 1 minute intervals from around 10:00 in the morning to 19:36 in the evening. Played back at 15 frames per second, which makes for a ~900x speedup.
I first re-sized the jpegs to 1024 pixels wide and then used this matlab script to assemble the AVI-file. The original 20 Mb AVI may have better resolution than the youtube version.
Canon 20D with 17-40/4L lens on Manfrotto 486RC2 ballhead and Velbon Sherpa pro CF 635 tripod. Timing with a 'Yongnuo' TC-80N3a remote from dealextreme.com.
When I find time to work on this next, there are many ideas for improvements: How to specify only climb/conventional milling (allowing only the right or left side of the cutter to be used). Using a variable step length for the simulation. Simulating dynamics of the macing (controlling the tool with a trajectory generator with acceleration/speed limits etc). How to implement rapid feed between cutting moves? how to choose among many allowed starting points for the cut? Should this use an adaptive resolution model, like a quad-tree? How should G-code be output, a filter which outputs G-code within a specified tolerance of the simulated path would probably be best?
Here a DNA-molecule is being stretched between two optically trapped polystyrene micron-sized beads. We're using an FPGA-based real-time controller for steering the upper trap. It's programmed with a PI-loop which aims to keep the force acting on the lower bead constant. Around 10s into the video we switch on the feedback-loop and we see the actual force on the bead rise to the set-point.
A ~48 000 base-pair long (ca 16 um) piece of DNA is stretched between two optically trapped ca 2 um diameter polystyrene beads. Bright-field real-time view through a 100x microscope. Scale-bar in microns on the right.
Were stretching a 13 kb DNA-construct between two optically trapped beads. This isn't a video of the experiment itself, but of some entangled beads we found in an old sample. The beads are 3 or 2 micron in diameter, and we hold on to the middle big bead with the optical trap while moving around the microscope stage. Hydrodynamic drag stretches out the chain of entangled beads. Not much, if any, scientific value, but a fun video nevertheless.