v0.241015
What's Changed
- description added by @ckolbPTB in #18
- Initial work on KData and ISMRMRD loading by @fzimmermann89 in #29
- fix names in from_ismrmrd_encodingLimitsType() by @schuenke in #31
- Make KData a frozen dataclass by @fzimmermann89 in #36
- Fix mypy ignore missing imports by @fzimmermann89 in #45
- Fix mypy #2 by @fzimmermann89 in #48
- Remove _get_shape from Trajectory base by @fzimmermann89 in #43
- Add torch, numpy to pre-commit/mypy venv by @fzimmermann89 in #49
- switch from autopep8 to black pre-commit hook by @schuenke in #55
- Add codespell to pre-commit by @fzimmermann89 in #56
- Remove 'clear' dictionary from codespell check by @fzimmermann89 in #57
- Ismrmrd test data by @ckolbPTB in #51
- switch CI pipeline from unittest to pytest by @schuenke in #59
- Initial IData and IHeader implementations by @fzimmermann89 in #30
- Update VSCode settings & recommended extensions by @schuenke in #60
- Pytest warnings by @schuenke in #66
- RPE trajectory by @ckolbPTB in #62
- Fix #38: Set trajectory_dimensions always to 3 by @fzimmermann89 in #75
- Refactor ktraj to a dataclass with kz,ky,kx & add DCF calculation by @fzimmermann89 in #76
- Change phantom to torch by @ckolbPTB in #77
- Sim coil sensitivities by @ckolbPTB in #79
- Fix #73: Let test pipeline fail if tests fail by @fzimmermann89 in #74
- Run tests in parallel by @schuenke in #89
- QData and QHeader implementation by @schote in #40
- CsmData with Walsh-Method implementation by @ckolbPTB in #83
- Fixing DCF logic bugs by @fzimmermann89 in #86
- hotfix vscode pytest-xdist issues (#87) by @fzimmermann89 in #101
- Documentation by @schote in #99
- Hotfix: Docu pipeline by @schote in #103
- Implementation of ktraj shaped like original raw data by @ckolbPTB in #107
- Implementation of KTrajectoryRadial2D by @schote in #105
- Implementation of Sensitivityop by @guastinimara in #110
- Testing by @schuenke in #108
- Ismrmrd traj by @ckolbPTB in #113
- Noise measurement data class and prewhitening algo added by @ckolbPTB in #114
- Remove oversampling and fft added by @ckolbPTB in #116
- KTrajectoryPulseq by @JoHa0811 in #111
- docu for users and devs extended by @ckolbPTB in #121
- Operator Template and Nufft by @fzimmermann89 in #104
- reading in of all dcm files from folder by @ckolbPTB in #124
- Reshape instead of view by @ckolbPTB in #127
- update supported python version to 3.10 & 3.11 by @schuenke in #133
- clean up by @ckolbPTB in #137
- Define trajectories to fit encoding_matrix and encoding_limits by @ckolbPTB in #140
- Cartesian trajectory by @ckolbPTB in #142
- fixed issue #141 by @SimoneHufnagel in #145
- Signal models added: Inversion and saturation recovery, MOLLI by @Stef-Martin in #129
- WASABI(TI) signal models by @schuenke in #130
- Fftshift for FourierOp by @ckolbPTB in #143
- Hotfix #143: zero_pad_or_crop broken for dim=None by @fzimmermann89 in #149
- Gpu support by @ckolbPTB in #136
- Hotfix for PyTorch 2.2 by @ckolbPTB in #152
- Disable cuda tests in VScode Test Explorer by @schuenke in #155
- Enable data which does not allow for a reshape into k2 and k1 by @ckolbPTB in #153
- Allow more than one other dim in KTrajectory by @fzimmermann89 in #160
- Bump maximum allowed python to 3.12 by @fzimmermann89 in #163
- Synthetic Sugar for Operators (needs python 3.11) by @fzimmermann89 in #128
- Fix ignore flags by @fzimmermann89 in #159
- Clean up code by @schuenke in #157
- Switch to Processes for voronoi cell volume calculation by @fzimmermann89 in #170
- Framework py -> ipynb -> docu by @ckolbPTB in #118
- Cartesian sampling operator by @ckolbPTB in #146
- Update README.md by @fzimmermann89 in #167
- HOTIFX: Binder to use main branch by @ckolbPTB in #176
- Limit xsd version by @fzimmermann89 in #177
- Cart sampling index int64 by @ckolbPTB in #182
- Lbfgs box by @schuenke in #131
- Same ndim for all AcqInfo fields by @ckolbPTB in #191
- Fix operator chaining by @fzimmermann89 in #189
- Return copy in remove readout os by @fzimmermann89 in #204
- Split data and select subset by @ckolbPTB in #117
- Switch to Ruff for linting and formatting by @schuenke in #193
- docu update by @ckolbPTB in #214
- Docker tests by @ckolbPTB in #175
- fix link by @ckolbPTB in #219
- move sensitivity operator tests to using dotproduct_adjointness_test by @fzimmermann89 in #220
- Generalized matrix operator by @fzimmermann89 in #212
- Conjugate Gradient by @koflera in #195
- Fix 221: Cartesian sampling op for random undersampling with varying pattern along other by @fzimmermann89 in #223
- Add separable nd-filters and sliding window by @fzimmermann89 in #161
- Clean up by @ckolbPTB in #218
- Support bipolar readout by @ckolbPTB in #222
- Fix #216 by @fzimmermann89 in #225
- Add from_array_zxy, zyx read-only property and tests to SpatialDimension by @fzimmermann89 in #238
- Move kernel in filters to input device. Fixes #239 by @fzimmermann89 in #240
- Rotation class by @fzimmermann89 in #209
- allow batch dimension in signal models by @fzimmermann89 in #226
- Detection tolerance for KTrajectoryPulseq by @schuenke in #232
- Restructure algorithms & Move to direct imports in src by @schuenke in #215
- Example script for pulseq radial 2D golden angle acquisition by @schuenke in #235
- Switch to direct import in einsumop by @fzimmermann89 in #246
- Read in multiple dicom files by @ckolbPTB in #248
- mono-exponential decay model added by @ckolbPTB in #245
- Add operator-tensor multiplication and type hints by @fzimmermann89 in #262
- Add .to/.cuda/cpu to KNoise by @fzimmermann89 in #263
- add rss to idata by @fzimmermann89 in #264
- switch in einsumop to einops notation by @fzimmermann89 in #265
- add as_operator to DcfData and CsmData by @fzimmermann89 in #266
- fix imports and add py.typed marker by @fzimmermann89 in #267
- Improve docstrings and variable names by @fzimmermann89 in #268
- Do not check notebooks for spelling mistakes by @ckolbPTB in #277
- Magnitude and Phase operator by @ckolbPTB in #273
- add fourierop.from_kdata by @fzimmermann89 in #269
- Allow multiple other dimensions in prewhiten data by @fzimmermann89 in #272
- add direct reconstruction by @fzimmermann89 in #270
- Bump pytorch and ismrmrd version by @fzimmermann89 in #281
- Allow different total number of phase encode steps in KData by @fzimmermann89 in #207
- Projection operator by @fzimmermann89 in #237
- Motion / Gridsample operator by @fzimmermann89 in #241
- Make trajectory always float by @fzimmermann89 in #286
- Unify .to / .cpu / .cuda for data classes by @fzimmermann89 in #279
- Add EndomorphOperator by @fzimmermann89 in #280
- Fix types by @fzimmermann89 in #282
- Precommit: run mypy on all files, including tests. by @fzimmermann89 in #283
- Fix reshaping of SpatialDimension in acq_info by @ckolbPTB in #301
- Rename all files to categorize them as 'public' for linters by @schuenke in #302
- Make TE, TR... to tensors in the header by @ckolbPTB in #271
- Different modes and values for padding in separable filter by @ckolbPTB in #299
- Finite difference operator by @ckolbPTB in #297
- T1 and T2star mapping by @ckolbPTB in #278
- Notebook typo by @ckolbPTB in #310
- Tests for signal models separated by @ckolbPTB in #312
- Docker build for main by @ckolbPTB in #318
- Remove pytest filter warning for optimizers by @ckolbPTB in #324
- Select ISMRMRD acquisitions with a function instead of ignore flags by @ckolbPTB in #315
- Remove optional and default in doc string by @ckolbPTB in #337
- Update documentation by @schuenke in #332
- power iteration and operator-norm by @koflera in #224
- HotFix: Ensure correct return type of matplotlib by @ckolbPTB in #344
- Transient steady state model by @ckolbPTB in #319
- Fix #316 by @koflera in #357
- Cleanup imports by @JoHa0811 in #355
- Remove duplicate KDataProtocol by @Pierrickkk in #356
- Manage dependencies by @schuenke in #348
- Consider user indices when sorting kdata by @Pierrickkk in #354
- Bump the all-actions group with 3 updates by @dependabot in #358
- Separate test for iterative_walsh algo by @ckolbPTB in #350
- Change references to numpydoc-style by @JoHa0811 in #352
- Separate conftest into subdirectories by @ckolbPTB in #360
- Remove unused parameters in adam by @JoHa0811 in #363
- Moved 1D,2D,3D dcf with voronoi calculations to algorithms by @Stef-Martin in #349
- Add parameter/attribute doc strings for data classes by @ckolbPTB in #365
- Run pytest also for changes to .md by @ckolbPTB in #366
- Update readme by @ckolbPTB in #362
- Add dtype promotion of result in separable filter by @fzimmermann89 in #342
- Fix warning in pickle test by @ckolbPTB in #372
- Remove copyright statement from files by @ckolbPTB in #375
- file.flush() after file.write() in examples by @ckolbPTB in #374
- Add callback to lbfgs and adam by @koflera in #353
- Fix doc string format by @ckolbPTB in #376
- Allow tensor input for transient steady state model by @ckolbPTB in #378
- Select number of cores for pytest in VSCode automatically by @ckolbPTB in #322
- Add Iterative SENSE Reconstruction by @ckolbPTB in #287
- SI unit conversion in dicom and unit info in docstring by @ckolbPTB in #367
- Improve readability of dimension operations by @ckolbPTB in #380
- Remove copyright from OptimizerStatus by @ckolbPTB in #383
- Csm Inati 2D and 3D by @ckolbPTB in #345
- Adapt it sense functions by @ckolbPTB in #379
- Add repr method to dataclasses and header by @Stef-Martin in #364
- Golden Radial T1 mapping example by @ckolbPTB in #377
- Fix errors due to pydicom 3.0 by @ckolbPTB in #391
- Add Wavelet Operator by @schuenke in #294
- Add Identity LinearOperator by @fzimmermann89 in #390
- Change MOLLI from (a,b,T1) to (a,c=b/a,T1) by @ckolbPTB in #406
- Move SliceProjectionOp to new autograd.Function syntax by @fzimmermann89 in #409
- Move Rotation to data and create utils.typing by @fzimmermann89 in #418
- Move GridSampleOp to new autograd.Function syntax by @fzimmermann89 in #408
- Add link to summary as PR comment by @ckolbPTB in #423
- Fix434 - no link to docu for merge with main by @ckolbPTB in #437
- Gitignore common data file types by @ckolbPTB in #424
- Removed iterative from walsh by @bernharb in #427
- Update ruff, typos, mypy by @fzimmermann89 in #429
- Add RearrangeOp by @fzimmermann89 in #412
- Add Functional base class by @fzimmermann89 in #396
- Bump MishaKav/pytest-coverage-comment from 1.1.52 to 1.1.53 in the all-actions group by @dependabot in #442
- Add L2NormSquared Functional by @fzimmermann89 in #398
- Add L1NormViewAsReal Functional by @fzimmermann89 in #399
- Zero functional by @fzimmermann89 in #433
- Add gram to LinearOperator by @fzimmermann89 in #443
- Allow adjoint to be used as autograd backward by @fzimmermann89 in #404
- Add ZeroOp as neutral elements of addition, make IdentityOp neutral element of composition by @fzimmermann89 in #431
- Add check-added-large-files to precommit by @fzimmermann89 in #446
- Add continuous deployment (CD) pipeline by @schuenke in #439
New Contributors
- @schote made their first contribution in #40
- @guastinimara made their first contribution in #110
- @JoHa0811 made their first contribution in #111
- @SimoneHufnagel made their first contribution in #145
- @Stef-Martin made their first contribution in #129
- @koflera made their first contribution in #195
- @Pierrickkk made their first contribution in #356
- @dependabot made their first contribution in #358
- @bernharb made their first contribution in #427
Full Changelog: https://github.com/PTB-MR/mrpro/commits/v0.241015