There are conceptually three modules which form the DNA system - the data collection
module (DCM), the expert system (ES) and the data processing module (DPM). The
actual packages are best thought of as contributing towards each module thus:
Module/Package |
ProDC |
pxgen |
expert |
scheduler |
Mosflm |
DCM |
yes |
yes |
no |
no |
no |
ES |
no |
no |
yes |
slightly |
no |
DPM |
no |
no |
partly |
mostly |
yes |
The data processing module, and in particular the "scheduler", are currently under reconstruction. Until now there has been an implicit assumption throughout the code that only one task will be performed at a time. This is a limitation, since it prevents concurrent data collection and processing, and parallel processing of different tasks. The new scheduler will be written in a (hopefully) program neutral way, so that there are the basic components to extend it to almost any (CCP4) program.
In addition to the parallelisation of the scheduler, there must also be the ability to stop all running tasks, and implement a nice "reset".
The last change, and possibly the most fundamental, is to remove the "grep"ing mechanism from the code and instead rely on specific formatted files being written by the programs. This will make the system much easier to maintain between program revisions.