A few ideas how to develop the project further, currently a list as a reminder for the main developers themselves, in no particular order, though with a tendency to list more important aspects first:
For version 0.1¶
Plotter: CompositePlotter - better handling of properties
Report task: Add figure captions to context if available
Documentation: YAML representation of dataset structure(s) (automatically generated together with the documentation and using the
For version 0.2¶
Remaining basic processing and analysis steps, such as algebra with datasets, slice extraction for >2D datasets, peak finding, SNR determination, denoising, filtering, noise, cut dataset and axis (to common range)
Normalising over parts of a dataset
aspecd.processing.ProcessingStep._set_defaults()method called before
Importer with parameters in recipe (e.g., for CSV importer)
Expand use cases
For later versions¶
Reporter: Method for adding dict representations of datasets to context
Report task: Operating on recipes, i.e. report on all tasks in a recipe
Report task: Adding arbitrary dict representations of properties of datasets/results to context
Default report templates for each type of processing/analysis task
Includes deciding where to store these templates, whether to have them stored in different directories for different languages, and alike. Ideally, templates should be copied to a user-accessible directory for modifying there.
Templates for creating derived packages
Tabular representations of characteristics extracted from datasets
Plotter: Factory to create single plots of each given dataset. Probably needs a way to create default filenames (e.g. label + date?).
A list of todos, extracted from the code and documentation itself, and only meant as convenience for the main developers. Ideally, this list will be empty at some point.
There will be a number of models provided here, including, but probably not limited to: polynomials, exponentials, sine, Gaussian, Lorentzian
Handle noisy data, at least for normalising to maximum, minimum, and amplitude.
How to handle noisy data in case of area normalisation, as this would probably account for double the noise if simply taking the absolute?
Describe the settings in more detail, thus providing users of this
class and in turn the
aspecd.report.Reporter class with
ideas of how to create their templates.
There is a number of things that are not yet implemented, but highly recommended for a working recipe-driven data analysis that follows good practice for reproducible research. This includes (but may not be limited to):
Parser for recipes performing a static analysis of their syntax. Useful particularly for larger datasets and/or longer lists of tasks.
Can recipes have LOIs themselves and therefore be retrieved from the extended data safe? Might be a sensible option, although generic (and at the same time unique) LOIs for recipes are much harder to create than LOIs for datasets and alike.
Generally, the concept of a LOI is nothing a recipe needs to know about. But it does know about an ID of any kind. Whether this ID is a (local) path or a LOI doesn’t matter. Somewhere in the ASpecD framework there may exist a resolver (factory) for handling IDs of any kind and eventually retrieving the respective information.
Things to add:
example for an analysis step
Things to add: