brkraw 0.5.0rc1__py3-none-any.whl → 0.5.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. brkraw/__init__.py +1 -1
  2. brkraw/apps/hook/core.py +58 -10
  3. brkraw/apps/loader/core.py +5 -1
  4. brkraw/apps/loader/helper.py +155 -14
  5. brkraw/apps/loader/info/scan.py +18 -5
  6. brkraw/apps/loader/types.py +6 -1
  7. brkraw/cli/commands/convert.py +201 -79
  8. brkraw/cli/commands/hook.py +146 -4
  9. brkraw/cli/commands/session.py +6 -1
  10. brkraw/cli/hook_args.py +80 -0
  11. brkraw/core/config.py +8 -0
  12. brkraw/core/layout.py +56 -11
  13. brkraw/default/rules/00_default.yaml +4 -0
  14. brkraw/default/specs/metadata_dicom.yaml +236 -0
  15. brkraw/default/specs/metadata_transforms.py +18 -0
  16. brkraw/resolver/affine.py +56 -32
  17. brkraw/schema/context_map.yaml +5 -0
  18. brkraw/schema/remapper.yaml +6 -0
  19. brkraw/specs/__init__.py +2 -2
  20. brkraw/specs/{converter → hook}/logic.py +1 -0
  21. brkraw/specs/{converter → hook}/validator.py +1 -0
  22. brkraw/specs/remapper/logic.py +83 -16
  23. brkraw/specs/remapper/validator.py +21 -5
  24. {brkraw-0.5.0rc1.dist-info → brkraw-0.5.1.dist-info}/METADATA +31 -4
  25. {brkraw-0.5.0rc1.dist-info → brkraw-0.5.1.dist-info}/RECORD +29 -33
  26. brkraw/default/rules/10-metadata.yaml +0 -42
  27. brkraw/default/rules/20-mrs.yaml +0 -14
  28. brkraw/default/specs/metadata_anat.yaml +0 -54
  29. brkraw/default/specs/metadata_common.yaml +0 -129
  30. brkraw/default/specs/metadata_func.yaml +0 -127
  31. brkraw/default/specs/mrs.yaml +0 -71
  32. brkraw/default/specs/mrs_transforms.py +0 -26
  33. brkraw/specs/{converter → hook}/__init__.py +1 -1
  34. {brkraw-0.5.0rc1.dist-info → brkraw-0.5.1.dist-info}/WHEEL +0 -0
  35. {brkraw-0.5.0rc1.dist-info → brkraw-0.5.1.dist-info}/entry_points.txt +0 -0
  36. {brkraw-0.5.0rc1.dist-info → brkraw-0.5.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,127 +0,0 @@
1
- __meta__:
2
- name: "metadata_func"
3
- version: "0.0.1"
4
- description: "Functional (EPI) metadata mapping for BIDS 1.10.1."
5
- category: "metadata_spec"
6
- include:
7
- - "metadata_common.yaml"
8
-
9
- TaskName:
10
- inputs:
11
- value:
12
- const: "CHANGE_ME"
13
- transform: pick_value
14
-
15
- RepetitionTime:
16
- sources:
17
- - file: visu_pars
18
- key: VisuAcqRepetitionTime
19
- transform: to_seconds
20
-
21
- EchoTime:
22
- sources:
23
- - file: visu_pars
24
- key: VisuAcqEchoTime
25
- transform: to_seconds
26
-
27
- FlipAngle:
28
- sources:
29
- - file: visu_pars
30
- key: VisuAcqFlipAngle
31
-
32
- SliceTiming:
33
- inputs:
34
- value:
35
- const: null
36
- transform: pick_value
37
-
38
- VolumeTiming:
39
- inputs:
40
- tr:
41
- sources:
42
- - file: visu_pars
43
- key: VisuAcqRepetitionTime
44
- nr:
45
- sources:
46
- - file: method
47
- key: PVM_NRepetitions
48
- transform: volume_timing
49
-
50
- PhaseEncodingDirection:
51
- inputs:
52
- value:
53
- const: null
54
- transform: pick_value
55
-
56
- EffectiveEchoSpacing:
57
- inputs:
58
- value:
59
- const: null
60
- transform: pick_value
61
-
62
- TotalReadoutTime:
63
- inputs:
64
- value:
65
- const: null
66
- transform: pick_value
67
-
68
- MultibandAccelerationFactor:
69
- inputs:
70
- value:
71
- const: null
72
- transform: pick_value
73
-
74
- NumberOfVolumesDiscardedByScanner:
75
- sources:
76
- - file: method
77
- key: PVM_DummyScans
78
-
79
- NumberOfVolumesDiscardedByUser:
80
- inputs:
81
- value:
82
- const: null
83
- transform: pick_value
84
-
85
- DelayTime:
86
- inputs:
87
- value:
88
- const: null
89
- transform: pick_value
90
-
91
- AcquisitionDuration:
92
- inputs:
93
- value:
94
- sources:
95
- - file: method
96
- key: PVM_ScanTime
97
- transform: first_seconds
98
-
99
- DelayAfterTrigger:
100
- inputs:
101
- value:
102
- const: null
103
- transform: pick_value
104
-
105
- Instructions:
106
- inputs:
107
- value:
108
- const: "CHANGE_ME"
109
- transform: pick_value
110
-
111
- TaskDescription:
112
- inputs:
113
- value:
114
- const: "CHANGE_ME"
115
- transform: pick_value
116
-
117
- CogAtlasID:
118
- inputs:
119
- value:
120
- const: "https://www.cognitiveatlas.org/fillYourID"
121
- transform: pick_value
122
-
123
- CogPOID:
124
- inputs:
125
- value:
126
- const: "http://www.cogpo.org/fillYourID"
127
- transform: pick_value
@@ -1,71 +0,0 @@
1
- __meta__:
2
- name: "mrs"
3
- version: "1.0.0"
4
- description: "Metadata mapping for PRESS/STEAM/SLASER sequences."
5
- category: "info_spec"
6
- transforms_source: "mrs_transforms.py"
7
-
8
- Method:
9
- sources:
10
- - file: method
11
- key: Method
12
- - file: acqp
13
- key: ACQ_method
14
- transform: strip_jcamp_string
15
-
16
- TR (ms):
17
- sources:
18
- - file: method
19
- key: PVM_RepetitionTime
20
- - file: acqp
21
- key: ACQ_repetition_time
22
- transform: convert_to_list
23
-
24
- TE (ms):
25
- sources:
26
- - file: method
27
- key: PVM_EchoTime
28
- - file: acqp
29
- key: ACQ_echo_time
30
- transform: convert_to_list
31
-
32
- NumAverage:
33
- sources:
34
- - file: method
35
- key: PVM_NAverages
36
- - file: acqp
37
- key: NA
38
-
39
- Nucleus:
40
- sources:
41
- - file: method
42
- key: PVM_Nucleus1
43
- - file: acqp
44
- key: NUCLEUS
45
- transform: strip_jcamp_string
46
-
47
- CenterFrequency (MHz):
48
- sources:
49
- - file: method
50
- key: PVM_SpecFreq
51
- - file: acqp
52
- key: SFO1
53
-
54
- SpectralWidth (Hz):
55
- sources:
56
- - file: method
57
- key: PVM_SpecSW
58
- - file: acqp
59
- key: SW_h
60
-
61
- VoxelSize (mm):
62
- sources:
63
- - file: method
64
- key: PVM_VoxArrSize
65
- transform: convert_to_list
66
-
67
- VoxelPosition (mm):
68
- sources:
69
- - file: method
70
- key: PVM_VoxArrPosition
71
- transform: convert_to_list
@@ -1,26 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import Optional, Any, cast
4
- import re
5
-
6
- import numpy as np
7
-
8
-
9
- def strip_jcamp_string(value: Optional[str]) -> str:
10
- if value is None:
11
- return "Unknown"
12
- text = str(value).strip()
13
- if text.startswith("<") and text.endswith(">"):
14
- text = text[1:-1]
15
- text = re.sub(r"\^+", " ", text)
16
- return " ".join(text.split())
17
-
18
-
19
- def convert_to_list(value: Any):
20
- if value is None:
21
- return []
22
- if hasattr(value, "tolist"):
23
- return cast(Any, value).tolist()
24
- if isinstance(value, (list, tuple)):
25
- return list(value)
26
- return [value]
@@ -3,10 +3,10 @@ from __future__ import annotations
3
3
  from .logic import DEFAULT_GROUP, resolve_hook
4
4
  from .validator import validate_hook, CONVERTER_KEYS
5
5
 
6
-
7
6
  __all__ = [
8
7
  "CONVERTER_KEYS",
9
8
  "DEFAULT_GROUP",
10
9
  "resolve_hook",
11
10
  "validate_hook",
12
11
  ]
12
+