Week 8 quiz - question 10

Hi,

I’m trying to work through question 10 on quiz 8 and I’m running into issues while executing the following command on jupyter hub instance

jovyan@jupyter-arshitha:~/week8_analysis$ datalad containers-run -n containers/bids-mriqc --input data/sub-01/anat/sub-01_T1w.nii.gz --output data/derivatives/mriqc data '{outputs}' --participant-label 01 -m T1w -w workdir participant
[INFO   ] Making sure inputs are available (this may take some time) 
[INFO   ] == Command start (output follows) ===== 
Traceback (most recent call last):
  File "/usr/local/miniconda/bin/mriqc", line 10, in <module>
    sys.exit(main())
  File "/usr/local/miniconda/lib/python3.7/site-packages/mriqc/cli/run.py", line 16, in main
    parse_args()
  File "/usr/local/miniconda/lib/python3.7/site-packages/mriqc/cli/parser.py", line 374, in parse_args
    config.from_dict(vars(opts))
  File "/usr/local/miniconda/lib/python3.7/site-packages/mriqc/config.py", line 519, in from_dict
    execution.load(settings)
  File "/usr/local/miniconda/lib/python3.7/site-packages/mriqc/config.py", line 185, in load
    cls.init()
  File "/usr/local/miniconda/lib/python3.7/site-packages/mriqc/config.py", line 400, in init
    re.compile(r"^\."),
  File "/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/layout.py", line 136, in __init__
    root, description = validate_root(root, validate)
  File "/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/validation.py", line 83, in validate_root
    description = json.load(desc_fd)
  File "/usr/local/miniconda/lib/python3.7/json/__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/local/miniconda/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/miniconda/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/miniconda/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
[INFO   ] == Command exit (modification check follows) ===== 
[INFO   ] The command had a non-zero exit code. If this is expected, you can save the changes with 'datalad save -d . -r -F .git/COMMIT_EDITMSG' 
CommandError: 'containers/scripts/singularity_cmd run containers/images/bids/bids-mriqc--0.16.1.sing data 'data/derivatives/mriqc' --participant-label 01 -m T1w -w workdir participant' failed with exitcode 1 under /home/jovyan/week8_analysis

To be sure, I’ve followed the steps from the solutions here - exercises/week_8_quiz.md at main · ABCD-ReproNim/exercises · GitHub

before trying on the jupyterhub instance, I was trying to solve it on our HPC system and I got a bunch of errors some of which I was able to resolve but the following error was the most frequent:

datalad containers-run -n containers/bids-mriqc --input data/sub-01/anat/sub-01_T1w.nii.gz --output data/derivatives/mriqc data '{outputs}' --participant-label 01 -m T1w -w workdir
[INFO   ] Making sure inputs are available (this may take some time)
[ERROR  ] 'NoneType' object has no attribute 'pathobj' [status.py:_yield_status:111] (AttributeError)

I’m not sure what the “NoneType” is referring to here.

I’ve worked with mriqc using singularity containers before and one of the reasons I’d run into [Error 2]: No file or directory was because the SINGULARITY_BINDPATH environment variable was missing. I tried to run
export SINGULARITY_BINDPATH=/gs4,/gs5,/gs6,/gs7,/gs8,/gs9,/gs10,/gs11,/spin1,/scratch,/fdb,/data,/lscratch; (directories above are specific to our HPC system)

but it didn’t make a difference. How can I use datalad containers-run with the above export SINGULARITY_BINDPATH command? Because the mriqc image used with datalad containers-run doesn’t seem to recognize my (host) environment variables.

Also, is is there some way to override containers/scripts/singularity_cmd while using repronim containers with datalad containers-run command?

Hi @arsh,

This bit sticks out to me:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

have you tried copy/pasting the contents of dataset_description.json into a json checker? That might isolate the error you are seeing.

Best,
James

Thanks! I’d copy pasted what was mentioned in the question but the key-value pairs didn’t have double quotes around them to be considered a string and therefore, not valid JSON. Should have seen it, thanks a lot! :slight_smile: