d2b 包的插件,用于确定性地统一不同的采集运行
项目描述
d2b-nth-of-type
d2b 包的插件,用于确定性地统一不同的采集运行
安装
pip install d2b-nth-of-type
入门
该插件将向每个 JSON sidecar 中注入属性,这些属性可以区分不同的运行,随后可以criteria在 d2b 配置文件的规范中使用。
具体来说,这个插件将向__nth_of_type__每个 JSON sidecar 中注入一个属性 , 。此属性的值是一个索引为 0 的整数。
此插件对采集进行分组,并为组中的每次运行提供一个唯一的(0 索引)标签,按指定顺序递增。
默认情况下,采集按(按升序SeriesDescription)分组和排序。SeriesNumber
例如,如果一个主题有一个会话,其中获取了 3 个字段图,例如,3 个边车(截断)的形式为:
-
场图 1:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 3 }
-
场图 2:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 16 }
-
场图 3:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 24 }
然后,当d2b run安装了这个插件运行时,这个插件将注入__nth_of_type__到每个边车中,导致边车(截断)看起来像:
-
场图 1:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 3, "__nth_of_type__": 0 }
-
场图 2:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 16, "__nth_of_type__": 1 }
-
场图 3:
{ "SeriesDescription": "my_fmap", "SeriesNumber": 24, "__nth_of_type__": 2 }
实用程序是这些值在更改时将保持不变SeriesNumber。
因此,如果“第一个”fmap 用于 BOLD 采集,而“第二个”fmap 用于 PCASL 采集,我们可以使用该__nth_of_type__字段安全地挑选出每个 fmap。
例如,我们可以有以下形式的 d2b 配置文件(注意:d2b-yamlyaml 配置文件需要插件,您可能还需要d2b-aslASL 数据插件):
descriptions:
# BOLD Resting State
- id: my-bold-rs
dataType: func
modalityLabel: bold
customLabels: task-rest
criteria:
# ...
# PCASL
- id: my-pcasl
dataType: perf
modalityLabel: asl
customLabels:
acq: pcasl
criteria:
# ...
aslContext:
# ...
# FIRST FMAP - for BOLD - phase encoding = AP
- dataType: fmap
modalityLabel: epi
customLabels:
dir: AP
IntendedFor:
- my-bold-rs
criteria:
ManufacturersModelName: Prisma_fit
SidecarFilename: "*SpinEchoFieldMap_AP*"
__nth_of_type__: 0 # <-- HERE
# FIRST FMAP - for BOLD - phase encoding = PA
- dataType: fmap
modalityLabel: epi
customLabels:
dir: PA
IntendedFor:
- my-bold-rs
criteria:
ManufacturersModelName: Prisma_fit
SidecarFilename: "*SpinEchoFieldMap_PA*"
__nth_of_type__: 0 # <-- HERE
# SECOND FMAP - for PCASL - phase encoding = AP
- dataType: fmap
modalityLabel: epi
customLabels:
dir: AP
IntendedFor:
- my-pcasl
criteria:
ManufacturersModelName: Prisma_fit
SidecarFilename: "*SpinEchoFieldMap_AP*"
__nth_of_type__: 1 # <-- HERE
# SECOND FMAP - for PCASL - phase encoding = PA
- dataType: fmap
modalityLabel: epi
customLabels:
dir: PA
IntendedFor:
- my-pcasl
criteria:
ManufacturersModelName: Prisma_fit
SidecarFilename: "*SpinEchoFieldMap_PA*"
__nth_of_type__: 1 # <-- HERE
配置
这个插件可以通过d2b run命令选项或环境来配置:
-
--nth-of-type-enabled | --nth-of-type-disabled启用或禁用此插件。(默认:启用)
也可以通过
D2B_NTH_OF_TYPE_ENABLED环境变量进行配置。命令行参数优先于环境变量。 -
--nth-of-type-sort-by <string>按哪个边车字段对收购进行排序(默认值:)
SeriesNumber:asc。要按降序排序,请附加
:desc到字段名上,例如:SeriesNumber:desc. 如果不存在方向/排序后缀 (:asc/:desc),则采集按升序排序。也可以通过
D2B_NTH_OF_TYPE_SORT_BY环境变量进行配置。命令行参数优先于环境变量。 -
--nth-of-type-group-by <string>哪个 sidecar 字段将采集分组(默认值:)
SeriesDescription。要按多个字段进行分组,请传递一个逗号分隔的列表,例如:
SeriesDescription,RepetitionTime也可以通过
D2B_NTH_OF_TYPE_GROUP_BY环境变量进行配置。命令行参数优先于环境变量。
贡献
- 拥有或安装最新版本的
poetry(版本 >= 1.1) - 分叉回购
- 设置一个虚拟环境(但是你喜欢)
- 跑
poetry install - 跑
pre-commit install - 添加您的更改(添加/更新测试也总是很好)
- 提交您的更改 + 推送到您的分叉
- 打开公关
项目详情
d2b_nth_of_type -1.0.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 25082ee04fb91f0664f2dd913b0f891438dbffad9bf392e217546c9fb3e60454 |
|
| MD5 | 3466a5fa6a2d2d05610d3e69270a9f2c |
|
| 布莱克2-256 | 5e89434360d4ebc7754766568186962ca7a603244e07cd2be664578899b5e25b |