Change log

Milestone 1.0

Start date:Jan 25th 2018
Release date:Mar 18th 2018
Release installer:

This milestone is a major release, finally getting to a stable baseline tool, and therefore calling it “1.0”. The newest release now supports 2 levels of users, with a Community Edition and a Professional Edition. Please refer to for the differences between the two states of the tool. Going forward, we will specify in this changelog if a new features is available to both editions, or just the Professional edition.

Compared to the previous milestone, this one contains the following new features and improvements:

  • New mass balance comparison tool upon loading of an experiment, to detect discrepancies between AKTA data and experiment method information in the Excel input file.
  • Parameter optimizer now supports of fractionless 1-component protein experiments, for example to support calibrating transport models from (fractionless) pulse injection experiments.
  • Added support for AKTA file timelines not to be aligned with the experimental method listed in the Excel input: AKTA/experiment loader now requests the name of the step the AKTA time of origin is aligned with.
  • Added menu and toolbar entries for loading recently loaded files.
  • Added support for the interactive python console on Linux.
  • Reveal now warns the user when loading a file that doesn’t use the newest file format.
  • Improve the system view to display the hold-up volume.

In addition, the new version fixed the following bugs:

  • Fixed the ability to plot simulation traces after changing the weights of the cost function, for optimizer simulations.
  • Fixed a bug in the chromatogram legends which would display the same entries multiple times when hiding/showing simulations/experiments.
  • Fixed multiple flaws in SLURM scheduler on LINUX workstations.

Milestone 10

Start date:Oct 27th 2017
Release date:Jan 25th 2018
Release installer:

This milestone is a major release, and contains several important new features, including:

  • Added support for 2 new isotherms: multi-component Langmuir and pH-dependent multi-component Langmuir isotherms as implemented in CADET. Simpler so faster to run and using fewer parameters so easier to calibrate, these models might be a good approximations for simple processes that don’t rely on interactions between the product and cations.
  • Added the ability to fit experimental data comparing curves for specific components rather than computing the cost for all components.
  • Added Linux (workstation) support, with experimental support for submitting CADET runs to the workstation using the SLURM job scheduler.
  • Added the ability to change the colors of the chromatograms.
  • Added a new File > Recent Files menu entry.
  • Added example scripts to build pareto plots to support process characterization.
  • Plots in the simulation group data explorer now update when filtering the data and scatter plots support point selection (displayed in the data table view and every other scatter plots). This is particularly useful for process characterization, allowing users to track the origin of process failures.

This release also includes improvements of existing features and bug fixes:

  • Improved logging of CADET run for more details around resource utilization.
  • Better CADET defaults for optimal performances during large parameter explorations.
  • Better simulation and simulation group builder user interfaces, to indicate to the user when not enough information has been provided.
  • Improved the application updater to handle failures better, and improves its version comparison.

This release is scheduled to be the last (major) release before our upcoming commercial launch. Stay tuned!

Milestone 9

Start date:Sept 9th 2017
Release date:Oct 27th 2017
Release installer:


This milestone is a major release, and contains several important new features, including:

  • Added the ability to delete CADET files while simulation groups are running. This is critical to supporting exploration of many thousands of simulations and avoid failures due to full hard drives.
  • Added a new filter box below parameter selection tables in explorations and optimizer creation windows, to help search for a specific parameter.
  • Add the ability to build simulations grids where 2 or more parameters are scanned together (in “parallel”) rather than one at a time (“orthogonally”). This enables scanning new types of parameters, such as percentages (for e.g. the load purity) while keeping simulations in consistent states. This can also be done in Monte-Carlo simulations using the scripting interface.
  • Added a new feature which detects if CADET files are to be stored in a external hard drive that is inaccessible. Application now warns the user and launches the preference dialog to allow modifying preferences.
  • Added new features in the simulation group data analyzer, including the ability to create multiple histograms at once, the ability to smooth 2D heat-maps and to add contour lines on to them or the ability to control the columns that are shown.
  • Add the ability to remove the ‘Strip’ component from the computation of the cost in optimizers. That feature is now turned on by default.
This release also includes improvements of existing features and bug fixes:
  • Simplified parameter options when creation parameter explorations by removing those that don’t have an impact on CADET simulations: buffer temperatures, resin settled porosity, ... Conversely, added load purity as a new scan-able parameter.
  • Added more process characterization and process optimization tools and example scripts.
  • Improved AKTA file reader to support files that are missing a logbook.
  • Fixed the ability to have optimizer cost data update when changing the cost function weights. This can be used to optimize the optimizer so that it follows custom definitions of the “best” simulation-experiment match.
  • Improve the Copy/Paste function to work with any simulation in analysis tools.

This version is fully backward compatible, and all users are recommended to upgrade. The new release is available as a 1-click installer as well as an update from any install with version 0.8.0+, via the application updater in the Help menu.


Merged PRs:37
Line Of Code (main pkg only):
 31636 (-1543)
Tests (main pkg only):
 1058 (-38)
Test coverage:91% (+0)
Tests run duration:
 66 min (+7)

Milestone 8.2

Start date:Aug 17th 2017
Release date:Sept 8th 2017
Release installer:


This milestone contains several important improvements and bug fixes over milestone 8.1, including:

  • A new application pane (bottom right by default) was added to the user interface to visualize the Job Manager activity (used to run CADET). Users can now see how many runs are still pending, how much time that’s likely to take, how many CPUs Reveal is configured to use, and more.
  • Added the ability to control in the preferences the group size beyond which to leave simulation data on disk, reducing how much memory is used by Reveal. This is important for large scale/high resolution analysis.
  • Improved the Transport and Binding models central pane views so that models can be modified in the central pane (after creation).
  • Improved Reveal’s DEBUG mode to provide (a lot) more information.
  • Added new sample input files and a new product to support Reveal tutorials and model calibration courses.
  • Fixed a bug in the data analyzer so that histograms can be built even for data columns that contain missing data.
  • Fixed a bug sometimes yielding the wrong group size when building a Monte-Carlo simulation group.
  • Fixed a bug where the study type was not collected from the input Excel file.

This version is fully backward compatible, and all users are recommended to upgrade. The new release is available as a 1-click installer as well as an update from any install with version 0.8.0+, via the application updater in the Help menu.


Tickets closed:8
Merged PRs:15
Line Of Code (main pkg only):
 33179 (+156)
Tests (main pkg only):
 1096 (+12)
Test coverage:91% (+0)
Tests run duration:
 59 min (+15)

Milestone 8.1

Start date:July 7th 2017
Release date:Aug 17th 2017
Release installer:
 Available as update only


0.8.1 is a small update containing a couple of small improvements (available only as an update from 0.8.0, via the help menu) that contains 2 improvements:

  • Fixed a bug in the time alignment of the pH curve.
  • Improved the chromatogram plot legend, so that fractions are always listed in the correct product component order.

Milestone 8

Start date:May 5th 2017
Release date:July 7th 2017
Release installer:


The milestone 8 is a major release that includs multiple major new features compared to version 0.7.2, in particular introducing the first tools to support Process Characterization. These improvements include:

  • A new type of Simulation Group can be created: Monte-Carlo explorations to support Process Characterization efforts. It allows users to explore large multi-dimensional spaces without the exploration to be required to be on a regular grid. Parameter values are randomly generated, following user-defined distributions (uniform or gaussian).
  • A preliminary data exploration tool allows to browse the data generated by simulation group to summarize it (mean, standard deviation, percentiles), filter it, and plot it.
  • A new updating mechanism to save download/installation time, and allow the application to update itself, instead of forcing all users to uninstall, download and install large .msi installers.
  • A new strip fraction tool which estimates the amount of material recovered before the strip, and therefore the amount of material to expect eluting during the strip. This is important to respect mass balances, or identify issues with inputs (extinction coefficient vs loaded product mass vs chromatogram).
  • When opening a project, empty projects window are automatically closed. A dedicated preference entry allows users to turn off that feature.

In addition the following enhancements and bug fixes are also included in the release:

  • The Study view is improved, using ellipsis when the path to the source file is too long, to avoid abnormally wide application windows.
  • The Method view is improved to include the name of the buffer the method uses as column initial condition.
  • The Product and Simulation views are exposing a new Description field for user to includes notes about what they create.
  • The wrapping of CADET was improved to avoid it occasionally crashing when saving and reloading projects.
  • Some more scripting tools were added to help build Process Characterization scripts and reports, in particle to generate Pareto plots to compare the impact of various parameters with each other.
  • A lot of code improvements, and refactor, as well as increased test coverage.


Tickets closed:31
Merged PRs:33
Line Of Code (kromatography only):
 32023 (+561)
Tests (kromatography only):
 1084 (+27)
Test coverage:91% (+0)
Tests run duration:
 45 min (on Jenkins)

Milestone 7.2

Start date:March 31st 2017
Release date:May 4th 2017
Release installer:


The milestone 7.2 is a minor release that includes some small but important bug fixes and improvements over the last release 0.7.1. These include:

  • Suppressed the console launch when running CADET on Windows, to avoid them preventing from using the main application during large grid scans.
  • Added a tool to set some user preferences to control the default location for user data to be stored, control how many CPUs should be used when running CADET on simulation grids, control which CADET executable to use, or the default size of the main window.
  • Improved the transport and binding model creators, simulation grid creator and the optimizer creator to be easier to use and less restrictive.
  • Fixed the color bar ranges of the particle animation plot, so that time slices can be compared to each other.
  • Fixed multiple issues when building a study around experimental data that doesn’t containing collection criteria information (such as is typically the case for pulse injection data).
  • Added new tools in the toolbar to create new simulations from experiments or to run simulation(s) or simulation grid(s).
  • Added the ability to export User Data to a file for data sharing.
  • Improved data collection when a Python script fails to run.
  • Simplified the product creation process when a Strip component needs to be present to offset amounts of regular product components.
  • Added a confirmation when closing a project.
  • Improved documentation, including the addition of an FAQ document.


Tickets closed:23
Merged PRs:68
Line Of Code:32023 (+2977)
Tests:1057 (+117)
Test coverage:91% (+0)
Tests run duration:
 42.1 min (on Jenkins)

Milestone 7

Start date:December 2nd 2016
Release date:March 31st 2017
Release installer:


The milestone 7 is a major release, containing about 3 months worth of work. It contains many major features, improvements and bug fixes across the entire application. This release is fully backward compatible and all users are encouraged to upgrade.

This release includes the following features over milestone 6.1:

  • Added support for running simulation grids and optimizers in parallel leveraging all available CPUs. This provides large speedups when running simulation grids and grid based optimizers.
  • Added an extensive documentation for the application, including for the scripting interface of the application.
  • Added a new toolbar for the application to provide some shortcuts to common operations. Includes new functionalities to show/hide chromatogram plot controls, and show/hide the plot legend.
  • Added tool on chromatograms to read (x,y) position of the mouse.
  • Added the ability to launch an interactive Python console to simplify custom analysis and script generation.
  • Added the ability to print out the output of a Python script run. That’s critical to be able to debug their runs.
  • Allow systems to be found in study data browser and viewed in the central pane. Added the ability to create new systems and new system types.
  • Added display of level of completion on simulation grid and optimizer panels.
  • Added support for start collection to happen after the component peak, or stop collection to happen before the peak.
  • Underlying python distribution now contains support for seaborn, and Jupyter notebooks. It also contains most recent versions of NumPy, SciPy, Matplotlib, Pandas.

This release also includes the following enhancements over milestone 6.1:

  • Reduced the memory footprint of simulations in simulation grids/optimizers, to allow for larger parameter spaces to be explored with the same amount of RAM memory.
  • More realistic default values for pH-dependent binding models.
  • Added support for parameter scans to explore 1 value. That simplifies simulation grids to be done around a modified center point simulation, without requiring to make a new simulation prior to making the grid.
  • Improved support for multi-experiments optimizers, when experiments are done at different pHs.
  • Added tooltips for all data in both data browsers to clarify the type of the data.
  • Added purities to the list of output columns of a simulation grid.
  • Creating new simulation grids now automatically leads to their opening in the central pane.
  • Simplify the creation of new products, by automatically generating the more complex parts of the Product internal properties. Also component names are now checked against existing components to avoid collisions and failures.
  • Simplified and color-coded the Excel input file format. Old file format is still supported.
  • Countless enhancements to the source code, its documentation, and its API (scripting interface).

It finally includes the following bug fixes over milestone 6.1:

  • Fixed a bug that prevented to control the number of solution times in CADET from the simulation’s UI.
  • Fixed a serious bug that prevented from loading a project file twice during the same run.
  • Fixed the completion computation for simulation grids, which sometimes led to completion rates above 100%.
  • Fixed a bug that led to wrong pH profiles and therefore binding models when the pH-dependent SMA model was selected.
  • Fixed a bug leading to wrong method step times sent to CADET when scanning method step parameters in a simulation grid or an optimizer.
  • Fixed a bug preventing optimizer simulations from being copied/pasted in the study browser.


Tickets closed:44
Merged PRs:149
Line Of Code:29046 (+3577)
Tests:942 (+181)
Test coverage:91% (+0)
Tests run duration:
 44.4 min (on Jenkins)

Milestone 6.1

Start date:October 26th 2016
Release date:December 2nd 2016
Release installer:


The milestone 6.1 contains many major improvements and bug fixes to the optimization capabilities brought in 0.6.0. This release is fully backward compatible and all users are encouraged to upgrade.

This release includes the following features and enhancements over milestone 6:

  • Added support for multi-experiment optimization. That is critical to ensure that binding and transport models coming out of optimizations are accurately describing the protein.
  • Added computation and display of the pool purity for all components and the total product concentration in the pool in the performance parameter panel.
  • Added the ability to change cost function weights in the cost function explorer and have costs, cost function plots and optimal simulations update live.
  • Added the possibility to save binding or transport models in the user datasource for them to be reused across studies.
  • Added support for copying/cutting and pasting objects in the tree views. That’s useful to save optimizer’s best simulations or copy/move binding or transport models to/from the user datasource.
  • Improved the default cost function to make sure that, by default, the peak position remains more important to match compared to the back peak slope.
  • Improved the optimizer creation panel, renaming the “OK” button to “Create” to clarify what it does, get disabled when not enough information is provided and to automatically open the newly created optimizer in the central pane.
  • Changed the default optimizer from the self-refining SMA optimizer to the general grid search optimizing.
  • Improve all file loaders to remember where files were last loaded from. Note that it gets reset to the home directory during the application start.
  • Improved the readability of the optimizer builder UI and the performance parameter pane.

It also includes the following bug fixes:

  • Fixed multiple bugs in the cost function explorer that prevented the 2D plot from updating when non-plotted parameters were modified.
  • Fixed a bug in the cost function explorer that led to multiple points displayed when one of the non-plotted parameters scanned small values.
  • Fixed the slider of the cost function explorer, which would sometimes permit to explore values that weren’t scanned by the optimizer.
  • Fixed a bug that prevented from going from the 2D view of the cost function explorer back to the 1D view.
  • Fixed the SMA parameter optimizer, which had been partially broken in the previous release, when used on a multi-component product.
  • Fixed the central pane view for optimizer steps.
  • Fixed the start and stop collect which could be found outside the elution step if complicated chromatogram were observed (for eg. with breakthrough during load).


Tickets closed:30
Merged PRs:35
Line Of Code:25469 (+1281)
Tests:761 (+60)
Test coverage:91% (+0)
Tests run duration:
 885s (+139)

Milestone 6

Start date:September 26th 2016
Release date:October 26th 2016
Release installer:


The milestone 6 contains multiple major features and improvements, mostly targeting more powerful optimizers and the ability to model pH dependent SMA isotherms/binding models. This release is fully backward compatible and all users are recommended to upgrade.

This release includes the following features and enhancements over milestone 5.3:

  • Application now shipping with a new version of CADET which supports pH-dependent SMA binding models (Ka and Kd can be an exponential functions of pH, nu, sigma can be an polynomial functions of pH).
  • Added a new, fully general, optimizer so that model calibration (model building against experiment data) can now be optimized against any parameter.
  • Added the possibility to visualize the weights of the cost function and plot the cost function once the optimizer has run, whether in 1D or 2D. Additionally, the default optimizer cost function was improved, so that weights are normalized.
  • The AKTA file import is now assisted by a GUI to control how the columns are matched to their types. For example, that allows to choose which column to use as UV when both a 300nm and a 280nm are available. Additionally, some global time shift can be applied if for example the AKTA data contains pre-load data that needs to be removed.
  • Improved the optimizer view to display the optimizer status (‘Created’, ‘Running’ or ‘Finished’), control the number of optimal simulations/models to save and allow to sort the data table along any column. Sorting capability also added to the simulation grid view.
  • Added process yield to the performance parameters (and corrected the stop and pool volume).
  • Added a script to export all plot data to a CSV file (or specify a set of experiments/simulation to export).
  • Added new functions in the custom script tool to ‘Reload’ a file and ‘Save As’ a script as a new standard script.
  • Cleaned up the main view by simplifying the names in the data browsers, and splitting the user datasource from the current study into different browser panels.

It also includes the following bug fixes and enhancements:

  • Fixed the creation of simulations with only 1 step methods.
  • Fixed the stop collect time and the pool volumes calculations.
  • Removed potential issues when plotting simulations when more than 1 simulation has the same name.
  • Saving a project automatically adds the .chrom extension if missing.
  • Better UI to inform the user when attempting to create a Product with a name that’s already taken.
  • Numerous code improvements, and added more automated tests and improved test coverage.


Tickets closed:29
Merged PRs:47
Line Of Code:24188 (+2537)
Tests:701 (+91)
Test coverage:91% (+1)
Tests run duration:
 746s (+274)

Milestone 5.3

Version:0.5.3: Second bug fix release for beta testers
Start date:September 15th 2016
Release date:September 23th 2016
Release installer:


The milestone 5.3 contains improvements to the beta test release version as reported by beta testers. This release is fully backward compatible and all users are recommended to upgrade.

This release includes the following features and enhancements over milestone 5.2:

  • Added support for using user-defined columns and chemicals in Excel input files.
  • Changed the definition of a unique resin: a resin is now fully described by its name, type, and lot ID, as opposed to just its type, and lot ID.
  • Added error pop up windows to inform the user when an action fails to perform as expected in the software. One exception: CADET run failures are not triggering these, to support multi-runs to continue.
  • Improved error messages when Excel input files fail to read or load.
  • General logging improvements. In particular, logger now collects more data when failures occur: in addition to the error that occurred, a little bit of the code path to reach that is logged (traceback).
  • Added an example script for importing a product from someone else’s datasource file.
  • Simplified example data file by removing impurities.

It also includes the following bug fixes:

  • Fixed bug when creating simulations from experiments when the simulated method started at the beginning of the experiment method.
  • Fixed unit of product component’s molecular weight in new component creation window. It was displaying g/mol but was assuming kg/mol.
  • Fixed bug when trying to plot a simulation made from datasource components using the right click menu in the data explorer.


Tickets closed:13
Merged PRs:21
Line Of Code:21651 (+440)
Tests:610 (+36)
Test coverage:90% (+1)
Tests run duration:

Milestone 5.2

Version:0.5.2: First bug fix release for beta test
Start date:September 8th 2016
Release date:September 15th 2016
Release installer:


The milestone 5.2 contains improvements to the beta test release version as reported by beta testers. This release is fully backward compatible and all users are recommended to upgrade.

This release includes the following enhancements over milestone 5:

  • More control is provided when building simulations from experiments: users can now specify the start and stop steps, as well as the initial buffer. It also shows the solver and discretization types though there is only 1 possible value for each.
  • The creation of new simulations and methods is more flexible (doesn’t fail automatically if not from a load to a strip).
  • Add the build number to the about dialog. Update the bug reporting help dialog to request user to specify their version and build number when reporting an issue.
  • Improved our release process to provide hot fixes to users faster.

It also includes the following bug fixes:

  • Fixed bugs when attempting to load the same project twice. It is now bringing the corresponding window to the front.
  • Fixed an issue preventing methods with steps with no solution from opening in the central pane.
  • Fixed issues preventing the creation of simulation and methods from scratch.
  • Fixed a bug which prevented from creating parameter explorers when more than 1 simulation exist in the study.
  • Fixed the input file loader so that it supports any number of chemical components.
  • Fixed the study builder so that it can load user created chemical components.
  • Fixed some issues with the documentation on Windows, including files that were missing in the shipped version.


Tickets closed:12
Merged PRs:22
Line Of Code:21211 (+972)
Tests:574 (+23)
Test coverage:89% (+1)
Tests run duration:
 497s (+69)

Milestone 5

Version:0.5.1: beta test release edition
Start date:June 19th 2016
Release date:September 7th 2016
Release installer:


The milestone 5 contains features and improvements to make the tool usable for a limited number of workflows to beta testers external to KBI. That includes the following new features and improvements over milestone 4:

  • Added the possibility to run any custom python script from the application window (Tools menu).
  • Added the possibility to create new Products from scratch and add them to the user datasource (renamed from cross-study datasource).
  • Added support for exporting user datasource to a file. Application can detect some changes to it and prompt user when (s)he closes the application.
  • Improved Method class to better support creating simulations from scratch.
  • Created new Help menu entries with an about dialog, a link to minimal documentation, a link to sample input files, and instructions on how to report a bug. Documentation only contains automatically generated API documentation of source code.
  • Improved the optimizer to make it a self-refining 2-step grid optimizer to search for the optimal binding model parameter. Currently only supports 1-component products for now and comparison to 1 experiment.
  • Merged CADET log file with the application’s log to simplify bug reporting.
  • Added a license key prompt and check on application start.
  • Added the ability to rename and delete objects in the data manager tree.
  • Various UI and menu entry improvements. In particular, moved simulation grids to the analysis tools in the data manager, next to optimizations.
  • Infrastructure work to prepare for future support of CADET3.
  • Branding: Add application icon and update splash screen to reflect new version number of logo. Update end user license agreement (EULA). Update the msi properties.
  • Striped out KBI specific data from the version of the package that gets released.
  • Removed debugging package ipdb from shipped version since license is GPL.
  • Many code clean ups, expanded the test coverage and improved the packaging and release process. In particular, the Legacy/ sub-folder has been removed from source.

It also includes the following bug fixes:

  • Fixed bugs in list of parameters available for parameter exploration.
  • Fixed major issues with project file format, in particular the way data was stored. Results in faster, and more efficient project files, and removed the chance that the data can’t be recovered.
  • Fixed CADET failures by moving the creation of CADET input files to the application directory (inside user’s HOME) to avoid writing rights issues.


Merged PRs:70
Lines Of Code:20239 (+2942)
Tests:551 (+108)
Test coverage:88% (+4)
Tests run duration:
 428s (+118)

Milestone 4

Version:0.4: Recovery Edition
Start date:December 23rd 2015
Release date:June 18th 2016


The milestone 4 contains a lot of features needed to provide a demo version of the tool to present at the Recovery conference. It includes a huge number of bug fixes and improvements to the usability to allow the modeling of 3 different molecules by Tim Fattor in real conditions. This release includes the following improvements over milestone 3:

  • Software renamed from Kromatography to Reveal-Chromatography for all user facing content.
  • Added the most basic version of a new tool to calibrate/optimize the binding model against experimental data. The tool is currently very limited, allowing to only optimize by fitting 1 experiment, and only supporting optimizing Ka, Nu and/or Sigma in a brute-force way, assuming a Steric Mass Action isotherm.
  • Added a new tool to build a regular grid of any number of simulations scanning any number of simulation parameters. A simulation grid, once created, can be viewed, displaying the performance data for each simulation as the results become available. It can also be run, that is running all simulations in the grid. It can finally be plotted, meaning creating a chromatogram with all simulations of the group, and their target experiment) once run.
  • An implementation of the serialization of projects has been added, so that project can be saved, renamed and reloaded.
  • Chromatogram plots are now sync-ed along the x (time) axis.
  • Chromatogram plots support viewing the pH in addition to the UV and chemical concentration.
  • Chromatograms now support 7 additional types of plot markers to distinguish between more product components.
  • Numerous improvements to the Excel reader has been performed to support a wider range of input files and cases, in particular pulse injection data. The reader is also more flexible, for example allowing any number of chemical components in the performance data section. Changed the file format a little to ease input, requiring a new method step type in addition to its name.
  • Fixed shifts between simulation and experiments to removing the hold up volumes in experiments.
  • Fixed bug in the mapping between product component names and their fraction data in the chromatogram plot.
  • Lots of major code rewrite and code refactor, and lots of new tests added.


Lines Of Code:17297 (+6019)
Tests:443 (+183)
Test coverage:84% (-3)
Tests run duration:
 310s (-82)

Milestone 3

Start date:December 11th 2015
Release date:December 23rd 2015


The goal of this release was to polish the workflows 1 and 2 to be delivered at the end of the phase 1. The following was added since Milestone2:

  • New fab script command to check code styling (fab flake8).
  • New fab script based tools to build and upload a Kromatography egg and build a 1-click MSI installer for Windows.
  • Improved chromatogram plots, with cycling markers and colors.
  • Added new families of plots in chromatogram plots, so that each fraction curve is displayed as opposed to just the totals.
  • Added an animation plot to display particle data.
  • Added the ability to contribute from within the GUI to the user datasource.
  • Lots of bug fixes and minor enhancements.
  • Lots of code clean up.

For a complete list of improvements, refer to


Lines Of Code:11278
Test coverage:87%
Tests run duration:

Milestone 2

Start date:October 26th 2015
Release date:December 11th 2015


The main goals of the milestone was to create the first version of the GUI application, which allows to load experiments and studies, edit them, and run simulations from within the GUI. This release also ended up containing the ability to create new simulations from scratch, therefore support both so-called workflow 1 and workflow 2. The release contains:

  • Added a new pane to visualize all performance data for all simulations that have been run.
  • Added the ability to contribute from within the GUI to the in-study datasource.
  • Added the ability to build a simulation from an experiment as well as built it from scratch (from components in the datasources).
  • Added the ability to store and visualize project components in a multi-study datasource for the standard objects (resin, products, components, ...) and a in-study datasource for the complex objects (buffers, columns, loads, transport models, ...).
  • Added the ability to run simulations from withing the UI without blocking the UI. Runs are for now still happening serially.
  • Added the ability to visualize chromatograms from experiments and simulations in a dynamic Chaco based plot.
  • Added the ability to load, visualize and modify a study built from an experimental study written in an Excel/AKTA files.
  • The GUI application has an entry point to be launched from the terminal (kromatography).
  • Created the framework of the pyface GUI application. It includes the central pane in theory ready to display any data (only a few views written at this point) as well as a data explorer that displays the datastructures as a tree view. The first one is the central pane, the second a (un)dockable, (re)movable side pane. The central pane is a Canopy-style editor area that can be split for side by side visualization, and will host both the data editors as well as the Chaco tools. The 2 panes are part of the same task window, which explores only 1 study, but the application is capable of opening other studies in separate windows.
  • Created data models to support the future UI: ChromatographyProject, DataManager, KromatographyTask, KromatographyApp, TreeNodeAdapters, ...

Milestone 1

Start date:October 8th 2015
Release date:October 30th 2015


The main goals of the milestone was to create Trait-based models of the core objects and use them to reproduce the simulation generation of KBI’s Legacy/ The release contains:

  • A command line tool (run-cadet) was created to run CADET on the provided HDF5 input file.
  • Created a new script app/ to reproduce the legacy script. It includes loading the study from the Excel reader, preparing the CADET input file, running the simulation, reading the output data
  • Refactored the Matplotlib based plotter into the project. It prepares some of the infrastructure that will be reused by the future Chaco-based plots inside the GUI.
  • Refactored the Excel study loader into the project. More refactoring and solidification of both the format and the code is needed.
  • Created the infrastructure for running a CADET job asynchronously. That includes the following classes: Job, JobManager, WorkExecutor.
  • Created all data models to support running the simulation using CADET: CADETModel, BindingModel, TransportModel, Results, Solvers, Discretization, ...
  • Created all data models and base classes to support building a chromatography experiment: Product, Solution, Buffer, Component, System, Column, Resin, Inlet, Chremical, Method, MethodStep, Experiment, Simulation, Study, ...
  • Created infrastucture for consistent deployment using fabric scripts and Enthoughts egg repositories and tools (enstaller, ci-tools, hatcher). This supports both OSX and Windows. This includes a precise list of dependencies that will be reused for packaging into an MSI.
  • Created the kromatography package structure.
  • Embedded existing code in Legacy/ folder.