1. You're right: BrainFish isn't mapping negative activity as intended. I just mapped CARET_TUTORIAL_SEPT06/BURTON_04_VibroTactile_EARLY_BLIND+orig.HEAD onto PALS_B12 711-2C using BrainFish, and although this volume has big regions of negative activity, the metric file gets assigned 0.0 in these regions:

VOXEL IJK(78, 171, 96)   XYZ(-10.5, 47.5, 21.5)
   Anatomy: 1048.8
   Functional: -16.0
Node 30291
    Metric: 0.0 0.0

MCW was happy with it back when we implemented it, but evidently they were mapping just positive data. I'll figure out what lines need changing, but I'm not sure when this will be impemented.

Nor will I guarantee satisfaction, since these lines in the code suggest an MCW priority not entirely aligned with your suggestion #2 (which I interpret as "most extreme voxel" method -- not a bad alternative to have):

              // Allow positive activity to override negative activity
              // Negative only overrides "less negative"
              if (nearestNode >= 0) {
                 assigned[nearestNode] = true;
                 const float nodeValue = activity[nearestNode];
                 if (voxel > 0.0) {
                    if (voxel > nodeValue) {
                       activity[nearestNode] = voxel;
                 else if (nodeValue < 0.0) {
                    if (voxel < nodeValue) {
                       activity[nearestNode] = voxel;

Regarding converting Metric files to ASCII, DVE pointed out the caret_file_convert utility and the option when saving the metric, but there's a third alternative: File: Convert Data File Formats.

Also, on the D/C metric menu, there is a histogram with Min, Max, Range, etc. (Also, the utilities under Attributes: Metric are handy.)

2. Besides the comments above, I confess I'm not a big fan of the BrainFish algorithm. I'm trying not to tell you what you want, but there are only a handful of cases in my experience where I deemed this voxel-centric algorithm the best tool for the job. I suspect your choice of this method is related to your separate message regarding the average fiducial surface itself, so I'm going to focus my efforts on helping you better understand its nature (in a separate reply).

On 10/30/2006 08:53 AM, John Harwell wrote:

The MCW BrainFish algorithm was developed by a group at the Medical College of Wisconsin to meet a specific need they had. Unless they tell me it is not working correctly, I am not going to dig into it. I believe the enclosing voxel algorithm is the most popular, you might consider it.

John Harwell

Department of Anatomy and Neurobiology
Washington University School of Medicine
660 S. Euclid Ave.    Box 8108
St. Louis, MO 63110   USA

On Oct 27, 2006, at 9:20 PM, Graham Wideman wrote:


The brainfish algorithm is described here:

... as picking up negative voxels if there are no positive ones around. Couple of issues:

1. We don't seem to be able to get negative voxels to appear at all when using the brainfish mapping algorithm. This is for a volume that has been thresholded, hence lots of zero voxels, and it has well separated islands of positive and negative values.

(And applying mapping other than brainfish indeed shows the negative regions in caret -- so we *think* we know how to get the rest of the display settings right...)

So the question is: are you sure that the negative aspect of this mapping algorithm is currently working?

Also, is there a tool for inspecting metric files? (Or conversion to text?)

2. Would it make sense to have an alternative brainfish strategy which allocates to a node the voxel value with the highest *absolute* value, instead of "any positive beats any negative"? This is particularly a concern for fMRI input that has not been thresholded.


Donna L. Dierker
(Formerly Donna Hanlon; no change in marital status -- see for details.)

Reply via email to