Skip to content

Commit

Permalink
Densities, random walks & travelling salesman (#206)
Browse files Browse the repository at this point in the history
* Split trajectory.maths.py into a submodule

* Add densities, random walk and travelling salesman trajectories

* fixup! Add densities, random walk and travelling salesman trajectories

* Add docstrings for random walk and TSP solver

* fixup! Add densities, random walk and travelling salesman trajectories

* Add docstrings to TSP & sampling densities

* Add samplings to random walk initializations and fix boundaries

* Add utils to examples to show densities

* Add sampling density example skeleton

* Add descriptions to sampling density examples

* Add dependency to pywavelet

* Improve cutoff/decay density, fix dependencies

* Gather extra dependencies, homogeneize extra imports

* Fix imports to pywavelets

* Fix black format in smaps

* Remove except duplicate in io/siemens

* Update CI with new [extra] dependencies

* [docs] Trigger documentation build

---------

Co-authored-by: Chaithya G R <[email protected]>
  • Loading branch information
Daval-G and chaithyagr authored Dec 16, 2024
1 parent 0b641a6 commit 9c41feb
Show file tree
Hide file tree
Showing 25 changed files with 2,076 additions and 507 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ jobs:
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -e .[test,dev]
python -m pip install -e .[extra,test,dev]
python -m pip install finufft pooch brainweb-dl torch fastmri
- name: Install GPU related interfaces
Expand Down
44 changes: 22 additions & 22 deletions examples/example_2D_trajectories.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# External
import matplotlib.pyplot as plt
import numpy as np
from utils import show_argument, show_trajectory
from utils import show_trajectories, show_trajectory

# Internal
import mrinufft as mn
Expand Down Expand Up @@ -75,7 +75,7 @@

arguments = [8, 16, 32, 64]
function = lambda x: mn.initialize_2D_radial(x, Ns, tilt=tilt, in_out=in_out)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -89,7 +89,7 @@

arguments = [8, 16, 32, 64]
function = lambda x: mn.initialize_2D_radial(Nc, x, tilt=tilt, in_out=in_out)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -105,7 +105,7 @@

arguments = ["uniform", "golden", "mri-golden", np.pi / 17]
function = lambda x: mn.initialize_2D_radial(Nc, Ns, tilt=x, in_out=in_out)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -128,7 +128,7 @@

arguments = [True, False]
function = lambda x: mn.initialize_2D_radial(Nc, Ns, tilt=tilt, in_out=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -170,7 +170,7 @@
function = lambda x: mn.initialize_2D_spiral(
Nc, Ns, tilt=tilt, nb_revolutions=x, in_out=in_out
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -194,7 +194,7 @@

arguments = ["galilean", "archimedes", "fermat", 1 / 4]
function = lambda x: mn.initialize_2D_spiral(Nc, Ns, tilt=tilt, spiral=x, in_out=in_out)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -221,7 +221,7 @@
Ns,
patch_center=x,
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -267,7 +267,7 @@
Ns,
spiral_reduction=x,
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -293,7 +293,7 @@
Ns,
patch_center=x,
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -333,7 +333,7 @@
function = lambda x: mn.initialize_2D_cones(
Nc, Ns, tilt=tilt, in_out=in_out, nb_zigzags=x
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -348,7 +348,7 @@

arguments = [0.2, 1, 2, 3]
function = lambda x: mn.initialize_2D_cones(Nc, Ns, tilt=tilt, in_out=in_out, width=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -413,7 +413,7 @@

arguments = [2, 3, 4, 6]
function = lambda x: mn.initialize_2D_propeller(Nc, Ns, nb_strips=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -450,7 +450,7 @@

arguments = [Nc, int(2 * Nc / 3), int(Nc / 3)]
function = lambda x: mn.initialize_2D_rings(Nc=x, Ns=Ns, nb_rings=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)

# %%
#
Expand All @@ -461,7 +461,7 @@

arguments = [Nc, int(4 * Nc / 3), 2 * Nc]
function = lambda x: mn.initialize_2D_rings(Nc=x, Ns=Ns, nb_rings=Nc)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -501,7 +501,7 @@

arguments = [0, 1, 5, 10]
function = lambda x: mn.initialize_2D_rosette(Nc, Ns, in_out=in_out, coprime_index=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -541,7 +541,7 @@
function = lambda x: mn.initialize_2D_polar_lissajous(
Nc, Ns, in_out=in_out, coprime_index=x
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -564,7 +564,7 @@
function = lambda x: mn.initialize_2D_polar_lissajous(
Nc, Ns, in_out=in_out, nb_segments=x
)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -588,7 +588,7 @@
function = lambda x: mn.initialize_2D_polar_lissajous(
Nc, Ns, in_out=io, coprime_index=cpi, nb_segments=x
)
show_argument(
show_trajectories(
function, arguments, one_shot=one_shot, subfig_size=subfigure_size
)

Expand Down Expand Up @@ -625,7 +625,7 @@

arguments = [1, 2.5, 5, 10]
function = lambda x: mn.initialize_2D_waves(Nc, Ns, nb_zigzags=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand All @@ -644,7 +644,7 @@

arguments = [0, 1, 1.5, 3]
function = lambda x: mn.initialize_2D_waves(Nc, Ns, width=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down Expand Up @@ -679,7 +679,7 @@

arguments = [1, 1.5, 2, 3]
function = lambda x: mn.initialize_2D_lissajous(Nc, Ns, density=x)
show_argument(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)
show_trajectories(function, arguments, one_shot=one_shot, subfig_size=subfigure_size)


# %%
Expand Down
Loading

0 comments on commit 9c41feb

Please sign in to comment.