pelkmanslab / CellProfilerPelkmans

A fork of CellProfiler1.0 developed by members of Pelkmans Lab https://www.pelkmanslab.org
GNU General Public License v2.0
1 stars 1 forks source link

Dependencies #4

Closed hackermd closed 9 years ago

hackermd commented 9 years ago

Certain modules do not work independent of other lab repositories. For example 'check_image_channel.m' is not available to the illumination correction module. In my opinion this repository should not depend on other repositories. To this end, all dependent functions should be added either in the directory CPsubfunctions or in a new directory.

hackermd commented 9 years ago

I've created the directory dep, which can contain the functions CellProfiler modules depend on. I think it's better to separate this code from the CPsubfunctions, because they are not really part of CellProfiler.

You can check the dependencies of your modules by calling

matlab.codetools.requiredFilesAndProducts('myModule.m')

For me this broke with some CPsubfunctions in Matlab 2014a because of syntax errors. We have to look into this.

tstoeger commented 9 years ago

Currently facing same problem while making clean version of classify_gui.

However I prefer that ultimately different modules/tools such as CellProfiler and classify_gui depend on a single well defined version of functions like "check_image_channel.m", which provide metainformation (rather than copying them to each repository).

Otherwise different modules/tools might at one point start interpreting seemingly identical data quite different (e.g. allocation of wrong channel might only lead to wrong measurements, but no computational error message; also updating/integrating future microscopes - potentially by outside users - will get more tricky, if functions for handling meta-information get fragmented and copied ) .

hackermd commented 9 years ago

Created a function to check the module dependencies:

check_module_dependencies()
hackermd commented 9 years ago

matlab.codetools.requiredFilesAndProducts() doesn't list all dependencies! The same is true for depfun(). Consequently, the function check_module_dependencies() doesn't provide a full list of all dependencies. There are alternatives, e.g. fdep, but the problems seems to be that files, which are not on the path, are not listed. What's the point then???

ewiger commented 9 years ago

check_module_dependencies was obviously helpful, but the ultimate test is to run CPP as a part iBRAIN_BRUTUS.

Please reopen this issue if you think it is relevat.