Skip to main content
Primary developers:

Christian Schou Oxvig, Patrick Steffen Pedersen

Additional developers:

Jan Østergaard, Thomas Arildsen, Tobias L. Jensen, Torben Larsen

Institution:

Aalborg University, Department of Electronic Systems, Signal and Information Processing

Version:
1.7.0
Travis CI test status:
https://travis-ci.org/SIP-AAU/Magni.svg?branch=master

Introduction

Magni is a Python package which provides functionality for increasing the speed of image acquisition using Atomic Force Microscopy (AFM). The image acquisition algorithms of Magni are based on the Compressed Sensing (CS) signal acquisition paradigm and include both sensing and reconstruction. The sensing part of the acquisition generates sensed data from regular images possibly acquired using AFM. This is done by AFM hardware simulation. The reconstruction part of the acquisition reconstructs images from sensed data. This is done by CS reconstruction using well-known CS reconstruction algorithms modified for the purpose. The Python implementation of the above functionality uses the standard library, a number of third-party libraries, and additional utility functionality designed and implemented specifically for Magni. The functionality provided by Magni can thus be divided into five groups:

  • Atomic Force Microscopy: AFM specific functionality including AFM image acquisition, AFM hardware simulation, and AFM data file handling.

  • Compressed Sensing: General CS functionality including signal reconstruction and phase transition determination.

  • Imaging: General imaging functionality including measurement matrix and dictionary construction in addition to visualisation and evaluation.

  • Reproducibility: Tools that may aid in increasing the reproducibility of results obtained using Magni.

  • Utilities: General Python utilities including multiprocessing, tracing, and validation.

Downloading

Magni can be downloaded in a number of ways:

Furthermore, all official releases of the magni package (without examples and documentation) are made available through PyPI and binstar. Both of these are considered unofficial channels and provided solely for your convenience.

Installation

To use Magni, extract the downloaded archive and include the extracted Magni folder in your PYTHONPATH.

Magni has been designed for use with Python 2 >= 2.7 or Python 3 >= 3.3.

The required thid party dependencies and optional third party dependencies for Magni are listed in the compiled documentation which can be found in the Magni folder under ‘/doc/build/html/index.html’. You may use the ‘dep_check.py’ script found in the Magni folder under ‘/magni/tests/’ to check for missing dependencies for Magni. Simply run the script to print a dependency report.

Documentation

The included subpackages, modules, classes and functions are documented through Python docstrings using the same format as the third-party library, numpy, i.e. using the numpydoc standard. A description of any entity can thus be found in the source code of Magni in the docstring of that entity. For readability, the documentation has been compiled using Sphinx to produce an HTML page which can be found in the Magni folder under ‘/doc/build/html/index.html’. The entire documentation is also available as a PDF file in the Magni folder under ‘doc/pdf/index.pdf’. Note, that neither the HTML version nor the PDF version of the documentation is provided through PyPI and Anaconda.org.

Tests

A test suite consisting of unittests, doctests, IPython notebook examples, and several style checks is included in Magni. The tests are organised in python modules found in the Magni folder under ‘/magni/tests/’. These may be invoked using any test runner that supports the unittest.TestCase classes. The entire test suite may be run by executing the convenience script ‘run_tests.py’. The code is this repository is continuously tested by Travis CI.

Examples

A large number of examples showing the capabilities of Magni are included. Some of these examples are in the form of doctests whereas the more elaborated examples are in the form of IPython notebook examples which can be found in the Magni folder under ‘/examples/’.

Citing Magni

A Magni software metapaper has been published:

C.S. Oxvig, P.S. Pedersen, T. Arildsen, J. Østergaard, and T. Larsen, “Magni: A Python Package for Compressive Sampling and Reconstruction of Atomic Force Microscopy Images”, Journal of Open Research Software, 2(1):e29, 2014 DOI: http://dx.doi.org/10.5334/jors.bk

Furthermore, the magni.utils.validation system is detailed in:

P.S. Pedersen, C.S. Oxvig, J. Østergaard, and T. Larsen, “Validating Function Arguments in Python Signal Processing Applications”, in Proceedings of the 15th Python in Science Conference, pp. 106-113, Austin, Texas, USA, July 11 - 17, 2016 URL: http://conference.scipy.org/proceedings/scipy2016/patrick_pedersen.html

And the magni.reproducibility sub-package is detailed in:

C.S. Oxvig, T. Arildsen, and T. Larsen, “Storing Reproducible Results from Computational Experiments using Scientific Python Packages”, in Proceedings of the 15th Python in Science Conference, pp. 45-50, Austin, Texas, USA, July 11 - 17, 2016 URL: http://conference.scipy.org/proceedings/scipy2016/christian_oxvig.html

Please consider citing one or more of these papers if you publish any work in which you have used Magni.

Metadata

Release files for magni 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for magni 1.7.0
File Size Uploaded Provenance Actions
magni-1.7.0.tar.gz 194.0 kB Without provenance Details for magni-1.7.0.tar.gz

Release files / magni-1.7.0.tar.gz

Download URL magni-1.7.0.tar.gz
Size 194.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e349d6f307b8805f1aa63db64088a54a48d4e7ed43cbbe39585876513591db8f
BLAKE2b-256 checksum
How to use checksums
d8b588f964cd56097ca8b364b02b2d5664870b68b693eb5a658030b3fa87e050
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for magni 1.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page