khanlab / khanlab/snakebids

`BidsDataset` advanced component selection

Open
#244 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
23
Forks
16
PR merge metrics
No merged PRs in 30d

Description

As proposed in #209, this will be an API allowing the selection of multiple components from a single Dataset. All would return a new dataset containing only the selected components.

The functions are outlined below:

* `BidsDataset[]`

Extends the current api allowing the selection of just one component. If multiple components are provided, a new dataset is returned containing just those components. This is potentially useful in combination with intersection type calculations.

* `BidsDataset.drop(*components)`

As above, but drops components instead of selecting

* `BidsDataset.with_entities(*entities, exact: bool = False) -> BidsDataset`

Return dataset containing only the components with the given entities. Setting `exact=True` also filters out components with extra entities beyond the selected `*entities`. Most likely use here is in combination with `BidsDataset.expand` to expand over a consensus of specific entities.

* `BidsDataset.without_entities(*entities) -> BidsDataset`

As above, but inverse

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading issue #209 and the current BidsDataset single-component selection and expand behavior. Define and implement the proposed selection, drop, with_entities, and without_entities APIs, then verify that each returns the expected filtered dataset, including exact entity matching.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.