#12 SquiggleFilter: An Accelerator for Portable Virus Detection


  • Aman Goel
  • Arun Subramaniyan
  • Nishil Talati
  • Samira Khan
  • Sihang Liu

[PDF] Submission (3.9MB) 31 Jul 2021 10:06:36pm EDT · b6ec382d0f99b699650cc2af82b2cae0e710aee788a3349e34b5926fc9a9758cb6ec382d

The MinION is a recent-to-market handheld nanopore sequencer. It can be used to determine the whole genome of a target virus in a biological sample. Its Read Until feature allows us to skip sequencing a majority of non-target reads (DNA/RNA fragments), which constitutes more than 99\% of all reads in a typical sample. However, its does not have any on-board computing, which significantly limits its portability. We analyze the performance of a Read Until metagenomic pipeline for detecting target viruses and identifying strain-specific mutations. We find new sources of performance bottlenecks (basecaller in classification of a read) that are not addressed by past genomics accelerators. We present SquiggleFilter, a novel hardware accelerated dynamic time warping (DTW) based filter that directly analyzes MinION's raw squiggles and filters everything except target viral reads, thereby avoiding the expensive basecalling step. We show that our 14.3W 13.25$\text{mm}^{\text{2}}$ accelerator has 274$\times$ greater throughput and 3481$\times$ lower latency than existing GPU-based solutions while consuming half the power, enabling Read Until for the next generation of nanopore sequencers.

T. Dunn, H. Sadasivan, J. Wadden, K. Goliya, K. Chen, D. Blaauw, R. Das, S. Narayanasamy

Artifact URL


Hardware Dependencies

The SquiggleFilter Jupyter Notebook code requires approximately 5-10GB of RAM, and the datasets used require approximately 40GB of disk space. For hardware evaluation, Xilinx Vivado comes with the following additional requirements on the processor: minimum 2.2GHz, Intel Pentium 4, Intel Core Duo, or Xeon Processors; SSE2 minimum. If necessary, we can provide reviewers with remote access to a fully setup Jupyter Notebook session or Vivado installation.

Software Dependencies

Any Linux OS can be used, but a recent Ubuntu release is recommended for ease of installation. The Jupyter Notebook containing our software artifact has multiple Python package dependencies, which will be installed by an installation script. For hardware evaluation, a recent installation of the licensed Vivado Design Suite is recommended; we used release 2019.1.

Data Dependencies

The installation script we provide will download two publicly available datasets (from the CADDE Centre and ONT Open Datasets) containing approximately 40GB of raw nanopore signal (FAST5) files total.

Key Results to be Reproduced

For evaluating the hardware, our artifact contains the RTL and testbench SystemVerilog code for our SquiggleFilter accelerator, which can be simulated using Vivado. The Jupyter Notebook pipeline contains: - Our custom software sDTW implementation, run on 1000 random human and viral reads from the selected datasets. Figures 11 and 17a from our paper are regenerated, showing the human and virus alignment cost distributions and classification accuracies, respectively. - Our Read Until runtime model. This estimates and plots expected Read Until runtime (Figures 17b/c) based on statistics measured after running our sDTW algorithm on the random sub-sample of reads. - The scripts used for generating multiple figures from our paper (Figures 2, 5, 10, 16a, 16b, 18, 19, and 21).

Expected Completion Time

The Jupyter notebook pipeline runs in ~10 minutes on a 56-core system, but the dataset download (40GB) may take several hours. Vivado simulations ran in ~20 minutes on a 4-core laptop.

  • Accelerators
  • Health/Bio
  • Workload Characterization

To edit this submission, sign in using your email and password.

Review #12A22211
Review #12B22211

[Text] Reviews and comments in plain text