1.1.0
Hey FlowKit community! Lots of changes in this release, including support for Python 3.11 & 3.12. The major updates: we've moved to a src
based structure using pyproject.toml
and finally converted all plotting functions to Bokeh (dropping matplotlib and Seaborn as requirements). Read the notes below for all the changes.
Special thanks to @hbhargava7 and @laserson for their contributions to this release!
New features:
- New utility function
read_multi_dataset_fcs
for reading FCS files with multiple data sets (returns a list of Sample instances). Workspace
class now has an option to load FCS files from the URI parameter embedded in the WSP file (Many thanks to @hbhargava7 for PR #168).Sample.plot_scatter_matrix
now displays histograms along the diagonal (Thanks @laserson for the suggestion in #169).- Exporting FlowJo 10 workspaces now supports the
WSPBiexTransform
. Sample.plot_scatter
addsevent_mask
option to filter the plotted events.Sample.plot_contours
&Sample.plot_channel
methods now use Bokeh.- Custom heatmap color palette was improved (it's subtle but has better visual contrast between density levels).
API changes:
Sample.plot_histogram
method addsdata_min
,data_max
, andx_range
kwargs for filtering data ranges and controlling the view range.- Removed argument
ignore_transforms
inparse_wsp
utility function. - Transforms from a GatingML document are no longer imported as undocumented "GML" sub-classes, instead using the documented
Transform
sub-classes. - Added kwarg
gate_path
toplot_scatter
method in both Session & Workspace. sample_id
argument now required forGatingStrategy.is_custom_gate
method.- Rename
plot_scatter
argumenthighlight_indices
tohighlight_mask
(since it takes a Boolean array and not a list of indices). plot_scatter
argumentdim_ids
split tox_label
&y_label
for specifying axis labels.plot_gate
argumentdim_ids
split tox_label
&y_label
for specifying axis labels.
Bug fixes:
- Fixed KeyError in
Workspace.summary
method when a sample has no gates (see #155). - Fixed WSP export of "range"
RectangleGate
instances (see #157). - Fix
ValueError
thrown when compensating a Sample specifying null channels vianull_channel_list
(see #175). - Fix
Session.plot_scatter
method where mixed compensations are specified for x & y channels (rare).
Documentation:
- Switched to ReadTheDocs theme for documentation.
- Clarify docstrings for null channel usage (see Sample & Matrix constructor docs).
- All notebooks validated and updated for the new release.
Dependencies:
- Dropped support for Python 3.7, added support for Python 3.11 & 3.12.
- FlowIO updated to >=1.3.0,<1.4
- FlowUtils updated to >=1.1.0,<1.2
- Matplotlib & Seaborn removed as dependencies. All plotting now uses the Bokeh library (>=3.1).
- Pandas updated to >=2.0
- Added new dependency contourpy (the library matplotlib uses).
- Other dependency minimum versions updated for Python 3.8 - 3.12 support (See requirements.txt for details).