Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] PyMVPA BIDS-App in Singularity Container #18

Open
shawnrhoads opened this issue Oct 17, 2023 · 2 comments
Open

[BUG] PyMVPA BIDS-App in Singularity Container #18

shawnrhoads opened this issue Oct 17, 2023 · 2 comments
Labels
bug Something isn't working

Comments

@shawnrhoads
Copy link

shawnrhoads commented Oct 17, 2023

What version of the bids app were you using?

v4.0.3

Describe your problem in detail.

Hello!

I am testing out the new PyMVPA BIDS-App on one of my datasets (I am excited about the promise of this new tool)! However, I am unable get past the participant_prep stage. I was directed to submit an issue here.

I created a singularity image using this command:

sudo singularity pull pymvpa-4.0.3.simg docker://bids/pymvpa:v4.0.3

Then, I tried running participant_prep for one subject using the following command:

singularity run \
--bind /SR/subjects:/bids_dataset \
--cleanenv \
pymvpa-4.0.3.simg \
/bids_dataset \
/bids_dataset/derivatives/pymvpa \
participant_prep \
--participant_id 501 \
--task faces \
--skip_bids_validator

This creates /SR/subjects/derivatives/pymvpa and /SR/subjects/derivatives/pymvpa/masks, but the data for that subject is not prepped (no output folder named "sub-501").

I get the following warnings (this is everything that is written to the terminal):

/usr/lib/python2.7/dist-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
  "This module will be removed in 0.20.", DeprecationWarning)
/usr/lib/python2.7/dist-packages/sklearn/grid_search.py:42: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.
  DeprecationWarning)
/usr/lib/python2.7/dist-packages/sklearn/learning_curve.py:22: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the functions are moved. This module will be removed in 0.20
  DeprecationWarning)
/usr/lib/python2.7/dist-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
  from pandas.core import datetools
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

I suspect it is somehow not looping through sub_IDs at lines 168-186 in run.py. Could it also be related at all to the LC_ALL locale warning?

I can confirm that my directory is BIDS compliant. I added the --skip_bids_validator flag because it appears that bids-validator is not installed in the container? This is the additional warning I get when I run the command above without skipping validation.

/tmp/tmpNy73ic: line 1: bids-validator: command not found

What command did you run?

singularity run \
--bind /SR/subjects:/bids_dataset \
--cleanenv \
pymvpa-4.0.3.simg \
/bids_dataset \
/bids_dataset/derivatives/pymvpa \
participant_prep \
--participant_id 501 \
--task faces \
--skip_bids_validator

(Update) Also tried this command:

singularity run \
--bind /SR/subjects:/bids_dataset \
--cleanenv \
pymvpa-4.0.3.simg \
/bids_dataset/derivatives/fmriprep \
/bids_dataset/derivatives/pymvpa \
participant_prep \
--participant_id 501 \
--task faces \
--skip_bids_validator

Describe what you expected.

I expected the command to create a new directory at /bids_dataset/derivatives/pymvpa/sub-501 with runs concatenated.

@shawnrhoads shawnrhoads added the bug Something isn't working label Oct 17, 2023
@m9080212
Copy link

m9080212 commented Dec 8, 2023

Hi shawnrhoads, I've run into the same problem as yours. Have you found a way to work around it?

@shawnrhoads
Copy link
Author

shawnrhoads commented Dec 8, 2023

Hi shawnrhoads, I've run into the same problem as yours. Have you found a way to work around it?

Yes, I believe it is because the app is no longer compatible with the older BIDS format where fmriprep outputs to BIDSroot/derivatives/fmriprep. Instead, the fmriprep output should be located in BIDSroot/derivatives. See here for explanation.

However, I chose not to restructure my data since many of my scripts rely on the older BIDS structure (maybe I will try on a different dataset in the future). It would be helpful if you can confirm that this resolves your issue though for future!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants