Structure of the FIASCO Software |
Scripts vs. ExecutablesFIASCO is a set of compiled executables tied together with scripts. The executables do basic things, like performing math on a voxel or performing a Fourier transform. The scripts have the job of putting together many of these simple steps to actually do the job of processing fMRI data. The executables are very general and might be used for any sort of data processing; the scripts tend to be more fMRI-specific.Executables have a variety of names, but the most commonly used ones have names that begin with mri_. For example, mri_describe is an executable which prints out 'interesting' information for a Pittsburgh MRI file; mri_subset separates out a subset of a file. The scripts in FIASCO are written in one of two scripting languages; python or csh. Almost all of the former have names ending in .py, and almost all of the latter have names ending in .csh. These files are basically plain text and can be read (and hopefully understood) by users. FIASCO vs. FIATThe executables do simpler things, so they are easier to test. However, testing the scripts in Fiasco is complicated because of complex interactions between the stages of fMRI processing. This means that we tend to gain confidence in the correctness of the executables more quickly than we do the scripts. In order to keep the testing of scripts from delaying the release of the executables to our users, we've decided to do releases of the executables separately from the scripts. The executables will be called FIAT for Functional Image Analysis Toolkit. Every release of Fiasco will include the corresponding release of FIAT, but not all FIAT releases will have corresponding Fiasco releases.Release numbering works as follows. Simultaneous Fiasco and FIAT releases will share the same release number, and the FIASCO release will always contain the current FIAT release. There may be more FIAT releases before the next Fiasco release, however. That implies that the number of the current FIAT release may be greater than that of the current FIASCO release. For example, there is a FIAT 5.3.0 but no Fiasco5.3. We will seek to maintain backward compatibility, so that the executables in FIAT 5.3.0 can be used with the scripts in Fiasco 5.2. It's also possible to get access to the very latest development versions of Fiasco and FIAT, by accessing our CVS repository. If you are interested in this, contact us and we'll set you up. PatchesSometimes it's necessary to fix a bug in a release, or to distribute some new feature that we just can't wait to make available. When this happens, we release a patch. For example, as I write this the current release of Fiasco is 5.2 patch 3, which means that there have been 3 patches applied to the original 5.2 release. If you download a new copy of Fiasco from us, it should have all the relevant patches already applied. Patches are really only a worry for people maintaining previous installations of Fiasco. |
|