Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add __repr__ for operators #676

Merged
merged 3 commits into from
Mar 5, 2025
Merged

Add __repr__ for operators #676

merged 3 commits into from
Mar 5, 2025

Conversation

Stef-Martin
Copy link
Collaborator

repr method for Fourier Op, FFT, NUFFT, CartesianSamplingOp

@Stef-Martin
Copy link
Collaborator Author

spiral with NUFFT:
image
cartesian with FFT:
image

Copy link
Contributor

github-actions bot commented Mar 3, 2025

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/mrpro
   _version.py6267%7–8
src/mrpro/algorithms/csm
   inati.py24196%44
   walsh.py16194%53
src/mrpro/algorithms/dcf
   dcf_voronoi.py55493%15, 55–56, 89
src/mrpro/algorithms/optimizers
   adam.py20195%101
   pdhg.py79396%177–178, 184
   pgd.py51492%106, 151–154
src/mrpro/algorithms/reconstruction
   DirectReconstruction.py281643%59–79, 93
   IterativeSENSEReconstruction.py13192%79
   Reconstruction.py502256%42, 54–56, 80–87, 108–117
   RegularizedIterativeSENSEReconstruction.py411759%97–101, 115–140
src/mrpro/data
   AcqInfo.py145597%42, 121–122, 124, 233
   CsmData.py29390%15, 84–86
   DcfData.py45882%18, 66, 78–83
   EncodingLimits.py73396%33, 123, 126
   IData.py59886%118, 132, 159–167
   IHeader.py1361291%69–72, 253, 257, 261, 265, 299–303
   KData.py2012986%113–114, 129, 136, 147–157, 166, 174, 183, 217, 239–241, 277–278, 333–344, 473, 475, 545
   KHeader.py1412185%24, 109–115, 142, 190, 197–198, 201, 208, 225–232, 240–251
   KNoise.py311552%39–52, 56–61
   KTrajectory.py108397%166, 168, 188
   MoveDataMixin.py1401887%28, 126, 142, 156–158, 220, 336–338, 351, 430, 450–451, 453, 468–469, 471
   QData.py39782%42, 65–73
   Rotation.py7193595%101, 199, 336, 434, 478, 496, 583, 585, 594, 628, 630, 693, 770, 775, 778, 793, 810, 815, 891, 1079, 1084, 1087, 1111, 1115, 1243, 1245, 1253–1254, 1318, 1400, 1703, 1855, 1890, 1894, 2084
   SpatialDimension.py2322091%34, 104, 148, 154, 274–276, 289–291, 325, 343, 356, 369, 382, 395, 404–405, 420, 429
   acq_filters.py12192%47
src/mrpro/data/traj_calculators
   KTrajectoryCalculator.py27196%84
   KTrajectoryIsmrmrd.py19195%57
src/mrpro/operators
   CartesianSamplingOp.py96496%124, 163, 238, 305
   ConstraintsOp.py60297%46, 48
   EndomorphOperator.py32294%52, 58
   FiniteDifferenceOp.py27293%40, 105
   FourierOp.py90397%185, 257, 262
   Functional.py77988%20–22, 117, 119, 226–228, 242
   GridSamplingOp.py136993%72–73, 82–83, 90–91, 94, 96, 98
   LinearOperator.py201996%48, 107, 217, 244, 251, 292, 301, 309, 326
   LinearOperatorMatrix.py1621988%82, 119, 152, 161, 166, 175–178, 191–194, 202–203, 208–209, 221, 310, 337, 364
   MultiIdentityOp.py13285%43, 48
   NonUniformFastFourierOp.py1881095%69, 96, 206, 208, 241, 243, 319, 373, 423, 428
   Operator.py79297%32, 88
   ProximableFunctionalSeparableSum.py39392%50, 103, 110
   SliceProjectionOp.py174895%45, 62, 64, 70, 206, 227, 260, 300
   WaveletOp.py119596%151, 169, 204, 209, 232
   ZeroPadOp.py16194%30
src/mrpro/phantoms
   brainweb.py2752691%325–335, 371, 427–430, 452–453, 458–459, 474, 520, 586–587, 606–609, 620, 622, 657–658, 671
src/mrpro/utils
   filters.py62297%44, 49
   reshape.py95298%110, 301
   slice_profiles.py47687%21, 37, 116–119, 152
   sliding_window.py34197%34
   split_idx.py10280%43, 47
   summarize_tensorvalues.py12375%23, 25, 27
   typing.py695520%9–235
   unit_conversion.py601477%32, 40, 42, 49, 51, 58, 60, 69, 80, 82, 101, 103, 124, 126
   zero_pad_or_crop.py31681%26, 30, 55, 58, 61, 64
TOTAL569146992% 

Tests Skipped Failures Errors Time
2467 0 💤 0 ❌ 0 🔥 1m 51s ⏱️

Copy link
Contributor

github-actions bot commented Mar 3, 2025

📚 Documentation

📁 Download as zip
🔍 View online

@Stef-Martin
Copy link
Collaborator Author

If inside_encoding_matrix_idx is not None:
image

@fzimmermann89 fzimmermann89 changed the title __repr__ for operators Add __repr__ for operators Mar 3, 2025
@fzimmermann89
Copy link
Member

can you add some simple tests that at least test that __repr__ runs without errors?

@Stef-Martin Stef-Martin self-assigned this Mar 3, 2025
@ckolbPTB
Copy link
Collaborator

ckolbPTB commented Mar 3, 2025

Could you please also try it with a FourierOp which uses both FFT and NUFFT - there are some examples in the tests.

@Stef-Martin
Copy link
Collaborator Author

With a NUFFT in 2 dim it would look like this:
image
with NUFFT in 1 dim like this:
image

@fzimmermann89
Copy link
Member

Can you rebase it to the next branch and set the PR against next?

(Trajectory is now 5d)

@Stef-Martin Stef-Martin changed the base branch from main to next March 4, 2025 12:39
@fzimmermann89
Copy link
Member

image

minor nitpick:
My suggestions was fr the nufft image size to print
Reconstructed image size x=112
instead of [x] : (60,)

@Stef-Martin
Copy link
Collaborator Author

Fourier Op Spiral:
image
Fourier Op Cart:
image
FFT and NUFFT:
image

@fzimmermann89 fzimmermann89 changed the base branch from next to main March 5, 2025 14:34
@fzimmermann89
Copy link
Member

needs #660

@fzimmermann89 fzimmermann89 enabled auto-merge (squash) March 5, 2025 19:14
@fzimmermann89 fzimmermann89 merged commit d4bd171 into main Mar 5, 2025
21 checks passed
@fzimmermann89 fzimmermann89 deleted the repr_v2 branch March 5, 2025 19:18
@lrlunin lrlunin mentioned this pull request Mar 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants