spisakt / RPN-signature

The Resting-state Pain susceptibility Network signature.
https://spisakt.github.io/RPN-signature
BSD 3-Clause "New" or "Revised" License
14 stars 8 forks source link

crash with multisession BIDS data #5

Open yonestar opened 4 years ago

yonestar commented 4 years ago

Hi Tamas,

It is wonderful that you made this great tool, AND, that you made it so accessible w/ a docker. I am excited to be applying it to my data.

The docker is crashing for me. The logs are attached. I tried it on two subjects, one with --keep-derivatives and one without. The error messages seem a bit different. Attaching the logs now. Archive.zip

Both subjects are in valid BIDS format.

I have one guess as to a potential problem. I have data from multiple time points (pre- and post-treatment), so my bids structure is subject/ses-XX/anat,func,fmap. Perhaps your code does not expect the session level? Also, my data is all gzipped

Thanks Yoni Ashar Wager lab

spisakt commented 4 years ago

Hi Yoni,

Sorry for the late replay! Indeed, the app wasn't tested with session level.

On the other hand, it uses nipype's BIDSDataGrabber(), so should theoretically be able to handle it.

The error message says that no T1w file was found. Is your anatomical image named like "anat/sub-XXX-T1w.nii.gz"? Do you have the "T1w" tag there? (Gzipped data must work without any problem)

Thanks Tamas

yonestar commented 4 years ago

Hi Tamas,

I have a structural image for each session (in my case, two sessions).

So it is: ///anat/sub-XXXX_ses-X_T1w.nii.gz

I do NOT have any sub-XXX/anat folder, that is not nested under a session.

Maybe that is it??

thank you! Yoni

On Tue, Apr 7, 2020 at 6:04 AM Tamas Spisak notifications@github.com wrote:

Hi Yoni,

Sorry for the late replay! Indeed, the app wasn't tested with session level.

On the other hand, it uses nipype's BIDSDataGrabber(), so should theoretically be able to handle it.

The error message says that no T1w file was found. Is your anatomical image named like "anat/sub-XXX-T1w.nii.gz"? Do you have the "T1w" tag there? (Gzipped data must work without any problem)

Thanks Tamas

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/spisakt/RPN-signature/issues/5#issuecomment-610296768, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCOBDRY2IRZ76JSLZECX43RLL3BLANCNFSM4LTCGRAA .

granitz commented 4 years ago

I have a similar issue. Although data is in /sub-XXX/anat folder. Unfortunately I cannot find the crash file in tmp folder.

crashfile: /tmp/crash-20200414-073808-root-_reorient_func2-10753938-0f5d-4d7b-8519-240e8919e468.pklz
            200414-11:03:19,727 nipype.workflow INFO:
     ***********************************
  Traceback (most recent call last):
    File "/home/rpn-signature/src/RPN-signature/pipeline/rpn-signature.py", line 366, in <module>
      totalWorkflow.run(plugin='MultiProc', plugin_args=plugin_args)
    File "/usr/local/miniconda/lib/python2.7/site-packages/nipype/pipeline/engine/workflows.py", line 599, in run
      runner.run(execgraph, updatehash=updatehash, config=self.config)
    File "/usr/local/miniconda/lib/python2.7/site-packages/nipype/pipeline/plugins/base.py", line 191, in run
      report_nodes_not_run(notrun)
    File "/usr/local/miniconda/lib/python2.7/site-packages/nipype/pipeline/plugins/tools.py", line 82, in report_nodes_not_run
      raise RuntimeError(('Workflow did not execute cleanly. '
  RuntimeError: Workflow did not execute cleanly. Check log for details
spisakt commented 4 years ago

Hi everyone, Thanks for the feedback and apologies again for the late response.

@granitz: It's not clear if it is the same bug. Can you find the crash file in the folder where the output is? Or is there a line like this in your script output:

raise IOError(msg)
IOError: Output key: T1w returned no files

@yonestar: I had a brief look and it seems like it's an issue of the nipype version inside the docker container. Simply said: The problem is relatively simply to resolve, but I have to redo all the packaging and fight potential dependency problems. Unfortunately, i am quite busy right now and can't do this with a short deadline.

A workaround could be that you "flatten" your BIDS structure, that is, you pretend that you have single session data (by treating sessions as subjects or - even better - by having two separate BIDS folders, one for the pre and one for the post).

Is it an option for you, or you rather wait for the fix?

Cheers, Tamas

granitz commented 4 years ago

Hi everyone, Thanks for the feedback and apologies again for the late response.

@granitz: It's not clear if it is the same bug. Can you find the crash file in the folder where the output is? Or is there a line like this in your script output:

raise IOError(msg)
IOError: Output key: T1w returned no files

@yonestar: I had a brief look and it seems like it's an issue of the nipype version inside the docker container. Simply said: The problem is relatively simply to resolve, but I have to redo all the packaging and fight potential dependency problems. Unfortunately, i am quite busy right now and can't do this with a short deadline.

A workaround could be that you "flatten" your BIDS structure, that is, you pretend that you have single session data (by treating sessions as subjects or - even better - by having two separate BIDS folders, one for the pre and one for the post).

Is it an option for you, or you rather wait for the fix?

Cheers, Tamas

Thank you for your response. The problem of finding the crash file persists. And I'm not getting this error: IOError: Output key: T1w returned no files. These are the last few lines, although I'm not sure if this helps.

200418-19:44:31,131 nipype.workflow INFO: [MultiProc] Running 1 tasks, and 0 jobs ready. Free memory (GB): 6.80/7.00, Free processors: 3/4.
Currently running:

spisakt commented 4 years ago

Can you find the crash file, when specifying the --debug option? That will save all temporary files in the output directory.