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

Added bids config file for bids-validator #2

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Added bids config file for bids-validator #2

wants to merge 2 commits into from

Conversation

bkraft4257
Copy link

Chris,

I have used the antsCorticalThickness BIDS app successfully on several of my data sets. Each time I have created a specific BIDS directory with just the T1w images so it passes the bids-validator.

As you know, the code checks that that BIDS directory is valid before proceeding with running antsCorticalThickness. This works well if your BIDS directory is compliant without a configuration file. Unfortunately, for me this is normally not the case. I use the configuration file to avoid certain issues.

For example, when doing the heudiconv conversion the hidden directory .heudiconv is written to the BIDS directory. This directory is not BIDS compliant and the bids-validator will fail if the directory remains. I also like to leave README files within the BIDS directory to explain issues with the data to our group. These README files are not BIDS compliant and the bids-validator will fail. I also like to keep the BIDS validator configuration file in the BIDS directory so people can see what is being ignored during the validation. This file is not BIDS compliant either.

I deal with the above examples by specifying to ignore these files and directories during the BIDS validation. This works great until I try to run antsCorticalThickness BIDS APP because it doesn't use the BIDS configuration file when performing the BIDS validation.

I would like to recommend that either the bids-validator check is removed from the BIDS apps or the bids-validator configuration file is passed in through argparse.

I forked this repository and I made the suggested changes. I was able to some simple testing. However, I am relatively new to python and I am not sure if the subprocess handles the string I am passing it to correctly.

Please consider these simple changes. I believe that it will allow more people to use this BIDS app.

Thanks

Bob

@chrisgorgo
Copy link
Contributor

If you only need to ignore files it would be much simpler to update the validator in this BIDS App and include https://github.com/INCF/bids-validator#bidsignore files in your input datasets.

@chrisgorgo
Copy link
Contributor

BTW what makes your README files not compliant? Perhaps this is an issue similar to https://neurostars.org/t/how-to-upload-eeg-data/1250/10 ?

@bkraft4257
Copy link
Author

I didn't know about .bidsignore. I have been using the bids configuration file instead. Using .bidsignore would be easier. I just can't seem to get it to work. Here is the contents of my BIDS directory

aging1a ➜  bids ls -a
.              .bidsignore~              participants.tsv  sub-imove1061                  task-rest_acq-pcasl_bold.json
..             CHANGES                   README            sub-imove1071
acrostic.list  dataset_description.json  sub-imove1011     sub-imove9001
.bids.cfg      .heudiconv                sub-imove1031     task-rest_acq-epi_bold.json
.bidsignore    log_file                  sub-imove1051     task-rest_acq-mbepi_bold.json

aging1a ➜  bids cat .bidsignore
.*
!/.heudiconv

The syntax of the .bidsignore file is based upon your comments about similar content as .gitignore, which I found here https://stackoverflow.com/questions/8021441/git-how-to-ignore-hidden-directories

aging1a ➜  bids bids-validator $PWD
        ... (missing text)
   
	1: This file is not part of the BIDS specification, make sure it isn't included in the dataset by accident. Data derivatives (processed data) should be placed in /derivatives folder. (code: 1 - NOT_INCLUDED)
		./.bids.cfg
			Evidence: .bids.cfg
		./.bidsignore
			Evidence: .bidsignore
		./.bidsignore~
			Evidence: .bidsignore~
		./.heudiconv/imove1011/ses-1/info/dicominfo_ses-1.csv
			Evidence: dicominfo_ses-1.csv
		./.heudiconv/imove1011/ses-1/info/dicominfo_ses-1.tsv
			Evidence: dicominfo_ses-1.tsv
		./.heudiconv/imove1011/ses-1/info/filegroup_ses-1.json
			Evidence: filegroup_ses-1.json

       ... (missing text)

        Summary:                 Available Tasks:                     Available Modalities:
        650 Files, 5.48GB        rest                                 T1w
        6 - Subjects             TODO: full task name for rest        T2w
        1 - Session                                                   dwi
                                                                      sbref
                                                                      magnitude1
                                                                      phasediff
                                                                      bold
                                                                      fieldmap

Can you please tell me what I am doing wrong?

Thanks for your help

@chrisgorgo
Copy link
Contributor

chrisgorgo commented Feb 22, 2018 via email

@bkraft4257
Copy link
Author

I am running

bids-validator -v
0.23.1

Unfortunately, I couldn't find the current version of the bids-validator on the GitHub page.

@chrisgorgo
Copy link
Contributor

It's on npm - https://docs.npmjs.com/getting-started/updating-global-packages

npm update -g bids-validator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants