PyBIDS' BIDSLayout currently uses a generic database (sqlite) to represent a BIDS dataset. For large datasets of >100 subjects, this can be time-prohibitive to construct.
ancpBIDS has written a custom domain-specific model based at least partially on the BIDS schema, which enables a BIDSLayout that is orders of magnitude faster than PyBIDS'.
During BrainHack Global, we will be working on porting PyBIDS to use ancpBIDS instead of sqlite to represent datasets in memory, and we would be glad to have your help.
git/GitHub: basic, able to commit changes and make pull requests against projects
Python:
Onboarding documentation
PyBIDS doesn't have contribution guidelines currently. The DIPY developer guidelines are a pretty useful for general best practices: https://dipy.org/documentation/1.5.0/devel/
To get up to speed on the problem, we have a couple PRs that are worth perusing:
This is going to be an exercise in refactoring and testing. You will learn:
To install multiple dependent projects in editable mode
To run unit tests and use the Python debug shell (pdb)
To delete hundreds of lines of code, even entire files, with no regrets
We will also need bug reports! Testing our proposal out on other projects will involve:
Installing the project that uses PyBIDS and patching in an unreleased version of PyBIDS
For projects that distribute with Docker, patching packages into the Docker container may be easier than setting up a development environment
Writing detailed, actionable bug reports that can help others quickly reproduce the issue and identify its cause
Data to use
Ideally we'll be working with a variety of BIDS datasets to ensure that we test as many components of BIDSLayout as possible, so feel free to bring your own data.
Title
Lightweight BIDS Layouts for all
Leaders
Collaborators
Brainhack Global 2022 Event
Bay Area Brainhack
Project Description
PyBIDS'
BIDSLayout
currently uses a generic database (sqlite) to represent a BIDS dataset. For large datasets of >100 subjects, this can be time-prohibitive to construct.ancpBIDS has written a custom domain-specific model based at least partially on the BIDS schema, which enables a
BIDSLayout
that is orders of magnitude faster than PyBIDS'.During BrainHack Global, we will be working on porting PyBIDS to use ancpBIDS instead of sqlite to represent datasets in memory, and we would be glad to have your help.
Link to project repository/sources
Goals for Brainhack Global
We'll settle for not breaking any apps we test. So let's test some apps.
Good first issues
https://github.com/bids-standard/pybids/issues/831
We're aiming to do some additional prep and break this down into smaller issues
Communication channels
https://mattermost.brainhack.org/brainhack/channels/pybids
Skills
If you want to work on the refactor:
Testing:
Onboarding documentation
PyBIDS doesn't have contribution guidelines currently. The DIPY developer guidelines are a pretty useful for general best practices: https://dipy.org/documentation/1.5.0/devel/
To get up to speed on the problem, we have a couple PRs that are worth perusing:
What will participants learn?
This is going to be an exercise in refactoring and testing. You will learn:
We will also need bug reports! Testing our proposal out on other projects will involve:
Data to use
Ideally we'll be working with a variety of BIDS datasets to ensure that we test as many components of BIDSLayout as possible, so feel free to bring your own data.
Another good source of datasets is https://openneuro.org
Number of collaborators
3
Credit to collaborators
PyBIDS contributors are credited in a Zenodo file and listed as authors on Zenodo releases.
Image
Leave this text if you don't have an image yet.
Type
coding_methods
Development status
2_releases_existing
Topic
reproducible_scientific_methods
Tools
BIDS
Programming language
containerization, documentation, Python
Modalities
not_applicable
Git skills
1_commit_push, 2_branches_PRs, 3_continuous_integration
Anything else?
No response
Things to do after the project is submitted and ready to review.
Hi @brainhackorg/project-monitors my project is ready!