Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

A Modular Single-Molecule Analysis Interface.

Project description

.. image::
.. image::

MOSAIC: A modular single-molecule analysis interface

MOSAIC is a single molecule analysis toolbox that automatically decodes multi-state nanopore data. By modeling the nanopore system with an equivalent circuit, MOSAIC leverages the transient response of a molecule entering the channel to quantify pore-molecule interactions. In contrast to existing techniques such as ionic current thresholding or Viterbi decoding, this technique allows the estimation of short-lived transient events that are otherwise not analyzed.

Nanometer-scale pores have demonstrated potential use in biotechnology applications, including DNA sequencing, single-molecule force spectroscopy, and single-molecule mass spectrometry. The data modeling and analysis methods implemented in MOSAIC allow for dramatic improvements in the quantification of molecular interactions with the channel in each of these applications.

**If you use MOSAIC in your work, please cite:** `Analytical Chemistry 2016, (88) pp. 11900–11907 <>`_ and `ACS Nano 2014, (8) pp. 1547–1553. <>`_


Please refer to the `Installation <>`_ section of the MOSAIC documentation for details on installation.

Getting Help

For questions and help, please join our `mailing list <>`_.

To subscribe:

Email ` <>`_ with subject 'subscribe'

To unsubscribe:

Email ` <>`_ with subject 'unsubscribe'

Once subscribed, you can send messages by emailing ` <>`_.

Reporting Problems

Report problems using our `issue tracker <>`_ on Github.

Change Log


- Saves raw events in database. Resolves #93.


- Fixed a bug in the default settings that prevented the analysis from starting in some instances.


- Added support for Chimera data files.
- Resolves issues #92 and #95.


- Fixed event partiioning bugs.
- [GUI] UI tweaks.


- Bug fix release.


- Added a new MOSAIC examples repository that contains plotting scripts and Jupyter notebooks (

- Updated Bessel fiter implementation to allow causal and non-causal filters.
- Added the CUSUM+ algorithm (see pull requests #34, #43, #45, and #46)
- Added the ability to read arbitrary binary files.
- Renamed StepResponseAnalysis to ADEPT 2-state.
- Renamed multiStateAnalysis to ADEPT.
- CUSUM+ is now used to generate initial guesses for ADEPT
- Streamlined unit test framework. Added new tests for CUSUM+.
- Updated MOSAIC dependencies to include newer package versions and pandas. Run 'python mosaic_deps' to update.
- Added a new metadata column (mdStateResTime) that saves the residence time of each state to the database. This affects ADEPT and CUSUM+.
- Processing time per event is now saved to the database.
- Added support for warning status codes that begin with 'w'. These codes preserve metadata in the SQLite output and are used to flag events that need closer inspection.
- Removed mosaicgui from PyPi. 'pip install mosaic-nist' only installs command line modules.
- Top level ConvertTrajIO supports binary and ASCII files.
- Added Travis continous integration support.
- [GUI] Added a binary update service for Windows and OS X.
- [GUI] Added a table that displays fit parameters in the event viewer window.
- [GUI] Added more descriptive fit errors.
- [GUI] Added CUSUM+ support to MOSAIC GUI.
- [GUI] Export SQLITE database to CSV (#56).
- [GUI] Support for warning codes in fit event viewer.
- [GUI] Performance optimizations.
- [GUI] Fit window in MOSAIC GUI displays idealized pulses overlays.
- [GUI] Added additional analysis statistics.

- [Addons] Added CUSUM+ support to Mathematica addon (PlotEvents in MosaicUtils.m)
- [Addons] Mathematica queries are *optionally* handled through an external Python script to improve performance.
- [Addons] Added an option to limit PlotEvents in Mathematica addon to N events.

- Known Issues: See #8, #10, #40, #63 and #69.


- Added support for arbitrary binary file formats (#33)
- [GUI] Included binary file support.
- Documentation updates and bug fixes.
- *Known Issues:* See #8 and #10.


- [Addons] IGOR support.
- PyPi package automatically installs MOSAIC dependencies.
- Miscellaneous bug fixes.
- *Known Issues:* See #8 and #10.


- Fixed a bug in multistate code that constrained the RC constant resulting in systematic fitting errors (pull request #25).
- Updated multistate to include a separate RC constant for each state, to be consistent with functional form in Balijepalli et al., ACS Nano 2014.
- Misc bug fixes in tsvTrajIO parsing.
- The number of states is saved to the MDIO DB for multistate analysis (issue #26).
- Created a new package on PyPI (mosaic-nist) to allow installation with setuptools.
- [GUI] Updated help link to point to Sphinx documentation on Github.
- *Known Issues:* See #8 and #10


- [GUI] Misc bug fixes
- [Addons] Added code to import MOSAIC output into Matlab (pull requests #18 and #20)
- [Addons] Updated Mathematica addons to automatically decode multi-state data.
- Resolves issues #16 and #22


- [GUI] Added multiState support to mosaicgui.
- Analysis information such as alogirthms used, data type, etc. are now stored within a MDIO database.
- [GUI] Autocomplete in mosaicgui only suggests database columns that are valid when used in a query.
- Reorganized Mathematica addon code.


- Fixed a bug that prevented events longer than ~700 data points from being correctly analyzed.
- Fixed a problem that prevented event data from being correctly padded before analysis.
- Resolves #2. TrajIO settings are now read in from the settings file.
- [GUI] Resolves #3. Threshold entry box in GUI becomes nonresponsive when meanOpenCurr is negative.
- [GUI] Resolves #4. Analysis fails when using wavletDenioseFilter from GUI.
- [GUI] Histogram in BlockDepthViewer window can be saved to a CSV file from the File Menu.
- Analysis log is saved to the MDIO database.
- [GUI] ConsoleLogViwer displays the analysis log saved in the MDIO database.
- [GUI] Added a new dialog that displays an experimental feature warning wavelet-based denoising is selected.
- Updated error codes reported in database to be more descriptive of the failure.
- Improved and expanded unit testing framework.
- Moved installation and testing to setuptools.


- [GUI] Fixed threshold update error from 1.0b1.
- Considerably improved automatic open channel state detection.
- The default settings string is now included within the source code.
- Implemented new top-level class ConvertToCSV that allows conversion of data read by any TrajIO object to comma separated files.
- Updated build system and unit testing framework.
- [GUI] Misc UI updates.


- [GUI] Added a menu option to save a settings file prior to starting the analysis.
- [GUI] Current threshold is now defined by an ionic current. The trajectory viewer displays the deviation of the threshold from the mean current.
- Analysis settings are saved within the analysissettings table of the sqlite database. When an analysis database is loaded into the GUI, settings are parsed from within the database.
- When an analysis file is loaded, widgets in the main window remain enabled. This allows starting a new analysis run with the current settings.
- [GUI] Implemented an analysis log viewer that displays the event processing log.
- [GUI] Initial commit of wavelets based peak detection in blockdepthview.
- [GUI] Added all points histogram to trajectory viewer.
- *Known Issues:* Selecting automatic baseline detection can sometimes cause the threshold in the trajectory viewer to change. Moving the slider will cause the settings and trajectory windows to synchronize.

Project details

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
mosaic-nist-1.3.5.tar.gz (7.0 MB) Copy SHA256 hash SHA256 Source None Oct 10, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page