Thanks to some guidance from ONT we have a method for enabling guppy to check for barcodes at both ends of reads with live basecalling. This method is particularly helpful on systems with local basecalling available via GPU (e.g GridION and MinIT/Mk1C). I haven’t personally tested this with alternative methods of live basecalling.
To make this change you need to edit minknow cofiguration files. To do this (assuming a linux OS).
sudo /opt/ont/minknow/bin/config_editor --conf application --filename /opt/ont/minknow/conf/app_conf \ --set guppy.extra_arguments="--require_barcodes_both_ends"
Once you have done this you MUST restart MinKNOW.
On linux like systems this is done with:
sudo service minknow restart
When running local basecalling, configure as you normally would (select the library kit and barcode kit). MinKNOW will now demultiplex your reads testing for matching barcodes at each end of the read. You will see an increase in the proportion of reads reported as unclassified. This is expected as this mode of barcode detection is more stringent.
If you are running on OSX or Windows, the command above will need to be modified to the correct location for those MinKNOW installs. However, the only reliable (straightforward) way to restart MinKNOW is to restart the whole system. So please do a reboot!
This change is global and will affect all demultiplexing on your system. Reversion instructions will be available. If you update MinKNOW you may need to rerun this command.
Hope this helps and thanks to Forrest Brennen at ONT for help with this.