bids-apps / ndmg

BIDS app for NeuroData's MRI to Graphs pipeline
http://m2g.io
Apache License 2.0
5 stars 8 forks source link

Incorrect syntax? #15

Closed jlhanson5 closed 7 years ago

jlhanson5 commented 7 years ago

Hello ndmg repo,

I was trying to test out the software, but was having trouble w/ the correct docker syntax call. My data passed BIDS validation and ndmg gets pulled fine. I then tried to run this syntax:

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ docker run -ti bids/ndmg  /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test participant --participant_label sub-10044
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
[]

But as you see I just get a [] as the output. I tried a few different syntax variations, but clearly am doing something wrong. If I'm not using S3, what does the standard syntax look like?

I tried

docker run -ti bids/ndmg /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test participant But get [] as an output. I also tried

docker run -ti bids/ndmg /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test group

But got the following error:

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ docker run -ti bids/ndmg /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test group
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
Traceback (most recent call last):
  File "/usr/local/bin/ndmg_bids", line 9, in <module>
    load_entry_point('ndmg==0.0.50', 'console_scripts', 'ndmg_bids')()
  File "/usr/local/lib/python2.7/dist-packages/ndmg/scripts/ndmg_bids.py", line 294, in main
    log, hemi)
  File "/usr/local/lib/python2.7/dist-packages/ndmg/scripts/ndmg_bids.py", line 173, in group_level
    labels_used = next(os.walk(inDir))[1]
StopIteration

Anyone with some suggestions for mapping the tutorials to my calls here? Thanks much and any assistance is deeply appreciated!

Best, Jamie.

gkiar commented 7 years ago

Hi Jamie,

I believe your problem comes from that you are not correctly mounting your data to the container. Try the following command:

docker run -ti -v /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test:/data bids/ndmg  /data  /data/derivatives participant --participant_label sub-10044

This associates the local directory /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test with the container's /data directory, and should solve your problem.

Let me know!

jlhanson5 commented 7 years ago

I ran into the same error with that new syntax...

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ docker run -ti -v /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test:/data bids/ndmg  /data  /data/derivatives participant --participant_label sub-10044
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
[]

I have had some issues symbolically linking different files, so maybe that's causing an issue? Other things I might try? Thanks again for the help!

gkiar commented 7 years ago

Can you please ls the contents of /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test? The [] you're seeing printed out means the container starts and runs, but cannot find any dwi files to process. I suspect we just have our path mixed up somehow :)

jlhanson5 commented 7 years ago

I'm new to BIDS (and ndmg), so I bet I'm screwing something up... When I 'ls' I get this:

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ ls /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test
dataset_description.json  sub-10032  sub-10086  sub-10138  sub-10276  sub-10375  sub-10462  sub-10603  sub-10675  sub-11073  sub-11128  sub-11209  sub-11397  sub-11515  sub-11669  sub-11821  sub-12043  sub-12309  sub-12340  sub-12445  sub-12664  sub-12742  sub-12814  sub-13012
derivatives               sub-10044  sub-10088  sub-10176  sub-10314  sub-10380  sub-10491  sub-10625  sub-10685  sub-11078  sub-11139  sub-11263  sub-11398  sub-11525  sub-11703  sub-11894  sub-12129  sub-12311  sub-12356  sub-12485  sub-12690  sub-12756  sub-12860
outputs                   sub-10055  sub-10099  sub-10188  sub-10337  sub-10386  sub-10528  sub-10637  sub-10697  sub-11096  sub-11168  sub-11300  sub-11399  sub-11551  sub-11749  sub-11954  sub-12202  sub-12320  sub-12386  sub-12574  sub-12694  sub-12766  sub-12911
participants.tsv          sub-10060  sub-10115  sub-10193  sub-10348  sub-10392  sub-10558  sub-10646  sub-10705  sub-11109  sub-11184  sub-11388  sub-11426  sub-11564  sub-11790  sub-11974  sub-12222  sub-12328  sub-12388  sub-12610  sub-12708  sub-12785  sub-12990
scripts                   sub-10075  sub-10132  sub-10211  sub-10356  sub-10439  sub-10562  sub-10647  sub-11033  sub-11114  sub-11192  sub-11393  sub-11490  sub-11625  sub-11802  sub-12029  sub-12260  sub-12334  sub-12423  sub-12640  sub-12718  sub-12793  sub-13008
jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$

I thought similar to other BIDS apps, docker would like to see if my directory is BIDS compatible?Each of those sub-##### files have an anat & dwi directories in them (as noted below)

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ ls sub-10044/*
sub-10044/anat:
sub-10044_T1w.nii.gz

sub-10044/dwi:
sub-10044_dwi.bval  sub-10044_dwi.bvec  sub-10044_dwi.json  sub-10044_dwi.nii.gz
jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$

Should I not be pointing docker at the top BIDS directory?

jlhanson5 commented 7 years ago

I also tried to adjust the paths to point to the next level down subject folder and the dwi folder... no luck yet.

jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ docker run -ti -v /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test/sub-10044/:/data bids/ndmg  /data  /data/derivatives participant --participant_label sub-10044
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
[]
jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$ docker run -ti -v /home/jamielh/Volumes/Hanson/Pitt_PYS/BIDS_test/sub-10044/dwi:/data bids/ndmg  /data  /data/derivatives participant --participant_label sub-10044
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
[]
jamielh@pfc:~/Volumes/Hanson/Pitt_PYS/BIDS_test$
gkiar commented 7 years ago

OH, I'm pretty sure I found the problem - only put the number, not thesub- portion when specifying a subject.

gkiar commented 7 years ago

--participant-label sub-#### tells the app to look for sub-sub-####

jlhanson5 commented 7 years ago

Yep that did it! My apologies for that error! Thanks again!

gkiar commented 7 years ago

No problem, happy hacking :)

jlhanson5 commented 7 years ago

I'm a big fan of BIDS now that I got it working... thanks for the development work!