From 2f4913b06e8b32daf18c7e469e68e65cc3b346e3 Mon Sep 17 00:00:00 2001 From: CyprienBouton Date: Tue, 10 Jun 2025 16:49:57 +0200 Subject: [PATCH 1/4] [fix] y_ival and z_ival in application.py --- src/ggrappa/application.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ggrappa/application.py b/src/ggrappa/application.py index 0e901cd..0c74995 100644 --- a/src/ggrappa/application.py +++ b/src/ggrappa/application.py @@ -84,8 +84,8 @@ def apply_grappa_kernel(sig, rec = torch.zeros_like(sig) size_chunk_y = sbly + tbly*(batch_size - 1) - y_ival = range(shift_y, max(rec.shape[1] - sbly, 1), tbly*batch_size) - z_ival = np.arange(0, max(rec.shape[2] - sblz, 1), tblz) + y_ival = range(shift_y, max(rec.shape[1] - sbly - 1, 1), tbly*batch_size) + z_ival = np.arange(0, max(rec.shape[2] - sblz - 1, 1), tblz) if not quiet: logger.info("GRAPPA Reconstruction...") From b02dd0163508f00d90a831266ddbd8357bcbefd3 Mon Sep 17 00:00:00 2001 From: CyprienBouton Date: Tue, 10 Jun 2025 16:52:29 +0200 Subject: [PATCH 2/4] [fix] zival in application.py --- src/ggrappa/application.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ggrappa/application.py b/src/ggrappa/application.py index 0c74995..47ee49c 100644 --- a/src/ggrappa/application.py +++ b/src/ggrappa/application.py @@ -95,7 +95,7 @@ def apply_grappa_kernel(sig, for y in tqdm(y_ival, disable=quiet): sig_y = sig[:,y:y+size_chunk_y] sig_y = sig_y.cuda() if cuda and cuda_mode in ["all", "application"] else sig_y - zival = cnt + z_ival + zival = z_ival[torch.tensor(z_ival) >= cnt] for z in zival: blocks = sig_y[:,:, z:z+sblz, :].unfold(dimension=1, size=sbly, step=tbly).unfold(dimension=3, size=sblx, step=tblx) blocks = blocks.permute(1,3,0,4,2,5) From f932a5d8f5b1e6956262fbfef1992181082029bc Mon Sep 17 00:00:00 2001 From: CyprienBouton Date: Tue, 10 Jun 2025 16:53:46 +0200 Subject: [PATCH 3/4] [up] apply_grappa_kernel application to return a kspace of the same size --- src/ggrappa/application.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ggrappa/application.py b/src/ggrappa/application.py index 47ee49c..4073302 100644 --- a/src/ggrappa/application.py +++ b/src/ggrappa/application.py @@ -77,9 +77,9 @@ def apply_grappa_kernel(sig, shift_y, shift_z = shifts else: shift_y, shift_z = abs(sig).sum(0).sum(-1).nonzero()[0] - #sig = torch.nn.functional.pad(sig, (xpos, (sblx-xpos-tblx), - # (af[1] - zpos)%tblz + zpos, (sblz-zpos-tblz), - # (af[0] - ypos)%tbly + ypos, (sbly-ypos-tbly))) + sig = torch.nn.functional.pad(sig, (xpos, (sblx-xpos-tblx), + (af[1] - zpos)%tblz + zpos, (sblz-zpos-tblz), + (af[0] - ypos)%tbly + ypos, (sbly-ypos-tbly))) rec = torch.zeros_like(sig) From 16b191e23e5120c7fde777160df57bf21906c085 Mon Sep 17 00:00:00 2001 From: CyprienBouton Date: Tue, 10 Jun 2025 17:37:19 +0200 Subject: [PATCH 4/4] [fix] zival for single slice in application.py --- src/ggrappa/application.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ggrappa/application.py b/src/ggrappa/application.py index 4073302..3eda1de 100644 --- a/src/ggrappa/application.py +++ b/src/ggrappa/application.py @@ -95,7 +95,7 @@ def apply_grappa_kernel(sig, for y in tqdm(y_ival, disable=quiet): sig_y = sig[:,y:y+size_chunk_y] sig_y = sig_y.cuda() if cuda and cuda_mode in ["all", "application"] else sig_y - zival = z_ival[torch.tensor(z_ival) >= cnt] + zival = z_ival[z_ival >= cnt.numpy()] for z in zival: blocks = sig_y[:,:, z:z+sblz, :].unfold(dimension=1, size=sbly, step=tbly).unfold(dimension=3, size=sblx, step=tblx) blocks = blocks.permute(1,3,0,4,2,5)