1. IntroductionΒΆ

MOSAIC is a modular toolbox for analyzing data from single molecule experiments. Primarily developed to analyze data from nanopore experiments [], MOSAIC can analyze any data that fit the form []:

\[i(t)=i_0 + \sum_{j=1}^{N} a_j\left(1-e^{-\left(t-\mu_j\right)/\tau_j}\right) H\left(t-\mu_j\right)\]

The above functional form, which represents the response to a step change from one state to another is ubiqutous in many disciplines. By fitting individual state changes to the equation above, MOSAIC is able to automatically identify the states corresponding to each change. Moreover this approach allows us to accurately characterize transient events before they asymptotically approach a steady state. In nanopore applications, this has resulted in a 20-fold improvement in the number of states identified per unit time [].

MOSAIC offers tremendous flexibility in how it can be used. Nanopore data can be analyzed and visualized using the MOSAIC GUI (GUI), which is available as a stand-alone application (download binaries). This is a convenient way for most users to analyze nanopore data. Advanced users can write their own Python scripts to include MOSAIC in their analysis workflow (see Scripting and Advanced Features). Finally, because MOSAIC was designed from the start using object oriented design, developers can easily extend it by combining existing classes to define new functionality or writing their own classes (see Extend MOSAIC).