Fix bug with BytesIO not being recognized by
Ensure that protocols don’t have incorrect stage index and label information when being sent to machine.
MachineStatus now includes temperature information, as does the
qslib machine-statusCLI command.
Experiment.sync_from_machinecan exclude tiffs, and has better logging.
Custom steps are now approximated in xml files, keeping them somewhat compatible with the machine’s android interface.
Several testing and documentation improvements.
Python 3.11 fixes.
QSLib-initiated experiments should now be partially compatible with the machine’s android interface. Status, time, and the (possibly approximate) protocol should be displayed. Data and samples will likely not. Pause/resume/stop/open/close buttons on the interface should function properly.
Processorand plotting improvements.
Protocol.stage, and Stage now has
Stage.step, to provide convenient, 1-indexed access, such that
protocol.stageof is stage 5 of
protocol, not stage 6.
Protocolnow supports setting PRERUN and POSTRUN stages, as a series of SCPI commands. This allows the setting of things like idling temperatures and exposure times. It is not easily usable yet, however.
Experiment.change_protocol_from_nowallows convenient changes to a currently-running experiment.
Normalizationhas been renamed to
Processor. Plotting functions can take sequences of processors to process data. These now include:
Normalization as before:
SubtractMeanPerWell: subtracts the mean of a particular region, applied to each well.
SmoothEMWMean: smooths data using Pandas’ ExponentialMovingWindow.mean.
SmoothWindowMean: smooths data using Pandas’ Rolling.mean or Window.mean.
Some initial implementation changes to allow repeated steps (not stages).
Fixes bug that prevented loading of some aborted runs.
Fixes monitor’s recording of temperatures.
Experiment.all_filters uses data if it exists; Experiment.filter_strings as a convenience function alternative.
SCPICommand parsing improvements.
Protocol printing improvements.
Fixes drawer check bug.
Add checks for cover and drawer position after changing positions.
Fix pyparsing 3.0.7 whitespace parsing problem (pyparsing/pyparsing#359).
Use Hypothesis for some tests.
Improved plots, including new
Comments in SCPI commands, allowing save/load of default filters in protocols
Licensing switched to AGPL 3.0, CLA in docs.
Command comment parsing, also used to store whether steps are using default filters.
Working parsing of Exposure commands
Dependency version fixes
CustomStep.collect(and subclasses, including
Step) is now
Stepcan now be
None, which will collect data if the step has a filter setting (ie, if you want to collect the default
Protocolfilters, you need to use
Stage.hold_forare now safer in requiring some keyword arguments, are documented, and are more flexible.
Units throughout protocols, thanks to Pint: you can now use strings like ‘1 hr’ or ‘52 °C’ when defining protocols.
Automatic connections throughout Machine and Experiment, by default.
Change safe titles from spaces-as-“-” to spaces-as-“_”, consistent with machine.
Deprecated paramiko tunnel.
Implement EDS-file (in-progress and complete) synchronization for monitor.
Reorganization of modules: common is no longer needed
Allow setting of Experiment.sample_wells.
Improve plotting code.
Experiment.sync_from_machine, only transferring additional log entries rather than the entire log.
Common plotting routines for fluorescence data.
More reliable monitoring.
More reliable connections, and testing.
Fixes to bugs inhibiting exposure setting, and some basic implementations for this.
Fixes to qs-monitor for cycle counts > 999 (and other large stage / step / cycle counts).
Fix qs-monitor and various functions when run titles have spaces in them.
Improve tests and typing.
Add qslib CLI, with some basic utility functions.
Include calculation using 1.6°c/s ramp (standard mode default) in temperature protocols, initiating from 25°c. This makes experiment temperature data match reasonably well with protocol calculations. It needs to be expanded to handle different ramp rates and run modes, however.
Added some tests.
Add internal SSH tunnel support, so that this doesn’t need to be set up separately, and can be configured with parameters to Machine.
Fix mid-run syncing bugs related to directory creation.
Handle some different inputs for Protocol creation.
Try to handle spaces in names better; this is still a problem, howver.
Various small improvements and bug fixes.
Initial implementation of full communication (OK/NEXT/ERRor), Experiment files, Machine connection interface. Adaptation of QSConnectionAsync to use new communication. Move of monitor system into qslib.
Version 0.0.0 / etc¶
Initial version of QSConnectionAsync and other low-level portions to support rawquant and qpcr_data_updater.