brukerapi 0.2.5__tar.gz → 0.3.0__tar.gz
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.
- {brukerapi-0.2.5/brukerapi.egg-info → brukerapi-0.3.0}/PKG-INFO +41 -121
- {brukerapi-0.2.5 → brukerapi-0.3.0}/README.rst +40 -120
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/cli.py +1 -1
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_2dseq_core.json +11 -3
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_2dseq_custom.json +15 -3
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_fid_core.json +91 -46
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_fid_custom.json +3 -3
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_rawdata_core.json +40 -16
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_traj_core.json +1 -41
- brukerapi-0.3.0/brukerapi/data.py +7 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/dataset.py +279 -49
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/exceptions.py +17 -17
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/folders.py +41 -30
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/jcampdx.py +173 -111
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/schemas.py +187 -70
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/splitters.py +1 -4
- {brukerapi-0.2.5 → brukerapi-0.3.0/brukerapi.egg-info}/PKG-INFO +41 -121
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/SOURCES.txt +3 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/pyproject.toml +1 -1
- brukerapi-0.3.0/test/test_dataset.py +827 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/test/test_exceptions.py +24 -1
- brukerapi-0.3.0/test/test_folders.py +148 -0
- brukerapi-0.3.0/test/test_jcampdx.py +339 -0
- brukerapi-0.3.0/test/test_property_configs.py +154 -0
- brukerapi-0.3.0/test/test_random_access.py +20 -0
- brukerapi-0.3.0/test/test_rawdata.py +17 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/test/test_split.py +11 -1
- {brukerapi-0.2.5 → brukerapi-0.3.0}/test/test_trajectory.py +11 -0
- brukerapi-0.2.5/brukerapi/data.py +0 -7
- brukerapi-0.2.5/test/test_dataset.py +0 -72
- brukerapi-0.2.5/test/test_jcampdx.py +0 -42
- brukerapi-0.2.5/test/test_random_access.py +0 -42
- {brukerapi-0.2.5 → brukerapi-0.3.0}/LICENSE +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/MANIFEST.in +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/__init__.py +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_rawdata_custom.json +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/config/properties_traj_custom.json +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/mergers.py +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi/utils.py +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/dependency_links.txt +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/entry_points.txt +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/not-zip-safe +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/requires.txt +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/brukerapi.egg-info/top_level.txt +0 -0
- {brukerapi-0.2.5 → brukerapi-0.3.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: brukerapi
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Bruker API
|
|
5
5
|
Author-email: Tomas Psorn <tomaspsorn@isibrno.cz>, Jiri Vitous <vitous@isibrno.cz>
|
|
6
6
|
Maintainer-email: Jiri Vitous <vitous@isibrno.cz>
|
|
@@ -50,9 +50,9 @@ Load any **data set**:
|
|
|
50
50
|
.. code-block:: python
|
|
51
51
|
|
|
52
52
|
from brukerapi.dataset import Dataset
|
|
53
|
-
dataset = Dataset('{path}/2dseq') #
|
|
53
|
+
dataset = Dataset('{path}/2dseq') # also supports fid, fid_proc.64, traj, and rawdata.jobN
|
|
54
54
|
dataset.data # access data array
|
|
55
|
-
dataset.VisuCoreSize
|
|
55
|
+
dataset.get_value('VisuCoreSize') # get a parameter value
|
|
56
56
|
|
|
57
57
|
Load an entire **study**:
|
|
58
58
|
|
|
@@ -62,17 +62,7 @@ Load an entire **study**:
|
|
|
62
62
|
study = Study('{path_to_study_folder}')
|
|
63
63
|
dataset = study.get_dataset(exp_id='1', proc_id='1')
|
|
64
64
|
|
|
65
|
-
#
|
|
66
|
-
# in order to load data into the data set, you can either use the context manager:
|
|
67
|
-
|
|
68
|
-
with dataset as d:
|
|
69
|
-
d.data # access data array
|
|
70
|
-
d.VisuCoreSize # get a value of a parameter
|
|
71
|
-
|
|
72
|
-
# or the load function
|
|
73
|
-
dataset.load()
|
|
74
|
-
dataset.data # access data array
|
|
75
|
-
dataset.VisuCoreSize # get a value of a single parameter
|
|
65
|
+
dataset.data # Study loads datasets by default
|
|
76
66
|
|
|
77
67
|
Load a parametric file:
|
|
78
68
|
|
|
@@ -82,8 +72,8 @@ Load a parametric file:
|
|
|
82
72
|
|
|
83
73
|
parameters = JCAMPDX('path_to_scan/method')
|
|
84
74
|
|
|
85
|
-
TR =
|
|
86
|
-
TR =
|
|
75
|
+
TR = parameters.params["PVM_RepetitionTime"].value
|
|
76
|
+
TR = parameters.get_value("PVM_RepetitionTime")
|
|
87
77
|
|
|
88
78
|
|
|
89
79
|
|
|
@@ -94,16 +84,17 @@ Features
|
|
|
94
84
|
|
|
95
85
|
* **I/O** interface for **fid** data sets
|
|
96
86
|
* **I/O** interface for **2dseq** data sets
|
|
97
|
-
* **I/O** interface for **ser** data sets
|
|
98
87
|
* **I/O** interface for **rawdata** data sets
|
|
99
88
|
* **Random access** for **fid** and **2dseq** data sets
|
|
100
89
|
* **Split** operation implemented over **2dseq** data sets
|
|
101
90
|
* **Filter** operation implemented over Bruker **folders** (allowing you to work with a subset of your study only)
|
|
91
|
+
* ParaVision 5.1, 6.0.1, 7.0.0, and 360 metadata and binary-layout support
|
|
92
|
+
* Metadata-based fallback inference for custom Cartesian, EPI, radial/UTE, spiral, ZTE, CSI, and spectroscopy sequences
|
|
102
93
|
|
|
103
94
|
Examples
|
|
104
95
|
========
|
|
105
96
|
|
|
106
|
-
* How to `read <examples/read_fid.ipynb>`_ a Bruker fid, 2dseq,
|
|
97
|
+
* How to `read <examples/read_fid.ipynb>`_ a Bruker fid, 2dseq, or rawdata file
|
|
107
98
|
* How to `split slice packages <examples/split_sp_demo.ipynb>`_ of a 2dseq data set
|
|
108
99
|
* How to `split FG_ECHO <examples/split_fg_echo_demo.ipynb>`_ of a 2dseq data set
|
|
109
100
|
* How to `split FG_ISA <examples/examples/split_fg_isa_demo.ipynb>`_ of a 2dseq data set
|
|
@@ -128,8 +119,7 @@ From source:
|
|
|
128
119
|
|
|
129
120
|
git clone https://github.com/isi-nmr/brukerapi-python.git
|
|
130
121
|
cd brukerapi-python
|
|
131
|
-
python
|
|
132
|
-
python setup.py install
|
|
122
|
+
python -m pip install -e .[dev]
|
|
133
123
|
|
|
134
124
|
Testing
|
|
135
125
|
========
|
|
@@ -138,108 +128,38 @@ data sets:
|
|
|
138
128
|
|
|
139
129
|
* `BrukerAPI test data set (Bruker ParaVision v5.1) <https://doi.org/10.5281/zenodo.3899268>`_
|
|
140
130
|
* `BrukerAPI test data set (Bruker ParaVision v6.0.1) <https://doi.org/10.5281/zenodo.3894651>`_
|
|
141
|
-
*
|
|
131
|
+
* BrukerAPI test data set for ParaVision v7.0.0 (Zenodo DOI collection ``10.5281/zenodo.4522220``)
|
|
132
|
+
* `PV360 standard data <https://github.com/cecilyen/PV360_StdData>`_
|
|
133
|
+
|
|
134
|
+
The corpus download is opt-in for local runs:
|
|
135
|
+
|
|
136
|
+
.. code-block:: shell
|
|
137
|
+
|
|
138
|
+
python -m pytest test --download_test_data
|
|
139
|
+
|
|
140
|
+
Without that flag, pytest uses any corpus already present under ``test/test_data`` and
|
|
141
|
+
skips unavailable collections.
|
|
142
|
+
|
|
143
|
+
File format reference
|
|
144
|
+
=====================
|
|
145
|
+
|
|
146
|
+
`Bruker ParaVision Raw Data Format
|
|
147
|
+
<https://github.com/gdevenyi/brkraw-legacy/blob/main/FILE_FORMAT.md>`_ is the source of truth
|
|
148
|
+
for file-format parsing, binary layouts, dataset typing, and metadata-driven acquisition
|
|
149
|
+
scheme inference in this project.
|
|
142
150
|
|
|
143
151
|
Compatibility
|
|
144
152
|
=============
|
|
145
153
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
Compatible pulse sequences for **fid** data sets:
|
|
159
|
-
|
|
160
|
-
* FLASH.ppg
|
|
161
|
-
* MGE.ppg
|
|
162
|
-
* MSME.ppg
|
|
163
|
-
* RARE.ppg
|
|
164
|
-
* FAIR_RARE.ppg
|
|
165
|
-
* RAREVTR.ppg
|
|
166
|
-
* RAREst.ppg
|
|
167
|
-
* MDEFT.ppg
|
|
168
|
-
* FISP.ppg
|
|
169
|
-
* FLOWMAP.ppg
|
|
170
|
-
* DtiStandard.ppg
|
|
171
|
-
* EPI.ppg
|
|
172
|
-
* FAIR_EPI.ppg
|
|
173
|
-
* DtiEpi.ppg
|
|
174
|
-
* T1_EPI.ppg
|
|
175
|
-
* T2_EPI.ppg
|
|
176
|
-
* T2S_EPI.ppg
|
|
177
|
-
* SPIRAL.ppg
|
|
178
|
-
* DtiSpiral.ppg
|
|
179
|
-
* UTE.ppg
|
|
180
|
-
* UTE3D.ppg
|
|
181
|
-
* ZTE.ppg
|
|
182
|
-
* CSI.ppg
|
|
183
|
-
* FieldMap.ppg
|
|
184
|
-
* NSPECT.ppg
|
|
185
|
-
* PRESS.ppg
|
|
186
|
-
* STEAM.ppg
|
|
187
|
-
* igFLASH.ppg
|
|
188
|
-
|
|
189
|
-
ParaVision v6.0.1 and v7.0.0
|
|
190
|
-
"""""""""""""""""""""""""""""""
|
|
191
|
-
Compatible data set types:
|
|
192
|
-
|
|
193
|
-
* **fid**
|
|
194
|
-
* **2dseq**
|
|
195
|
-
* **rawdata.job0**
|
|
196
|
-
* **rawdata.Navigator**
|
|
197
|
-
|
|
198
|
-
Compatible pulse sequences for **fid** data sets:
|
|
199
|
-
|
|
200
|
-
* FLASH.ppg,
|
|
201
|
-
* FLASHAngio.ppg
|
|
202
|
-
* IgFLASH.ppg
|
|
203
|
-
* MGE.ppg
|
|
204
|
-
* MSME.ppg
|
|
205
|
-
* RARE.ppg
|
|
206
|
-
* FAIR_RARE.ppg
|
|
207
|
-
* RAREVTR.ppg
|
|
208
|
-
* RAREst.ppg
|
|
209
|
-
* MDEFT.ppg
|
|
210
|
-
* FISP.ppg
|
|
211
|
-
* FLOWMAP.ppg
|
|
212
|
-
* DtiStandard.ppg
|
|
213
|
-
* EPI.ppg
|
|
214
|
-
* FAIR_EPI.ppg
|
|
215
|
-
* CASL_EPI.ppg
|
|
216
|
-
* DtiEpi.ppg
|
|
217
|
-
* T1_EPI.ppg
|
|
218
|
-
* T2_EPI.ppg
|
|
219
|
-
* T2S_EPI.ppg
|
|
220
|
-
* SPIRAL.ppg
|
|
221
|
-
* DtiSpiral.ppg
|
|
222
|
-
* UTE.ppg
|
|
223
|
-
* UTE3D.ppg
|
|
224
|
-
* ZTE.ppg
|
|
225
|
-
* CSI.ppg
|
|
226
|
-
* FieldMap.ppg
|
|
227
|
-
* SINGLEPULSE.ppg
|
|
228
|
-
* NSPECT.ppg
|
|
229
|
-
* EPSI.ppg
|
|
230
|
-
* PRESS.ppg
|
|
231
|
-
* STEAM.ppg
|
|
232
|
-
* ISIS.ppg
|
|
233
|
-
* CPMG.ppg
|
|
234
|
-
* RfProfile.ppg
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
ParaVision 360 v1.1 v3.0-v3.7
|
|
238
|
-
"""""""""""""""""""""""""""""""""
|
|
239
|
-
Reading rawdata is supported only in a basic form, no reshaping into k-space is supported at the moment.
|
|
240
|
-
Compatible data set types:
|
|
241
|
-
|
|
242
|
-
* **2dseq**
|
|
243
|
-
* **rawdata.job0**
|
|
244
|
-
* **rawdata.Navigator**
|
|
245
|
-
|
|
154
|
+
Tested releases are ParaVision 5.1, 6.0.1, 7.0.0, and PV360 3.x. Supported
|
|
155
|
+
primary binaries are ``fid``, ``fid_proc.64``, ``2dseq``, ``traj``,
|
|
156
|
+
``rawdata.jobN``, and ``rawdata.Navigator``. Known ``fid.spiral``,
|
|
157
|
+
``fid.navFid``, and ``fid.orig`` files are exposed as auxiliary subdatasets of
|
|
158
|
+
their parent ``fid``; they are not accepted as standalone primary datasets.
|
|
159
|
+
TopSpin/NMR ``ser`` is intentionally unsupported.
|
|
160
|
+
|
|
161
|
+
Known pulse-program names use dedicated layouts. For custom sequences the
|
|
162
|
+
reader also infers common acquisition families from metadata; callers can pass
|
|
163
|
+
``scheme_id=`` when inference is ambiguous. Rawdata is returned as complex
|
|
164
|
+
ordered samples, not as reconstructed k-space. See the compatibility page in
|
|
165
|
+
the documentation for behavior and current reconstruction limitations.
|
|
@@ -28,9 +28,9 @@ Load any **data set**:
|
|
|
28
28
|
.. code-block:: python
|
|
29
29
|
|
|
30
30
|
from brukerapi.dataset import Dataset
|
|
31
|
-
dataset = Dataset('{path}/2dseq') #
|
|
31
|
+
dataset = Dataset('{path}/2dseq') # also supports fid, fid_proc.64, traj, and rawdata.jobN
|
|
32
32
|
dataset.data # access data array
|
|
33
|
-
dataset.VisuCoreSize
|
|
33
|
+
dataset.get_value('VisuCoreSize') # get a parameter value
|
|
34
34
|
|
|
35
35
|
Load an entire **study**:
|
|
36
36
|
|
|
@@ -40,17 +40,7 @@ Load an entire **study**:
|
|
|
40
40
|
study = Study('{path_to_study_folder}')
|
|
41
41
|
dataset = study.get_dataset(exp_id='1', proc_id='1')
|
|
42
42
|
|
|
43
|
-
#
|
|
44
|
-
# in order to load data into the data set, you can either use the context manager:
|
|
45
|
-
|
|
46
|
-
with dataset as d:
|
|
47
|
-
d.data # access data array
|
|
48
|
-
d.VisuCoreSize # get a value of a parameter
|
|
49
|
-
|
|
50
|
-
# or the load function
|
|
51
|
-
dataset.load()
|
|
52
|
-
dataset.data # access data array
|
|
53
|
-
dataset.VisuCoreSize # get a value of a single parameter
|
|
43
|
+
dataset.data # Study loads datasets by default
|
|
54
44
|
|
|
55
45
|
Load a parametric file:
|
|
56
46
|
|
|
@@ -60,8 +50,8 @@ Load a parametric file:
|
|
|
60
50
|
|
|
61
51
|
parameters = JCAMPDX('path_to_scan/method')
|
|
62
52
|
|
|
63
|
-
TR =
|
|
64
|
-
TR =
|
|
53
|
+
TR = parameters.params["PVM_RepetitionTime"].value
|
|
54
|
+
TR = parameters.get_value("PVM_RepetitionTime")
|
|
65
55
|
|
|
66
56
|
|
|
67
57
|
|
|
@@ -72,16 +62,17 @@ Features
|
|
|
72
62
|
|
|
73
63
|
* **I/O** interface for **fid** data sets
|
|
74
64
|
* **I/O** interface for **2dseq** data sets
|
|
75
|
-
* **I/O** interface for **ser** data sets
|
|
76
65
|
* **I/O** interface for **rawdata** data sets
|
|
77
66
|
* **Random access** for **fid** and **2dseq** data sets
|
|
78
67
|
* **Split** operation implemented over **2dseq** data sets
|
|
79
68
|
* **Filter** operation implemented over Bruker **folders** (allowing you to work with a subset of your study only)
|
|
69
|
+
* ParaVision 5.1, 6.0.1, 7.0.0, and 360 metadata and binary-layout support
|
|
70
|
+
* Metadata-based fallback inference for custom Cartesian, EPI, radial/UTE, spiral, ZTE, CSI, and spectroscopy sequences
|
|
80
71
|
|
|
81
72
|
Examples
|
|
82
73
|
========
|
|
83
74
|
|
|
84
|
-
* How to `read <examples/read_fid.ipynb>`_ a Bruker fid, 2dseq,
|
|
75
|
+
* How to `read <examples/read_fid.ipynb>`_ a Bruker fid, 2dseq, or rawdata file
|
|
85
76
|
* How to `split slice packages <examples/split_sp_demo.ipynb>`_ of a 2dseq data set
|
|
86
77
|
* How to `split FG_ECHO <examples/split_fg_echo_demo.ipynb>`_ of a 2dseq data set
|
|
87
78
|
* How to `split FG_ISA <examples/examples/split_fg_isa_demo.ipynb>`_ of a 2dseq data set
|
|
@@ -106,8 +97,7 @@ From source:
|
|
|
106
97
|
|
|
107
98
|
git clone https://github.com/isi-nmr/brukerapi-python.git
|
|
108
99
|
cd brukerapi-python
|
|
109
|
-
python
|
|
110
|
-
python setup.py install
|
|
100
|
+
python -m pip install -e .[dev]
|
|
111
101
|
|
|
112
102
|
Testing
|
|
113
103
|
========
|
|
@@ -116,108 +106,38 @@ data sets:
|
|
|
116
106
|
|
|
117
107
|
* `BrukerAPI test data set (Bruker ParaVision v5.1) <https://doi.org/10.5281/zenodo.3899268>`_
|
|
118
108
|
* `BrukerAPI test data set (Bruker ParaVision v6.0.1) <https://doi.org/10.5281/zenodo.3894651>`_
|
|
119
|
-
*
|
|
109
|
+
* BrukerAPI test data set for ParaVision v7.0.0 (Zenodo DOI collection ``10.5281/zenodo.4522220``)
|
|
110
|
+
* `PV360 standard data <https://github.com/cecilyen/PV360_StdData>`_
|
|
111
|
+
|
|
112
|
+
The corpus download is opt-in for local runs:
|
|
113
|
+
|
|
114
|
+
.. code-block:: shell
|
|
115
|
+
|
|
116
|
+
python -m pytest test --download_test_data
|
|
117
|
+
|
|
118
|
+
Without that flag, pytest uses any corpus already present under ``test/test_data`` and
|
|
119
|
+
skips unavailable collections.
|
|
120
|
+
|
|
121
|
+
File format reference
|
|
122
|
+
=====================
|
|
123
|
+
|
|
124
|
+
`Bruker ParaVision Raw Data Format
|
|
125
|
+
<https://github.com/gdevenyi/brkraw-legacy/blob/main/FILE_FORMAT.md>`_ is the source of truth
|
|
126
|
+
for file-format parsing, binary layouts, dataset typing, and metadata-driven acquisition
|
|
127
|
+
scheme inference in this project.
|
|
120
128
|
|
|
121
129
|
Compatibility
|
|
122
130
|
=============
|
|
123
131
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Compatible pulse sequences for **fid** data sets:
|
|
137
|
-
|
|
138
|
-
* FLASH.ppg
|
|
139
|
-
* MGE.ppg
|
|
140
|
-
* MSME.ppg
|
|
141
|
-
* RARE.ppg
|
|
142
|
-
* FAIR_RARE.ppg
|
|
143
|
-
* RAREVTR.ppg
|
|
144
|
-
* RAREst.ppg
|
|
145
|
-
* MDEFT.ppg
|
|
146
|
-
* FISP.ppg
|
|
147
|
-
* FLOWMAP.ppg
|
|
148
|
-
* DtiStandard.ppg
|
|
149
|
-
* EPI.ppg
|
|
150
|
-
* FAIR_EPI.ppg
|
|
151
|
-
* DtiEpi.ppg
|
|
152
|
-
* T1_EPI.ppg
|
|
153
|
-
* T2_EPI.ppg
|
|
154
|
-
* T2S_EPI.ppg
|
|
155
|
-
* SPIRAL.ppg
|
|
156
|
-
* DtiSpiral.ppg
|
|
157
|
-
* UTE.ppg
|
|
158
|
-
* UTE3D.ppg
|
|
159
|
-
* ZTE.ppg
|
|
160
|
-
* CSI.ppg
|
|
161
|
-
* FieldMap.ppg
|
|
162
|
-
* NSPECT.ppg
|
|
163
|
-
* PRESS.ppg
|
|
164
|
-
* STEAM.ppg
|
|
165
|
-
* igFLASH.ppg
|
|
166
|
-
|
|
167
|
-
ParaVision v6.0.1 and v7.0.0
|
|
168
|
-
"""""""""""""""""""""""""""""""
|
|
169
|
-
Compatible data set types:
|
|
170
|
-
|
|
171
|
-
* **fid**
|
|
172
|
-
* **2dseq**
|
|
173
|
-
* **rawdata.job0**
|
|
174
|
-
* **rawdata.Navigator**
|
|
175
|
-
|
|
176
|
-
Compatible pulse sequences for **fid** data sets:
|
|
177
|
-
|
|
178
|
-
* FLASH.ppg,
|
|
179
|
-
* FLASHAngio.ppg
|
|
180
|
-
* IgFLASH.ppg
|
|
181
|
-
* MGE.ppg
|
|
182
|
-
* MSME.ppg
|
|
183
|
-
* RARE.ppg
|
|
184
|
-
* FAIR_RARE.ppg
|
|
185
|
-
* RAREVTR.ppg
|
|
186
|
-
* RAREst.ppg
|
|
187
|
-
* MDEFT.ppg
|
|
188
|
-
* FISP.ppg
|
|
189
|
-
* FLOWMAP.ppg
|
|
190
|
-
* DtiStandard.ppg
|
|
191
|
-
* EPI.ppg
|
|
192
|
-
* FAIR_EPI.ppg
|
|
193
|
-
* CASL_EPI.ppg
|
|
194
|
-
* DtiEpi.ppg
|
|
195
|
-
* T1_EPI.ppg
|
|
196
|
-
* T2_EPI.ppg
|
|
197
|
-
* T2S_EPI.ppg
|
|
198
|
-
* SPIRAL.ppg
|
|
199
|
-
* DtiSpiral.ppg
|
|
200
|
-
* UTE.ppg
|
|
201
|
-
* UTE3D.ppg
|
|
202
|
-
* ZTE.ppg
|
|
203
|
-
* CSI.ppg
|
|
204
|
-
* FieldMap.ppg
|
|
205
|
-
* SINGLEPULSE.ppg
|
|
206
|
-
* NSPECT.ppg
|
|
207
|
-
* EPSI.ppg
|
|
208
|
-
* PRESS.ppg
|
|
209
|
-
* STEAM.ppg
|
|
210
|
-
* ISIS.ppg
|
|
211
|
-
* CPMG.ppg
|
|
212
|
-
* RfProfile.ppg
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
ParaVision 360 v1.1 v3.0-v3.7
|
|
216
|
-
"""""""""""""""""""""""""""""""""
|
|
217
|
-
Reading rawdata is supported only in a basic form, no reshaping into k-space is supported at the moment.
|
|
218
|
-
Compatible data set types:
|
|
219
|
-
|
|
220
|
-
* **2dseq**
|
|
221
|
-
* **rawdata.job0**
|
|
222
|
-
* **rawdata.Navigator**
|
|
223
|
-
|
|
132
|
+
Tested releases are ParaVision 5.1, 6.0.1, 7.0.0, and PV360 3.x. Supported
|
|
133
|
+
primary binaries are ``fid``, ``fid_proc.64``, ``2dseq``, ``traj``,
|
|
134
|
+
``rawdata.jobN``, and ``rawdata.Navigator``. Known ``fid.spiral``,
|
|
135
|
+
``fid.navFid``, and ``fid.orig`` files are exposed as auxiliary subdatasets of
|
|
136
|
+
their parent ``fid``; they are not accepted as standalone primary datasets.
|
|
137
|
+
TopSpin/NMR ``ser`` is intentionally unsupported.
|
|
138
|
+
|
|
139
|
+
Known pulse-program names use dedicated layouts. For custom sequences the
|
|
140
|
+
reader also infers common acquisition families from metadata; callers can pass
|
|
141
|
+
``scheme_id=`` when inference is ambiguous. Rawdata is returned as complex
|
|
142
|
+
ordered samples, not as reconstructed k-space. See the compatibility page in
|
|
143
|
+
the documentation for behavior and current reconstruction limitations.
|
|
@@ -141,7 +141,7 @@ def report(args):
|
|
|
141
141
|
elif output is None:
|
|
142
142
|
Dataset(input, add_parameters=["subject"]).report(props=args.props, verbose=args.verbose)
|
|
143
143
|
# dataset to folder, or dataset to file
|
|
144
|
-
|
|
144
|
+
else:
|
|
145
145
|
Dataset(input, add_parameters=["subject"]).report(path=output, props=args.props, verbose=args.verbose)
|
|
146
146
|
|
|
147
147
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
{
|
|
31
31
|
"cmd": "np.dtype('uint8').newbyteorder('<')",
|
|
32
32
|
"conditions": [
|
|
33
|
-
["#VisuCoreWordType",["
|
|
33
|
+
["#VisuCoreWordType",["_8BIT_UNSGN_INT"]],
|
|
34
34
|
["#VisuCoreByteOrder",["littleEndian"]]
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
{
|
|
59
59
|
"cmd": "np.dtype('uint8').newbyteorder('>')",
|
|
60
60
|
"conditions": [
|
|
61
|
-
["#VisuCoreWordType",["
|
|
61
|
+
["#VisuCoreWordType",["_8BIT_UNSGN_INT"]],
|
|
62
62
|
["#VisuCoreByteOrder",["bigEndian"]]
|
|
63
63
|
]
|
|
64
64
|
}
|
|
@@ -143,12 +143,20 @@
|
|
|
143
143
|
{
|
|
144
144
|
"cmd": "#VisuCoreDataSlope.array",
|
|
145
145
|
"conditions": []
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"cmd": "#RECO_map_slope.array",
|
|
149
|
+
"conditions": []
|
|
146
150
|
}
|
|
147
151
|
],
|
|
148
152
|
"offset": [
|
|
149
153
|
{
|
|
150
154
|
"cmd": "#VisuCoreDataOffs.array",
|
|
151
155
|
"conditions": []
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"cmd": "#RECO_map_offset.array",
|
|
159
|
+
"conditions": []
|
|
152
160
|
}
|
|
153
161
|
],
|
|
154
162
|
"dim_type": [
|
|
@@ -169,4 +177,4 @@
|
|
|
169
177
|
"conditions": ["@is_single_slice==False"]
|
|
170
178
|
}
|
|
171
179
|
]
|
|
172
|
-
}
|
|
180
|
+
}
|
|
@@ -130,6 +130,18 @@
|
|
|
130
130
|
"#VisuCorePosition.size[0]==1",
|
|
131
131
|
"#VisuCoreDim==2"]
|
|
132
132
|
},
|
|
133
|
+
{
|
|
134
|
+
"cmd": "np.array([#VisuCoreExtent[0] / #VisuCoreSize[0], #VisuCoreExtent[1] / #VisuCoreSize[1], np.linalg.norm(#VisuCorePosition[1,:] - #VisuCorePosition[0,:])])",
|
|
135
|
+
"conditions": [
|
|
136
|
+
"#VisuCorePosition.size[0]>1",
|
|
137
|
+
"#VisuCoreDim==2"]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"cmd": "np.array([#VisuCoreExtent[0] / #VisuCoreSize[0], #VisuCoreExtent[1] / #VisuCoreSize[1], #VisuCoreFrameThickness])",
|
|
141
|
+
"conditions": [
|
|
142
|
+
"#VisuCorePosition.size[0]==1",
|
|
143
|
+
"#VisuCoreDim==2"]
|
|
144
|
+
},
|
|
133
145
|
{
|
|
134
146
|
"cmd": "np.array([#VisuCoreExtent[0] / #VisuCoreSize[0], #VisuCoreExtent[1] / #VisuCoreSize[1], #VisuCoreExtent[2] / #VisuCoreSize[2]])",
|
|
135
147
|
"conditions": [
|
|
@@ -253,13 +265,13 @@
|
|
|
253
265
|
{
|
|
254
266
|
"cmd": "datetime.datetime.strptime(#VisuStudyDate[1:-1], '%X %d %b %Y')",
|
|
255
267
|
"conditions": [
|
|
256
|
-
"#
|
|
268
|
+
"'T' not in #VisuStudyDate"
|
|
257
269
|
]
|
|
258
270
|
},
|
|
259
271
|
{
|
|
260
272
|
"cmd": "datetime.datetime.strptime(#VisuStudyDate[1:-1], '%Y-%m-%dT%X,%f%z')",
|
|
261
273
|
"conditions": [
|
|
262
|
-
"#
|
|
274
|
+
"'T' in #VisuStudyDate"
|
|
263
275
|
]
|
|
264
276
|
}
|
|
265
277
|
],
|
|
@@ -274,4 +286,4 @@
|
|
|
274
286
|
"comment": "default value"
|
|
275
287
|
}
|
|
276
288
|
]
|
|
277
|
-
}
|
|
289
|
+
}
|