Skip to content
Johannes Niediek edited this page Sep 21, 2020 · 5 revisions

2015-Nov-11

Here I will try to lay out in which way I would like Combinato to move. This is of course meant as a basis for suggestions and discussion!

The headlines below are roughly in order of relevance as I perceive it.

Make everything independent of the exact filenames (idea due to user eann).

It is a very ugly that at the moment various commands depend on the presence of ncs-files. For people working with data in mat-files, this is totally annoying. As eann suggested, there should be one module that takes care of finding relevant files for the scripts. So basically the idea is

  1. Identify where we need lists of files, and of which files
  2. Write functions that generate these lists
  3. Replace the original code by calls to the relevant functions

This is already partially implemented (e.g. /combinato/util/get_folder_structure.py).

Of course it would make sense to include options that allow a handy selection of files on the command line. This is also true for some of the scripts in /combinato/tools, e.g. old_format_output.py.

One command instead of all the css-* commands.

Get rid of all the css-* commands and create a single css-sorter with subcommands like extract, cluster, combine. Advantages

  • More than one step could be performed at the same time
  • Parsing of options could be more uniform
  • The --help would appear in one place, not scattered across multiple programs

A proper test framework.

Some very rudimentary tests are included in combinato/tools/test_installation.py, and some of the other files contain test code, that is mostly never called. I also have a few tests ready that I maintain outside the repository.

Using travis-ci would also be a good option.

Include proper handling of options and logging

  1. Identify the important options for spike sorting and separate them from the options that only control appearance of the GUI.
  2. Enhance the support of options per dataset (datasets can have different options coming with them). At the moment, a file local_options.py in the datafolder is parsed, but that's not the optimal way to do it.
  3. Properly log all actions in one log file per dataset.

All this is of course easier when there is just one css- command already.

Decide whether to get rid of positive and negative spikes in one file.

For many users, the whole issue with positive/negative spikes is not relevant at all. The problem is that we have to be backwards-compatible!

Rewrite managers.

The managers in combinato/manager do what they are supposed to do, but the code is ugly. It should be possible to unify the code much more, once we list what exactly we need.

Write a help page for the signalviewer.