Wednesday, August 03, 2016

Sometimes It's More About the (1D) Journey

I will confess that I had a post planned in advance of which this post is but a faint echo. A grand scheme was going to yield a triumph worthy of brass bands.  But instead, it's barely kazoo territory, but sometimes even a small victory must be celebrated, if only in moderation.

I was very excited about Oxford Nanopore rolling out their Rapid 1D Kit.  I had once tried to make a 2D library via shearing and ligation, and the protocol was just a bit over my abilities.  First, the length of time required -- at least an hour and a half, made setting aside time daunting.  Then there was the procedure itself, with lots of steps which translates to lots of opportunities for errors or omissions.  Of particular fear was the bead precipitation steps, involving drying the beads to some indescribable "just right" condition. 

 But the word on the street was that the 1D prep was truly simple, and when the protocol came out it did appear to be easy.  Add a fragmentation reagent to your DNA and incubate. Heat kill that reaction with another simple incubation.  Add another ONT reagent plus an NEB master mix and leave on the bench.  Looks easy enough.

So the original plan was to sneak into lab very early one morning and run through the whole thing.  Part of the sneaking was to present the results as a dramatic fait accompli, but some also was to dodge the good-natured jests that arise whenever I set foot in the laboratory.  For a long time I held the only entry on Starbase's safety log, having not quite thought through flame sterilizing an ampoule of Actinomycete spores (yes, flames go up so you might want to hold the flaming part high -- but flaming alcohol moves downward much faster!).  

But first my ignorance of where a few key supplies were required letting a few people know, and then it started dawning on me the difficulty of resisting ripping open the new packages.  So when they showed up yesterday, pretty much the entire molecular biology group knew what I was up to and was quite helpful, which was good because I quickly ran into a small issue.

The lab uses Eppendorf brand pipettors, and there are five in a standard set to cover different ranges of volumes.  I think there's four sizes of tips -- I really should know by now -- and finding the right tips for the right pipettor wasn't immediately obvious to me (there is a color code to the boxes that matches a band on the handle). The worst part is once you've gone through the entire ONT procedure, priming the flowcell, making the library and loading the library, it turns out you need every damn pipettor -- and therefore need to learn every pipettor-tip size pairing.

I also found that while I have done more than a little pipetting in my career, I rarely pipetted very tiny amounts -- and I find them unnerving.  Particularly nerve-racking is the 0.2 microliter of ligase master mix -- even ejecting this onto the wall of the tube leaves a barely visible drop. 

So, I muddled through yesterday.  MinKNOW kept trying to update itself, and then failing to work, and after several tries I got it working (some software named Anaconda apparently wasn't installing correctly ).  All those updatings and restarts burned a lot of time, and even more patience.  Even after all that, somehow the MinKNOW software exited between the required Platform QC step and my trying to load the flowcell, and when I tried to just make it go forward it reported that there were zero active pores -- but still MinKNOW runs (an issue that really needs to be addressed).keeps running on.  So end of day one, not feeling good.  

It's also at this point that the nature of the Wash Kit becomes apparent to me and the curses start for not ordering one.  The obvious purpose of the kit is to wash out a library (at least most of one; pure cleanliness is not guaranteed) so that another can be run.  But there is another twist: the wash kit restores the calibration DNA which is required to run the Platform QC.  So this flowcell probably can have another chance at glory, but washing is required first even if I run a library made from the same sample.

Decided that given my still bumbling nature around the lab, I wouldn't go in extra early (plus, I'm not really a morning person).  So another go at it, which went a bit smoother between more experience a a bit more attention to mise en place. Right at the start of PlatformQC MinKNOW decides it needs updating -- I hadn't restarted it since yesterday.  Otherwise, all went relatively well, until the second round of priming, when I apparently introduced a huge air bubble -- but it wasn't obvious until I tried to run the library in. Again MinKNOW reported zero active pores and kept running.  More curses to my bad technique and that unordered Wash Kit.

So now a fork in the road: do I go for my third and last flowcell, or do I throw in the towel for now.  While the library prep is theoretically 10 minutes, Platform QC and priming the flowcell burns at least another half hour if you are totally with it, which I'm not.  But, I really wanted to have one more go.  So another time in, another good PlatformQC and another bit of pipetting tiny droplets.  Other than dropping a whole box of DNA samples (microfuge tubes can really scatter!), things go pretty well -- until again an air bubble slips in on the second priming.  Instead of fully panicking, I gently draw out some buffer and get the bubble, then mix up more of that buffer and fill it up.  Library goes on and business seems to be happening.

This gets to my one complaint with MinKNOW, even in its newer (and definitely nicer looking) form.  All sorts of things go on, but it is hard for the novice to figure out whether things are going well or not.  Truly, I want a skin on this that is close to baking a cake in my oven.  There I push the Bake button, set a temperature, and it beeps at me when it is ready-to-go.  Conceptually, I don't see this as much different.  At least some sort of digested description of whether things are looking good, bad or ugly!

In any case, reads do start appearing.  I also get a chance now to start second-guessing one more decision -- selecting the new offline basecalling.  That was what the MinKNOW update was around, which ripped out the troublesome Anaconda (so if I had waited a day...), but the fine print says it isn't quite the same as the cloud-based caller.  According to MinKNOW I'm getting some long reads, but poretools (and then the command-line HDF5 browser) show that most of the FAST5 files have no basecalls in them (my own Julia extractor is stymied by changes in the FAST5 internals, plus poretools is lightning-fast, so that is not code I'm likely to re-animate).  Note that this is poretools on the Linux side; I thought about installing on the Windows machine driving the MinION, but poretools seems to require Anaconda and that was a road I did NOT wish to go back down.

But, even in the first reads there was something -- a not particularly long (for MinION) read with the right %GC range.  More importantly, it aligned to the reference.  SUCCESS!  Yeah, a really, really small success.  Later in the day I returned to more pressing matters, but a few peeks suggested that this was an unusual read.  Which really has me wondering: I thought the problem of phantom reads generated by channel noise had been fixed.  Or is it that the new RNN basecaller really struggles with 70+% G+C (I wanted to run something useful at work, and unfortunately that generally means high G+C).  So hope is still held out that a software tweak will unleash a bunch of long reads.  Or perhaps running the data back through the cloud caller.  Or perhaps tomorrow morning will reveal some gold.  It's a 48-hour run; perhaps the best will be at the end!

But right now it is a small victory, generally embarrassing in how paltry it is -- but it also is infinitely more usable nanopore data than I ever got off my R7 library, and it probably beats my total for Sanger reactions I set up (in one read!).  So on the plus side the 1D kit really can enable someone with minimal lab skills to make a library, but on the other hand some more grandiose ideas I had need to wait until I can get a decent library running routinely. I certainly won't be having any public datasets, like the AGBT hotel room one Nick Loman just released, anytime soon.

Still, the experience does illustrate to me how it is very plausible that an undergraduate lab course, or even an advanced high school or even middle school, could incorporate this sequencing approach in a typical lab course.  Students could spend a few weeks isolating bacteria from soil, then grow a few liters of culture.  Using a typical bead-beating kit (which I have done successfully!) takes less than an hour, and then the library could be made and the sequencer loaded in the remainder of the same lab period.  Retrieve your group's results, assemble the genome on your laptop, and then analyze it for biosynthetic capabilities as your term paper.

Now, what I describe above will be a little tricky with some of the quality issues, particularly the not-yet-solved homopolymer problem (the current model is inherently unable to model homopolymers greater than 6 -- I think it's still 6).  I'm also wondering now if the promised SpotON flowcell, which the advance guard has access to, will make life much simpler -- these enable direct loading of the library onto the sensor array, which I'm hoping means an end to the dreaded priming.  There's also VolTRAX, the automated library device.  On the one hand the 1D prep is pretty simple, but turning it just into a set of pipettings to load and then a single unload step would simplify things a bit.  Plus any streamlining might eliminate the need for one of those blasted pipettors!


Mike D'Angelo said...

Hi Keith,

Nice post, always good to hear the harsh realities along with the glittering successes! I keep hearing stories of people having trouble with introducing bubbles into the ONT flowcells, and I don't want to be another condescending molecular biologist, but have you been shown the reverse pipetting technique? I used to have to demonstrate it in prac labs where the students were using an oxygen electrode (not surprisingly, air bubbles are a real problem there too!), and I still use it when I'm pipetting solutions containing detergents. This video gives a pretty good description:

Apologies if this is old news to you, just trying to be helpful. I've never had the pleasure of using a MinION, so I have no idea if the buffers or library volumes are in short supply (you need to have some excess volume to remain in the pipette tip for this technique to work).

Better luck next time!

brian said...

I'm a bit surprised you haven't heard of Anaconda... If you ever program in Python, the Anaconda distribution is fantastic, especially for scientific applications.

Keith Robison said...

Mike: Thanks -- no, I wasn't familiar with anything called reverse pipetting, but now I'll watch the video! I'm never one to see condescension in suggestions!

Brian: I'm not a Python developer, and this was the first time I ran into a package that required Anaconda.

Keith Robison said...

One other thought: the reverse pipetting requires some dead volume, which the standard ONT recipe for the priming buffer doesn't include (but I did in the last run) -- but priming buffer is just water plus running buffer, and the stock of running buffer with the kit is relatively generous

Mike D'Angelo said...

So it sounds like no problem to make up extra priming buffer, what about the library though? That might be more difficult/expensive to make up in excess? Still, worth it in the long run if you don't have to throw out flow cells due to air bubbles.

Unknown said...

Thanks for a startlingly highest post Keith. It's good to know I'm not the only man amongst Gods !

Brian Krueger said...

Sounds like this system is still far simpler than loading a PGM/Proton/S5 :)

Illumina still probably holds the title for easiest to load though! Self priming and self loading.

Drishti said...

Do you have a blogpost that gives an idea about how to set up the software requirements for working with minion (except MinIT ofcourse!).