Dictionary Views & Set Operations
The keys, values and items from a dictionary can be accessed using the .keys()
, .values()
and .items()
methods. These methods return view objects which provide a view on the source dictionary.
My PyQt GUI book Create Simple GUI Applications has been updated, with new chapters on Qt Designer and multithreading. Get it here.
The keys, values and items from a dictionary can be accessed using the .keys()
, .values()
and .items()
methods. These methods return view objects which provide a view on the source dictionary.
Dictionaries are key-value stores, meaning they store, and allow retrieval of data (or values) through a unique key. This is analogous with a real dictionary where you look up definitions (data) using a given key — the word. Unlike a language dictionary however, keys in Python dictionaries are not alphabetically sorted.
The first step in creating desktop applications with PyQt is getting a window to show up on your desktop. Thankfully, with PyQt that is pretty simple.
With the release of Qt 5.5 the Qt WebKit API was deprecated and replaced with the new QtWebEngine
API, based on Chromium.
The WebKit API was subsequently removed from Qt entirely with the release of Qt 5.6 in mid-2016.
System tray applications (or menu bar applications) can be useful for making common functions or information available in a small number of clicks. For full desktop applications they're a useful shortcut to control apps without opening up the whole window.
A common problem when building GUI applications is "locking up" of the interface when attempting to perform long-running background tasks. In this tutorial I'll cover one of the simplest ways to achieve concurrent execution in PyQt.
Partial least squares discriminant analysis (PLS-DA) is an adaptation of PLS regression methods to the problem of supervised1 clustering. It has seen extensive use in the analysis of multivariate datasets, such as that derived from NMR-based metabolomics.
1D 1H NMR is a common technique applied to metabolomic studies, being well suited to untargeted analysis of complex biofluids. It has been successfully applied to the classification and diagnosis of a number of diseases including [ref].
A new live demo of Wooey is now up and running with a few simple example scripts. Features:
This is quick start-up guide for new users of Pathomx. Following it should give you everything that you need to know to start using Pathomx right away. Once you've been through the basics you might like to see some of the demos to see what Pathomx is capable of.
PyQtConfig: a simple API for handling, persisting and synchronising configuration within PyQt applications. This module was built initially as part of the Pathomx data analysis platform but spun out into a standalone module when it became clear it was quite useful.
Pathomx is a workflow-based data analysis tool built on IPython. It began as a metabolomic-analysis toolkit, but has extended to support general data analysis workflows. It aims to be simple to use for non-experts while powerful enough for complex analysis tasks. Key to both of these goals is the ability to create 'custom tools' that can be drag-dropped together to form larger workflows.
My pull-request for matplotlib to add PyQt5 support has been accepted and merged, meaning PyQt5 support will be available in the upcoming v1.4.0 release of matplotlib.
This notebook demonstrates automatic phase correction algorithms implemented for nmrglue. Two standard algorithms are implemented:
This notebook uses a subset of the available processing features in NMRLab (+Metabolab) to process 1D NMR spectra. The output is saved as a CSV file that can be imported into pandas
, PLS_Toolbox or any other package for subsequent analysis.
This notebook contains snippets of code that are useful when working with MATLAB in IPython Notebooks.
MetaboHunter is a Python module for accessing the MetaboHunter web service for automated assignment of 1D raw, bucketed or peak picked NMR spectra.
MetaboHunter is a web service for automated assignment of 1D raw, bucketed or peak picked NMR spectra. Identification is performed in comparison to two publicly available databases (HMDB, MMCD) of NMR standard measurements. More information about the algorithm is available in the published paper:
BioCyc is a Python interface to the BioCyc Web API. Acting as a wrapper it queries the database and then presents the XML returned in a pythonic object-based interface. Support for IPython views is included offering nice summary tables of object attributes.
This notebook is a quick demo of a BioCyc Web API I've released for Python. While incomplete the API offers access to most basic attributes for metabolites, proteins, reactions, pathways and organisms in the database. The Python interface comes with an disk-based caching mechanism under ~/.biocyc
that greatly reduces the delay (and load) for BioCyc servers.
Now we've got the classes for the data plotted, we can now plot the mean values (of the spectra). To get a style assignment for a given class we need to call .get_style_for_class()
on the styles manager. This returns a useable style object that can output the keyword arguments needed to correctly style matplotlib plots.
Analyzing a dot blot in ImageJ by background subtraction and measuring the integrated density of each dot. This dot blot image is available in the File/Open Samples menu in ImageJ 1.33s or later.
Determining the level of cellular fluorescence from fluorescence microscopy images in ImageJ
QtIPy: The data automator! a simple GUI-based run-automator for IPython notebooks. It allows you to attach triggers to files, folders or timers to automatically run notebooks.
Below is a short snippet to implement a color-picker attached to a button in Qt. Clicking on the button pops up a dialog (native) to select a color. The color is shown by the color of the button face. A right-click option is included to allow clearing of the color setting (returning the value to None).
Signals are a neat feature of Qt that allow message-passing between different areas of your program.
This short demo shows analysis of a publically available GEO dataset using Pathomx, with a workflow build using the new visual editor (available in the next release).
The NCBI Gene Expression Omnibus (GEO) is 'is a public functional genomics data repository supporting MIAME-compliant data submissions.' In other words, its a online database of freely available experimental gene-expression data. Quite useful.