Title
Build a Python command line configuration wizard for Neurobagel
Leaders
Sebastian Urchs (_surchs)
Alyssa Dai (daialyssa)
Arman Jahanpour (rmanaem)
Collaborators
No response
Project Description
Neurobagel is a tool ecosystem and network of global data nodes that lets you search for subject-level neuroscience cohorts across distributed datasets stored at other institutes or sites. To participate, institutes deploy local Neurobagel “nodes” that then connect to the global network to become discoverable and queryable.
We want to make it easier to deploy a Neurobagel node so that more sites can join Neurobagel, including those with more limited technical resources. Currently, configuring a Neurobagel node requires copying and editing local configuration files by hand. This configuration is important, because it controls options such as whether queries return aggregated results or full records, and other privacy-relevant settings.
The current approach is cumbersome and overwhelming for users for several reasons:
- There are many config options, so the template file is long and hard to edit
- We are actively developing Neurobagel, so new config options are regularly introduced that users then must manually update in their existing setup
- Neurobagel has different deployment use cases, and many config options are only relevant to certain ones
- Users can only find out if their config files are correct by launching the node and waiting for it to fail
Our goal: To create a command line tool that will simplify the process of generating a valid configuration for a Neurobagel node.
Come talk to us if you:
- Want to (learn to) build the command line tool with us
- and/or are interested in using Neurobagel and want to give us your view as a potential user
We are very excited for both kinds of contributions!
Link to project repository/sources
Goals for Brainhack Montreal
- Gather feedback from contributors to design a simple, user-friendly, and mostly automated process for providing configurations settings for a Neurobagel node via .env/config files
- Collaboratively develop an easy-to-use Python CLI tool that will simplify Neurobagel node setup by automatically generating a full deployment
.env file from a minimal config.ini file including only variables users wish to customize
- The tool should:
- Parse and validate user-provided configuration values that explicitly override default settings
- Allow users to easily update an existing config with different values or newly supported variables
- Output a deployable configuration file for a Neurobagel node containing either default values or user-supplied values
Skills
As a user:
- Experience running Python-based tools or commands in the terminal
- Interest in making data discoverable
As a developer (helpful, but not required):
-
Python
-
Terminal/Bash
Nice to have:
- Docker
- Familiarity with Python command line input tools (e.g., Typer or argparse)
- Git/GitHub
- We recommend creating a GitHub account if you don’t already have one
Tech stack
This BrainHack project will use the following tools:
- Python
- Typer
- Docker (not the main focus, previous experience not required)
Onboarding documentation / Expectations
You can find our code contribution guidelines here https://neurobagel.org/contributing/CONTRIBUTING/, but reading them isn’t required to get started - project leads will guide you through all steps of contributing!
What will participants learn?
- How to build a standalone Python tool that takes user input on the command line
- How to set up and contribute to a GitHub repository step-by-step (fork -> commit -> push -> pull request)
- How to write useful tests of key functions
- How to release and ship the finished tool so others can install it
- How to work with
.env files for tool configuration
Data to use
No response
Credit to collaborators
- Contributors will be included as co-authors on pull requests and will appear under the “Contributors” list of the GitHub repo
- We will mention contributors when we announce and distribute the tool to our network of nodes
Image
No response
Type
data_management
Project Maturity Status
2 - releases existing
Topic
other
Tools
other
Programming language
Python
Modalities
not_applicable
Git skills
1_commit_push
Anything else?
No response
Things to do after the project is submitted and ready to review.
Title
Build a Python command line configuration wizard for Neurobagel
Leaders
Sebastian Urchs (_surchs)
Alyssa Dai (daialyssa)
Arman Jahanpour (rmanaem)
Collaborators
No response
Project Description
Neurobagel is a tool ecosystem and network of global data nodes that lets you search for subject-level neuroscience cohorts across distributed datasets stored at other institutes or sites. To participate, institutes deploy local Neurobagel “nodes” that then connect to the global network to become discoverable and queryable.
We want to make it easier to deploy a Neurobagel node so that more sites can join Neurobagel, including those with more limited technical resources. Currently, configuring a Neurobagel node requires copying and editing local configuration files by hand. This configuration is important, because it controls options such as whether queries return aggregated results or full records, and other privacy-relevant settings.
The current approach is cumbersome and overwhelming for users for several reasons:
Our goal: To create a command line tool that will simplify the process of generating a valid configuration for a Neurobagel node.
Come talk to us if you:
We are very excited for both kinds of contributions!
Link to project repository/sources
.inito full.envfor Neurobagel deployment neurobagel/configure-nb#2Goals for Brainhack Montreal
.envfile from a minimalconfig.inifile including only variables users wish to customizeSkills
As a user:
As a developer (helpful, but not required):
Python
Terminal/Bash
Nice to have:
Tech stack
This BrainHack project will use the following tools:
Onboarding documentation / Expectations
You can find our code contribution guidelines here https://neurobagel.org/contributing/CONTRIBUTING/, but reading them isn’t required to get started - project leads will guide you through all steps of contributing!
What will participants learn?
.envfiles for tool configurationData to use
No response
Credit to collaborators
Image
No response
Type
data_management
Project Maturity Status
2 - releases existing
Topic
other
Tools
other
Programming language
Python
Modalities
not_applicable
Git skills
1_commit_push
Anything else?
No response
Things to do after the project is submitted and ready to review.