-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Title
Lightweight BIDS Layouts for all
Leaders
Name | GitHub |
---|---|
Chris Markiewicz | @effigies |
Alejandro de la Vega | @adelavega |
Collaborators
Name | GitHub |
---|---|
Your name here... |
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
- PyBIDS: https://github.com/bids-standard/pybids
- ancpBIDS: https://github.com/ANCPLabOldenburg/ancp-bids
Goals for Brainhack Global
- ancpBIDS-backed BIDSLayout in PyBIDS with 100% backwards compatibility
We'll settle for not breaking any apps we test. So let's test some apps.
Good first issues
-
Evaluate ancpbids as a successor to bids.layout bids-standard/pybids#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:
- Python: moderate
- Pandas: some experience
- Pytest: fixtures should be a known concept
Testing:
- 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:
- [WIP] Replace BIDSLayout backend with ancpbids bids-standard/pybids#851
- [WIP] introduce BIDSLayoutV2 bids-standard/pybids#863
What will participants learn?
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.
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.
- Add a comment below the main post of your issue saying:
Hi @brainhackorg/project-monitors my project is ready!
- Twitter-sized summary of your project pitch.