Cleaning up CIA

Today I decided to clean up the Her2 processing of CIA. Basically, we needed to have a controlled two-pass system - the first to gather the stats on the cell nuclie and the second to gather the stats on the stained membranes. This needed to be thought out before coding as the file names, as well as database records, would tend to walk all over each other. With a little help from this journal's design I decided to be smart about it and have a single command-line argument (-m) indicate to CIA that it needed to do both passes.

First, I had to differentiate which pass I was on - that was pretty easy, actually. Then when I had that, I just modified the names of the output files to include a "_nuc" in the middle of the name for the first, 'nuclear', pass. This worked out great. Then I made the main code fork off a second process (could have used multiprocessors here but opted against that) and have it do the first pass, then when it finished, the second pass on the stained matter would work. In truth, there's no conflict between the passes, and it could have easily been done at the same time. It's an easy change, and if we get the processor horsepower I can do that. But for now, it's serial.

When I ran this it all worked beautifully. I was really happy that I could easily add in the default options when dealing with a membrane sample - like ditch the aspect ratio, etc. Very nice indeed. So now it has automatically generated filters on both passes, and everything is ready for production data. I'm pretty happy with the clean-up.

I'm still unable to build this on the production site, but that's up to Joel as much as anything - they don't seem to be as responsive to me as to him, so I'll just send on what I need them to do to him and let him deal with it. I was trying to get Ploticus to compile, but needed the XFree86-devel RPM loaded, and so I sent a message off to him. After Ploticus, then we need FFTW and then we can build CIA.