general-discussion > Sica stage failing in twins
Showing 1-3 of 3 posts
Display:
Results per page:
Aug 22, 2012  10:08 AM | Kevin Casey
Sica stage failing in twins
Hi,
I'm running into an error in the NIAK pipeline which is quite possibly due to me trying to use it incorrectly. The design of my fMRI protocol is to test monozygotic twins on a task. I've previously run the pipeline without issue on the twins considering each as their own subject with their own anatomical scan. However, as the twins really are very similar, I'm trying to preprocess their data as run1 and run2 of one "subject" (actually a twin pair). My hope is that considering them as runs within a subject will minimize the inter-twin error, which is more important than the between twin error to our analysis.

I ran the pipeline first for one half of the twins, and those jobs are complete. Now I've restarted it with the second run information included. It runs OK up to the sica step, where it produces errors (below). I'm wondering if this error has to do with the differences between the twins' data, or some configuration on my part? Also, I'd appreciate any thoughts on using this design, is it a fool's errand to consider twins as runs?

Thanks!
Kevin

>> logs.sica_subject10_run2

ans =


******************************
Log of the (matlab) job : sica_subject10_run2
Started on 01-Aug-2012 18:39:03
User: kevin
host : dumain
system : unix
******************************

command =

niak_brick_sica(files_in,files_out,opt);


files_in =

    fmri: [1x116 char]
    mask: [1x91 char]


files_out =

    space: [1x127 char]
     time: [1x126 char]


files_clean =

     {}


opt =

         nb_comp: 50
      folder_out: [1x76 char]
       flag_test: 0
            norm: 'mean'
            algo: 'Infomax'
    flag_verbose: 1


********************
The job starts now !
********************

**************************************
Spatial independent component analysis
**************************************
Reading data /5htgrip/5htgrip1/kevin/melissa_niak/niak/intermediate/subject10/time_filter/fmri_subject10_session1_run2_a_mc_f.mnc ...
Reading brain mask /5htgrip/5htgrip1/kevin/melissa_niak/niak/anat/subject10/func_subject10_mask_nativefunc.mnc ...
Correction of the mean of time series ...
Performing spatial independent component analysis with 50 components, this might take a while ...
    Reducing the data to 50 principal dimensions...


********************
Something went bad ... the job has FAILED !
The last error message occured was :
Undefined function or method 'randperm' for input arguments of type 'double'.
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/commands/sica/niak_sica.m at line 1015
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/commands/sica/niak_sica.m at line 176
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/bricks/sica/niak_brick_sica.m at line 227
File /data/aces/aces1/pbellec/public/psom-dev/psom_run_job.m at line 110
File /data/aces/aces1/pbellec/public/psom-dev/psom_pipeline_process.m at line 614
File /data/aces/aces1/pbellec/public/psom-dev/psom_run_pipeline.m at line 351
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/pipeline/niak_pipeline_fmri_preprocess.m at line 570

****************
Checking outputs
****************
The output file or directory /5htgrip/5htgrip1/kevin/melissa_niak/niak/quality_control/subject10/corsica/fmri_subject10_session1_run2_a_mc_f_sica_space.mnc has not been generated!
The output file or directory /5htgrip/5htgrip1/kevin/melissa_niak/niak/quality_control/subject10/corsica/fmri_subject10_session1_run2_a_mc_f_sica_time.mat has not been generated!

**********************************************
01-Aug-2012 18:39:06 : The job has FAILED
Total time used to process the job : 2.79 sec.
**********************************************
Aug 27, 2012  08:08 PM | Pierre Bellec
RE: Sica stage failing in twins
Hi Kevin,

First of all, sorry for the late answer. 

I'm running into an error in the NIAK pipeline which is quite possibly due to me trying to use it incorrectly. The design of my fMRI protocol is to test monozygotic twins on a task. I've previously run the pipeline without issue on the twins considering each as their own subject with their own anatomical scan. However, as the twins really are very similar, I'm trying to preprocess their data as run1 and run2 of one "subject" (actually a twin pair). My hope is that considering them as runs within a subject will minimize the inter-twin error, which is more important than the between twin error to our analysis. 
That's an interesting idea. I am not sure this is going to work optimally though. You'll only run a rigid-body coregistration between the twins. Even though they have similar brains, this may not be enough to cover up the differences. Also that means that you will use only one of the T1 scan to run the coregistration in stereotaxic space. A better solution would be to have a hierarchical scheme, where twins T1 scans are first (non-linearly) coregistered on each other, before a single transformation to stereotaxic space is estimated. This will however highly bias the data of twin pairs, which will be way better coregistered than between-twins data. This may or may not be a problem (it will be if you are testing some kind of heritability). This may not be easy to work around in any case because the twins's brains are more similar than unrelated brains in the first place. Tough one. Needless to say, no twins coregistration strategy was implemented in NIAK. Could be a neat idea for a summer student though.
I ran the pipeline first for one half of the twins, and those jobs are complete. Now I've restarted it with the second run information included. It runs OK up to the sica step, where it produces errors (below). I'm wondering if this error has to do with the differences between the twins' data, or some configuration on my part? Also, I'd appreciate any thoughts on using this design, is it a fool's errand to consider twins as runs?

I don't relly get where that error could come from. It says it doesn't find the randperm function which doesn't make sense (that's a standard command). There must be something going on with the configuration of the machine that's running the job. I'd try to restart the pipeline a couple of times before giving up and looking for a bug. Let me know if that error is reproducible.

I hope this helps. Best,

Pierre

Thanks!
Kevin

>> logs.sica_subject10_run2

ans =


******************************
Log of the (matlab) job : sica_subject10_run2
Started on 01-Aug-2012 18:39:03
User: kevin
host : dumain
system : unix
******************************

command =

niak_brick_sica(files_in,files_out,opt);


files_in =

    fmri: [1x116 char]
    mask: [1x91 char]


files_out =

    space: [1x127 char]
     time: [1x126 char]


files_clean =

     {}


opt =

         nb_comp: 50
      folder_out: [1x76 char]
       flag_test: 0
            norm: 'mean'
            algo: 'Infomax'
    flag_verbose: 1


********************
The job starts now !
********************

**************************************
Spatial independent component analysis
**************************************
Reading data /5htgrip/5htgrip1/kevin/melissa_niak/niak/intermediate/subject10/time_filter/fmri_subject10_session1_run2_a_mc_f.mnc ...
Reading brain mask /5htgrip/5htgrip1/kevin/melissa_niak/niak/anat/subject10/func_subject10_mask_nativefunc.mnc ...
Correction of the mean of time series ...
Performing spatial independent component analysis with 50 components, this might take a while ...
    Reducing the data to 50 principal dimensions...


********************
Something went bad ... the job has FAILED !
The last error message occured was :
Undefined function or method 'randperm' for input arguments of type 'double'.
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/commands/sica/niak_sica.m at line 1015
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/commands/sica/niak_sica.m at line 176
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/bricks/sica/niak_brick_sica.m at line 227
File /data/aces/aces1/pbellec/public/psom-dev/psom_run_job.m at line 110
File /data/aces/aces1/pbellec/public/psom-dev/psom_pipeline_process.m at line 614
File /data/aces/aces1/pbellec/public/psom-dev/psom_run_pipeline.m at line 351
File /data/aces/aces1/pbellec/public/niak-0.6.4.1/pipeline/niak_pipeline_fmri_preprocess.m at line 570

****************
Checking outputs
****************
The output file or directory /5htgrip/5htgrip1/kevin/melissa_niak/niak/quality_control/subject10/corsica/fmri_subject10_session1_run2_a_mc_f_sica_space.mnc has not been generated!
The output file or directory /5htgrip/5htgrip1/kevin/melissa_niak/niak/quality_control/subject10/corsica/fmri_subject10_session1_run2_a_mc_f_sica_time.mat has not been generated!

**********************************************
01-Aug-2012 18:39:06 : The job has FAILED
Total time used to process the job : 2.79 sec.
**********************************************
Aug 28, 2012  08:08 AM | Kevin Casey
RE: Sica stage failing in twins
Hi Pierre,
Thanks very much!

That's an interesting idea. I am not sure this is going to work optimally though. You'll only run a rigid-body coregistration between the twins. Even though they have similar brains, this may not be enough to cover up the differences. Also that means that you will use only one of the T1 scan to run the coregistration in stereotaxic space. A better solution would be to have a hierarchical scheme, where twins T1 scans are first (non-linearly) coregistered on each other, before a single transformation to stereotaxic space is estimated. This will however highly bias the data of twin pairs, which will be way better coregistered than between-twins data. This may or may not be a problem (it will be if you are testing some kind of heritability). This may not be easy to work around in any case because the twins's brains are more similar than unrelated brains in the first place. Tough one. Needless to say, no twins coregistration strategy was implemented in NIAK. Could be a neat idea for a summer student though.

That seems like a really good suggestion. I've been getting around the brain similarity issue by doing separate multistat runs, first taking the difference between twin pairs, and then combining those differences. So, having the twin pairs nonlinearly registered would improve the inter-twin comparison, and the linear registration between the resulting difference images would still be just as good as before, correct?

To implement this heirarchical strategy can I just calculate the nl xfm files for twin A to B, transform both the anatomical and functional, and use those as inputs for the pipeline? Is there any reason the motion correction and normalization etc have to happen in the subject's native space?
I don't relly get where that error could come from. It says it doesn't find the randperm function which doesn't make sense (that's a standard command). There must be something going on with the configuration of the machine that's running the job. I'd try to restart the pipeline a couple of times before giving up and looking for a bug. Let me know if that error is reproducible.

Excellent, thanks. I'll look into this.
Regards,
KC