7T coil comparison: processing of human data#

7T coil comparison: processing of human data#

Setup environment#

# Necessary imports

from datetime import datetime, timedelta
import os
import json
import glob
import matplotlib.pyplot as plt
import numpy as np
import nibabel as nib
import pandas as pd
from scipy.stats import iqr
import shutil
import zipfile
from scipy.interpolate import interp1d
from scipy.ndimage import uniform_filter1d
from pathlib import Path

%matplotlib inline
start_time = datetime.now()
# Download data from OpenNeuro ⏳

!openneuro-py download --dataset ds005025 --target-dir data-human/
👋 Hello! This is openneuro-py 2024.2.0. Great to see you! 🤗

   👉 Please report problems 🤯 and bugs 🪲 at
      https://github.com/hoechenberger/openneuro-py/issues

🌍 Preparing to download ds005025 …
📁 Traversing directories for ds005025 : 0 entities [00:00, ? entities/s]
📁 Traversing directories for ds005025 : 5 entities [00:00,  7.04 entities/s]
📁 Traversing directories for ds005025 : 7 entities [00:00,  7.65 entities/s]
📁 Traversing directories for ds005025 : 9 entities [00:01,  7.79 entities/s]
📁 Traversing directories for ds005025 : 11 entities [00:01,  7.06 entities/s]
📁 Traversing directories for ds005025 : 13 entities [00:01,  8.80 entities/s]
📁 Traversing directories for ds005025 : 15 entities [00:01,  8.69 entities/s]
📁 Traversing directories for ds005025 : 17 entities [00:01, 10.09 entities/s]
📁 Traversing directories for ds005025 : 19 entities [00:02,  6.19 entities/s]
📁 Traversing directories for ds005025 : 21 entities [00:02,  7.45 entities/s]
📁 Traversing directories for ds005025 : 23 entities [00:03,  5.25 entities/s]
📁 Traversing directories for ds005025 : 27 entities [00:03,  7.93 entities/s]
📁 Traversing directories for ds005025 : 31 entities [00:03, 11.33 entities/s]
📁 Traversing directories for ds005025 : 33 entities [00:03, 12.36 entities/s]
📁 Traversing directories for ds005025 : 36 entities [00:04, 13.28 entities/s]
📁 Traversing directories for ds005025 : 39 entities [00:04, 14.17 entities/s]
📁 Traversing directories for ds005025 : 42 entities [00:04, 14.25 entities/s]
📁 Traversing directories for ds005025 : 44 entities [00:04, 14.24 entities/s]
📁 Traversing directories for ds005025 : 46 entities [00:04, 14.41 entities/s]
📁 Traversing directories for ds005025 : 52 entities [00:05, 14.31 entities/s]
📁 Traversing directories for ds005025 : 54 entities [00:05, 14.96 entities/s]
📁 Traversing directories for ds005025 : 56 entities [00:05, 15.12 entities/s]
📁 Traversing directories for ds005025 : 58 entities [00:05, 15.54 entities/s]
📁 Traversing directories for ds005025 : 104 entities [00:05, 86.53 entities/s]
📁 Traversing directories for ds005025 : 150 entities [00:05, 135.89 entities/s]
📁 Traversing directories for ds005025 : 174 entities [00:07, 42.98 entities/s] 
📁 Traversing directories for ds005025 : 196 entities [00:07, 54.92 entities/s]
📁 Traversing directories for ds005025 : 244 entities [00:10, 24.27 entities/s]
📁 Traversing directories for ds005025 : 266 entities [00:10, 30.35 entities/s]
📁 Traversing directories for ds005025 : 336 entities [00:11, 57.71 entities/s]
📁 Traversing directories for ds005025 : 406 entities [00:11, 63.82 entities/s]
📁 Traversing directories for ds005025 : 476 entities [00:12, 92.94 entities/s]
📁 Traversing directories for ds005025 : 546 entities [00:12, 126.55 entities/s]
📁 Traversing directories for ds005025 : 612 entities [00:12, 153.83 entities/s]
📁 Traversing directories for ds005025 : 690 entities [00:12, 185.19 entities/s]
📁 Traversing directories for ds005025 : 764 entities [00:13, 219.86 entities/s]
📁 Traversing directories for ds005025 : 842 entities [00:13, 256.02 entities/s]
📁 Traversing directories for ds005025 : 932 entities [00:13, 315.92 entities/s]
📁 Traversing directories for ds005025 : 1030 entities [00:13, 339.79 entities/s]
📁 Traversing directories for ds005025 : 1124 entities [00:13, 384.43 entities/s]
📁 Traversing directories for ds005025 : 1198 entities [00:14, 356.46 entities/s]
📁 Traversing directories for ds005025 : 1276 entities [00:14, 364.20 entities/s]
📁 Traversing directories for ds005025 : 1350 entities [00:14, 365.59 entities/s]
📁 Traversing directories for ds005025 : 1396 entities [00:14, 322.16 entities/s]
📁 Traversing directories for ds005025 : 1442 entities [00:14, 291.95 entities/s]
📁 Traversing directories for ds005025 : 1487 entities [00:14, 99.61 entities/s] 
📥 Retrieving up to 1487 files (5 concurrent downloads). 
CHANGES:   0%|                                      | 0.00/1.16k [00:00<?, ?B/s]
                                                                                
.bidsignore:   0%|                                   | 0.00/92.0 [00:00<?, ?B/s]
                                                                                

sub-CRMBM1_UNIT1_label-disc.json:   0%|               | 0.00/198 [00:00<?, ?B/s]
                                                                                
participants.tsv:   0%|                               | 0.00/945 [00:00<?, ?B/s]
                                                                                

dataset_description.json:   0%|                       | 0.00/306 [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_UNIT1_label-disc.json:   0%|               | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_UNIT1_label-disc.nii.gz:   0%|           | 0.00/73.2k [00:00<?, ?B/s]

sub-CRMBM3_UNIT1_label-disc.nii.gz:   0%|           | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-CRMBM2_UNIT1_label-disc.nii.gz:   0%|           | 0.00/73.2k [00:00<?, ?B/s]
sub-CRMBM3_UNIT1_label-disc.json:   0%|               | 0.00/198 [00:00<?, ?B/s]

                                                                                
sub-MGH1_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]

                                                                                
sub-CRMBM2_UNIT1_label-disc.nii.gz: 100%|███| 73.2k/73.2k [00:00<00:00, 671kB/s]
                                                                                

sub-MGH3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MGH2_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MGH1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/47.1k [00:00<?, ?B/s]
                                                                                

sub-MGH2_UNIT1_label-disc.nii.gz:   0%|             | 0.00/47.2k [00:00<?, ?B/s]
sub-MNI1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.1k [00:00<?, ?B/s]


sub-MNI2_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]


                                                                                
sub-MGH3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/47.1k [00:00<?, ?B/s]
                                                                                


                                                                                
                                                                                
sub-MNI1_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MNI3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MNI2_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.1k [00:00<?, ?B/s]
sub-MPI1_UNIT1_label-SC_seg.json:   0%|               | 0.00/292 [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MPI1_UNIT1_label-SC_seg.nii.gz:   0%|           | 0.00/83.2k [00:00<?, ?B/s]
sub-MNI3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
sub-MPI1_UNIT1_label-SC_seg.nii.gz: 100%|███| 83.2k/83.2k [00:00<00:00, 704kB/s]
                                                                                
sub-MPI1_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MPI2_UNIT1_label-SC_seg.json:   0%|               | 0.00/466 [00:00<?, ?B/s]
                                                                                
sub-MPI1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
sub-MPI1_UNIT1_label-disc.nii.gz: 100%|█████| 73.2k/73.2k [00:00<00:00, 684kB/s]
                                                                                

sub-MPI2_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MPI2_UNIT1_label-SC_seg.nii.gz:   0%|           | 0.00/84.3k [00:00<?, ?B/s]
sub-MPI2_UNIT1_label-SC_seg.nii.gz:  19%|▌  | 16.0k/84.3k [00:00<00:00, 123kB/s]

sub-MPI3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]


sub-MPI2_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]

                                                                                
                                                                                



                                                                                
sub-MPI3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_UNIT1_label-disc.nii.gz:   0%|            | 0.00/72.5k [00:00<?, ?B/s]

sub-MSSM1_acq-anat_TB1TFL_label-SC_seg.nii.gz:   0%| | 0.00/25.3k [00:00<?, ?B/s


sub-MSSM1_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]



sub-MSSM2_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]


                                                                                



                                                                                
                                                                                
                                                                                
sub-MSSM3_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-anat_TB1TFL_label-SC_seg.nii.gz:   0%| | 0.00/25.0k [00:00<?, ?B/s
sub-MSSM2_UNIT1_label-disc.nii.gz:   0%|            | 0.00/72.5k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM3_UNIT1_label-disc.nii.gz:   0%|            | 0.00/72.5k [00:00<?, ?B/s]

sub-MSSM3_acq-anat_TB1TFL_label-SC_seg.nii.gz:   0%| | 0.00/26.7k [00:00<?, ?B/s
                                                                                
sub-MSSM3_UNIT1_label-disc.nii.gz: 100%|████| 72.5k/72.5k [00:00<00:00, 615kB/s]
                                                                                

sub-NTNU1_UNIT1_label-disc.nii.gz:   0%|            | 0.00/73.2k [00:00<?, ?B/s]
                                                                                

sub-NTNU1_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1_label-disc.nii.gz:   0%|            | 0.00/73.2k [00:00<?, ?B/s]
sub-NTNU3_UNIT1_label-SC_seg.json:   0%|              | 0.00/449 [00:00<?, ?B/s]

                                                                                
                                                                                
sub-NTNU3_acq-anat_TB1TFL_label-SC_seg.json:   0%|    | 0.00/449 [00:00<?, ?B/s]
                                                                                
sub-NTNU3_UNIT1_label-SC_seg.nii.gz:   0%|          | 0.00/86.1k [00:00<?, ?B/s]

sub-NTNU3_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]

                                                                                
sub-NTNU3_UNIT1_label-SC_seg.nii.gz:  97%|█▉| 83.6k/86.1k [00:00<00:00, 613kB/s]
                                                                                

sub-NTNU3_acq-anat_TB1TFL_label-SC_seg.nii.gz:   0%| | 0.00/3.73k [00:00<?, ?B/s
                                                                                
sub-NTNU3_UNIT1_label-disc.nii.gz:   0%|            | 0.00/73.2k [00:00<?, ?B/s]
sub-UCL1_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]

                                                                                
sub-UCL2_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]

                                                                                
sub-NTNU3_UNIT1_label-disc.nii.gz: 100%|████| 73.2k/73.2k [00:00<00:00, 630kB/s]
                                                                                
sub-UCL1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]

sub-UCL2_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
sub-UCL3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]



sub-UCL3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]



                                                                                
                                                                                

sub-CRMBM1_T2starw.nii.gz:   0%|                    | 0.00/1.06M [00:00<?, ?B/s]
sub-UCL1_UNIT1_label-disc.nii.gz: 100%|█████| 73.2k/73.2k [00:00<00:00, 536kB/s]
                                                                                



                                                                                
sub-CRMBM1_T2starw.nii.gz:   8%|▉           | 83.6k/1.06M [00:00<00:01, 695kB/s]
sub-CRMBM1_UNIT1.json:   0%|                        | 0.00/2.10k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_T2starw.json:   0%|                      | 0.00/2.45k [00:00<?, ?B/s]

sub-CRMBM1_T2starw.nii.gz:  28%|███▎        | 305k/1.06M [00:00<00:00, 1.17MB/s]
                                                                                
sub-CRMBM1_inv-1_MP2RAGE.json:   0%|                | 0.00/2.11k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-CRMBM1_UNIT1.nii.gz:   0%|                      | 0.00/26.6M [00:00<?, ?B/s]
sub-CRMBM1_UNIT1.nii.gz:   0%|              | 66.6k/26.6M [00:00<00:46, 593kB/s]
sub-CRMBM1_inv-2_MP2RAGE.json:   0%|                | 0.00/2.11k [00:00<?, ?B/s]

                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.6M [00:00<?, ?B/s]
sub-CRMBM1_UNIT1.nii.gz:   1%|▏             | 288k/26.6M [00:00<00:22, 1.24MB/s]


sub-CRMBM1_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/17.5M [00:00<?, ?B/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/15.6M [00:00<00:27, 593k
sub-CRMBM1_UNIT1.nii.gz:   4%|▌            | 1.16M/26.6M [00:00<00:07, 3.77MB/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.5M [00:00<00:29, 610k
sub-CRMBM1_UNIT1.nii.gz:  15%|█▉           | 3.86M/26.6M [00:00<00:02, 11.8MB/s]



sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/805k [00:00<?, ?B/s]




sub-CRMBM1_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]




                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/15.6M [00:00<00:14, 1.14M


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 288k/17.5M [00:00<00:13, 1.35M
sub-CRMBM1_UNIT1.nii.gz:  24%|███▏         | 6.43M/26.6M [00:00<00:01, 16.5MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.18M/15.6M [00:00<00:03, 4.07



sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:  10%| | 83.6k/805k [00:00<00:01, 611k


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 628k/17.5M [00:00<00:08, 2.16M
sub-CRMBM1_UNIT1.nii.gz:  34%|████▍        | 9.00M/26.6M [00:00<00:00, 19.8MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.08M/15.6M [00:00<00:02, 5.89


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.54M/17.5M [00:00<00:03, 4.91
sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:  38%|▍| 305k/805k [00:00<00:00, 1.20M




sub-CRMBM1_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]




                                                                                
sub-CRMBM1_UNIT1.nii.gz:  41%|█████▍       | 11.0M/26.6M [00:00<00:00, 17.7MB/s]

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.27M/15.6M [00:00<00:01, 8.03


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.21M/17.5M [00:00<00:02, 5.60



                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.52M/15.6M [00:00<00:01, 9.64


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.28M/17.5M [00:00<00:02, 7.45
sub-CRMBM1_UNIT1.nii.gz:  48%|██████▎      | 12.9M/26.6M [00:00<00:00, 16.8MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 6.41M/15.6M [00:00<00:00, 12.8


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.17M/17.5M [00:00<00:01, 11.4
sub-CRMBM1_UNIT1.nii.gz:  55%|███████▏     | 14.7M/26.6M [00:01<00:00, 17.4MB/s]
sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/826k [00:00<?, ?B/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 8.33M/15.6M [00:00<00:00, 15.0


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  41%|▍| 7.11M/17.5M [00:00<00:00, 14.1
sub-CRMBM1_UNIT1.nii.gz:  62%|████████     | 16.6M/26.6M [00:01<00:00, 18.1MB/s]
sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/886k [00:00<?, ?B/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 10.2M/15.6M [00:00<00:00, 16.4


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 8.97M/17.5M [00:00<00:00, 15.8



sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:  10%| | 85.2k/826k [00:00<00:01, 618k
sub-CRMBM1_UNIT1.nii.gz:  69%|████████▉    | 18.4M/26.6M [00:01<00:00, 18.1MB/s]
sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:   9%| | 83.6k/886k [00:00<00:01, 616k

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  77%|▊| 12.0M/15.6M [00:01<00:00, 17.1
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 10.7M/17.5M [00:01<00:00, 16.5
sub-CRMBM1_UNIT1.nii.gz:  76%|█████████▊   | 20.1M/26.6M [00:01<00:00, 18.2MB/s]
sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:  37%|▎| 306k/826k [00:00<00:00, 1.20M
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.6M/15.6M [00:01<00:00, 17.0


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 12.4M/17.5M [00:01<00:00, 16.8




sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:  34%|▎| 305k/886k [00:00<00:00, 1.21M
sub-CRMBM1_UNIT1.nii.gz:  82%|██████████▋  | 21.9M/26.6M [00:01<00:00, 17.9MB/s]
                                                                                
                                                                                

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 15.3M/15.6M [00:01<00:00, 15.7
                                                                                


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.0M/17.5M [00:01<00:00, 13.6
sub-CRMBM1_UNIT1.nii.gz:  89%|███████████▌ | 23.6M/26.6M [00:01<00:00, 14.7MB/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 16.7M/17.5M [00:01<00:00, 17.4
sub-CRMBM1_UNIT1.nii.gz:  99%|████████████▊| 26.3M/26.6M [00:01<00:00, 17.9MB/s]
                                                                                



                                                                                
sub-CRMBM1_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/777k [00:00<?, ?B/s]

sub-CRMBM1_rec-uncombined5_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:  11%| | 85.2k/777k [00:00<00:01, 623k
sub-CRMBM1_rec-uncombined6_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                

sub-CRMBM1_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/841k [00:00<?, ?B/s]
sub-CRMBM1_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/845k [00:00<?, ?B/s]



sub-CRMBM1_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:  39%|▍| 306k/777k [00:00<00:00, 1.10M

sub-CRMBM1_rec-uncombined5_T2starw.nii.gz:  10%| | 85.2k/841k [00:00<00:01, 665k
                                                                                



sub-CRMBM1_rec-uncombined6_T2starw.nii.gz:  10%| | 83.6k/845k [00:00<00:01, 651k
sub-CRMBM1_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                


sub-CRMBM1_rec-uncombined5_T2starw.nii.gz:  32%|▎| 272k/841k [00:00<00:00, 1.19M
sub-CRMBM1_rec-uncombined6_T2starw.nii.gz:  34%|▎| 288k/845k [00:00<00:00, 1.35M
                                                                                
sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/804k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-anat_TB1TFL.json:   0%|              | 0.00/2.66k [00:00<?, ?B/s]

                                                                                
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/797k [00:00<?, ?B/s]
sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:  11%| | 85.2k/804k [00:00<00:01, 571k
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:  10%| | 83.6k/797k [00:00<00:01, 729k
sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:  38%|▍| 306k/804k [00:00<00:00, 1.24M
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/854k [00:00<?, ?B/s]



sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:   0%|     | 0.00/4.21M [00:00<?, ?B/s]
                                                                                


sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:  38%|▍| 305k/797k [00:00<00:00, 1.48M
sub-CRMBM1_acq-coilQaSagLarge_SNR.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]
                                                                                




sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:   1%| | 49.6k/4.21M [00:00<00:08, 504k


sub-CRMBM1_acq-anat_TB1TFL.nii.gz:  10%|▍    | 85.2k/854k [00:00<00:01, 628kB/s]
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:  81%|▊| 646k/797k [00:00<00:00, 2.34M

                                                                                
sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:   3%| | 136k/4.21M [00:00<00:06, 689kB
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:  36%|█▊   | 306k/854k [00:00<00:00, 1.38MB/s]
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:  78%|███▉ | 663k/854k [00:00<00:00, 2.31MB/s]


                                                                                



sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  15%|▏| 628k/4.21M [00:00<00:01, 2.17M
sub-CRMBM1_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.18k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  53%|▌| 2.24M/4.21M [00:00<00:00, 7.29
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.6k/2.69M [00:00<00:03, 

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp-0.66_TB1DREAM.json:   0%|       | 0.00/2.14k [00:00<?, ?B/s]


                                                                                


sub-CRMBM1_acq-coilQaTra_GFactor.json:   0%|        | 0.00/2.07k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 305k/2.69M [00:00<00:02, 1

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   1%| | 61.0k/11.7M [00:00<00:27, 440kB
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  46%|▍| 1.24M/2.69M [00:00<00:00, 

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   1%| | 136k/11.7M [00:00<00:24, 506kB/
sub-CRMBM1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.7k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]
                                                                                


sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   2%| | 238k/11.7M [00:00<00:17, 684kB/
sub-CRMBM1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.4k [00:00<?, ?B/s]
sub-CRMBM1_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.7k [00:00<00:00, 610k


                                                                                

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   3%| | 323k/11.7M [00:00<00:16, 723kB/
sub-CRMBM1_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 85.2k/93.4k [00:00<00:00, 623kB
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   4%| | 442k/11.7M [00:00<00:14, 803kB/
sub-CRMBM1_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/93.3k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   5%| | 578k/11.7M [00:00<00:13, 874kB/
sub-CRMBM1_acq-famp_TB1DREAM.nii.gz:  91%|█▊| 85.2k/93.3k [00:00<00:00, 670kB/s]
                                                                                
sub-CRMBM1_acq-famp_TB1TFL.nii.gz:   0%|             | 0.00/949k [00:00<?, ?B/s]


sub-CRMBM1_acq-famp_TB1TFL.json:   0%|              | 0.00/2.70k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   6%| | 714k/11.7M [00:00<00:12, 915kB/


sub-CRMBM1_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.15k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-famp_TB1TFL.nii.gz:   9%|▍    | 83.6k/949k [00:00<00:01, 674kB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   7%| | 850k/11.7M [00:01<00:11, 1.01MB
sub-CRMBM1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/86.5k [00:00<?, ?B/s]
sub-CRMBM1_acq-famp_TB1TFL.nii.gz:  30%|█▌   | 288k/949k [00:00<00:00, 1.17MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   8%| | 952k/11.7M [00:01<00:11, 1.02MB



sub-CRMBM1_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.15k [00:00<?, ?B/s]



                                                                                
                                                                                

sub-CRMBM1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/92.6k [00:00<?, ?B/s]
sub-CRMBM1_acq-refv-0.66_TB1DREAM.nii.gz:  97%|▉| 83.6k/86.5k [00:00<00:00, 614k


                                                                                

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.05M/11.7M [00:01<00:11, 999kB
sub-CRMBM1_acq-refv-1.5_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.6k [00:00<00:00, 615kB
                                                                                
sub-CRMBM1_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.20M/11.7M [00:01<00:11, 944kB
sub-CRMBM1_acq-refv_TB1DREAM.nii.gz:   0%|          | 0.00/90.2k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.34M/11.7M [00:01<00:10, 1.05M


sub-CRMBM2_T2starw.nii.gz:   0%|                     | 0.00/990k [00:00<?, ?B/s]
sub-CRMBM2_T2starw.json:   0%|                      | 0.00/2.47k [00:00<?, ?B/s]



                                                                                
sub-CRMBM1_acq-refv_TB1DREAM.nii.gz:  93%|█▊| 83.6k/90.2k [00:00<00:00, 615kB/s]
                                                                                



sub-CRMBM2_T2starw.nii.gz:   3%|▍            | 33.6k/990k [00:00<00:02, 332kB/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.46M/11.7M [00:01<00:10, 1.06M
sub-CRMBM2_UNIT1.nii.gz:   0%|                      | 0.00/26.8M [00:00<?, ?B/s]
sub-CRMBM2_T2starw.nii.gz:  14%|█▉            | 136k/990k [00:00<00:01, 719kB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 1.58M/11.7M [00:01<00:10, 1.00M
sub-CRMBM2_UNIT1.nii.gz:   0%|              | 83.6k/26.8M [00:00<00:45, 610kB/s]
sub-CRMBM2_UNIT1.json:   0%|                        | 0.00/2.14k [00:00<?, ?B/s]



                                                                                


sub-CRMBM2_T2starw.nii.gz:  63%|████████▏    | 628k/990k [00:00<00:00, 2.07MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 1.73M/11.7M [00:01<00:10, 1.04M



sub-CRMBM2_inv-1_MP2RAGE.json:   0%|                | 0.00/2.16k [00:00<?, ?B/s]



                                                                                


                                                                                
sub-CRMBM2_UNIT1.nii.gz:   1%|▏             | 305k/26.8M [00:00<00:23, 1.17MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 1.88M/11.7M [00:02<00:09, 1.10M
sub-CRMBM2_UNIT1.nii.gz:   5%|▌            | 1.24M/26.8M [00:00<00:06, 3.89MB/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 2.03M/11.7M [00:02<00:08, 1.18M
sub-CRMBM2_inv-2_MP2RAGE.json:   0%|                | 0.00/2.16k [00:00<?, ?B/s]


                                                                                
sub-CRMBM2_UNIT1.nii.gz:  10%|█▎           | 2.68M/26.8M [00:00<00:03, 7.42MB/s]


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/13.7M [00:00<?, ?B/s]



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.7M [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.14M/11.7M [00:02<00:09, 1.10M
sub-CRMBM2_UNIT1.nii.gz:  26%|███▍         | 7.05M/26.8M [00:00<00:01, 19.4MB/s]
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/13.7M [00:00<00:23, 613k



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/15.7M [00:00<00:26, 610k
sub-CRMBM2_UNIT1.nii.gz:  43%|█████▌       | 11.4M/26.8M [00:00<00:00, 27.5MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 2.27M/11.7M [00:02<00:09, 1.06M




sub-CRMBM2_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]




                                                                                
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 271k/13.7M [00:00<00:11, 1.24M
sub-CRMBM2_UNIT1.nii.gz:  53%|██████▉      | 14.3M/26.8M [00:00<00:00, 28.3MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 2.42M/11.7M [00:02<00:08, 1.17M



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 305k/15.7M [00:00<00:13, 1.20M
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 628k/13.7M [00:00<00:06, 2.19M
sub-CRMBM2_UNIT1.nii.gz:  67%|████████▋    | 17.9M/26.8M [00:00<00:00, 31.0MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  22%|▏| 2.54M/11.7M [00:02<00:08, 1.15M



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 917k/15.7M [00:00<00:05, 3.09M
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.63M/13.7M [00:00<00:02, 5.25
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.02M/15.7M [00:00<00:02, 6.12




sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  23%|▏| 2.69M/11.7M [00:02<00:08, 1.14M
sub-CRMBM2_UNIT1.nii.gz:  78%|██████████▏  | 21.0M/26.8M [00:01<00:00, 26.3MB/s]


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  24%|▏| 3.28M/13.7M [00:00<00:01, 9.39
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▏| 3.87M/15.7M [00:00<00:01, 10.5
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  24%|▏| 2.82M/11.7M [00:02<00:07, 1.20M


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  38%|▍| 5.24M/13.7M [00:00<00:00, 13.0




sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:  11%| | 83.5k/753k [00:00<00:01, 616k
sub-CRMBM2_UNIT1.nii.gz:  88%|███████████▍ | 23.7M/26.8M [00:01<00:00, 23.8MB/s]



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 5.70M/15.7M [00:00<00:00, 13.2
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  25%|▎| 2.94M/11.7M [00:03<00:07, 1.17M


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▌| 6.94M/13.7M [00:00<00:00, 14.5
sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:  54%|▌| 407k/753k [00:00<00:00, 1.64M



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 7.45M/15.7M [00:00<00:00, 14.8
sub-CRMBM2_UNIT1.nii.gz:  97%|████████████▋| 26.1M/26.8M [00:01<00:00, 21.9MB/s]
                                                                                


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  61%|▌| 8.38M/13.7M [00:00<00:00, 14.2

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  26%|▎| 3.07M/11.7M [00:03<00:07, 1.17M
                                                                                




sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 8.91M/15.7M [00:00<00:00, 13.8
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  73%|▋| 10.1M/13.7M [00:00<00:00, 15.3
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 3.22M/11.7M [00:03<00:07, 1.21M



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 11.4M/15.7M [00:01<00:00, 17.4
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  92%|▉| 12.7M/13.7M [00:01<00:00, 18.8
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 3.34M/11.7M [00:03<00:07, 1.19M


                                                                                



sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  85%|▊| 13.4M/15.7M [00:01<00:00, 18.4
sub-CRMBM2_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/744k [00:00<?, ?B/s]


sub-CRMBM2_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 3.47M/11.7M [00:03<00:07, 1.22M



                                                                                
sub-CRMBM2_rec-uncombined1_T2starw.nii.gz:  11%| | 83.5k/744k [00:00<00:01, 610k
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  31%|▎| 3.60M/11.7M [00:03<00:07, 1.20M
sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/815k [00:00<?, ?B/s]
sub-CRMBM2_rec-uncombined1_T2starw.nii.gz:  43%|▍| 322k/744k [00:00<00:00, 1.27M

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 3.75M/11.7M [00:03<00:06, 1.25M
sub-CRMBM2_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]



                                                                                
                                                                                

sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/723k [00:00<?, ?B/s]


sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:  10%| | 83.5k/815k [00:00<00:01, 612k
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 3.89M/11.7M [00:03<00:06, 1.23M
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  34%|▎| 4.02M/11.7M [00:03<00:06, 1.24M
sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:  12%| | 83.6k/723k [00:00<00:01, 615k


sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:  39%|▍| 322k/815k [00:00<00:00, 1.27M
                                                                                

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  35%|▎| 4.15M/11.7M [00:04<00:06, 1.22M


sub-CRMBM2_rec-uncombined5_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]


                                                                                
sub-CRMBM2_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]
sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:  42%|▍| 305k/723k [00:00<00:00, 1.18M


                                                                                
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  37%|▎| 4.30M/11.7M [00:04<00:06, 1.22M
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 4.48M/11.7M [00:04<00:05, 1.27M
sub-CRMBM2_rec-uncombined6_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]
                                                                                

sub-CRMBM2_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/771k [00:00<?, ?B/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 4.62M/11.7M [00:04<00:05, 1.30M
sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/700k [00:00<?, ?B/s]
sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:  11%| | 83.6k/771k [00:00<00:01, 699k
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  41%|▍| 4.78M/11.7M [00:04<00:05, 1.38M
sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:  12%| | 83.6k/700k [00:00<00:01, 614k
sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  42%|▍| 4.91M/11.7M [00:04<00:05, 1.38M
sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:  40%|▍| 305k/771k [00:00<00:00, 1.26M
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/731k [00:00<?, ?B/s]


sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:  29%|▎| 204k/700k [00:00<00:00, 925kB
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  43%|▍| 5.06M/11.7M [00:04<00:05, 1.36M



sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:  11%| | 83.6k/753k [00:00<00:01, 610k
sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:  97%|▉| 679k/700k [00:00<00:00, 2.46M


                                                                                




sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:  12%| | 85.2k/731k [00:00<00:01, 613k
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  45%|▍| 5.26M/11.7M [00:04<00:04, 1.40M



sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:  40%|▍| 305k/753k [00:00<00:00, 1.17M
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:  40%|▍| 289k/731k [00:00<00:00, 1.23M
                                                                                
sub-CRMBM2_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:  84%|▊| 612k/731k [00:00<00:00, 2.05M

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  47%|▍| 5.46M/11.7M [00:05<00:04, 1.39M




                                                                                
sub-CRMBM2_acq-coilQaSagLarge_SNR.json:   0%|       | 0.00/2.21k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  48%|▍| 5.66M/11.7M [00:05<00:04, 1.56M
sub-CRMBM2_acq-anat_TB1TFL.json:   0%|              | 0.00/2.71k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  50%|▍| 5.83M/11.7M [00:05<00:04, 1.40M
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:   0%|     | 0.00/4.02M [00:00<?, ?B/s]


sub-CRMBM2_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/802k [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.24k [00:00<?, ?B/s]



                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  51%|▌| 5.99M/11.7M [00:05<00:04, 1.47M
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 85.2k/4.02M [00:00<00:06, 611k


sub-CRMBM2_acq-anat_TB1TFL.nii.gz:  10%|▌    | 83.6k/802k [00:00<00:01, 610kB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  52%|▌| 6.14M/11.7M [00:05<00:04, 1.40M
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 306k/4.02M [00:00<00:03, 1.20M


sub-CRMBM2_acq-anat_TB1TFL.nii.gz:  38%|█▉   | 305k/802k [00:00<00:00, 1.19MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  54%|▌| 6.34M/11.7M [00:05<00:03, 1.43M
                                                                                
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  27%|▎| 1.08M/4.02M [00:00<00:00, 3.59


sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]



sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  56%|▌| 6.56M/11.7M [00:05<00:03, 1.49M
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  66%|▋| 2.65M/4.02M [00:00<00:00, 7.92


sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/11.7M [00:00<00:16, 733kB



sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.5k/2.69M [00:00<00:03, 
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 6.77M/11.7M [00:05<00:03, 1.53M


sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   3%| | 305k/11.7M [00:00<00:09, 1.29MB



sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  14%|▏| 390k/2.69M [00:00<00:01, 1
sub-CRMBM2_acq-coilQaTra_GFactor.json:   0%|        | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.16M/11.7M [00:00<00:02, 4.33M



sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  48%|▍| 1.29M/2.69M [00:00<00:00, 
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  60%|▌| 7.01M/11.7M [00:06<00:03, 1.55M
sub-CRMBM2_acq-famp-0.66_TB1DREAM.json:   0%|       | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 1.90M/11.7M [00:00<00:01, 5.53M



sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  86%|▊| 2.31M/2.69M [00:00<00:00, 
                                                                                

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  62%|▌| 7.22M/11.7M [00:06<00:03, 1.56M
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 5.12M/11.7M [00:00<00:00, 15.1M
sub-CRMBM2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.5k [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  79%|▊| 9.29M/11.7M [00:00<00:00, 24.4M

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  63%|▋| 7.45M/11.7M [00:06<00:02, 1.61M
sub-CRMBM2_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.5k [00:00<00:00, 606k
                                                                                
sub-CRMBM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/91.7k [00:00<?, ?B/s]


                                                                                


sub-CRMBM2_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  65%|▋| 7.69M/11.7M [00:06<00:02, 1.63M
sub-CRMBM2_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 83.6k/91.7k [00:00<00:00, 636kB
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 7.92M/11.7M [00:06<00:02, 1.59M
sub-CRMBM2_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-famp_TB1TFL.json:   0%|              | 0.00/2.74k [00:00<?, ?B/s]
                                                                                

sub-CRMBM2_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/92.1k [00:00<?, ?B/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  69%|▋| 8.09M/11.7M [00:06<00:02, 1.60M
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  71%|▋| 8.28M/11.7M [00:06<00:02, 1.67M


sub-CRMBM2_acq-famp_TB1TFL.nii.gz:   0%|             | 0.00/929k [00:00<?, ?B/s]
sub-CRMBM2_acq-famp_TB1DREAM.nii.gz:  91%|█▊| 83.6k/92.1k [00:00<00:00, 655kB/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  73%|▋| 8.52M/11.7M [00:07<00:01, 1.69M
sub-CRMBM2_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-famp_TB1TFL.nii.gz:   9%|▍    | 83.6k/929k [00:00<00:01, 529kB/s]
sub-CRMBM2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/80.0k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  75%|▋| 8.77M/11.7M [00:07<00:01, 1.75M



sub-CRMBM2_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.16k [00:00<?, ?B/s]



                                                                                


sub-CRMBM2_acq-famp_TB1TFL.nii.gz:  33%|█▋   | 305k/929k [00:00<00:00, 1.23MB/s]
sub-CRMBM2_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 80.0k/80.0k [00:00<00:00, 581k
                                                                                
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 9.01M/11.7M [00:07<00:01, 1.78M
sub-CRMBM2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/84.4k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  79%|▊| 9.26M/11.7M [00:07<00:01, 1.81M


sub-CRMBM3_T2starw.json:   0%|                      | 0.00/2.42k [00:00<?, ?B/s]


                                                                                
sub-CRMBM2_acq-refv-1.5_TB1DREAM.nii.gz:  99%|▉| 83.6k/84.4k [00:00<00:00, 588kB
                                                                                

sub-CRMBM2_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-refv_TB1DREAM.nii.gz:   0%|          | 0.00/83.1k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  81%|▊| 9.51M/11.7M [00:07<00:01, 1.78M
sub-CRMBM2_acq-refv_TB1DREAM.nii.gz: 100%|██| 83.1k/83.1k [00:00<00:00, 643kB/s]
                                                                                


sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 9.78M/11.7M [00:07<00:01, 1.84M
sub-CRMBM3_T2starw.nii.gz:   0%|                    | 0.00/1.03M [00:00<?, ?B/s]
sub-CRMBM3_UNIT1.json:   0%|                        | 0.00/2.10k [00:00<?, ?B/s]


                                                                                
sub-CRMBM3_inv-1_MP2RAGE.json:   0%|                | 0.00/2.11k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  85%|▊| 10.0M/11.7M [00:07<00:00, 1.85M
sub-CRMBM3_T2starw.nii.gz:   8%|▉           | 83.6k/1.03M [00:00<00:01, 613kB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  88%|▉| 10.3M/11.7M [00:08<00:00, 1.89M
sub-CRMBM3_T2starw.nii.gz:  29%|███▍        | 305k/1.03M [00:00<00:00, 1.20MB/s]
sub-CRMBM3_UNIT1.nii.gz:   0%|                      | 0.00/26.7M [00:00<?, ?B/s]



sub-CRMBM3_inv-2_MP2RAGE.json:   0%|                | 0.00/2.11k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_T2starw.nii.gz:  74%|████████▉   | 782k/1.03M [00:00<00:00, 2.57MB/s]
                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.1M [00:00<?, ?B/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 10.6M/11.7M [00:08<00:00, 1.91M
sub-CRMBM3_UNIT1.nii.gz:   0%|              | 83.6k/26.7M [00:00<00:45, 614kB/s]
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/15.1M [00:00<00:25, 624k

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  92%|▉| 10.8M/11.7M [00:08<00:00, 1.94M
sub-CRMBM3_UNIT1.nii.gz:   1%|▏             | 305k/26.7M [00:00<00:22, 1.21MB/s]
sub-CRMBM3_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/15.1M [00:00<00:12, 1.21M

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  94%|▉| 11.1M/11.7M [00:08<00:00, 1.94M
sub-CRMBM3_UNIT1.nii.gz:   4%|▌            | 1.18M/26.7M [00:00<00:06, 4.15MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/17.3M [00:00<?, ?B/s]
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 985k/15.1M [00:00<00:04, 3.37M
sub-CRMBM3_UNIT1.nii.gz:   9%|█▏           | 2.51M/26.7M [00:00<00:03, 7.41MB/s]

sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  97%|▉| 11.4M/11.7M [00:08<00:00, 1.98M



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.3M [00:00<00:29, 618k
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.43M/15.1M [00:00<00:01, 7.31
sub-CRMBM3_UNIT1.nii.gz:  20%|██▋          | 5.46M/26.7M [00:00<00:01, 15.1MB/s]




sub-CRMBM3_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]




                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 11.6M/11.7M [00:08<00:00, 1.99M

                                                                                



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 305k/17.3M [00:00<00:14, 1.19M
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 3.87M/15.1M [00:00<00:01, 9.26


sub-CRMBM3_UNIT1.nii.gz:  26%|███▍         | 7.02M/26.7M [00:00<00:01, 14.2MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 0.98M/17.3M [00:00<00:05, 3.41
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  38%|▍| 5.81M/15.1M [00:00<00:00, 12.6


sub-CRMBM3_UNIT1.nii.gz:  34%|████▍        | 9.09M/26.7M [00:00<00:01, 16.3MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.05M/17.3M [00:00<00:02, 6.14
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 7.79M/15.1M [00:00<00:00, 15.1

sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/788k [00:00<?, ?B/s]


sub-CRMBM3_UNIT1.nii.gz:  41%|█████▎       | 10.9M/26.7M [00:00<00:00, 17.1MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.91M/17.3M [00:00<00:01, 10.6
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 9.65M/15.1M [00:00<00:00, 16.4
sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/798k [00:00<?, ?B/s]


sub-CRMBM3_UNIT1.nii.gz:  48%|██████▏      | 12.8M/26.7M [00:01<00:00, 17.8MB/s]
sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:  11%| | 83.6k/788k [00:00<00:01, 611k



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 5.76M/17.3M [00:00<00:00, 13.3
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 11.5M/15.1M [00:01<00:00, 17.2
sub-CRMBM3_UNIT1.nii.gz:  55%|███████▏     | 14.6M/26.7M [00:01<00:00, 18.3MB/s]




sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:  10%| | 83.6k/798k [00:00<00:01, 611k
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.57M/17.3M [00:00<00:00, 15.1
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.3M/15.1M [00:01<00:00, 17.8

sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:  34%|▎| 271k/788k [00:00<00:00, 1.05M
sub-CRMBM3_UNIT1.nii.gz:  62%|████████     | 16.4M/26.7M [00:01<00:00, 18.1MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 9.24M/17.3M [00:00<00:00, 15.8




sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:  38%|▍| 305k/798k [00:00<00:00, 1.20M

sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:  95%|▉| 747k/788k [00:00<00:00, 2.48M
                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz: 100%|▉| 15.0M/15.1M [00:01<00:00, 16.0
                                                                                
sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:  98%|▉| 781k/798k [00:00<00:00, 2.56M


sub-CRMBM3_UNIT1.nii.gz:  68%|████████▊    | 18.2M/26.7M [00:01<00:00, 15.7MB/s]




                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 10.8M/17.3M [00:01<00:00, 13.7
sub-CRMBM3_UNIT1.nii.gz:  76%|█████████▉   | 20.3M/26.7M [00:01<00:00, 17.3MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 13.4M/17.3M [00:01<00:00, 17.5
sub-CRMBM3_UNIT1.nii.gz:  86%|███████████▏ | 23.0M/26.7M [00:01<00:00, 20.4MB/s]
sub-CRMBM3_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                




sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 15.8M/17.3M [00:01<00:00, 19.0
sub-CRMBM3_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                



sub-CRMBM3_UNIT1.nii.gz:  94%|████████████▏| 25.0M/26.7M [00:01<00:00, 19.4MB/s]
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/861k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:  10%| | 85.2k/861k [00:00<00:01, 625k
sub-CRMBM3_rec-uncombined5_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]


sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/758k [00:00<?, ?B/s]

                                                                                
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:  36%|▎| 306k/861k [00:00<00:00, 1.20M
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/817k [00:00<?, ?B/s]
                                                                                



sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:  11%| | 83.6k/758k [00:00<00:01, 574k
sub-CRMBM3_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/835k [00:00<?, ?B/s]
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:  10%| | 85.2k/817k [00:00<00:01, 623k
sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:  38%|▍| 288k/758k [00:00<00:00, 1.14M



sub-CRMBM3_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_rec-uncombined6_T2starw.nii.gz:  10%| | 83.6k/835k [00:00<00:01, 559k
                                                                                
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:  35%|▎| 289k/817k [00:00<00:00, 1.13M


sub-CRMBM3_rec-uncombined6_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]


                                                                                
sub-CRMBM3_rec-uncombined6_T2starw.nii.gz:  36%|▎| 305k/835k [00:00<00:00, 1.23M

                                                                                
                                                                                
sub-CRMBM3_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/775k [00:00<?, ?B/s]
sub-CRMBM3_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]

                                                                                
sub-CRMBM3_rec-uncombined7_T2starw.nii.gz:  11%| | 83.5k/775k [00:00<00:01, 614k

sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/773k [00:00<?, ?B/s]
sub-CRMBM3_acq-anat_TB1TFL.json:   0%|              | 0.00/2.66k [00:00<?, ?B/s]


                                                                                


sub-CRMBM3_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/871k [00:00<?, ?B/s]
sub-CRMBM3_rec-uncombined7_T2starw.nii.gz:  52%|▌| 407k/775k [00:00<00:00, 1.65M
                                                                                


sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:  11%| | 83.6k/773k [00:00<00:01, 524k
sub-CRMBM3_acq-anat_TB1TFL.nii.gz:  10%|▍    | 85.2k/871k [00:00<00:01, 711kB/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:  39%|▍| 305k/773k [00:00<00:00, 1.23M


sub-CRMBM3_acq-anat_TB1TFL.nii.gz:  47%|██▎  | 408k/871k [00:00<00:00, 1.73MB/s]
                                                                                
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:   0%|     | 0.00/4.11M [00:00<?, ?B/s]


                                                                                
sub-CRMBM3_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.18k [00:00<?, ?B/s]

                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.json:   0%|        | 0.00/2.07k [00:00<?, ?B/s]

                                                                                
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 85.2k/4.11M [00:00<00:06, 641k
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 289k/4.11M [00:00<00:03, 1.29M
sub-CRMBM3_acq-famp-0.66_TB1DREAM.json:   0%|       | 0.00/2.15k [00:00<?, ?B/s]

                                                                                

sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  18%|▏| 766k/4.11M [00:00<00:01, 2.74M



sub-CRMBM3_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.22M/4.11M [00:00<00:00, 7.41

sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.6k/2.69M [00:00<00:04, 


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/11.7M [00:00<00:20, 609kB
                                                                                
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 305k/2.69M [00:00<00:02, 1


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   3%| | 305k/11.7M [00:00<00:10, 1.19MB
sub-CRMBM3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.0k [00:00<?, ?B/s]
sub-CRMBM3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.4k [00:00<?, ?B/s]
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  46%|▍| 1.24M/2.69M [00:00<00:00, 
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.23M/11.7M [00:00<00:02, 3.79M
sub-CRMBM3_acq-famp-1.5_TB1DREAM.nii.gz:  90%|▉| 83.6k/93.0k [00:00<00:00, 605kB
                                                                                
sub-CRMBM3_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                




sub-CRMBM3_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.4k [00:00<00:00, 602k



                                                                                

sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  90%|▉| 2.43M/2.69M [00:00<00:00, 
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  14%|▏| 1.59M/11.7M [00:00<00:02, 3.81M

                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  41%|▍| 4.80M/11.7M [00:00<00:00, 13.0M
sub-CRMBM3_acq-famp_TB1TFL.json:   0%|              | 0.00/2.70k [00:00<?, ?B/s]
                                                                                



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  70%|▋| 8.25M/11.7M [00:00<00:00, 19.1M
sub-CRMBM3_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/92.1k [00:00<?, ?B/s]

sub-CRMBM3_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-CRMBM3_acq-famp_TB1TFL.nii.gz:   0%|             | 0.00/954k [00:00<?, ?B/s]
sub-CRMBM3_acq-famp_TB1DREAM.nii.gz:  91%|█▊| 83.6k/92.1k [00:00<00:00, 610kB/s]
                                                                                
sub-CRMBM3_acq-famp_TB1TFL.nii.gz:   9%|▍    | 83.5k/954k [00:00<00:01, 667kB/s]
sub-CRMBM3_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.15k [00:00<?, ?B/s]
                                                                                

sub-CRMBM3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/84.0k [00:00<?, ?B/s]
sub-CRMBM3_acq-famp_TB1TFL.nii.gz:  30%|█▌   | 288k/954k [00:00<00:00, 1.16MB/s]
sub-CRMBM3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/91.2k [00:00<?, ?B/s]
sub-CRMBM3_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 84.0k/84.0k [00:00<00:00, 616k
                                                                                
sub-CRMBM3_acq-famp_TB1TFL.nii.gz: 100%|████▉| 951k/954k [00:00<00:00, 3.22MB/s]

                                                                                
sub-CRMBM3_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_acq-refv-1.5_TB1DREAM.nii.gz:  55%|▌| 50.6k/91.2k [00:00<00:00, 490kB


                                                                                
sub-CRMBM3_acq-refv_TB1DREAM.nii.gz:   0%|          | 0.00/86.1k [00:00<?, ?B/s]
sub-MGH1_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]
sub-CRMBM3_acq-refv_TB1DREAM.nii.gz:  99%|█▉| 85.2k/86.1k [00:00<00:00, 622kB/s]

                                                                                
                                                                                
sub-MGH1_T2starw.json:   0%|                        | 0.00/2.42k [00:00<?, ?B/s]
                                                                                

sub-MGH1_T2starw.nii.gz:   0%|                      | 0.00/1.27M [00:00<?, ?B/s]

sub-MGH1_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]

                                                                                
sub-MGH1_T2starw.nii.gz:   6%|▉             | 83.6k/1.27M [00:00<00:01, 665kB/s]
sub-MGH1_T2starw.nii.gz:  22%|███           | 288k/1.27M [00:00<00:00, 1.17MB/s]

sub-MGH1_inv-2_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]

                                                                                
sub-MGH1_UNIT1.nii.gz:   0%|                        | 0.00/17.0M [00:00<?, ?B/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/9.54M [00:00<?, ?B/s]
sub-MGH1_T2starw.nii.gz:  87%|███████████▎ | 1.11M/1.27M [00:00<00:00, 3.52MB/s]



sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/7.98M [00:00<?, ?B/s]
                                                                                
sub-MGH1_UNIT1.nii.gz:   0%|                | 85.2k/17.0M [00:00<00:28, 618kB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/9.54M [00:00<00:15, 644kB/



sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/7.98M [00:00<00:13, 610kB/
sub-MGH1_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_UNIT1.nii.gz:   2%|▎               | 289k/17.0M [00:00<00:16, 1.06MB/s]


sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 271k/9.54M [00:00<00:08, 1.11MB/
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 305k/7.98M [00:00<00:06, 1.19MB/
sub-MGH1_UNIT1.nii.gz:   7%|█              | 1.15M/17.0M [00:00<00:04, 3.56MB/s]
sub-MGH1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]


sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 0.98M/9.54M [00:00<00:02, 3.15MB



sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 952k/7.98M [00:00<00:02, 3.21MB/
sub-MGH1_UNIT1.nii.gz:  14%|██▏            | 2.44M/17.0M [00:00<00:02, 6.74MB/s]


sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▏| 2.38M/9.54M [00:00<00:01, 6.93MB




sub-MGH1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]




                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  25%|▏| 1.99M/7.98M [00:00<00:01, 5.58MB
sub-MGH1_rec-uncombined01_T2starw.nii.gz:   8%| | 66.6k/795k [00:00<00:01, 485kB

sub-MGH1_UNIT1.nii.gz:  21%|███▏           | 3.66M/17.0M [00:00<00:01, 8.60MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 3.71M/9.54M [00:00<00:00, 9.15MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 3.71M/7.98M [00:00<00:00, 9.52MB
sub-MGH1_rec-uncombined01_T2starw.nii.gz:  34%|▎| 271k/795k [00:00<00:00, 1.09MB

sub-MGH1_UNIT1.nii.gz:  32%|████▊          | 5.52M/17.0M [00:00<00:01, 11.9MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 5.35M/9.54M [00:00<00:00, 11.7MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  69%|▋| 5.49M/7.98M [00:00<00:00, 12.3MB
sub-MGH1_rec-uncombined01_T2starw.nii.gz: 100%|█| 795k/795k [00:00<00:00, 2.70MB
                                                                                


sub-MGH1_UNIT1.nii.gz:  42%|██████▎        | 7.17M/17.0M [00:00<00:00, 13.6MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 6.73M/9.54M [00:00<00:00, 12.5MB
sub-MGH1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/666k [00:00<?, ?B/s]
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  86%|▊| 6.83M/7.98M [00:00<00:00, 12.9MB

sub-MGH1_UNIT1.nii.gz:  51%|███████▋       | 8.69M/17.0M [00:00<00:00, 14.3MB/s]
                                                                                


sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 8.51M/9.54M [00:00<00:00, 13.8MB
sub-MGH1_rec-uncombined02_T2starw.nii.gz:  13%|▏| 83.6k/666k [00:00<00:00, 607kB


                                                                                
sub-MGH1_UNIT1.nii.gz:  59%|████████▉      | 10.1M/17.0M [00:01<00:00, 13.7MB/s]
sub-MGH1_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH1_rec-uncombined02_T2starw.nii.gz:  43%|▍| 288k/666k [00:00<00:00, 1.13MB

sub-MGH1_UNIT1.nii.gz:  80%|████████████   | 13.7M/17.0M [00:01<00:00, 20.6MB/s]
                                                                                
sub-MGH1_UNIT1.nii.gz:  98%|██████████████▋| 16.6M/17.0M [00:01<00:00, 23.6MB/s]

                                                                                
sub-MGH1_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/688k [00:00<?, ?B/s]

sub-MGH1_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined03_T2starw.nii.gz:  12%| | 83.6k/688k [00:00<00:00, 634kB

sub-MGH1_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/779k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH1_rec-uncombined03_T2starw.nii.gz:  44%|▍| 305k/688k [00:00<00:00, 1.33MB
sub-MGH1_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/771k [00:00<?, ?B/s]

sub-MGH1_rec-uncombined04_T2starw.nii.gz:  11%| | 83.6k/779k [00:00<00:01, 605kB



sub-MGH1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/789k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined04_T2starw.nii.gz:  37%|▎| 288k/779k [00:00<00:00, 1.29MB


sub-MGH1_rec-uncombined06_T2starw.nii.gz:  11%| | 83.6k/771k [00:00<00:01, 610kB
sub-MGH1_rec-uncombined05_T2starw.nii.gz:  11%| | 83.6k/789k [00:00<00:01, 610kB
sub-MGH1_rec-uncombined04_T2starw.nii.gz:  81%|▊| 628k/779k [00:00<00:00, 2.17MB

                                                                                
sub-MGH1_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                



sub-MGH1_rec-uncombined06_T2starw.nii.gz:  37%|▎| 288k/771k [00:00<00:00, 1.12MB
sub-MGH1_rec-uncombined05_T2starw.nii.gz:  39%|▍| 305k/789k [00:00<00:00, 1.20MB
                                                                                



                                                                                
sub-MGH1_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/804k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/957k [00:00<?, ?B/s]


sub-MGH1_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/871k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined07_T2starw.nii.gz:  10%| | 83.6k/804k [00:00<00:01, 614kB
sub-MGH1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
sub-MGH1_rec-uncombined07_T2starw.nii.gz:  32%|▎| 254k/804k [00:00<00:00, 1.15MB

sub-MGH1_rec-uncombined08_T2starw.nii.gz:   7%| | 66.5k/957k [00:00<00:01, 487kB
sub-MGH1_rec-uncombined09_T2starw.nii.gz:  10%| | 83.6k/871k [00:00<00:01, 609kB
sub-MGH1_rec-uncombined07_T2starw.nii.gz:  76%|▊| 611k/804k [00:00<00:00, 2.15MB
                                                                                


sub-MGH1_rec-uncombined08_T2starw.nii.gz:  34%|▎| 322k/957k [00:00<00:00, 1.30MB


sub-MGH1_rec-uncombined09_T2starw.nii.gz:  35%|▎| 305k/871k [00:00<00:00, 1.19MB
                                                                                


sub-MGH1_rec-uncombined09_T2starw.nii.gz:  86%|▊| 748k/871k [00:00<00:00, 2.44MB


                                                                                
sub-MGH1_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/833k [00:00<?, ?B/s]

sub-MGH1_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined10_T2starw.nii.gz:  10%| | 83.6k/833k [00:00<00:01, 711kB
sub-MGH1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/895k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH1_rec-uncombined10_T2starw.nii.gz:  35%|▎| 288k/833k [00:00<00:00, 1.19MB


sub-MGH1_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/955k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined11_T2starw.nii.gz:   9%| | 83.6k/895k [00:00<00:01, 611kB
                                                                                

sub-MGH1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/789k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined12_T2starw.nii.gz:   9%| | 83.6k/955k [00:00<00:01, 617kB
sub-MGH1_rec-uncombined11_T2starw.nii.gz:  34%|▎| 305k/895k [00:00<00:00, 1.20MB
sub-MGH1_rec-uncombined13_T2starw.nii.gz:  11%| | 83.6k/789k [00:00<00:01, 714kB
                                                                                
sub-MGH1_rec-uncombined12_T2starw.nii.gz:  27%|▎| 254k/955k [00:00<00:00, 956kB/

sub-MGH1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined13_T2starw.nii.gz:  28%|▎| 220k/789k [00:00<00:00, 1.08MB
sub-MGH1_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                


sub-MGH1_rec-uncombined12_T2starw.nii.gz:  57%|▌| 543k/955k [00:00<00:00, 1.57MB
sub-MGH1_rec-uncombined13_T2starw.nii.gz:  56%|▌| 441k/789k [00:00<00:00, 1.59MB
                                                                                
                                                                                
sub-MGH1_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/783k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/809k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined14_T2starw.nii.gz:  11%| | 83.6k/783k [00:00<00:01, 617kB


sub-MGH1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH1_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/960k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined14_T2starw.nii.gz:  37%|▎| 288k/783k [00:00<00:00, 1.29MB

sub-MGH1_rec-uncombined15_T2starw.nii.gz:  10%| | 83.6k/809k [00:00<00:01, 612kB
sub-MGH1_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
sub-MGH1_rec-uncombined14_T2starw.nii.gz:  80%|▊| 628k/783k [00:00<00:00, 2.18MB
                                                                                



sub-MGH1_rec-uncombined16_T2starw.nii.gz:   9%| | 83.6k/960k [00:00<00:01, 560kB
sub-MGH1_rec-uncombined15_T2starw.nii.gz:  38%|▍| 305k/809k [00:00<00:00, 1.20MB
sub-MGH1_rec-uncombined16_T2starw.nii.gz:  32%|▎| 305k/960k [00:00<00:00, 1.35MB

                                                                                
sub-MGH1_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined16_T2starw.nii.gz:  67%|▋| 645k/960k [00:00<00:00, 2.20MB
                                                                                
sub-MGH1_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/985k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/827k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/890k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined17_T2starw.nii.gz:   8%| | 83.6k/985k [00:00<00:01, 615kB
sub-MGH1_rec-uncombined19_T2starw.nii.gz:  10%| | 83.6k/827k [00:00<00:01, 605kB
sub-MGH1_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
sub-MGH1_rec-uncombined17_T2starw.nii.gz:  31%|▎| 305k/985k [00:00<00:00, 1.38MB



sub-MGH1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
sub-MGH1_rec-uncombined18_T2starw.nii.gz:   9%| | 83.6k/890k [00:00<00:01, 572kB

sub-MGH1_rec-uncombined19_T2starw.nii.gz:  27%|▎| 220k/827k [00:00<00:00, 997kB/
sub-MGH1_rec-uncombined17_T2starw.nii.gz:  65%|▋| 645k/985k [00:00<00:00, 2.23MB
                                                                                


sub-MGH1_rec-uncombined19_T2starw.nii.gz:  76%|▊| 628k/827k [00:00<00:00, 2.22MB

                                                                                
sub-MGH1_rec-uncombined18_T2starw.nii.gz:  32%|▎| 288k/890k [00:00<00:00, 1.06MB
                                                                                
sub-MGH1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]
                                                                                

sub-MGH1_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/922k [00:00<?, ?B/s]
sub-MGH1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined20_T2starw.nii.gz:   9%| | 85.2k/922k [00:00<00:01, 714kB
sub-MGH1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/927k [00:00<?, ?B/s]


sub-MGH1_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.18k [00:00<?, ?B/s]


                                                                                
sub-MGH1_rec-uncombined20_T2starw.nii.gz:  33%|▎| 306k/922k [00:00<00:00, 1.28MB
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.44M [00:00<?, ?B/s]
                                                                                


sub-MGH1_acq-anat_TB1TFL.nii.gz:   9%|▋      | 85.2k/927k [00:00<00:01, 569kB/s]
sub-MGH1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.08k [00:00<?, ?B/s]
                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.44M [00:00<00:07, 611kB/
sub-MGH1_acq-anat_TB1TFL.nii.gz:  33%|██▎    | 306k/927k [00:00<00:00, 1.24MB/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.1M [00:00<?, ?B/s]

                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:   6%| | 288k/4.44M [00:00<00:03, 1.13MB/
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/16.1M [00:00<00:27, 613kB/s
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.70M [00:00<?, ?B/s]


sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  25%|▏| 1.09M/4.44M [00:00<00:01, 3.38MB
sub-MGH1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/90.8k [00:00<?, ?B/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   2%| | 305k/16.1M [00:00<00:13, 1.19MB/s
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  65%|▋| 2.86M/4.44M [00:00<00:00, 8.18MB




sub-MGH1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]




                                                                                
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.70M [00:00<00:06, 57


                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   5%| | 901k/16.1M [00:00<00:05, 2.93MB/s



sub-MGH1_acq-famp-0.66_TB1DREAM.nii.gz:  92%|▉| 83.6k/90.8k [00:00<00:00, 558kB/



                                                                                
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 288k/3.70M [00:00<00:03, 1.1
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.51M/16.1M [00:00<00:01, 7.72MB/
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 6.15M/16.1M [00:00<00:00, 17.7MB/


sub-MGH1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]

sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  30%|▎| 1.09M/3.70M [00:00<00:00, 3.


                                                                                
sub-MGH1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.6k [00:00<?, ?B/s]



sub-MGH1_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  50%|▍| 7.99M/16.1M [00:00<00:00, 18.1MB/

sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  53%|▌| 1.97M/3.70M [00:00<00:00, 5.
                                                                                


sub-MGH1_acq-famp-1.5_TB1DREAM.nii.gz:  93%|▉| 85.2k/91.6k [00:00<00:00, 635kB/s
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  64%|▋| 10.4M/16.1M [00:00<00:00, 19.4MB/


                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  91%|▉| 14.6M/16.1M [00:00<00:00, 27.0MB/

sub-MGH1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]

                                                                                
sub-MGH1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.4k [00:00<?, ?B/s]
                                                                                
sub-MGH1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/950k [00:00<?, ?B/s]

sub-MGH1_acq-famp_TB1DREAM.nii.gz:  93%|███▋| 85.2k/91.4k [00:00<00:00, 660kB/s]

                                                                                
sub-MGH1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.8k [00:00<?, ?B/s]
sub-MGH1_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/950k [00:00<00:01, 616kB/s]


sub-MGH1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]


                                                                                
sub-MGH1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.15k [00:00<?, ?B/s]


                                                                                
sub-MGH1_acq-refv-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.8k [00:00<00:00, 602kB/

                                                                                
sub-MGH1_acq-famp_TB1TFL.nii.gz:  32%|██▏    | 305k/950k [00:00<00:00, 1.21MB/s]
sub-MGH1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/97.5k [00:00<?, ?B/s]
                                                                                
sub-MGH1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.13k [00:00<?, ?B/s]
                                                                                

sub-MGH2_T2starw.json:   0%|                        | 0.00/2.40k [00:00<?, ?B/s]

sub-MGH1_acq-refv-1.5_TB1DREAM.nii.gz:  86%|▊| 83.6k/97.5k [00:00<00:00, 610kB/s
                                                                                


                                                                                
sub-MGH1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/96.5k [00:00<?, ?B/s]
sub-MGH1_acq-refv_TB1DREAM.nii.gz:  87%|███▍| 83.6k/96.5k [00:00<00:00, 619kB/s]
                                                                                
sub-MGH2_T2starw.nii.gz:   0%|                      | 0.00/1.16M [00:00<?, ?B/s]

sub-MGH2_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]

                                                                                
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/7.82M [00:00<?, ?B/s]


sub-MGH2_UNIT1.nii.gz:   0%|                        | 0.00/17.1M [00:00<?, ?B/s]
sub-MGH2_T2starw.nii.gz:   7%|▉             | 83.6k/1.16M [00:00<00:01, 617kB/s]
sub-MGH2_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]



                                                                                
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/7.82M [00:00<00:13, 610kB/


sub-MGH2_UNIT1.nii.gz:   0%|                | 83.6k/17.1M [00:00<00:29, 615kB/s]
sub-MGH2_T2starw.nii.gz:  26%|███▌          | 305k/1.16M [00:00<00:00, 1.21MB/s]



sub-MGH2_inv-2_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]



                                                                                
                                                                                


sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 305k/7.82M [00:00<00:06, 1.26MB/


sub-MGH2_UNIT1.nii.gz:   2%|▎               | 305k/17.1M [00:00<00:13, 1.28MB/s]
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 968k/7.82M [00:00<00:02, 3.39MB/


sub-MGH2_UNIT1.nii.gz:   5%|▊               | 917k/17.1M [00:00<00:05, 3.22MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/9.49M [00:00<?, ?B/s]
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 2.28M/7.82M [00:00<00:00, 7.15MB


sub-MGH2_UNIT1.nii.gz:  14%|██             | 2.33M/17.1M [00:00<00:02, 7.46MB/s]



sub-MGH2_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/761k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]




                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/9.49M [00:00<00:16, 613kB/

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  49%|▍| 3.84M/7.82M [00:00<00:00, 10.2MB


sub-MGH2_UNIT1.nii.gz:  22%|███▎           | 3.80M/17.1M [00:00<00:01, 10.1MB/s]
sub-MGH2_rec-uncombined01_T2starw.nii.gz:  11%| | 83.6k/761k [00:00<00:01, 618kB
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 6.39M/7.82M [00:00<00:00, 15.6MB


sub-MGH2_UNIT1.nii.gz:  37%|█████▌         | 6.35M/17.1M [00:00<00:00, 15.5MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 305k/9.49M [00:00<00:08, 1.20MB/

                                                                                
sub-MGH2_rec-uncombined01_T2starw.nii.gz:  40%|▍| 305k/761k [00:00<00:00, 1.15MB


sub-MGH2_UNIT1.nii.gz:  47%|██████▉        | 7.97M/17.1M [00:00<00:00, 16.0MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.08M/9.49M [00:00<00:02, 3.81MB



                                                                                
sub-MGH2_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                


sub-MGH2_UNIT1.nii.gz:  56%|████████▍      | 9.58M/17.1M [00:00<00:00, 15.7MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 1.74M/9.49M [00:00<00:01, 4.90MB
sub-MGH2_UNIT1.nii.gz:  72%|██████████▋    | 12.3M/17.1M [00:00<00:00, 19.5MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 4.35M/9.49M [00:00<00:00, 12.4MB
sub-MGH2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/591k [00:00<?, ?B/s]


sub-MGH2_UNIT1.nii.gz:  87%|█████████████  | 14.9M/17.1M [00:01<00:00, 21.9MB/s]
sub-MGH2_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 6.73M/9.49M [00:00<00:00, 15.7MB
sub-MGH2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/628k [00:00<?, ?B/s]


sub-MGH2_UNIT1.nii.gz:  99%|██████████████▉| 17.0M/17.1M [00:01<00:00, 21.8MB/s]


                                                                                
sub-MGH2_rec-uncombined02_T2starw.nii.gz:  14%|▏| 83.6k/591k [00:00<00:00, 551kB
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 9.02M/9.49M [00:00<00:00, 18.2MB
                                                                                
sub-MGH2_rec-uncombined03_T2starw.nii.gz:  13%|▏| 83.6k/628k [00:00<00:00, 654kB
sub-MGH2_rec-uncombined02_T2starw.nii.gz:  52%|▌| 305k/591k [00:00<00:00, 1.24MB

                                                                                
sub-MGH2_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/701k [00:00<?, ?B/s]



sub-MGH2_rec-uncombined03_T2starw.nii.gz:  48%|▍| 305k/628k [00:00<00:00, 1.28MB
sub-MGH2_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                



                                                                                
sub-MGH2_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MGH2_rec-uncombined04_T2starw.nii.gz:  12%| | 83.6k/701k [00:00<00:01, 616kB
sub-MGH2_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/727k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined04_T2starw.nii.gz:  51%|▌| 356k/701k [00:00<00:00, 1.43MB
                                                                                

sub-MGH2_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/697k [00:00<?, ?B/s]

sub-MGH2_rec-uncombined05_T2starw.nii.gz:  12%| | 85.2k/727k [00:00<00:01, 622kB
sub-MGH2_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
sub-MGH2_rec-uncombined06_T2starw.nii.gz:  12%| | 85.2k/697k [00:00<00:01, 612kB

sub-MGH2_rec-uncombined05_T2starw.nii.gz:  40%|▍| 289k/727k [00:00<00:00, 1.13MB
sub-MGH2_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                

                                                                                
sub-MGH2_rec-uncombined06_T2starw.nii.gz:  46%|▍| 323k/697k [00:00<00:00, 1.21MB

sub-MGH2_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/714k [00:00<?, ?B/s]
                                                                                

sub-MGH2_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined07_T2starw.nii.gz:  12%| | 83.6k/714k [00:00<00:01, 610kB
sub-MGH2_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/880k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined07_T2starw.nii.gz:  43%|▍| 305k/714k [00:00<00:00, 1.20MB
sub-MGH2_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/807k [00:00<?, ?B/s]



sub-MGH2_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                

                                                                                
sub-MGH2_rec-uncombined08_T2starw.nii.gz:   9%| | 83.6k/880k [00:00<00:01, 593kB

sub-MGH2_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/777k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined09_T2starw.nii.gz:  10%| | 83.6k/807k [00:00<00:01, 613kB
sub-MGH2_rec-uncombined08_T2starw.nii.gz:  33%|▎| 288k/880k [00:00<00:00, 1.13MB
sub-MGH2_rec-uncombined10_T2starw.nii.gz:  11%| | 85.2k/777k [00:00<00:01, 622kB
                                                                                



sub-MGH2_rec-uncombined09_T2starw.nii.gz:  38%|▍| 305k/807k [00:00<00:00, 1.14MB
sub-MGH2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/817k [00:00<?, ?B/s]



sub-MGH2_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                
sub-MGH2_rec-uncombined10_T2starw.nii.gz:  39%|▍| 306k/777k [00:00<00:00, 1.17MB


                                                                                
                                                                                
sub-MGH2_rec-uncombined11_T2starw.nii.gz:  10%| | 83.6k/817k [00:00<00:01, 613kB
sub-MGH2_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MGH2_rec-uncombined11_T2starw.nii.gz:  29%|▎| 238k/817k [00:00<00:00, 1.10MB
sub-MGH2_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MGH2_rec-uncombined11_T2starw.nii.gz:  77%|▊| 628k/817k [00:00<00:00, 2.20MB
                                                                                
sub-MGH2_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/861k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MGH2_rec-uncombined12_T2starw.nii.gz:  10%| | 83.6k/861k [00:00<00:01, 665kB
sub-MGH2_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/733k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined12_T2starw.nii.gz:  35%|▎| 305k/861k [00:00<00:00, 1.24MB


sub-MGH2_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
sub-MGH2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/740k [00:00<?, ?B/s]

sub-MGH2_rec-uncombined14_T2starw.nii.gz:  11%| | 83.6k/733k [00:00<00:01, 614kB
                                                                                
sub-MGH2_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/734k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined13_T2starw.nii.gz:   9%| | 66.6k/740k [00:00<00:01, 529kB
sub-MGH2_rec-uncombined14_T2starw.nii.gz:  42%|▍| 305k/733k [00:00<00:00, 1.21MB
sub-MGH2_rec-uncombined15_T2starw.nii.gz:  11%| | 83.6k/734k [00:00<00:01, 613kB

                                                                                
sub-MGH2_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


sub-MGH2_rec-uncombined13_T2starw.nii.gz:  37%|▎| 271k/740k [00:00<00:00, 1.14MB

                                                                                
                                                                                
sub-MGH2_rec-uncombined15_T2starw.nii.gz:  42%|▍| 305k/734k [00:00<00:00, 1.14MB

sub-MGH2_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/927k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


sub-MGH2_rec-uncombined16_T2starw.nii.gz:   9%| | 83.6k/927k [00:00<00:01, 534kB
sub-MGH2_rec-uncombined16_T2starw.nii.gz:  33%|▎| 305k/927k [00:00<00:00, 1.22MB
sub-MGH2_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


sub-MGH2_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/985k [00:00<?, ?B/s]
                                                                                

sub-MGH2_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH2_rec-uncombined17_T2starw.nii.gz:   8%| | 83.6k/985k [00:00<00:01, 620kB
sub-MGH2_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined17_T2starw.nii.gz:  31%|▎| 305k/985k [00:00<00:00, 1.38MB
sub-MGH2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MGH2_rec-uncombined19_T2starw.nii.gz:  10%| | 83.6k/828k [00:00<00:01, 588kB

sub-MGH2_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/856k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined17_T2starw.nii.gz:  65%|▋| 645k/985k [00:00<00:00, 2.23MB


                                                                                


sub-MGH2_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/941k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined19_T2starw.nii.gz:  33%|▎| 271k/828k [00:00<00:00, 1.06MB

sub-MGH2_rec-uncombined18_T2starw.nii.gz:  10%| | 85.2k/856k [00:00<00:01, 620kB
sub-MGH2_rec-uncombined20_T2starw.nii.gz:   7%| | 66.6k/941k [00:00<00:01, 485kB
                                                                                

sub-MGH2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined18_T2starw.nii.gz:  36%|▎| 306k/856k [00:00<00:00, 1.20MB
sub-MGH2_rec-uncombined20_T2starw.nii.gz:  31%|▎| 288k/941k [00:00<00:00, 1.15MB
sub-MGH2_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/869k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MGH2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]

                                                                                
sub-MGH2_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.5k/869k [00:00<00:01, 556kB/s]
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.12M [00:00<?, ?B/s]
sub-MGH2_acq-anat_TB1TFL.nii.gz:  45%|███▏   | 390k/869k [00:00<00:00, 1.57MB/s]


sub-MGH2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.18k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.12M [00:00<00:06, 612kB/
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.9M [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 305k/4.12M [00:00<00:03, 1.20MB/
sub-MGH2_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   1%| | 85.2k/15.9M [00:00<00:30, 540kB/s



sub-MGH2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  19%|▏| 815k/4.12M [00:00<00:01, 2.61MB/


sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 66.6k/3.65M [00:00<00:07, 48
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   2%| | 306k/15.9M [00:00<00:13, 1.23MB/s

sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  61%|▌| 2.52M/4.12M [00:00<00:00, 7.76MB

                                                                                
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:   7%| | 271k/3.65M [00:00<00:03, 1.0
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.13M/15.9M [00:00<00:03, 4.06MB/
sub-MGH2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/90.8k [00:00<?, ?B/s]


sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  27%|▎| 0.99M/3.65M [00:00<00:00, 3.



sub-MGH2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.03M/15.9M [00:00<00:02, 5.72MB/
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  55%|▌| 2.01M/3.65M [00:00<00:00, 6.
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.28M/15.9M [00:00<00:01, 11.6MB/

sub-MGH2_acq-famp-0.66_TB1DREAM.nii.gz:  57%|▌| 52.2k/90.8k [00:00<00:00, 382kB/

                                                                                
                                                                                

sub-MGH2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.9k [00:00<?, ?B/s]
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  37%|▎| 5.97M/15.9M [00:00<00:00, 13.5MB/


sub-MGH2_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  63%|▋| 9.95M/15.9M [00:00<00:00, 22.3MB/

sub-MGH2_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 83.6k/91.9k [00:00<00:00, 691kB/s

                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.6M/15.9M [00:00<00:00, 27.4MB/

sub-MGH2_acq-famp_TB1TFL.json:   0%|                | 0.00/2.65k [00:00<?, ?B/s]

                                                                                
sub-MGH2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.1k [00:00<?, ?B/s]
                                                                                
sub-MGH2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.6k [00:00<?, ?B/s]

sub-MGH2_acq-famp_TB1DREAM.nii.gz:  92%|███▋| 83.5k/91.1k [00:00<00:00, 674kB/s]

                                                                                
sub-MGH2_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]

                                                                                
sub-MGH2_acq-refv-0.66_TB1DREAM.nii.gz:  94%|▉| 83.6k/88.6k [00:00<00:00, 608kB/
                                                                                
sub-MGH2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/927k [00:00<?, ?B/s]
sub-MGH2_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.15k [00:00<?, ?B/s]

                                                                                
sub-MGH2_acq-famp_TB1TFL.nii.gz:   9%|▋      | 83.6k/927k [00:00<00:01, 607kB/s]
sub-MGH2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/93.5k [00:00<?, ?B/s]
sub-MGH2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/96.1k [00:00<?, ?B/s]
sub-MGH2_acq-famp_TB1TFL.nii.gz:  31%|██▏    | 288k/927k [00:00<00:00, 1.12MB/s]



sub-MGH3_T2starw.json:   0%|                        | 0.00/2.43k [00:00<?, ?B/s]



                                                                                
sub-MGH2_acq-refv_TB1DREAM.nii.gz:  71%|██▊ | 66.6k/93.5k [00:00<00:00, 487kB/s]

                                                                                
sub-MGH2_acq-refv-1.5_TB1DREAM.nii.gz:  87%|▊| 83.6k/96.1k [00:00<00:00, 559kB/s


                                                                                
sub-MGH2_acq-famp_TB1TFL.nii.gz:  66%|████▌  | 611k/927k [00:00<00:00, 1.84MB/s]

sub-MGH2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MGH3_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]
                                                                                

sub-MGH3_T2starw.nii.gz:   0%|                      | 0.00/1.33M [00:00<?, ?B/s]
sub-MGH3_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.98k [00:00<?, ?B/s]

                                                                                

sub-MGH3_UNIT1.nii.gz:   0%|                        | 0.00/17.1M [00:00<?, ?B/s]
sub-MGH3_T2starw.nii.gz:   6%|▊             | 83.6k/1.33M [00:00<00:01, 695kB/s]


sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/8.41M [00:00<?, ?B/s]
sub-MGH3_UNIT1.nii.gz:   0%|                | 83.6k/17.1M [00:00<00:25, 699kB/s]
sub-MGH3_T2starw.nii.gz:  22%|███▏          | 305k/1.33M [00:00<00:00, 1.26MB/s]


sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/8.41M [00:00<00:14, 607kB/
sub-MGH3_inv-2_MP2RAGE.json:   0%|                  | 0.00/1.98k [00:00<?, ?B/s]



                                                                                
sub-MGH3_UNIT1.nii.gz:   2%|▎               | 305k/17.1M [00:00<00:13, 1.27MB/s]
sub-MGH3_T2starw.nii.gz:  94%|████████████▏| 1.24M/1.33M [00:00<00:00, 3.98MB/s]


sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 288k/8.41M [00:00<00:07, 1.12MB/
                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/10.4M [00:00<?, ?B/s]
sub-MGH3_UNIT1.nii.gz:   7%|█              | 1.24M/17.1M [00:00<00:04, 3.98MB/s]
sub-MGH3_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                


sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 1.14M/8.41M [00:00<00:02, 3.36MB
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/10.4M [00:00<00:17, 604kB/

sub-MGH3_UNIT1.nii.gz:  17%|██▌            | 2.87M/17.1M [00:00<00:01, 8.21MB/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 3.06M/8.41M [00:00<00:00, 8.47MB
sub-MGH3_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                

sub-MGH3_UNIT1.nii.gz:  30%|████▍          | 5.09M/17.1M [00:00<00:00, 12.7MB/s]
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 288k/10.4M [00:00<00:09, 1.11MB/
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 4.75M/8.41M [00:00<00:00, 11.3MB
sub-MGH3_UNIT1.nii.gz:  42%|██████▎        | 7.25M/17.1M [00:00<00:00, 15.7MB/s]
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 968k/10.4M [00:00<00:03, 3.28MB/
sub-MGH3_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]


sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  83%|▊| 6.99M/8.41M [00:00<00:00, 14.9MB
sub-MGH3_UNIT1.nii.gz:  54%|████████       | 9.25M/17.1M [00:00<00:00, 17.3MB/s]
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 1.95M/10.4M [00:00<00:01, 5.77MB
                                                                                
sub-MGH3_rec-uncombined01_T2starw.nii.gz:   8%| | 66.6k/795k [00:00<00:01, 488kB

sub-MGH3_UNIT1.nii.gz:  64%|█████████▋     | 11.0M/17.1M [00:00<00:00, 17.7MB/s]


sub-MGH3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/632k [00:00<?, ?B/s]
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 3.78M/10.4M [00:00<00:00, 10.2MB
sub-MGH3_UNIT1.nii.gz:  78%|███████████▊   | 13.4M/17.1M [00:01<00:00, 19.9MB/s]
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 6.16M/10.4M [00:00<00:00, 14.9MB



sub-MGH3_rec-uncombined01_T2starw.nii.gz:  34%|▎| 271k/795k [00:00<00:00, 1.10MB
sub-MGH3_rec-uncombined02_T2starw.nii.gz:  13%|▏| 83.5k/632k [00:00<00:00, 606kB
sub-MGH3_UNIT1.nii.gz:  92%|█████████████▋ | 15.7M/17.1M [00:01<00:00, 20.9MB/s]



                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 8.34M/10.4M [00:00<00:00, 16.3MB



sub-MGH3_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                


sub-MGH3_rec-uncombined02_T2starw.nii.gz:  32%|▎| 204k/632k [00:00<00:00, 852kB/
                                                                                
                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 9.94M/10.4M [00:00<00:00, 14.7MB
                                                                                
sub-MGH3_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

sub-MGH3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/683k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/758k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined03_T2starw.nii.gz:  12%| | 85.2k/683k [00:00<00:00, 622kB


sub-MGH3_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/768k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined04_T2starw.nii.gz:  11%| | 83.6k/758k [00:00<00:01, 581kB



sub-MGH3_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
sub-MGH3_rec-uncombined03_T2starw.nii.gz:  47%|▍| 323k/683k [00:00<00:00, 1.27MB


sub-MGH3_rec-uncombined05_T2starw.nii.gz:  11%| | 83.6k/768k [00:00<00:01, 607kB
                                                                                
sub-MGH3_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                


sub-MGH3_rec-uncombined04_T2starw.nii.gz:  40%|▍| 305k/758k [00:00<00:00, 1.16MB


sub-MGH3_rec-uncombined05_T2starw.nii.gz:  24%|▏| 186k/768k [00:00<00:00, 759kB/
                                                                                
                                                                                
sub-MGH3_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/751k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/808k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined06_T2starw.nii.gz:  11%| | 85.2k/751k [00:00<00:01, 627kB
sub-MGH3_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH3_rec-uncombined06_T2starw.nii.gz:  32%|▎| 239k/751k [00:00<00:00, 1.11MB


sub-MGH3_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/860k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined07_T2starw.nii.gz:  10%| | 83.6k/808k [00:00<00:01, 612kB
sub-MGH3_rec-uncombined06_T2starw.nii.gz:  88%|▉| 663k/751k [00:00<00:00, 2.35MB
                                                                                



sub-MGH3_rec-uncombined09_T2starw.nii.gz:  10%| | 83.6k/860k [00:00<00:01, 617kB
sub-MGH3_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/988k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined07_T2starw.nii.gz:  40%|▍| 322k/808k [00:00<00:00, 1.28MB
sub-MGH3_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                
                                                                                


sub-MGH3_rec-uncombined09_T2starw.nii.gz:  35%|▎| 305k/860k [00:00<00:00, 1.09MB
sub-MGH3_rec-uncombined08_T2starw.nii.gz:   9%| | 85.2k/988k [00:00<00:01, 550kB
                                                                                
sub-MGH3_rec-uncombined08_T2starw.nii.gz:  41%|▍| 408k/988k [00:00<00:00, 1.66MB
sub-MGH3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/824k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

sub-MGH3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined10_T2starw.nii.gz:  10%| | 83.6k/824k [00:00<00:01, 611kB
sub-MGH3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/910k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined10_T2starw.nii.gz:  35%|▎| 288k/824k [00:00<00:00, 1.29MB
sub-MGH3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/995k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined11_T2starw.nii.gz:   9%| | 83.6k/910k [00:00<00:01, 610kB

sub-MGH3_rec-uncombined10_T2starw.nii.gz:  76%|▊| 629k/824k [00:00<00:00, 2.18MB

                                                                                
sub-MGH3_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/776k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



                                                                                


sub-MGH3_rec-uncombined12_T2starw.nii.gz:   8%| | 83.6k/995k [00:00<00:01, 617kB
sub-MGH3_rec-uncombined11_T2starw.nii.gz:  33%|▎| 305k/910k [00:00<00:00, 1.20MB
sub-MGH3_rec-uncombined13_T2starw.nii.gz:  11%| | 83.6k/776k [00:00<00:01, 608kB
                                                                                
sub-MGH3_rec-uncombined12_T2starw.nii.gz:  31%|▎| 305k/995k [00:00<00:00, 1.21MB
sub-MGH3_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined13_T2starw.nii.gz:  39%|▍| 305k/776k [00:00<00:00, 1.18MB


                                                                                
sub-MGH3_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/799k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined14_T2starw.nii.gz:  10%| | 83.6k/799k [00:00<00:01, 612kB
sub-MGH3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/820k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH3_rec-uncombined14_T2starw.nii.gz:  36%|▎| 288k/799k [00:00<00:00, 1.13MB
sub-MGH3_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
                                                                                


sub-MGH3_rec-uncombined15_T2starw.nii.gz:  10%| | 83.6k/820k [00:00<00:01, 575kB
sub-MGH3_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined16_T2starw.nii.gz:   8%| | 83.6k/1.07M [00:00<00:01, 610k
sub-MGH3_rec-uncombined15_T2starw.nii.gz:  37%|▎| 305k/820k [00:00<00:00, 1.22MB
sub-MGH3_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.08M [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined16_T2starw.nii.gz:  28%|▎| 305k/1.07M [00:00<00:00, 1.11M
sub-MGH3_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]



sub-MGH3_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined17_T2starw.nii.gz:   8%| | 83.6k/1.08M [00:00<00:01, 591k


sub-MGH3_rec-uncombined16_T2starw.nii.gz:  99%|▉| 1.06M/1.07M [00:00<00:00, 3.58


                                                                                
sub-MGH3_rec-uncombined18_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 618k
sub-MGH3_rec-uncombined17_T2starw.nii.gz:  27%|▎| 305k/1.08M [00:00<00:00, 1.22M

sub-MGH3_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MGH3_rec-uncombined18_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 1.21M
sub-MGH3_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/994k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined18_T2starw.nii.gz:  85%|▊| 866k/0.99M [00:00<00:00, 2.88M



                                                                                
sub-MGH3_rec-uncombined19_T2starw.nii.gz:   8%| | 83.6k/994k [00:00<00:01, 614kB
sub-MGH3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.61k [00:00<?, ?B/s]

                                                                                
sub-MGH3_rec-uncombined19_T2starw.nii.gz:  26%|▎| 254k/994k [00:00<00:00, 1.15MB

sub-MGH3_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MGH3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/966k [00:00<?, ?B/s]

sub-MGH3_rec-uncombined20_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 608k



sub-MGH3_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]



                                                                                
sub-MGH3_rec-uncombined19_T2starw.nii.gz:  38%|▍| 374k/994k [00:00<00:00, 901kB/
sub-MGH3_rec-uncombined20_T2starw.nii.gz:  27%|▎| 288k/1.05M [00:00<00:00, 1.25M
sub-MGH3_acq-anat_TB1TFL.nii.gz:   9%|▌      | 85.2k/966k [00:00<00:01, 620kB/s]



sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.52M [00:00<?, ?B/s]
sub-MGH3_rec-uncombined19_T2starw.nii.gz:  94%|▉| 934k/994k [00:00<00:00, 2.18MB
                                                                                
sub-MGH3_rec-uncombined20_T2starw.nii.gz:  78%|▊| 832k/1.05M [00:00<00:00, 2.98M

                                                                                
sub-MGH3_acq-anat_TB1TFL.nii.gz:  42%|██▉    | 408k/966k [00:00<00:00, 1.62MB/s]
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.52M [00:00<00:07, 613kB/
sub-MGH3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.18k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:   4%| | 203k/4.52M [00:00<00:04, 918kB/s
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  13%|▏| 611k/4.52M [00:00<00:01, 2.19MB/
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.8M [00:00<?, ?B/s]
sub-MGH3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.08k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.42M/4.52M [00:00<00:00, 7.20MB


sub-MGH3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.65M [00:00<00:06, 61

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   0%| | 83.6k/16.8M [00:00<00:28, 618kB/s
                                                                                
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 288k/3.65M [00:00<00:02, 1.2

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   2%| | 305k/16.8M [00:00<00:14, 1.20MB/s
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  16%|▏| 612k/3.65M [00:00<00:01, 2.1

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   6%| | 1.06M/16.8M [00:00<00:04, 3.76MB/
sub-MGH3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/91.4k [00:00<?, ?B/s]



sub-MGH3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  44%|▍| 1.63M/3.65M [00:00<00:00, 5.




sub-MGH3_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.13k [00:00<?, ?B/s]




                                                                                

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.69M/16.8M [00:00<00:03, 4.75MB/
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  76%|▊| 2.79M/3.65M [00:00<00:00, 7.



sub-MGH3_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 83.6k/92.1k [00:00<00:00, 621kB/s


sub-MGH3_acq-famp-0.66_TB1DREAM.nii.gz:  91%|▉| 83.6k/91.4k [00:00<00:00, 615kB/



                                                                                


                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 3.39M/16.8M [00:00<00:01, 8.47MB/
                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  37%|▎| 6.15M/16.8M [00:00<00:00, 14.8MB/
sub-MGH3_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  59%|▌| 9.96M/16.8M [00:00<00:00, 22.4MB/
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 15.0M/16.8M [00:00<00:00, 31.8MB/
sub-MGH3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.7k [00:00<?, ?B/s]

                                                                                
sub-MGH3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/970k [00:00<?, ?B/s]


sub-MGH3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.65k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-famp_TB1DREAM.nii.gz:  91%|███▋| 83.5k/91.7k [00:00<00:00, 583kB/s]
                                                                                


sub-MGH3_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/970k [00:00<00:01, 691kB/s]
sub-MGH3_acq-famp_TB1TFL.nii.gz:  31%|██▏    | 305k/970k [00:00<00:00, 1.26MB/s]
sub-MGH3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/94.2k [00:00<?, ?B/s]

sub-MGH3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-MGH3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/98.6k [00:00<?, ?B/s]
sub-MGH3_acq-refv-0.66_TB1DREAM.nii.gz:  91%|▉| 85.2k/94.2k [00:00<00:00, 739kB/
                                                                                
sub-MGH3_acq-refv-1.5_TB1DREAM.nii.gz:  85%|▊| 83.6k/98.6k [00:00<00:00, 613kB/s

                                                                                
sub-MNI1_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]
                                                                                

sub-MGH3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/97.5k [00:00<?, ?B/s]
sub-MNI1_T2starw.nii.gz:   0%|                      | 0.00/1.33M [00:00<?, ?B/s]
sub-MNI1_UNIT1.json:   0%|                          | 0.00/2.02k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-refv_TB1DREAM.nii.gz:  68%|██▋ | 66.6k/97.5k [00:00<00:00, 541kB/s]
                                                                                
sub-MNI1_T2starw.nii.gz:   6%|▊             | 83.6k/1.33M [00:00<00:02, 612kB/s]
sub-MNI1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
                                                                                
sub-MNI1_UNIT1.nii.gz:   0%|                        | 0.00/25.9M [00:00<?, ?B/s]
sub-MNI1_T2starw.nii.gz:  22%|███▏          | 305k/1.33M [00:00<00:00, 1.20MB/s]
sub-MNI1_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]


                                                                                
sub-MNI1_UNIT1.nii.gz:   0%|                | 83.5k/25.9M [00:00<00:42, 633kB/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.1M [00:00<?, ?B/s]
sub-MNI1_T2starw.nii.gz:  93%|████████████▏| 1.24M/1.33M [00:00<00:00, 3.89MB/s]

                                                                                
sub-MNI1_UNIT1.nii.gz:   2%|▏               | 407k/25.9M [00:00<00:15, 1.70MB/s]

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.1M [00:00<?, ?B/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.1M [00:00<00:29, 611kB/
sub-MNI1_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI1_UNIT1.nii.gz:   6%|▉              | 1.64M/25.9M [00:00<00:04, 5.24MB/s]

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/19.1M [00:00<00:32, 608kB/
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/17.1M [00:00<00:14, 1.20MB/
sub-MNI1_UNIT1.nii.gz:  17%|██▌            | 4.52M/25.9M [00:00<00:01, 13.3MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 373k/19.1M [00:00<00:13, 1.49MB/



sub-MNI1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/822k [00:00<?, ?B/s]


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.11M/17.1M [00:00<00:04, 3.95MB
sub-MNI1_UNIT1.nii.gz:  31%|████▋          | 8.15M/25.9M [00:00<00:00, 21.0MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.08M/19.1M [00:00<00:05, 3.73MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.96M/17.1M [00:00<00:02, 5.65MB
sub-MNI1_rec-uncombined01_T2starw.nii.gz:  10%| | 83.6k/822k [00:00<00:01, 616kB
sub-MNI1_UNIT1.nii.gz:  40%|██████         | 10.4M/25.9M [00:00<00:00, 20.7MB/s]




sub-MNI1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]




                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 1.91M/19.1M [00:00<00:03, 5.40MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.72M/17.1M [00:00<00:02, 6.43MB
sub-MNI1_rec-uncombined01_T2starw.nii.gz:  37%|▎| 305k/822k [00:00<00:00, 1.21MB
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.63M/19.1M [00:00<00:01, 9.55MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  25%|▎| 4.28M/17.1M [00:00<00:01, 9.61MB
sub-MNI1_UNIT1.nii.gz:  48%|███████▏       | 12.5M/25.9M [00:00<00:00, 18.6MB/s]
                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.04M/19.1M [00:00<00:01, 11.0MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 5.56M/17.1M [00:00<00:01, 10.8MB
sub-MNI1_UNIT1.nii.gz:  56%|████████▎      | 14.4M/25.9M [00:01<00:00, 17.4MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.99M/19.1M [00:00<00:00, 13.9MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.52M/17.1M [00:00<00:00, 13.8MB



sub-MNI1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/766k [00:00<?, ?B/s]
sub-MNI1_UNIT1.nii.gz:  63%|█████████▍     | 16.2M/25.9M [00:01<00:00, 17.8MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.77M/19.1M [00:00<00:00, 15.3MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 9.28M/17.1M [00:00<00:00, 15.2MB
sub-MNI1_UNIT1.nii.gz:  70%|██████████▍    | 18.1M/25.9M [00:01<00:00, 18.3MB/s]




sub-MNI1_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                



sub-MNI1_rec-uncombined02_T2starw.nii.gz:  11%| | 83.6k/766k [00:00<00:01, 565kB
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  54%|▌| 10.3M/19.1M [00:00<00:00, 15.2MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 10.8M/17.1M [00:01<00:00, 15.1MB
sub-MNI1_UNIT1.nii.gz:  77%|███████████▌   | 19.9M/25.9M [00:01<00:00, 17.2MB/s]
sub-MNI1_rec-uncombined02_T2starw.nii.gz:  40%|▍| 305k/766k [00:00<00:00, 1.21MB

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 12.1M/19.1M [00:01<00:00, 16.3MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.6M/17.1M [00:01<00:00, 16.3MB
sub-MNI1_UNIT1.nii.gz:  83%|████████████▍  | 21.6M/25.9M [00:01<00:00, 17.4MB/s]



                                                                                
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  83%|▊| 14.2M/17.1M [00:01<00:00, 15.6MB

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  72%|▋| 13.7M/19.1M [00:01<00:00, 15.6MB
sub-MNI1_UNIT1.nii.gz:  90%|█████████████▍ | 23.3M/25.9M [00:01<00:00, 16.8MB/s]



sub-MNI1_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/843k [00:00<?, ?B/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 16.1M/17.1M [00:01<00:00, 17.1MB

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  82%|▊| 15.7M/19.1M [00:01<00:00, 17.2MB
                                                                                
sub-MNI1_UNIT1.nii.gz:  97%|██████████████▌| 25.3M/25.9M [00:01<00:00, 17.9MB/s]
                                                                                


sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 17.4M/19.1M [00:01<00:00, 17.4MB



sub-MNI1_rec-uncombined03_T2starw.nii.gz:   8%| | 66.5k/843k [00:00<00:01, 446kB
sub-MNI1_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI1_rec-uncombined03_T2starw.nii.gz:  32%|▎| 271k/843k [00:00<00:00, 1.10MB
                                                                                
sub-MNI1_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/914k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                

sub-MNI1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/865k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined04_T2starw.nii.gz:   9%| | 83.5k/914k [00:00<00:01, 658kB
sub-MNI1_rec-uncombined05_T2starw.nii.gz:  10%| | 83.6k/865k [00:00<00:01, 645kB
sub-MNI1_rec-uncombined04_T2starw.nii.gz:  35%|▎| 322k/914k [00:00<00:00, 1.31MB
sub-MNI1_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]



sub-MNI1_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/891k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]




                                                                                

sub-MNI1_rec-uncombined05_T2starw.nii.gz:  35%|▎| 305k/865k [00:00<00:00, 1.12MB
sub-MNI1_rec-uncombined04_T2starw.nii.gz:  80%|▊| 730k/914k [00:00<00:00, 2.40MB
                                                                                
                                                                                
sub-MNI1_rec-uncombined06_T2starw.nii.gz:  10%| | 83.6k/828k [00:00<00:01, 550kB



sub-MNI1_rec-uncombined07_T2starw.nii.gz:  10%| | 85.2k/891k [00:00<00:01, 611kB
sub-MNI1_rec-uncombined06_T2starw.nii.gz:  37%|▎| 305k/828k [00:00<00:00, 1.23MB



sub-MNI1_rec-uncombined07_T2starw.nii.gz:  46%|▍| 408k/891k [00:00<00:00, 1.65MB
sub-MNI1_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
                                                                                



                                                                                
sub-MNI1_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/979k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI1_rec-uncombined08_T2starw.nii.gz:   9%| | 83.6k/979k [00:00<00:01, 606kB
sub-MNI1_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/894k [00:00<?, ?B/s]


sub-MNI1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI1_rec-uncombined08_T2starw.nii.gz:  29%|▎| 288k/979k [00:00<00:00, 1.03MB


sub-MNI1_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/860k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined09_T2starw.nii.gz:   7%| | 66.6k/894k [00:00<00:01, 484kB
sub-MNI1_rec-uncombined10_T2starw.nii.gz:  10%| | 83.6k/860k [00:00<00:01, 608kB
sub-MNI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/941k [00:00<?, ?B/s]

sub-MNI1_rec-uncombined09_T2starw.nii.gz:  32%|▎| 288k/894k [00:00<00:00, 1.24MB
sub-MNI1_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI1_rec-uncombined10_T2starw.nii.gz:  35%|▎| 305k/860k [00:00<00:00, 1.19MB

                                                                                
sub-MNI1_rec-uncombined11_T2starw.nii.gz:   9%| | 85.2k/941k [00:00<00:01, 551kB


                                                                                
sub-MNI1_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/975k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined11_T2starw.nii.gz:  33%|▎| 307k/941k [00:00<00:00, 1.24MB
sub-MNI1_rec-uncombined12_T2starw.nii.gz:   9%| | 83.5k/975k [00:00<00:01, 605kB


sub-MNI1_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI1_rec-uncombined11_T2starw.nii.gz:  87%|▊| 817k/941k [00:00<00:00, 2.72MB
                                                                                
sub-MNI1_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/810k [00:00<?, ?B/s]

sub-MNI1_rec-uncombined12_T2starw.nii.gz:  42%|▍| 407k/975k [00:00<00:00, 1.63MB
                                                                                
sub-MNI1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI1_rec-uncombined13_T2starw.nii.gz:  10%| | 83.6k/810k [00:00<00:01, 568kB
sub-MNI1_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/800k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined13_T2starw.nii.gz:  38%|▍| 305k/810k [00:00<00:00, 1.21MB


sub-MNI1_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MNI1_rec-uncombined14_T2starw.nii.gz:  10%| | 83.6k/800k [00:00<00:01, 615kB
sub-MNI1_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

sub-MNI1_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/777k [00:00<?, ?B/s]

sub-MNI1_rec-uncombined14_T2starw.nii.gz:  21%|▏| 169k/800k [00:00<00:00, 704kB/
sub-MNI1_rec-uncombined15_T2starw.nii.gz:  11%| | 83.6k/777k [00:00<00:00, 793kB

sub-MNI1_rec-uncombined14_T2starw.nii.gz:  72%|▋| 577k/800k [00:00<00:00, 2.11MB
                                                                                

sub-MNI1_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/940k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI1_rec-uncombined15_T2starw.nii.gz:  39%|▍| 305k/777k [00:00<00:00, 1.33MB
sub-MNI1_rec-uncombined16_T2starw.nii.gz:   9%| | 83.6k/940k [00:00<00:01, 639kB
                                                                                
sub-MNI1_rec-uncombined16_T2starw.nii.gz:  32%|▎| 305k/940k [00:00<00:00, 1.40MB
sub-MNI1_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI1_rec-uncombined16_T2starw.nii.gz:  74%|▋| 696k/940k [00:00<00:00, 2.47MB

                                                                                
sub-MNI1_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/894k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined17_T2starw.nii.gz:   9%| | 83.6k/968k [00:00<00:01, 609kB
sub-MNI1_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/813k [00:00<?, ?B/s]

sub-MNI1_rec-uncombined18_T2starw.nii.gz:   9%| | 83.6k/894k [00:00<00:01, 616kB
sub-MNI1_rec-uncombined17_T2starw.nii.gz:  31%|▎| 305k/968k [00:00<00:00, 1.20MB



sub-MNI1_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI1_rec-uncombined19_T2starw.nii.gz:  10%| | 83.6k/813k [00:00<00:01, 572kB
sub-MNI1_rec-uncombined17_T2starw.nii.gz:  84%|▊| 815k/968k [00:00<00:00, 2.70MB
                                                                                


sub-MNI1_rec-uncombined18_T2starw.nii.gz:  32%|▎| 288k/894k [00:00<00:00, 1.07MB
                                                                                


sub-MNI1_rec-uncombined19_T2starw.nii.gz:  37%|▎| 305k/813k [00:00<00:00, 1.21MB
                                                                                
sub-MNI1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.60k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/924k [00:00<?, ?B/s]

sub-MNI1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]

                                                                                
sub-MNI1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined20_T2starw.nii.gz:   9%| | 83.6k/924k [00:00<00:01, 617kB
sub-MNI1_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.16k [00:00<?, ?B/s]


                                                                                
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.59M [00:00<?, ?B/s]
sub-MNI1_rec-uncombined20_T2starw.nii.gz:  33%|▎| 305k/924k [00:00<00:00, 1.34MB

sub-MNI1_acq-anat_TB1TFL.nii.gz:   9%|▌      | 83.5k/943k [00:00<00:01, 605kB/s]
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.68M [00:00<?, ?B/s]
sub-MNI1_rec-uncombined20_T2starw.nii.gz:  94%|▉| 867k/924k [00:00<00:00, 3.11MB
                                                                                



sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.59M [00:00<00:07, 675kB/
sub-MNI1_acq-anat_TB1TFL.nii.gz:  43%|███    | 407k/943k [00:00<00:00, 1.63MB/s]
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.5k/3.68M [00:00<00:06, 60

                                                                                
sub-MNI1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]


sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 356k/4.59M [00:00<00:02, 1.52MB/
                                                                                
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  10%| | 373k/3.68M [00:00<00:02, 1.4
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.46M/4.59M [00:00<00:00, 4.78MB
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  38%|▍| 1.41M/3.68M [00:00<00:00, 5.
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  98%|▉| 4.52M/4.59M [00:00<00:00, 13.7MB


                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.2M [00:00<?, ?B/s]

sub-MNI1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  67%|▋| 2.48M/3.68M [00:00<00:00, 7.
                                                                                

sub-MNI1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.9k [00:00<?, ?B/s]
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.5k/16.2M [00:00<00:24, 700kB/s
sub-MNI1_acq-famp-0.66_TB1DREAM.nii.gz:  72%|▋| 66.5k/92.9k [00:00<00:00, 488kB/

                                                                                
sub-MNI1_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   2%| | 373k/16.2M [00:00<00:11, 1.48MB/s
sub-MNI1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]
sub-MNI1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.11k [00:00<?, ?B/s]


                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.49M/16.2M [00:00<00:03, 4.83MB/
sub-MNI1_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 83.6k/92.1k [00:00<00:00, 613kB/s

                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  26%|▎| 4.15M/16.2M [00:00<00:01, 12.3MB/
sub-MNI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.3k [00:00<?, ?B/s]


sub-MNI1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]


                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 7.04M/16.2M [00:00<00:00, 18.0MB/
sub-MNI1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/952k [00:00<?, ?B/s]

sub-MNI1_acq-famp_TB1DREAM.nii.gz:  92%|███▋| 85.2k/92.3k [00:00<00:00, 628kB/s]
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  74%|▋| 12.0M/16.2M [00:00<00:00, 28.4MB/

                                                                                
sub-MNI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  92%|▉| 14.9M/16.2M [00:00<00:00, 28.5MB/


sub-MNI1_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/952k [00:00<00:01, 615kB/s]
                                                                                
sub-MNI1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.9k [00:00<?, ?B/s]
sub-MNI1_acq-famp_TB1TFL.nii.gz:  30%|██     | 288k/952k [00:00<00:00, 1.13MB/s]

sub-MNI1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]

                                                                                
sub-MNI1_acq-refv-0.66_TB1DREAM.nii.gz:  96%|▉| 85.2k/88.9k [00:00<00:00, 621kB/
                                                                                



sub-MNI1_acq-famp_TB1TFL.nii.gz:  84%|█████▊ | 798k/952k [00:00<00:00, 2.67MB/s]


                                                                                
sub-MNI1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/95.6k [00:00<?, ?B/s]

sub-MNI1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/94.5k [00:00<?, ?B/s]
sub-MNI2_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]


                                                                                
sub-MNI2_T2starw.nii.gz:   0%|                      | 0.00/1.18M [00:00<?, ?B/s]
sub-MNI1_acq-refv-1.5_TB1DREAM.nii.gz:  89%|▉| 85.2k/95.6k [00:00<00:00, 631kB/s
                                                                                
sub-MNI2_UNIT1.json:   0%|                          | 0.00/2.03k [00:00<?, ?B/s]

sub-MNI1_acq-refv_TB1DREAM.nii.gz:  90%|███▌| 85.2k/94.5k [00:00<00:00, 596kB/s]
                                                                                


                                                                                
sub-MNI2_T2starw.nii.gz:   3%|▍             | 32.6k/1.18M [00:00<00:04, 272kB/s]
sub-MNI2_T2starw.nii.gz:  21%|██▉           | 254k/1.18M [00:00<00:00, 1.29MB/s]
sub-MNI2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
                                                                                
sub-MNI2_T2starw.nii.gz:  52%|███████▎      | 628k/1.18M [00:00<00:00, 2.24MB/s]


                                                                                
sub-MNI2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
                                                                                

sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/14.8M [00:00<?, ?B/s]

sub-MNI2_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.6k/14.8M [00:00<00:22, 682kB/

sub-MNI2_UNIT1.nii.gz:   0%|                | 83.6k/26.1M [00:00<00:44, 609kB/s]
sub-MNI2_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/16.7M [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/14.8M [00:00<00:12, 1.25MB/
sub-MNI2_UNIT1.nii.gz:   1%|▏               | 305k/26.1M [00:00<00:22, 1.19MB/s]



sub-MNI2_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/718k [00:00<?, ?B/s]
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/16.7M [00:00<00:27, 643kB/
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.24M/14.8M [00:00<00:03, 3.97MB
sub-MNI2_UNIT1.nii.gz:   5%|▋              | 1.24M/26.1M [00:00<00:06, 3.87MB/s]



sub-MNI2_rec-uncombined01_T2starw.nii.gz:  12%| | 83.6k/718k [00:00<00:01, 607kB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  24%|▏| 3.63M/14.8M [00:00<00:01, 10.7MB




sub-MNI2_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]




                                                                                
sub-MNI2_UNIT1.nii.gz:  10%|█▍             | 2.59M/26.1M [00:00<00:03, 7.06MB/s]


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 305k/16.7M [00:00<00:14, 1.20MB/



sub-MNI2_rec-uncombined01_T2starw.nii.gz:  28%|▎| 203k/718k [00:00<00:00, 909kB/
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 4.97M/14.8M [00:00<00:00, 11.8MB
sub-MNI2_UNIT1.nii.gz:  16%|██▍            | 4.29M/26.1M [00:00<00:02, 10.4MB/s]


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 985k/16.7M [00:00<00:04, 3.36MB/



sub-MNI2_rec-uncombined01_T2starw.nii.gz:  94%|▉| 679k/718k [00:00<00:00, 2.48MB



                                                                                
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  42%|▍| 6.21M/14.8M [00:00<00:00, 12.1MB
sub-MNI2_UNIT1.nii.gz:  22%|███▏           | 5.62M/26.1M [00:00<00:01, 11.5MB/s]


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.90M/16.7M [00:00<00:02, 5.61MB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.08M/14.8M [00:00<00:00, 14.4MB



sub-MNI2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/723k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:  28%|████▏          | 7.37M/26.1M [00:00<00:01, 13.6MB/s]


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.57M/16.7M [00:00<00:01, 9.56MB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 9.80M/14.8M [00:00<00:00, 15.5MB




sub-MNI2_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 5.37M/16.7M [00:00<00:01, 11.9MB

sub-MNI2_UNIT1.nii.gz:  35%|█████▎         | 9.26M/26.1M [00:00<00:01, 14.5MB/s]



sub-MNI2_rec-uncombined02_T2starw.nii.gz:  12%| | 83.5k/723k [00:00<00:01, 600kB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 11.3M/14.8M [00:01<00:00, 15.4MB
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  43%|▍| 7.12M/16.7M [00:00<00:00, 13.8MB

sub-MNI2_UNIT1.nii.gz:  42%|██████▎        | 11.0M/26.1M [00:01<00:01, 15.6MB/s]
sub-MNI2_rec-uncombined02_T2starw.nii.gz:  56%|▌| 407k/723k [00:00<00:00, 1.62MB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.1M/14.8M [00:01<00:00, 16.3MB
                                                                                


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 8.54M/16.7M [00:00<00:00, 13.7MB

sub-MNI2_UNIT1.nii.gz:  48%|███████▏       | 12.5M/26.1M [00:01<00:00, 15.0MB/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 14.7M/14.8M [00:01<00:00, 15.6MB
                                                                                
sub-MNI2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/775k [00:00<?, ?B/s]


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 10.0M/16.7M [00:01<00:00, 14.2MB

sub-MNI2_UNIT1.nii.gz:  54%|████████       | 14.1M/26.1M [00:01<00:00, 15.3MB/s]
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 12.7M/16.7M [00:01<00:00, 18.2MB

sub-MNI2_UNIT1.nii.gz:  64%|█████████▌     | 16.7M/26.1M [00:01<00:00, 18.9MB/s]
sub-MNI2_rec-uncombined03_T2starw.nii.gz:  11%| | 83.6k/775k [00:00<00:01, 622kB
sub-MNI2_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                


sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 14.9M/16.7M [00:01<00:00, 19.1MB

sub-MNI2_UNIT1.nii.gz:  71%|██████████▋    | 18.7M/26.1M [00:01<00:00, 19.1MB/s]
sub-MNI2_rec-uncombined03_T2starw.nii.gz:  39%|▍| 305k/775k [00:00<00:00, 1.20MB


                                                                                

sub-MNI2_UNIT1.nii.gz:  78%|███████████▊   | 20.5M/26.1M [00:01<00:00, 19.2MB/s]


sub-MNI2_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/767k [00:00<?, ?B/s]
                                                                                
sub-MNI2_UNIT1.nii.gz:  91%|█████████████▋ | 23.9M/26.1M [00:01<00:00, 24.0MB/s]
sub-MNI2_rec-uncombined05_T2starw.nii.gz:  11%| | 83.6k/767k [00:00<00:00, 735kB

                                                                                
sub-MNI2_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/782k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined05_T2starw.nii.gz:  37%|▎| 288k/767k [00:00<00:00, 1.21MB
sub-MNI2_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



sub-MNI2_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                



                                                                                
sub-MNI2_rec-uncombined04_T2starw.nii.gz:  11%| | 83.6k/782k [00:00<00:01, 537kB


sub-MNI2_rec-uncombined05_T2starw.nii.gz:  80%|▊| 611k/767k [00:00<00:00, 2.03MB


                                                                                
sub-MNI2_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/760k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined04_T2starw.nii.gz:  41%|▍| 322k/782k [00:00<00:00, 1.30MB
                                                                                
sub-MNI2_rec-uncombined06_T2starw.nii.gz:  11%| | 83.6k/760k [00:00<00:01, 614kB
sub-MNI2_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/783k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                

sub-MNI2_rec-uncombined06_T2starw.nii.gz:  40%|▍| 305k/760k [00:00<00:00, 1.21MB
                                                                                
sub-MNI2_rec-uncombined07_T2starw.nii.gz:  11%| | 83.6k/783k [00:00<00:01, 544kB
sub-MNI2_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/784k [00:00<?, ?B/s]


sub-MNI2_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined07_T2starw.nii.gz:  45%|▍| 356k/783k [00:00<00:00, 1.45MB


sub-MNI2_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/781k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined08_T2starw.nii.gz:  11%| | 83.6k/784k [00:00<00:01, 617kB
sub-MNI2_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined09_T2starw.nii.gz:  11%| | 83.6k/781k [00:00<00:01, 609kB
sub-MNI2_rec-uncombined08_T2starw.nii.gz:  39%|▍| 305k/784k [00:00<00:00, 1.21MB
sub-MNI2_rec-uncombined09_T2starw.nii.gz:  39%|▍| 305k/781k [00:00<00:00, 1.19MB

                                                                                
sub-MNI2_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/782k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-MNI2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/845k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined10_T2starw.nii.gz:  11%| | 83.6k/782k [00:00<00:01, 667kB
sub-MNI2_rec-uncombined11_T2starw.nii.gz:  10%| | 83.6k/845k [00:00<00:01, 613kB
sub-MNI2_rec-uncombined10_T2starw.nii.gz:  39%|▍| 305k/782k [00:00<00:00, 1.43MB
sub-MNI2_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined10_T2starw.nii.gz:  82%|▊| 645k/782k [00:00<00:00, 2.16MB
                                                                                


sub-MNI2_rec-uncombined11_T2starw.nii.gz:  34%|▎| 288k/845k [00:00<00:00, 1.08MB
sub-MNI2_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/831k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined12_T2starw.nii.gz:  10%| | 83.6k/831k [00:00<00:01, 611kB
sub-MNI2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/727k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined12_T2starw.nii.gz:  31%|▎| 254k/831k [00:00<00:00, 1.18MB
sub-MNI2_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/730k [00:00<?, ?B/s]

sub-MNI2_rec-uncombined13_T2starw.nii.gz:  11%| | 83.5k/727k [00:00<00:01, 657kB
sub-MNI2_rec-uncombined12_T2starw.nii.gz:  73%|▋| 611k/831k [00:00<00:00, 2.12MB
                                                                                
sub-MNI2_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/667k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined14_T2starw.nii.gz:  12%| | 85.2k/730k [00:00<00:01, 619kB
sub-MNI2_rec-uncombined13_T2starw.nii.gz:  56%|▌| 407k/727k [00:00<00:00, 1.70MB

                                                                                

sub-MNI2_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI2_rec-uncombined15_T2starw.nii.gz:  13%|▏| 85.2k/667k [00:00<00:01, 580kB
sub-MNI2_rec-uncombined14_T2starw.nii.gz:  42%|▍| 306k/730k [00:00<00:00, 1.20MB
sub-MNI2_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI2_rec-uncombined15_T2starw.nii.gz:  61%|▌| 408k/667k [00:00<00:00, 1.64MB


                                                                                
                                                                                
sub-MNI2_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/780k [00:00<?, ?B/s]

sub-MNI2_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/816k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                


sub-MNI2_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined16_T2starw.nii.gz:  11%| | 83.6k/780k [00:00<00:01, 592kB

sub-MNI2_rec-uncombined17_T2starw.nii.gz:  10%| | 83.6k/816k [00:00<00:01, 611kB


sub-MNI2_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/788k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined16_T2starw.nii.gz:  39%|▍| 305k/780k [00:00<00:00, 1.34MB

sub-MNI2_rec-uncombined17_T2starw.nii.gz:  35%|▎| 288k/816k [00:00<00:00, 1.28MB
sub-MNI2_rec-uncombined18_T2starw.nii.gz:  11%| | 83.6k/788k [00:00<00:01, 613kB
sub-MNI2_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                

sub-MNI2_rec-uncombined17_T2starw.nii.gz:  75%|▋| 611k/816k [00:00<00:00, 2.04MB
sub-MNI2_rec-uncombined16_T2starw.nii.gz:  83%|▊| 645k/780k [00:00<00:00, 2.08MB
                                                                                


                                                                                
sub-MNI2_rec-uncombined18_T2starw.nii.gz:  32%|▎| 255k/788k [00:00<00:00, 1.08MB
sub-MNI2_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/666k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined19_T2starw.nii.gz:  13%|▏| 83.6k/666k [00:00<00:00, 616kB
sub-MNI2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.59k [00:00<?, ?B/s]

                                                                                

sub-MNI2_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/802k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined19_T2starw.nii.gz:  41%|▍| 271k/666k [00:00<00:00, 1.06MB
                                                                                

sub-MNI2_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/815k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined20_T2starw.nii.gz:  10%| | 83.6k/802k [00:00<00:01, 706kB
sub-MNI2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]


                                                                                
sub-MNI2_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.6k/815k [00:00<00:01, 612kB/s]


sub-MNI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined20_T2starw.nii.gz:  38%|▍| 305k/802k [00:00<00:00, 1.17MB
                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.13M [00:00<?, ?B/s]
sub-MNI2_acq-anat_TB1TFL.nii.gz:  33%|██▎    | 271k/815k [00:00<00:00, 1.06MB/s]
                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.13M [00:00<00:06, 613kB/
sub-MNI2_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]

sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:   9%| | 373k/4.13M [00:00<00:02, 1.48MB/


sub-MNI2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/91.6k [00:00<?, ?B/s]
sub-MNI2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  37%|▎| 1.51M/4.13M [00:00<00:00, 4.66MB
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.65M [00:00<00:06, 56


sub-MNI2_acq-famp-0.66_TB1DREAM.nii.gz:  91%|▉| 83.6k/91.6k [00:00<00:00, 616kB/


                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.9M [00:00<?, ?B/s]
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  94%|▉| 3.89M/4.13M [00:00<00:00, 10.9MB

                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.65M [00:00<00:02, 1.2
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.9M [00:00<00:27, 616kB/s
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  33%|▎| 1.19M/3.65M [00:00<00:00, 3.
sub-MNI2_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.12k [00:00<?, ?B/s]

                                                                                


sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   2%| | 288k/15.9M [00:00<00:15, 1.05MB/s
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  71%|▋| 2.59M/3.65M [00:00<00:00, 7.

sub-MNI2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.2k [00:00<?, ?B/s]
sub-MNI2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.11k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.11M/15.9M [00:00<00:04, 3.52MB/

sub-MNI2_acq-famp-1.5_TB1DREAM.nii.gz:  92%|▉| 83.6k/91.2k [00:00<00:00, 654kB/s

                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  25%|▏| 3.95M/15.9M [00:00<00:01, 12.0MB/
sub-MNI2_acq-famp_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  36%|▎| 5.70M/15.9M [00:00<00:00, 14.0MB/
sub-MNI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.6k [00:00<?, ?B/s]
sub-MNI2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/908k [00:00<?, ?B/s]


sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.6M/15.9M [00:00<00:00, 25.6MB/



sub-MNI2_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 14.4M/15.9M [00:00<00:00, 29.9MB/
sub-MNI2_acq-famp_TB1DREAM.nii.gz:  91%|███▋| 83.5k/91.6k [00:00<00:00, 606kB/s]
                                                                                


sub-MNI2_acq-famp_TB1TFL.nii.gz:   7%|▌      | 66.6k/908k [00:00<00:01, 495kB/s]
                                                                                
sub-MNI2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/79.3k [00:00<?, ?B/s]
sub-MNI2_acq-famp_TB1TFL.nii.gz:  32%|██▏    | 288k/908k [00:00<00:00, 1.16MB/s]
sub-MNI2_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 79.3k/79.3k [00:00<00:00, 607kB/
                                                                                

sub-MNI2_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/89.8k [00:00<?, ?B/s]
sub-MNI2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-MNI2_acq-refv-1.5_TB1DREAM.nii.gz:  93%|▉| 83.6k/89.8k [00:00<00:00, 611kB/s
                                                                                
sub-MNI2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/86.5k [00:00<?, ?B/s]

sub-MNI3_T2starw.json:   0%|                        | 0.00/2.53k [00:00<?, ?B/s]

                                                                                

sub-MNI3_T2starw.nii.gz:   0%|                      | 0.00/1.36M [00:00<?, ?B/s]
sub-MNI3_T2starw.nii.gz:   4%|▍             | 49.6k/1.36M [00:00<00:02, 480kB/s]
sub-MNI2_acq-refv_TB1DREAM.nii.gz:  97%|███▊| 83.6k/86.5k [00:00<00:00, 605kB/s]
                                                                                

sub-MNI3_UNIT1.json:   0%|                          | 0.00/2.15k [00:00<?, ?B/s]
                                                                                

sub-MNI3_T2starw.nii.gz:  10%|█▍             | 136k/1.36M [00:00<00:01, 686kB/s]
sub-MNI3_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-MNI3_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]

sub-MNI3_T2starw.nii.gz:  45%|██████▎       | 628k/1.36M [00:00<00:00, 2.20MB/s]
                                                                                

sub-MNI3_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.16k [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:   0%|                | 83.6k/26.1M [00:00<00:41, 664kB/s]

                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.3M [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:   1%|▏               | 305k/26.1M [00:00<00:20, 1.29MB/s]

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.3M [00:00<00:27, 658kB/
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.6M [00:00<?, ?B/s]
sub-MNI3_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]



                                                                                
sub-MNI3_UNIT1.nii.gz:   5%|▋              | 1.21M/26.1M [00:00<00:07, 3.69MB/s]

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 288k/17.3M [00:00<00:15, 1.16MB/



sub-MNI3_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/814k [00:00<?, ?B/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/19.6M [00:00<00:33, 616kB/
sub-MNI3_UNIT1.nii.gz:  14%|██             | 3.60M/26.1M [00:00<00:02, 10.4MB/s]

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.04M/17.3M [00:00<00:04, 3.76MB
sub-MNI3_rec-uncombined01_T2starw.nii.gz:  10%| | 85.2k/814k [00:00<00:01, 611kB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 305k/19.6M [00:00<00:14, 1.37MB/
sub-MNI3_UNIT1.nii.gz:  26%|███▉           | 6.77M/26.1M [00:00<00:01, 17.4MB/s]

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.96M/17.3M [00:00<00:02, 5.79MB
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 645k/19.6M [00:00<00:08, 2.23MB/




sub-MNI3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/765k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined01_T2starw.nii.gz:  46%|▍| 374k/814k [00:00<00:00, 1.48MB
sub-MNI3_UNIT1.nii.gz:  34%|█████          | 8.77M/26.1M [00:00<00:00, 18.5MB/s]

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.78M/17.3M [00:00<00:01, 10.2MB
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.56M/19.6M [00:00<00:03, 4.99MB



                                                                                
sub-MNI3_rec-uncombined02_T2starw.nii.gz:  11%| | 83.5k/765k [00:00<00:01, 609kB

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.95M/17.3M [00:00<00:01, 10.9MB
sub-MNI3_UNIT1.nii.gz:  41%|██████▏        | 10.7M/26.1M [00:00<00:00, 16.8MB/s]


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.45M/19.6M [00:00<00:02, 6.49MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.71M/17.3M [00:00<00:00, 13.3MB
sub-MNI3_UNIT1.nii.gz:  48%|███████▏       | 12.6M/26.1M [00:00<00:00, 17.6MB/s]




sub-MNI3_rec-uncombined02_T2starw.nii.gz:  33%|▎| 254k/765k [00:00<00:00, 976kB/


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.16M/19.6M [00:00<00:01, 10.2MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  49%|▍| 8.51M/17.3M [00:00<00:00, 15.0MB
sub-MNI3_rec-uncombined02_T2starw.nii.gz:  98%|▉| 747k/765k [00:00<00:00, 2.49MB
sub-MNI3_UNIT1.nii.gz:  55%|████████▏      | 14.3M/26.1M [00:01<00:00, 17.3MB/s]




                                                                                


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.73M/19.6M [00:00<00:01, 11.5MB



sub-MNI3_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]



                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 9.98M/17.3M [00:01<00:00, 13.6MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 7.09M/19.6M [00:00<00:01, 12.3MB
sub-MNI3_UNIT1.nii.gz:  61%|█████████▏     | 16.1M/26.1M [00:01<00:00, 15.7MB/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 11.9M/17.3M [00:01<00:00, 15.3MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.97M/19.6M [00:00<00:00, 14.5MB
sub-MNI3_UNIT1.nii.gz:  69%|██████████▎    | 17.9M/26.1M [00:01<00:00, 16.8MB/s]
sub-MNI3_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]



                                                                                

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  79%|▊| 13.7M/17.3M [00:01<00:00, 15.3MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 10.4M/19.6M [00:01<00:00, 14.7MB
sub-MNI3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:  75%|███████████▎   | 19.6M/26.1M [00:01<00:00, 16.3MB/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  90%|▉| 15.7M/17.3M [00:01<00:00, 16.8MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 12.3M/19.6M [00:01<00:00, 16.3MB
sub-MNI3_UNIT1.nii.gz:  82%|████████████▎  | 21.5M/26.1M [00:01<00:00, 17.3MB/s]



sub-MNI3_rec-uncombined03_T2starw.nii.gz:  10%| | 83.5k/828k [00:00<00:01, 613kB
                                                                                


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 13.9M/19.6M [00:01<00:00, 16.0MB
sub-MNI3_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                



sub-MNI3_rec-uncombined03_T2starw.nii.gz:  35%|▎| 289k/828k [00:00<00:00, 1.36MB
sub-MNI3_UNIT1.nii.gz:  89%|█████████████▎ | 23.2M/26.1M [00:01<00:00, 15.9MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 15.8M/19.6M [00:01<00:00, 17.2MB
sub-MNI3_UNIT1.nii.gz:  98%|██████████████▋| 25.6M/26.1M [00:01<00:00, 18.4MB/s]
sub-MNI3_rec-uncombined03_T2starw.nii.gz:  78%|▊| 645k/828k [00:00<00:00, 2.22MB
                                                                                




                                                                                


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 17.5M/19.6M [00:01<00:00, 17.4MB
                                                                                
sub-MNI3_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/898k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/844k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined04_T2starw.nii.gz:   9%| | 83.6k/898k [00:00<00:01, 611kB


sub-MNI3_rec-uncombined05_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                


sub-MNI3_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                
sub-MNI3_rec-uncombined05_T2starw.nii.gz:  10%| | 83.6k/844k [00:00<00:01, 549kB


sub-MNI3_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/821k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined04_T2starw.nii.gz:  30%|▎| 271k/898k [00:00<00:00, 1.06MB
sub-MNI3_rec-uncombined05_T2starw.nii.gz:  38%|▍| 322k/844k [00:00<00:00, 1.29MB
                                                                                



sub-MNI3_rec-uncombined06_T2starw.nii.gz:  10%| | 83.6k/821k [00:00<00:01, 569kB
                                                                                
sub-MNI3_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                



sub-MNI3_rec-uncombined06_T2starw.nii.gz:  37%|▎| 305k/821k [00:00<00:00, 1.14MB
                                                                                
sub-MNI3_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/872k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/945k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                
sub-MNI3_rec-uncombined07_T2starw.nii.gz:  10%| | 85.2k/872k [00:00<00:01, 623kB
sub-MNI3_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/861k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined08_T2starw.nii.gz:   9%| | 83.6k/945k [00:00<00:01, 601kB



sub-MNI3_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]



                                                                                
sub-MNI3_rec-uncombined09_T2starw.nii.gz:  10%| | 83.5k/861k [00:00<00:01, 653kB
sub-MNI3_rec-uncombined07_T2starw.nii.gz:  33%|▎| 289k/872k [00:00<00:00, 1.13MB
sub-MNI3_rec-uncombined08_T2starw.nii.gz:  32%|▎| 305k/945k [00:00<00:00, 1.18MB
                                                                                

sub-MNI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/847k [00:00<?, ?B/s]
                                                                                


sub-MNI3_rec-uncombined09_T2starw.nii.gz:  37%|▎| 322k/861k [00:00<00:00, 1.23MB
                                                                                
sub-MNI3_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_rec-uncombined10_T2starw.nii.gz:  10%| | 83.6k/847k [00:00<00:01, 611kB
sub-MNI3_rec-uncombined10_T2starw.nii.gz:  34%|▎| 288k/847k [00:00<00:00, 1.17MB

sub-MNI3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


sub-MNI3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/903k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MNI3_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                



sub-MNI3_rec-uncombined11_T2starw.nii.gz:   8%| | 68.2k/903k [00:00<00:01, 642kB
sub-MNI3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/933k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined11_T2starw.nii.gz:  15%|▏| 136k/903k [00:00<00:01, 668kB/
sub-MNI3_rec-uncombined12_T2starw.nii.gz:   9%| | 83.6k/933k [00:00<00:01, 614kB
sub-MNI3_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                

sub-MNI3_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/806k [00:00<?, ?B/s]


sub-MNI3_rec-uncombined11_T2starw.nii.gz:  68%|▋| 612k/903k [00:00<00:00, 2.08MB


                                                                                
sub-MNI3_rec-uncombined12_T2starw.nii.gz:  33%|▎| 305k/933k [00:00<00:00, 1.20MB


sub-MNI3_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/815k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined13_T2starw.nii.gz:  11%| | 85.2k/806k [00:00<00:01, 707kB
                                                                                
sub-MNI3_rec-uncombined14_T2starw.nii.gz:  10%| | 83.6k/815k [00:00<00:01, 613kB

sub-MNI3_rec-uncombined13_T2starw.nii.gz:  38%|▍| 306k/806k [00:00<00:00, 1.27MB
sub-MNI3_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                

sub-MNI3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/750k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined14_T2starw.nii.gz:  37%|▎| 305k/815k [00:00<00:00, 1.19MB

sub-MNI3_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_rec-uncombined15_T2starw.nii.gz:  11%| | 83.6k/750k [00:00<00:01, 561kB


                                                                                
sub-MNI3_rec-uncombined15_T2starw.nii.gz:  41%|▍| 305k/750k [00:00<00:00, 1.22MB
                                                                                

sub-MNI3_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/966k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.02M [00:00<?, ?B/s]
sub-MNI3_rec-uncombined16_T2starw.nii.gz:   9%| | 83.6k/966k [00:00<00:01, 721kB
sub-MNI3_rec-uncombined17_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 609k
sub-MNI3_rec-uncombined16_T2starw.nii.gz:  32%|▎| 305k/966k [00:00<00:00, 1.48MB
sub-MNI3_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                


sub-MNI3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                
sub-MNI3_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/965k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined17_T2starw.nii.gz:  24%|▏| 255k/1.02M [00:00<00:00, 1.18M
sub-MNI3_rec-uncombined16_T2starw.nii.gz:  67%|▋| 645k/966k [00:00<00:00, 2.33MB
                                                                                
sub-MNI3_rec-uncombined17_T2starw.nii.gz:  60%|▌| 628k/1.02M [00:00<00:00, 2.18M


sub-MNI3_rec-uncombined18_T2starw.nii.gz:   9%| | 83.6k/965k [00:00<00:01, 704kB

                                                                                
sub-MNI3_rec-uncombined18_T2starw.nii.gz:  32%|▎| 305k/965k [00:00<00:00, 1.27MB
sub-MNI3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.71k [00:00<?, ?B/s]
                                                                                

sub-MNI3_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/959k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/912k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined20_T2starw.nii.gz:   7%| | 66.6k/959k [00:00<00:01, 576kB


sub-MNI3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/921k [00:00<?, ?B/s]

sub-MNI3_rec-uncombined19_T2starw.nii.gz:   9%| | 83.6k/912k [00:00<00:01, 694kB
sub-MNI3_rec-uncombined20_T2starw.nii.gz:  30%|▎| 288k/959k [00:00<00:00, 1.39MB


sub-MNI3_acq-anat_TB1TFL.nii.gz:   9%|▋      | 83.6k/921k [00:00<00:01, 617kB/s]
sub-MNI3_rec-uncombined19_T2starw.nii.gz:  32%|▎| 288k/912k [00:00<00:00, 1.15MB



sub-MNI3_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.23k [00:00<?, ?B/s]



                                                                                



sub-MNI3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.25k [00:00<?, ?B/s]



                                                                                
sub-MNI3_rec-uncombined20_T2starw.nii.gz:  51%|▌| 492k/959k [00:00<00:00, 1.68MB

                                                                                
                                                                                
sub-MNI3_acq-anat_TB1TFL.nii.gz:  33%|██▎    | 305k/921k [00:00<00:00, 1.14MB/s]
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]
                                                                                

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]

sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.52M [00:00<?, ?B/s]
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.1M [00:00<?, ?B/s]
sub-MNI3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.21k [00:00<?, ?B/s]



                                                                                
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 85.2k/3.65M [00:00<00:06, 62

sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.52M [00:00<00:07, 615kB/


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/16.1M [00:00<00:27, 615kB/s
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 305k/4.52M [00:00<00:03, 1.37MB/
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:   9%| | 340k/3.65M [00:00<00:02, 1.3



sub-MNI3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.8k [00:00<?, ?B/s]


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   2%| | 305k/16.1M [00:00<00:13, 1.20MB/s
sub-MNI3_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.20k [00:00<?, ?B/s]




                                                                                
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  21%|▏| 799k/3.65M [00:00<00:01, 2.5

sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  14%|▏| 645k/4.52M [00:00<00:01, 2.09MB/


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   5%| | 883k/16.1M [00:00<00:05, 2.96MB/s
sub-MNI3_acq-famp-0.66_TB1DREAM.nii.gz:  92%|▉| 85.2k/92.8k [00:00<00:00, 618kB/



                                                                                
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  42%|▍| 1.55M/3.65M [00:00<00:00, 4.

sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  31%|▎| 1.39M/4.52M [00:00<00:00, 4.18MB


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.66M/16.1M [00:00<00:03, 4.84MB/
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  89%|▉| 3.26M/3.65M [00:00<00:00, 8.

sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  67%|▋| 3.02M/4.52M [00:00<00:00, 8.50MB
                                                                                



sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 3.33M/16.1M [00:00<00:01, 8.65MB/
                                                                                
sub-MNI3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.1k [00:00<?, ?B/s]


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 6.27M/16.1M [00:00<00:00, 15.5MB/
sub-MNI3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.74k [00:00<?, ?B/s]

                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  64%|▋| 10.3M/16.1M [00:00<00:00, 23.8MB/
sub-MNI3_acq-famp_TB1DREAM.nii.gz:  91%|███▋| 83.6k/92.1k [00:00<00:00, 615kB/s]
                                                                                
sub-MNI3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.22k [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.8M/16.1M [00:00<00:00, 26.5MB/


                                                                                
sub-MNI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/946k [00:00<?, ?B/s]
sub-MNI3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.2k [00:00<?, ?B/s]
sub-MNI3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.21k [00:00<?, ?B/s]


                                                                                
sub-MNI3_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/946k [00:00<00:01, 527kB/s]
sub-MNI3_acq-refv-0.66_TB1DREAM.nii.gz:  95%|▉| 83.6k/88.2k [00:00<00:00, 602kB/

                                                                                

sub-MNI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/93.7k [00:00<?, ?B/s]
sub-MNI3_acq-famp_TB1TFL.nii.gz:  34%|██▍    | 322k/946k [00:00<00:00, 1.31MB/s]
sub-MPI1_T2starw.nii.gz:   0%|                      | 0.00/1.29M [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-refv_TB1DREAM.nii.gz:  89%|███▌| 83.6k/93.7k [00:00<00:00, 618kB/s]

                                                                                
sub-MPI1_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]
                                                                                



sub-MPI1_T2starw.nii.gz:   5%|▋             | 66.6k/1.29M [00:00<00:02, 571kB/s]
sub-MPI1_UNIT1.json:   0%|                          | 0.00/2.04k [00:00<?, ?B/s]
                                                                                



sub-MPI1_T2starw.nii.gz:  11%|█▋             | 152k/1.29M [00:00<00:01, 703kB/s]
sub-MPI1_T2starw.nii.gz:  49%|██████▊       | 645k/1.29M [00:00<00:00, 2.31MB/s]
sub-MPI1_UNIT1.nii.gz:   0%|                        | 0.00/25.0M [00:00<?, ?B/s]

sub-MPI1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.06k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.5M [00:00<?, ?B/s]
sub-MPI1_UNIT1.nii.gz:   0%|                | 83.6k/25.0M [00:00<00:42, 615kB/s]
sub-MPI1_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.06k [00:00<?, ?B/s]


                                                                                

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 85.2k/18.5M [00:00<00:31, 617kB/
sub-MPI1_UNIT1.nii.gz:   1%|▏               | 305k/25.0M [00:00<00:21, 1.20MB/s]
sub-MPI1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.8M [00:00<?, ?B/s]

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 306k/18.5M [00:00<00:15, 1.19MB/
sub-MPI1_UNIT1.nii.gz:   5%|▋              | 1.21M/25.0M [00:00<00:06, 3.77MB/s]
sub-MPI1_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 766k/18.5M [00:00<00:07, 2.46MB/


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.5k/19.8M [00:00<00:34, 596kB/
sub-MPI1_UNIT1.nii.gz:  11%|█▋             | 2.76M/25.0M [00:00<00:03, 7.73MB/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.36M/18.5M [00:00<00:02, 7.42MB
sub-MPI1_UNIT1.nii.gz:  26%|███▊           | 6.42M/25.0M [00:00<00:01, 17.3MB/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 305k/19.8M [00:00<00:17, 1.17MB/
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.26M/18.5M [00:00<00:01, 11.5MB
sub-MPI1_UNIT1.nii.gz:  35%|█████▎         | 8.79M/25.0M [00:00<00:00, 19.6MB/s]



sub-MPI1_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/980k [00:00<?, ?B/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 968k/19.8M [00:00<00:06, 3.23MB/
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 6.37M/18.5M [00:00<00:00, 14.9MB




sub-MPI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/977k [00:00<?, ?B/s]
sub-MPI1_UNIT1.nii.gz:  43%|██████▍        | 10.8M/25.0M [00:00<00:00, 19.5MB/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.86M/19.8M [00:00<00:03, 5.41MB
sub-MPI1_rec-uncombined10_T2starw.nii.gz:   9%| | 83.6k/980k [00:00<00:01, 616kB

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 8.09M/18.5M [00:00<00:00, 15.9MB
sub-MPI1_rec-uncombined11_T2starw.nii.gz:   9%| | 83.5k/977k [00:00<00:01, 646kB


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.61M/19.8M [00:00<00:01, 9.68MB
sub-MPI1_UNIT1.nii.gz:  51%|███████▋       | 12.8M/25.0M [00:00<00:00, 19.1MB/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 9.95M/18.5M [00:00<00:00, 17.0MB
sub-MPI1_rec-uncombined10_T2starw.nii.gz:  33%|▎| 322k/980k [00:00<00:00, 1.27MB


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.22M/19.8M [00:00<00:01, 12.0MB
sub-MPI1_rec-uncombined11_T2starw.nii.gz:  40%|▍| 390k/977k [00:00<00:00, 1.66MB
sub-MPI1_UNIT1.nii.gz:  59%|████████▊      | 14.7M/25.0M [00:01<00:00, 18.1MB/s]

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 11.6M/18.5M [00:01<00:00, 16.4MB
sub-MPI1_rec-uncombined10_T2starw.nii.gz:  92%|▉| 900k/980k [00:00<00:00, 3.01MB



                                                                                


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.44M/19.8M [00:00<00:01, 11.9MB
sub-MPI1_rec-uncombined11_T2starw.nii.gz:  89%|▉| 867k/977k [00:00<00:00, 2.91MB




                                                                                
sub-MPI1_UNIT1.nii.gz:  66%|█████████▉     | 16.5M/25.0M [00:01<00:00, 15.6MB/s]

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  72%|▋| 13.2M/18.5M [00:01<00:00, 14.7MB


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.78M/19.8M [00:00<00:01, 12.5MB
sub-MPI1_UNIT1.nii.gz:  73%|██████████▉    | 18.3M/25.0M [00:01<00:00, 16.5MB/s]

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 15.1M/18.5M [00:01<00:00, 16.1MB


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.66M/19.8M [00:01<00:00, 14.6MB
sub-MPI1_UNIT1.nii.gz:  81%|████████████▏  | 20.3M/25.0M [00:01<00:00, 17.5MB/s]

sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  92%|▉| 17.1M/18.5M [00:01<00:00, 17.3MB



sub-MPI1_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.6M/19.8M [00:01<00:00, 15.2MB



sub-MPI1_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/969k [00:00<?, ?B/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 13.0M/19.8M [00:01<00:00, 15.3MB
sub-MPI1_UNIT1.nii.gz:  88%|█████████████▏ | 22.0M/25.0M [00:01<00:00, 16.1MB/s]
sub-MPI1_rec-uncombined12_T2starw.nii.gz:   9%| | 85.2k/969k [00:00<00:01, 629kB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 15.8M/19.8M [00:01<00:00, 19.2MB
sub-MPI1_UNIT1.nii.gz:  99%|██████████████▊| 24.8M/25.0M [00:01<00:00, 19.4MB/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 19.3M/19.8M [00:01<00:00, 24.2MB



sub-MPI1_rec-uncombined12_T2starw.nii.gz:  32%|▎| 306k/969k [00:00<00:00, 1.22MB


                                                                                
sub-MPI1_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                




                                                                                
sub-MPI1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/954k [00:00<?, ?B/s]
sub-MPI1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined13_T2starw.nii.gz:   9%| | 85.2k/954k [00:00<00:01, 620kB
sub-MPI1_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined13_T2starw.nii.gz:  32%|▎| 306k/954k [00:00<00:00, 1.26MB
sub-MPI1_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined14_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 627k
sub-MPI1_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/971k [00:00<?, ?B/s]


sub-MPI1_rec-uncombined16_T2starw.nii.gz:   8%| | 85.2k/1.01M [00:00<00:01, 619k
sub-MPI1_rec-uncombined14_T2starw.nii.gz:  29%|▎| 305k/1.03M [00:00<00:00, 1.21M
sub-MPI1_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                


sub-MPI1_rec-uncombined16_T2starw.nii.gz:  31%|▎| 323k/1.01M [00:00<00:00, 1.53M
sub-MPI1_rec-uncombined15_T2starw.nii.gz:   9%| | 83.5k/971k [00:00<00:01, 615kB

                                                                                
sub-MPI1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined16_T2starw.nii.gz:  81%|▊| 833k/1.01M [00:00<00:00, 2.88M


                                                                                
sub-MPI1_rec-uncombined15_T2starw.nii.gz:  42%|▍| 407k/971k [00:00<00:00, 1.61MB
                                                                                
sub-MPI1_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined17_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 607k

sub-MPI1_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined17_T2starw.nii.gz:  26%|▎| 271k/1.01M [00:00<00:00, 1.04M
sub-MPI1_rec-uncombined18_T2starw.nii.gz:   8%| | 83.5k/1.04M [00:00<00:01, 611k
                                                                                
sub-MPI1_rec-uncombined18_T2starw.nii.gz:  36%|▎| 390k/1.04M [00:00<00:00, 1.84M


sub-MPI1_rec-uncombined19_T2starw.nii.gz:   8%| | 83.6k/1.06M [00:00<00:01, 618k
sub-MPI1_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

sub-MPI1_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined18_T2starw.nii.gz:  78%|▊| 832k/1.04M [00:00<00:00, 2.88M

                                                                                
sub-MPI1_rec-uncombined19_T2starw.nii.gz:  30%|▎| 322k/1.06M [00:00<00:00, 1.30M
sub-MPI1_rec-uncombined1_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 610kB
                                                                                
sub-MPI1_rec-uncombined1_T2starw.nii.gz:  27%|▎| 271k/0.99M [00:00<00:00, 1.27MB

sub-MPI1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined1_T2starw.nii.gz:  57%|▌| 577k/0.99M [00:00<00:00, 1.96MB
                                                                                
sub-MPI1_rec-uncombined21_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined20_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 601k
sub-MPI1_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined20_T2starw.nii.gz:  25%|▎| 271k/1.05M [00:00<00:00, 1.05M
sub-MPI1_rec-uncombined21_T2starw.nii.gz:   8%| | 83.5k/1.03M [00:00<00:01, 604k


sub-MPI1_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MPI1_rec-uncombined20_T2starw.nii.gz:  54%|▌| 577k/1.05M [00:00<00:00, 1.79M


sub-MPI1_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined21_T2starw.nii.gz:  34%|▎| 356k/1.03M [00:00<00:00, 1.69M

sub-MPI1_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined22_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 610k
sub-MPI1_rec-uncombined21_T2starw.nii.gz:  79%|▊| 832k/1.03M [00:00<00:00, 2.89M
                                                                                
sub-MPI1_rec-uncombined23_T2starw.nii.gz:   8%| | 83.6k/1.04M [00:00<00:01, 614k

sub-MPI1_rec-uncombined22_T2starw.nii.gz:  28%|▎| 305k/1.05M [00:00<00:00, 1.20M
sub-MPI1_rec-uncombined24_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

sub-MPI1_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined23_T2starw.nii.gz:  29%|▎| 305k/1.04M [00:00<00:00, 1.21M


                                                                                
                                                                                
sub-MPI1_rec-uncombined24_T2starw.nii.gz:   8%| | 83.5k/0.99M [00:00<00:01, 603k

sub-MPI1_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined24_T2starw.nii.gz:  40%|▍| 407k/0.99M [00:00<00:00, 1.62M
sub-MPI1_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/968k [00:00<?, ?B/s]


sub-MPI1_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MPI1_rec-uncombined24_T2starw.nii.gz:  94%|▉| 952k/0.99M [00:00<00:00, 3.08M


sub-MPI1_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI1_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/993k [00:00<?, ?B/s]

sub-MPI1_rec-uncombined2_T2starw.nii.gz:   9%| | 83.5k/968k [00:00<00:01, 497kB/
sub-MPI1_rec-uncombined3_T2starw.nii.gz:   8%| | 83.6k/993k [00:00<00:01, 794kB/

sub-MPI1_rec-uncombined2_T2starw.nii.gz:  33%|▎| 322k/968k [00:00<00:00, 1.33MB/
                                                                                
sub-MPI1_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined3_T2starw.nii.gz:  34%|▎| 339k/993k [00:00<00:00, 1.35MB/

sub-MPI1_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/967k [00:00<?, ?B/s]


sub-MPI1_rec-uncombined5_T2starw.nii.gz:   0%|      | 0.00/0.98M [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined4_T2starw.nii.gz:   9%| | 83.6k/967k [00:00<00:01, 670kB/


sub-MPI1_rec-uncombined5_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 633kB
sub-MPI1_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/967k [00:00<?, ?B/s]
sub-MPI1_rec-uncombined4_T2starw.nii.gz:  35%|▎| 339k/967k [00:00<00:00, 1.39MB/


sub-MPI1_rec-uncombined5_T2starw.nii.gz:  30%|▎| 305k/0.98M [00:00<00:00, 1.22MB



sub-MPI1_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
                                                                                

sub-MPI1_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined5_T2starw.nii.gz:  68%|▋| 680k/0.98M [00:00<00:00, 2.06MB
sub-MPI1_rec-uncombined6_T2starw.nii.gz:   9%| | 83.6k/967k [00:00<00:01, 513kB/


                                                                                
sub-MPI1_rec-uncombined6_T2starw.nii.gz:  30%|▎| 288k/967k [00:00<00:00, 1.17MB/
                                                                                
sub-MPI1_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]

sub-MPI1_rec-uncombined9_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                

sub-MPI1_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/996k [00:00<?, ?B/s]
sub-MPI1_rec-uncombined7_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 614kB
sub-MPI1_rec-uncombined8_T2starw.nii.gz:   8%| | 83.6k/996k [00:00<00:01, 605kB/
sub-MPI1_rec-uncombined7_T2starw.nii.gz:  29%|▎| 305k/1.01M [00:00<00:00, 1.20MB


sub-MPI1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]


                                                                                
sub-MPI1_rec-uncombined9_T2starw.nii.gz:   0%|       | 0.00/981k [00:00<?, ?B/s]



sub-MPI1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/844k [00:00<?, ?B/s]
                                                                                


sub-MPI1_rec-uncombined8_T2starw.nii.gz:  29%|▎| 288k/996k [00:00<00:00, 1.12MB/
sub-MPI1_rec-uncombined9_T2starw.nii.gz:   9%| | 85.2k/981k [00:00<00:01, 626kB/



sub-MPI1_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.6k/844k [00:00<00:01, 613kB/s]

                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]
                                                                                



sub-MPI1_rec-uncombined9_T2starw.nii.gz:  35%|▎| 340k/981k [00:00<00:00, 1.36MB/
sub-MPI1_acq-anat_TB1TFL.nii.gz:  34%|██▍    | 288k/844k [00:00<00:00, 1.13MB/s]
                                                                                
                                                                                
sub-MPI1_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.16k [00:00<?, ?B/s]
                                                                                

sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.99M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.59M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/3.99M [00:00<00:05, 685kB/
sub-MPI1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.05k [00:00<?, ?B/s]


                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:   5%| | 220k/3.99M [00:00<00:03, 1.03MB/

sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.59M [00:00<00:06, 61
sub-MPI1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.07k [00:00<?, ?B/s]


                                                                                


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.6M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  15%|▏| 628k/3.99M [00:00<00:01, 2.33MB/
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.59M [00:00<00:02, 1.2
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.6M [00:00<00:22, 739kB/s
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  63%|▋| 2.50M/3.99M [00:00<00:00, 7.71MB
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.23M/3.59M [00:00<00:00, 4.
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   1%| | 237k/15.6M [00:00<00:13, 1.19MB/s
sub-MPI1_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.07k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  61%|▌| 2.18M/3.59M [00:00<00:00, 6.

                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   4%| | 628k/15.6M [00:00<00:06, 2.33MB/s
sub-MPI1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.2k [00:00<?, ?B/s]
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.42M/15.6M [00:00<00:01, 8.59MB/
sub-MPI1_acq-famp-0.66_TB1DREAM.nii.gz:  96%|▉| 83.6k/87.2k [00:00<00:00, 606kB/
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.36M/15.6M [00:00<00:00, 12.7MB/
sub-MPI1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/88.6k [00:00<?, ?B/s]
sub-MPI1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.05k [00:00<?, ?B/s]

                                                                                

sub-MPI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/87.9k [00:00<?, ?B/s]
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  52%|▌| 8.15M/15.6M [00:00<00:00, 21.7MB/
sub-MPI1_acq-famp-1.5_TB1DREAM.nii.gz:  94%|▉| 83.6k/88.6k [00:00<00:00, 613kB/s
                                                                                
sub-MPI1_acq-famp_TB1DREAM.nii.gz:  95%|███▊| 83.6k/87.9k [00:00<00:00, 702kB/s]


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 11.8M/15.6M [00:00<00:00, 27.1MB/

                                                                                
sub-MPI1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  94%|▉| 14.7M/15.6M [00:00<00:00, 28.0MB/


                                                                                
sub-MPI1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/948k [00:00<?, ?B/s]

sub-MPI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]

                                                                                
sub-MPI1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.08k [00:00<?, ?B/s]

                                                                                
sub-MPI1_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/948k [00:00<00:01, 649kB/s]
sub-MPI1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/82.7k [00:00<?, ?B/s]
sub-MPI1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/90.7k [00:00<?, ?B/s]
sub-MPI1_acq-famp_TB1TFL.nii.gz:  30%|██     | 288k/948k [00:00<00:00, 1.20MB/s]
sub-MPI1_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 82.7k/82.7k [00:00<00:00, 606kB/

                                                                                
                                                                                
sub-MPI1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.0k [00:00<?, ?B/s]


sub-MPI1_acq-refv-1.5_TB1DREAM.nii.gz:  92%|▉| 83.6k/90.7k [00:00<00:00, 604kB/s


                                                                                
sub-MPI1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.06k [00:00<?, ?B/s]

                                                                                
sub-MPI1_acq-refv_TB1DREAM.nii.gz:  95%|███▊| 83.6k/88.0k [00:00<00:00, 614kB/s]
                                                                                
sub-MPI2_T2starw.nii.gz:   0%|                      | 0.00/1.27M [00:00<?, ?B/s]
sub-MPI2_T2starw.json:   0%|                        | 0.00/2.40k [00:00<?, ?B/s]

                                                                                

sub-MPI2_UNIT1.json:   0%|                          | 0.00/2.03k [00:00<?, ?B/s]

                                                                                
sub-MPI2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.05k [00:00<?, ?B/s]

                                                                                
sub-MPI2_T2starw.nii.gz:   4%|▌             | 50.6k/1.27M [00:00<00:02, 512kB/s]
sub-MPI2_T2starw.nii.gz:  10%|█▌             | 136k/1.27M [00:00<00:01, 691kB/s]

sub-MPI2_UNIT1.nii.gz:   0%|                        | 0.00/25.5M [00:00<?, ?B/s]
sub-MPI2_T2starw.nii.gz:  48%|██████▋       | 628k/1.27M [00:00<00:00, 2.23MB/s]

sub-MPI2_UNIT1.nii.gz:   0%|                | 83.6k/25.5M [00:00<00:43, 610kB/s]


sub-MPI2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.05k [00:00<?, ?B/s]


                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.2M [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


sub-MPI2_UNIT1.nii.gz:   1%|                 | 170k/25.5M [00:00<00:37, 714kB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/18.2M [00:00<00:29, 651kB/
sub-MPI2_UNIT1.nii.gz:   2%|▎               | 577k/25.5M [00:00<00:12, 2.11MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/18.2M [00:00<00:15, 1.23MB/
sub-MPI2_UNIT1.nii.gz:   9%|█▎             | 2.22M/25.5M [00:00<00:03, 7.38MB/s]
sub-MPI2_rec-uncombined10_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/971k [00:00<?, ?B/s]


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.06M/18.2M [00:00<00:04, 3.81MB

sub-MPI2_UNIT1.nii.gz:  18%|██▋            | 4.50M/25.5M [00:00<00:01, 12.9MB/s]
sub-MPI2_rec-uncombined10_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 611k




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.4M [00:00<?, ?B/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.49M/18.2M [00:00<00:02, 7.72MB

sub-MPI2_UNIT1.nii.gz:  31%|████▋          | 8.00M/25.5M [00:00<00:00, 20.6MB/s]
sub-MPI2_rec-uncombined11_T2starw.nii.gz:   9%| | 83.6k/971k [00:00<00:01, 598kB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 4.72M/18.2M [00:00<00:01, 13.0MB
sub-MPI2_rec-uncombined10_T2starw.nii.gz:  30%|▎| 305k/0.98M [00:00<00:00, 1.20M




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/19.4M [00:00<00:33, 614kB/

sub-MPI2_UNIT1.nii.gz:  40%|██████         | 10.3M/25.5M [00:00<00:00, 21.6MB/s]
sub-MPI2_rec-uncombined11_T2starw.nii.gz:  30%|▎| 288k/971k [00:00<00:00, 1.12MB


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.68M/18.2M [00:00<00:00, 15.4MB
sub-MPI2_rec-uncombined10_T2starw.nii.gz:  87%|▊| 867k/0.98M [00:00<00:00, 2.89M
                                                                                
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 322k/19.4M [00:00<00:15, 1.28MB/

sub-MPI2_UNIT1.nii.gz:  49%|███████▎       | 12.4M/25.5M [00:00<00:00, 20.0MB/s]
sub-MPI2_rec-uncombined11_T2starw.nii.gz:  86%|▊| 833k/971k [00:00<00:00, 2.78MB



                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.22M/18.2M [00:00<00:00, 14.0MB




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 901k/19.4M [00:00<00:06, 3.02MB/
sub-MPI2_UNIT1.nii.gz:  57%|████████▍      | 14.4M/25.5M [00:01<00:00, 18.5MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 10.2M/18.2M [00:00<00:00, 15.9MB




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.28M/19.4M [00:00<00:02, 7.09MB
sub-MPI2_UNIT1.nii.gz:  64%|█████████▌     | 16.3M/25.5M [00:01<00:00, 18.8MB/s]
sub-MPI2_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.70M/19.4M [00:00<00:01, 9.68MB


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 11.8M/18.2M [00:01<00:00, 15.7MB
sub-MPI2_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


sub-MPI2_UNIT1.nii.gz:  71%|██████████▋    | 18.1M/25.5M [00:01<00:00, 16.7MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.19M/19.4M [00:00<00:01, 11.6MB


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  73%|▋| 13.3M/18.2M [00:01<00:00, 15.5MB
sub-MPI2_UNIT1.nii.gz:  79%|███████████▊   | 20.1M/25.5M [00:01<00:00, 17.8MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  37%|▎| 7.14M/19.4M [00:00<00:00, 14.4MB


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 15.3M/18.2M [00:01<00:00, 16.9MB
sub-MPI2_UNIT1.nii.gz:  87%|█████████████  | 22.1M/25.5M [00:01<00:00, 18.5MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 9.08M/19.4M [00:00<00:00, 16.2MB


sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 17.2M/18.2M [00:01<00:00, 17.9MB
sub-MPI2_rec-uncombined12_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]



sub-MPI2_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                
                                                                                

sub-MPI2_UNIT1.nii.gz:  94%|██████████████ | 23.9M/25.5M [00:01<00:00, 16.4MB/s]




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 10.7M/19.4M [00:01<00:00, 14.8MB
sub-MPI2_rec-uncombined12_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 614k
                                                                                




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 13.1M/19.4M [00:01<00:00, 17.8MB
sub-MPI2_rec-uncombined12_T2starw.nii.gz:  35%|▎| 356k/0.98M [00:00<00:00, 1.42M




sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 17.6M/19.4M [00:01<00:00, 26.3MB
                                                                                
                                                                                

sub-MPI2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined13_T2starw.nii.gz:   9%| | 83.6k/968k [00:00<00:01, 643kB
sub-MPI2_rec-uncombined14_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 610k
sub-MPI2_rec-uncombined13_T2starw.nii.gz:  31%|▎| 305k/968k [00:00<00:00, 1.40MB
sub-MPI2_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                


sub-MPI2_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/984k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined13_T2starw.nii.gz:  67%|▋| 645k/968k [00:00<00:00, 2.25MB
                                                                                


sub-MPI2_rec-uncombined14_T2starw.nii.gz:  28%|▎| 305k/1.05M [00:00<00:00, 1.20M
sub-MPI2_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]
                                                                                


sub-MPI2_rec-uncombined15_T2starw.nii.gz:   9%| | 85.2k/984k [00:00<00:01, 542kB
sub-MPI2_rec-uncombined16_T2starw.nii.gz:   8%| | 83.6k/1.06M [00:00<00:01, 608k
sub-MPI2_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                


sub-MPI2_rec-uncombined15_T2starw.nii.gz:  41%|▍| 408k/984k [00:00<00:00, 1.59MB
sub-MPI2_rec-uncombined16_T2starw.nii.gz:  28%|▎| 305k/1.06M [00:00<00:00, 1.20M
                                                                                

sub-MPI2_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.00M [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


sub-MPI2_rec-uncombined17_T2starw.nii.gz:   8%| | 85.2k/1.00M [00:00<00:01, 565k
sub-MPI2_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined17_T2starw.nii.gz:  28%|▎| 289k/1.00M [00:00<00:00, 1.13M
sub-MPI2_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined18_T2starw.nii.gz:   8%| | 83.5k/1.04M [00:00<00:01, 609k
sub-MPI2_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined19_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 541k
sub-MPI2_rec-uncombined18_T2starw.nii.gz:  38%|▍| 407k/1.04M [00:00<00:00, 1.60M
sub-MPI2_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]


sub-MPI2_rec-uncombined19_T2starw.nii.gz:  29%|▎| 305k/1.03M [00:00<00:00, 1.23M
                                                                                
                                                                                

sub-MPI2_rec-uncombined1_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 604kB
sub-MPI2_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]


sub-MPI2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
sub-MPI2_rec-uncombined1_T2starw.nii.gz:  28%|▎| 288k/0.99M [00:00<00:00, 1.12MB
sub-MPI2_rec-uncombined20_T2starw.nii.gz:   8%| | 83.6k/1.04M [00:00<00:01, 612k


sub-MPI2_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI2_rec-uncombined20_T2starw.nii.gz:  29%|▎| 305k/1.04M [00:00<00:00, 1.20M

sub-MPI2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined21_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI2_rec-uncombined21_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 610k
sub-MPI2_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]

sub-MPI2_rec-uncombined21_T2starw.nii.gz:  27%|▎| 288k/1.03M [00:00<00:00, 1.12M


sub-MPI2_rec-uncombined24_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI2_rec-uncombined22_T2starw.nii.gz:   8%| | 83.6k/1.06M [00:00<00:01, 609k

sub-MPI2_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined22_T2starw.nii.gz:  27%|▎| 288k/1.06M [00:00<00:00, 1.12M
sub-MPI2_rec-uncombined23_T2starw.nii.gz:   8%| | 85.2k/1.04M [00:00<00:01, 621k
sub-MPI2_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/959k [00:00<?, ?B/s]


sub-MPI2_rec-uncombined24_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 608k
sub-MPI2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]




                                                                                
sub-MPI2_rec-uncombined22_T2starw.nii.gz:  79%|▊| 849k/1.06M [00:00<00:00, 2.46M
                                                                                
sub-MPI2_rec-uncombined23_T2starw.nii.gz:  29%|▎| 306k/1.04M [00:00<00:00, 1.14M



sub-MPI2_rec-uncombined2_T2starw.nii.gz:   9%| | 85.2k/959k [00:00<00:01, 630kB/
sub-MPI2_rec-uncombined24_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 1.19M
                                                                                
                                                                                



sub-MPI2_rec-uncombined2_T2starw.nii.gz:  30%|▎| 289k/959k [00:00<00:00, 1.11MB/
                                                                                
sub-MPI2_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/999k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined3_T2starw.nii.gz:   8%| | 83.6k/999k [00:00<00:01, 624kB/
sub-MPI2_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined3_T2starw.nii.gz:  30%|▎| 305k/999k [00:00<00:00, 1.21MB/

sub-MPI2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/971k [00:00<?, ?B/s]
                                                                                

sub-MPI2_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/981k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined4_T2starw.nii.gz:   9%| | 83.6k/971k [00:00<00:01, 611kB/
sub-MPI2_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]


                                                                                
sub-MPI2_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/970k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined5_T2starw.nii.gz:   9%| | 85.2k/981k [00:00<00:01, 679kB/
sub-MPI2_rec-uncombined4_T2starw.nii.gz:  31%|▎| 305k/971k [00:00<00:00, 1.20MB/
sub-MPI2_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]



                                                                                


sub-MPI2_rec-uncombined6_T2starw.nii.gz:   9%| | 83.6k/970k [00:00<00:01, 576kB/
sub-MPI2_rec-uncombined5_T2starw.nii.gz:  38%|▍| 374k/981k [00:00<00:00, 1.49MB/
sub-MPI2_rec-uncombined4_T2starw.nii.gz:  86%|▊| 833k/971k [00:00<00:00, 2.77MB/

                                                                                
                                                                                
sub-MPI2_rec-uncombined6_T2starw.nii.gz:  31%|▎| 305k/970k [00:00<00:00, 1.23MB/
sub-MPI2_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.00M [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined9_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined7_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 587kB

                                                                                
sub-MPI2_rec-uncombined8_T2starw.nii.gz:   0%|      | 0.00/0.98M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined7_T2starw.nii.gz:  30%|▎| 305k/1.00M [00:00<00:00, 1.38MB
sub-MPI2_rec-uncombined8_T2starw.nii.gz:   9%| | 85.2k/0.98M [00:00<00:01, 619kB
sub-MPI2_rec-uncombined7_T2starw.nii.gz:  64%|▋| 663k/1.00M [00:00<00:00, 2.31MB
                                                                                

sub-MPI2_rec-uncombined9_T2starw.nii.gz:   0%|       | 0.00/994k [00:00<?, ?B/s]


sub-MPI2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]


                                                                                
sub-MPI2_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/757k [00:00<?, ?B/s]

sub-MPI2_rec-uncombined8_T2starw.nii.gz:  31%|▎| 306k/0.98M [00:00<00:00, 1.20MB
sub-MPI2_rec-uncombined9_T2starw.nii.gz:   8%| | 83.6k/994k [00:00<00:01, 700kB/
                                                                                
sub-MPI2_acq-anat_TB1TFL.nii.gz:  11%|▊      | 83.5k/757k [00:00<00:01, 587kB/s]
sub-MPI2_rec-uncombined9_T2starw.nii.gz:  27%|▎| 271k/994k [00:00<00:00, 1.12MB/

sub-MPI2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MPI2_acq-anat_TB1TFL.nii.gz:  54%|███▊   | 407k/757k [00:00<00:00, 1.49MB/s]


                                                                                
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.94M [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]

                                                                                
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/3.94M [00:00<00:06, 615kB/
sub-MPI2_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]

                                                                                

sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.64M [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 305k/3.94M [00:00<00:03, 1.21MB/


sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.5M [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.64M [00:00<00:06, 61
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.24M/3.94M [00:00<00:00, 3.91MB



sub-MPI2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.06k [00:00<?, ?B/s]



                                                                                


sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.5M [00:00<00:30, 538kB/s
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz: 100%|▉| 3.93M/3.94M [00:00<00:00, 11.6MB
                                                                                


sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.64M [00:00<00:03, 1.1
sub-MPI2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.0k [00:00<?, ?B/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   2%| | 305k/15.5M [00:00<00:12, 1.23MB/s
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.24M/3.64M [00:00<00:00, 3.
sub-MPI2_acq-famp-0.66_TB1DREAM.nii.gz:  95%|▉| 83.6k/88.0k [00:00<00:00, 637kB/
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.24M/15.5M [00:00<00:03, 3.86MB/
sub-MPI2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.05k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  68%|▋| 2.46M/3.64M [00:00<00:00, 6.

                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 2.89M/15.5M [00:00<00:01, 7.61MB/
sub-MPI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/88.3k [00:00<?, ?B/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  51%|▌| 7.97M/15.5M [00:00<00:00, 21.2MB/
sub-MPI2_acq-famp_TB1DREAM.nii.gz:  95%|███▊| 83.6k/88.3k [00:00<00:00, 614kB/s]
                                                                                
sub-MPI2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/937k [00:00<?, ?B/s]


sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 10.5M/15.5M [00:00<00:00, 22.8MB/
sub-MPI2_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]

                                                                                

sub-MPI2_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]

                                                                                
sub-MPI2_acq-famp_TB1TFL.nii.gz:   7%|▍      | 66.6k/937k [00:00<00:01, 649kB/s]


sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.4M/15.5M [00:00<00:00, 24.9MB/
                                                                                
sub-MPI2_acq-famp_TB1TFL.nii.gz:  14%|█▏      | 136k/937k [00:00<00:01, 660kB/s]
sub-MPI2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/84.2k [00:00<?, ?B/s]
sub-MPI2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.06k [00:00<?, ?B/s]


                                                                                
sub-MPI2_acq-famp_TB1TFL.nii.gz:  63%|████▍  | 594k/937k [00:00<00:00, 1.95MB/s]


sub-MPI3_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.4k [00:00<?, ?B/s]

sub-MPI2_acq-refv-0.66_TB1DREAM.nii.gz:  99%|▉| 83.6k/84.2k [00:00<00:00, 613kB/

                                                                                
sub-MPI2_acq-refv_TB1DREAM.nii.gz:  95%|███▊| 83.6k/88.4k [00:00<00:00, 593kB/s]
                                                                                

sub-MPI3_UNIT1.json:   0%|                          | 0.00/2.04k [00:00<?, ?B/s]
                                                                                
sub-MPI3_T2starw.nii.gz:   0%|                      | 0.00/1.30M [00:00<?, ?B/s]

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.4M [00:00<?, ?B/s]
sub-MPI3_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.06k [00:00<?, ?B/s]


                                                                                
sub-MPI3_T2starw.nii.gz:   6%|▉             | 83.6k/1.30M [00:00<00:02, 611kB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/18.4M [00:00<00:31, 610kB/
sub-MPI3_UNIT1.nii.gz:   0%|                        | 0.00/25.5M [00:00<?, ?B/s]
sub-MPI3_T2starw.nii.gz:  22%|███           | 288k/1.30M [00:00<00:00, 1.12MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/18.4M [00:00<00:15, 1.20MB/
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/20.1M [00:00<?, ?B/s]
sub-MPI3_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.06k [00:00<?, ?B/s]




                                                                                
sub-MPI3_T2starw.nii.gz:  90%|███████████▋ | 1.18M/1.30M [00:00<00:00, 3.46MB/s]


sub-MPI3_UNIT1.nii.gz:   0%|                | 83.6k/25.5M [00:00<00:49, 537kB/s]
                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.24M/18.4M [00:00<00:04, 3.65MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 66.6k/20.1M [00:00<00:43, 485kB/
sub-MPI3_UNIT1.nii.gz:   1%|▏               | 288k/25.5M [00:00<00:22, 1.15MB/s]

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.81M/18.4M [00:00<00:01, 10.7MB
sub-MPI3_UNIT1.nii.gz:   4%|▋              | 1.11M/25.5M [00:00<00:06, 4.02MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 271k/20.1M [00:00<00:18, 1.14MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.17M/18.4M [00:00<00:00, 15.0MB
sub-MPI3_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_UNIT1.nii.gz:   7%|▉              | 1.68M/25.5M [00:00<00:05, 4.68MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 748k/20.1M [00:00<00:07, 2.59MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.24M/18.4M [00:00<00:00, 17.0MB
sub-MPI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/999k [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  11%|█▋             | 2.91M/25.5M [00:00<00:03, 7.42MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.75M/20.1M [00:00<00:03, 5.45MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 10.1M/18.4M [00:00<00:00, 17.8MB
sub-MPI3_rec-uncombined10_T2starw.nii.gz:   7%| | 66.6k/999k [00:00<00:01, 487kB
sub-MPI3_UNIT1.nii.gz:  19%|██▊            | 4.81M/25.5M [00:00<00:01, 11.5MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.59M/20.1M [00:00<00:01, 10.1MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 11.9M/18.4M [00:00<00:00, 18.2MB




sub-MPI3_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]




                                                                                
sub-MPI3_rec-uncombined10_T2starw.nii.gz:  25%|▎| 255k/999k [00:00<00:00, 1.16MB
sub-MPI3_UNIT1.nii.gz:  24%|███▋           | 6.16M/25.5M [00:00<00:01, 12.2MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.90M/20.1M [00:00<00:01, 11.2MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  75%|▋| 13.8M/18.4M [00:01<00:00, 17.0MB
sub-MPI3_rec-uncombined10_T2starw.nii.gz:  59%|▌| 594k/999k [00:00<00:00, 2.10MB


sub-MPI3_UNIT1.nii.gz:  31%|████▌          | 7.84M/25.5M [00:00<00:01, 13.9MB/s]
                                                                                




sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.64M/20.1M [00:00<00:01, 13.3MB
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 15.5M/18.4M [00:01<00:00, 16.1MB


sub-MPI3_UNIT1.nii.gz:  36%|█████▍         | 9.25M/25.5M [00:00<00:01, 14.2MB/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.09M/20.1M [00:00<00:00, 13.9MB
sub-MPI3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.1M/18.4M [00:01<00:00, 15.9MB
sub-MPI3_UNIT1.nii.gz:  42%|██████▎        | 10.6M/25.5M [00:01<00:01, 13.9MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 9.45M/20.1M [00:00<00:00, 13.7MB

                                                                                
sub-MPI3_UNIT1.nii.gz:  49%|███████▎       | 12.4M/25.5M [00:01<00:00, 15.2MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 11.2M/20.1M [00:01<00:00, 15.2MB
sub-MPI3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/984k [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  59%|████████▊      | 15.0M/25.5M [00:01<00:00, 19.0MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 13.8M/20.1M [00:01<00:00, 18.8MB

sub-MPI3_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined11_T2starw.nii.gz:   8%| | 83.5k/984k [00:00<00:01, 607kB


sub-MPI3_UNIT1.nii.gz:  66%|█████████▉     | 16.9M/25.5M [00:01<00:00, 19.3MB/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 15.8M/20.1M [00:01<00:00, 19.3MB
sub-MPI3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/994k [00:00<?, ?B/s]


sub-MPI3_UNIT1.nii.gz:  77%|███████████▌   | 19.5M/25.5M [00:01<00:00, 21.7MB/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 18.3M/20.1M [00:01<00:00, 21.5MB
sub-MPI3_rec-uncombined11_T2starw.nii.gz:  41%|▍| 407k/984k [00:00<00:00, 1.63MB
                                                                                
sub-MPI3_UNIT1.nii.gz:  85%|████████████▋  | 21.6M/25.5M [00:01<00:00, 21.1MB/s]
                                                                                


sub-MPI3_rec-uncombined12_T2starw.nii.gz:   8%| | 83.6k/994k [00:00<00:01, 601kB
sub-MPI3_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  99%|██████████████▉| 25.3M/25.5M [00:01<00:00, 26.1MB/s]


                                                                                
sub-MPI3_rec-uncombined12_T2starw.nii.gz:  31%|▎| 305k/994k [00:00<00:00, 1.21MB
sub-MPI3_rec-uncombined13_T2starw.nii.gz:   9%| | 83.6k/968k [00:00<00:01, 581kB
sub-MPI3_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                

sub-MPI3_rec-uncombined12_T2starw.nii.gz:  96%|▉| 951k/994k [00:00<00:00, 3.17MB

                                                                                
sub-MPI3_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined13_T2starw.nii.gz:  31%|▎| 305k/968k [00:00<00:00, 1.18MB
                                                                                


sub-MPI3_rec-uncombined14_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 553k
sub-MPI3_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined14_T2starw.nii.gz:  29%|▎| 305k/1.03M [00:00<00:00, 1.23M
sub-MPI3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/986k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.02M [00:00<?, ?B/s]


sub-MPI3_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined15_T2starw.nii.gz:   8%| | 83.6k/986k [00:00<00:01, 555kB
sub-MPI3_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined16_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 605k
sub-MPI3_rec-uncombined15_T2starw.nii.gz:  31%|▎| 306k/986k [00:00<00:00, 1.23MB
                                                                                
sub-MPI3_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]


sub-MPI3_rec-uncombined18_T2starw.nii.gz:   8%| | 83.6k/1.07M [00:00<00:01, 614k

sub-MPI3_rec-uncombined16_T2starw.nii.gz:  28%|▎| 288k/1.02M [00:00<00:00, 1.11M



sub-MPI3_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MPI3_rec-uncombined17_T2starw.nii.gz:   8%| | 85.2k/1.04M [00:00<00:01, 612k


sub-MPI3_rec-uncombined18_T2starw.nii.gz:  26%|▎| 288k/1.07M [00:00<00:00, 1.13M
                                                                                

sub-MPI3_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined17_T2starw.nii.gz:  26%|▎| 272k/1.04M [00:00<00:00, 1.02M

sub-MPI3_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.08M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined17_T2starw.nii.gz:  95%|▉| 0.98M/1.04M [00:00<00:00, 3.01
                                                                                
sub-MPI3_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                


sub-MPI3_rec-uncombined19_T2starw.nii.gz:   8%| | 83.6k/1.08M [00:00<00:01, 541k
sub-MPI3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined19_T2starw.nii.gz:  28%|▎| 305k/1.08M [00:00<00:00, 1.16M
sub-MPI3_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/1.02M [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined1_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 618kB

sub-MPI3_rec-uncombined21_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined1_T2starw.nii.gz:  32%|▎| 339k/1.02M [00:00<00:00, 1.54MB
sub-MPI3_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]



                                                                                

sub-MPI3_rec-uncombined20_T2starw.nii.gz:   8%| | 85.2k/1.07M [00:00<00:01, 543k
sub-MPI3_rec-uncombined1_T2starw.nii.gz:  71%|▋| 747k/1.02M [00:00<00:00, 2.49MB
                                                                                
sub-MPI3_rec-uncombined21_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 613k
sub-MPI3_rec-uncombined20_T2starw.nii.gz:  28%|▎| 306k/1.07M [00:00<00:00, 1.22M
sub-MPI3_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined21_T2starw.nii.gz:  28%|▎| 305k/1.05M [00:00<00:00, 1.14M

sub-MPI3_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined22_T2starw.nii.gz:   8%| | 83.6k/1.07M [00:00<00:01, 608k


                                                                                
sub-MPI3_rec-uncombined22_T2starw.nii.gz:  28%|▎| 305k/1.07M [00:00<00:00, 1.37M

sub-MPI3_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined24_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined22_T2starw.nii.gz:  59%|▌| 646k/1.07M [00:00<00:00, 2.22M
                                                                                
sub-MPI3_rec-uncombined23_T2starw.nii.gz:   8%| | 83.6k/1.07M [00:00<00:01, 616k
sub-MPI3_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined23_T2starw.nii.gz:  28%|▎| 305k/1.07M [00:00<00:00, 1.21M
                                                                                
sub-MPI3_rec-uncombined24_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 594k

sub-MPI3_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/992k [00:00<?, ?B/s]
sub-MPI3_rec-uncombined3_T2starw.nii.gz:   0%|      | 0.00/1.00M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined24_T2starw.nii.gz:  29%|▎| 305k/1.01M [00:00<00:00, 1.19M
sub-MPI3_rec-uncombined2_T2starw.nii.gz:   9%| | 85.2k/992k [00:00<00:01, 625kB/
                                                                                
sub-MPI3_rec-uncombined3_T2starw.nii.gz:   8%| | 85.2k/1.00M [00:00<00:01, 605kB
sub-MPI3_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/984k [00:00<?, ?B/s]
sub-MPI3_rec-uncombined2_T2starw.nii.gz:  29%|▎| 289k/992k [00:00<00:00, 1.13MB/


sub-MPI3_rec-uncombined3_T2starw.nii.gz:  30%|▎| 306k/1.00M [00:00<00:00, 1.22MB
                                                                                
sub-MPI3_rec-uncombined4_T2starw.nii.gz:   8%| | 83.5k/984k [00:00<00:01, 612kB/


                                                                                
sub-MPI3_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI3_rec-uncombined4_T2starw.nii.gz:  41%|▍| 407k/984k [00:00<00:00, 1.64MB/

sub-MPI3_rec-uncombined5_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                


sub-MPI3_rec-uncombined5_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 613kB
sub-MPI3_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/992k [00:00<?, ?B/s]
sub-MPI3_rec-uncombined5_T2starw.nii.gz:  26%|▎| 271k/1.01M [00:00<00:00, 1.05MB
sub-MPI3_rec-uncombined6_T2starw.nii.gz:   8%| | 83.6k/992k [00:00<00:01, 613kB/


sub-MPI3_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.03M [00:00<?, ?B/s]



sub-MPI3_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MPI3_rec-uncombined5_T2starw.nii.gz: 100%|█| 1.01M/1.01M [00:00<00:00, 3.07M

                                                                                
sub-MPI3_rec-uncombined6_T2starw.nii.gz:  38%|▍| 373k/992k [00:00<00:00, 1.49MB/


sub-MPI3_rec-uncombined7_T2starw.nii.gz:   8%| | 85.2k/1.03M [00:00<00:01, 622kB

sub-MPI3_rec-uncombined8_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined7_T2starw.nii.gz:  23%|▏| 239k/1.03M [00:00<00:00, 1.08MB
sub-MPI3_rec-uncombined8_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 613kB
sub-MPI3_rec-uncombined9_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined7_T2starw.nii.gz:  59%|▌| 629k/1.03M [00:00<00:00, 2.17MB
sub-MPI3_rec-uncombined9_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined8_T2starw.nii.gz:  23%|▏| 237k/0.99M [00:00<00:00, 1.06MB
sub-MPI3_rec-uncombined8_T2starw.nii.gz:  62%|▌| 628k/0.99M [00:00<00:00, 2.24MB
sub-MPI3_rec-uncombined9_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 613kB

                                                                                
sub-MPI3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/843k [00:00<?, ?B/s]
sub-MPI3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]


                                                                                
sub-MPI3_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined9_T2starw.nii.gz:  28%|▎| 288k/0.99M [00:00<00:00, 1.05MB

sub-MPI3_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.6k/843k [00:00<00:01, 615kB/s]
                                                                                
sub-MPI3_acq-anat_TB1TFL.nii.gz:  40%|██▊    | 339k/843k [00:00<00:00, 1.53MB/s]
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.96M [00:00<?, ?B/s]

sub-MPI3_acq-anat_TB1TFL.nii.gz:  89%|██████▏| 747k/843k [00:00<00:00, 2.60MB/s]
                                                                                
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.58M [00:00<?, ?B/s]
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/3.96M [00:00<00:06, 598kB/
sub-MPI3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.16k [00:00<?, ?B/s]


                                                                                


sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.6M [00:00<?, ?B/s]
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.58M [00:00<00:06, 59
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 272k/3.96M [00:00<00:03, 1.05MB/



sub-MPI3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]



                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.6M [00:00<00:26, 618kB/s
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 289k/3.58M [00:00<00:03, 1.1
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  27%|▎| 1.08M/3.96M [00:00<00:00, 3.32MB



sub-MPI3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.07k [00:00<?, ?B/s]



                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   2%| | 305k/15.6M [00:00<00:12, 1.24MB/s
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  30%|▎| 1.06M/3.58M [00:00<00:00, 3.
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  60%|▌| 2.37M/3.96M [00:00<00:00, 6.56MB
                                                                                



sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   6%| | 900k/15.6M [00:00<00:05, 2.87MB/s
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  50%|▌| 1.81M/3.58M [00:00<00:00, 5.
sub-MPI3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.0k [00:00<?, ?B/s]
                                                                                


sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.54M/15.6M [00:00<00:01, 7.46MB/

sub-MPI3_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.07k [00:00<?, ?B/s]

                                                                                
sub-MPI3_acq-famp-0.66_TB1DREAM.nii.gz:  96%|▉| 83.6k/87.0k [00:00<00:00, 610kB/
                                                                                



sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 5.02M/15.6M [00:00<00:00, 13.3MB/
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  65%|▋| 10.1M/15.6M [00:00<00:00, 25.8MB/
sub-MPI3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/88.9k [00:00<?, ?B/s]
sub-MPI3_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.05k [00:00<?, ?B/s]

                                                                                


sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 13.8M/15.6M [00:00<00:00, 29.2MB/

sub-MPI3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/88.3k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-famp-1.5_TB1DREAM.nii.gz:  94%|▉| 83.6k/88.9k [00:00<00:00, 598kB/s
                                                                                

sub-MPI3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-famp_TB1DREAM.nii.gz:  95%|███▊| 83.6k/88.3k [00:00<00:00, 661kB/s]

                                                                                
sub-MPI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/955k [00:00<?, ?B/s]

sub-MPI3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]

                                                                                
sub-MPI3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/82.6k [00:00<?, ?B/s]


sub-MPI3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.09k [00:00<?, ?B/s]


                                                                                
sub-MPI3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.1k [00:00<?, ?B/s]
sub-MPI3_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.5k/955k [00:00<00:01, 654kB/s]
sub-MPI3_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 82.6k/82.6k [00:00<00:00, 607kB/

                                                                                
sub-MPI3_acq-refv-1.5_TB1DREAM.nii.gz:  92%|▉| 83.6k/91.1k [00:00<00:00, 618kB/s


                                                                                
sub-MPI3_acq-famp_TB1TFL.nii.gz:  43%|██▉    | 407k/955k [00:00<00:00, 1.61MB/s]
sub-MPI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.6k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.07k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_T2starw.json:   0%|                       | 0.00/1.85k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-refv_TB1DREAM.nii.gz:  94%|███▊| 83.6k/88.6k [00:00<00:00, 544kB/s]

                                                                                
sub-MSSM1_T2starw.nii.gz:   0%|                     | 0.00/1.78M [00:00<?, ?B/s]

sub-MSSM1_UNIT1.json:   0%|                         | 0.00/1.14k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_inv-1_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_T2starw.nii.gz:   5%|▌            | 85.2k/1.78M [00:00<00:02, 622kB/s]
sub-MSSM1_T2starw.nii.gz:  16%|██           | 289k/1.78M [00:00<00:01, 1.13MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/20.7M [00:00<?, ?B/s]
sub-MSSM1_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]



sub-MSSM1_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]


                                                                                
sub-MSSM1_T2starw.nii.gz:  63%|███████▌    | 1.11M/1.78M [00:00<00:00, 3.44MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/20.7M [00:00<00:35, 612kB
                                                                                
sub-MSSM1_UNIT1.nii.gz:   0%|               | 83.6k/26.6M [00:00<00:48, 576kB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.7M [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:   1%|▏              | 305k/26.6M [00:00<00:19, 1.38MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 305k/20.7M [00:00<00:17, 1.21MB


sub-MSSM1_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/18.7M [00:00<00:32, 610kB
sub-MSSM1_UNIT1.nii.gz:   2%|▎              | 628k/26.6M [00:00<00:13, 1.95MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.24M/20.7M [00:00<00:05, 3.89M
sub-MSSM1_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/374k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/18.7M [00:00<00:16, 1.20MB



sub-MSSM1_UNIT1.nii.gz:   7%|▉             | 1.75M/26.6M [00:00<00:04, 5.39MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.60M/20.7M [00:00<00:01, 10.5M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 901k/18.7M [00:00<00:06, 3.03MB



sub-MSSM1_UNIT1.nii.gz:  11%|█▍            | 2.80M/26.6M [00:00<00:03, 6.98MB/s]


sub-MSSM1_rec-uncombined00001_T2starw.nii.gz:  22%|▏| 83.6k/374k [00:00<00:00, 6
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.71M/20.7M [00:00<00:00, 17.4M




sub-MSSM1_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]




                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.60M/18.7M [00:00<00:03, 4.59M



sub-MSSM1_UNIT1.nii.gz:  15%|██            | 4.00M/26.6M [00:00<00:02, 8.73MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  41%|▍| 8.57M/20.7M [00:00<00:00, 17.0M


sub-MSSM1_rec-uncombined00001_T2starw.nii.gz:  81%|▊| 305k/374k [00:00<00:00, 1.


                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.40M/18.7M [00:00<00:01, 8.93M



sub-MSSM1_UNIT1.nii.gz:  19%|██▌           | 4.95M/26.6M [00:00<00:02, 9.10MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  50%|▌| 10.3M/20.7M [00:00<00:00, 16.8M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.48M/18.7M [00:00<00:01, 12.9M



sub-MSSM1_UNIT1.nii.gz:  24%|███▍          | 6.42M/26.6M [00:00<00:01, 11.0MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 12.4M/20.7M [00:00<00:00, 18.0M
sub-MSSM1_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/378k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  40%|▍| 7.41M/18.7M [00:00<00:00, 15.2M



sub-MSSM1_UNIT1.nii.gz:  29%|████          | 7.66M/26.6M [00:00<00:01, 11.5MB/s]
sub-MSSM1_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]




                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 14.3M/20.7M [00:01<00:00, 17.6M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  48%|▍| 8.91M/18.7M [00:00<00:00, 15.1M


sub-MSSM1_rec-uncombined00002_T2starw.nii.gz:  22%|▏| 83.6k/378k [00:00<00:00, 6



sub-MSSM1_UNIT1.nii.gz:  33%|████▋         | 8.89M/26.6M [00:01<00:01, 11.9MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 16.1M/20.7M [00:01<00:00, 17.9M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.8M/18.7M [00:01<00:00, 16.5M



sub-MSSM1_UNIT1.nii.gz:  40%|█████▌        | 10.7M/26.6M [00:01<00:01, 14.0MB/s]
sub-MSSM1_rec-uncombined00002_T2starw.nii.gz:  81%|▊| 305k/378k [00:00<00:00, 1.


                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 17.8M/20.7M [00:01<00:00, 17.1M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.4M/18.7M [00:01<00:00, 16.2M



sub-MSSM1_UNIT1.nii.gz:  45%|██████▎       | 12.0M/26.6M [00:01<00:01, 13.8MB/s]
sub-MSSM1_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 19.6M/20.7M [00:01<00:00, 16.7M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  75%|▊| 14.1M/18.7M [00:01<00:00, 16.1M



sub-MSSM1_UNIT1.nii.gz:  50%|███████       | 13.4M/26.6M [00:01<00:00, 13.9MB/s]
                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 15.7M/18.7M [00:01<00:00, 16.3M



sub-MSSM1_UNIT1.nii.gz:  57%|███████▉      | 15.1M/26.6M [00:01<00:00, 15.2MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz: 100%|▉| 18.7M/18.7M [00:01<00:00, 20.9M
                                                                                
sub-MSSM1_UNIT1.nii.gz:  66%|█████████▏    | 17.5M/26.6M [00:01<00:00, 17.3MB/s]
sub-MSSM1_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/756k [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:  76%|██████████▋   | 20.2M/26.6M [00:01<00:00, 20.5MB/s]

sub-MSSM1_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00003_T2starw.nii.gz:  11%| | 83.6k/756k [00:00<00:01, 5
sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/768k [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:  85%|███████████▉  | 22.6M/26.6M [00:01<00:00, 20.6MB/s]
sub-MSSM1_rec-uncombined00003_T2starw.nii.gz:  40%|▍| 305k/756k [00:00<00:00, 1.

sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:  11%| | 83.6k/768k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]



sub-MSSM1_UNIT1.nii.gz:  97%|█████████████▌| 25.8M/26.6M [00:01<00:00, 24.2MB/s]
                                                                                


sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:  29%|▎| 220k/768k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
                                                                                


sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:  11%| | 83.6k/759k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:  77%|▊| 594k/768k [00:00<00:00, 2.

                                                                                
sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:  40%|▍| 305k/759k [00:00<00:00, 1.
                                                                                
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/770k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/760k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:  11%| | 83.6k/770k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:  11%| | 83.6k/760k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:  40%|▍| 305k/770k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/367k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:  40%|▍| 305k/760k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:  23%|▏| 83.6k/367k [00:00<00:00, 6

                                                                                
sub-MSSM1_rec-uncombined00014_T2starw.nii.gz:  23%|▏| 83.6k/371k [00:00<00:00, 6


sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:  83%|▊| 305k/367k [00:00<00:00, 1.


                                                                                
sub-MSSM1_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                

sub-MSSM1_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/743k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00014_T2starw.nii.gz:  82%|▊| 305k/371k [00:00<00:00, 1.
                                                                                
sub-MSSM1_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00015_T2starw.nii.gz:  11%| | 83.6k/743k [00:00<00:01, 5
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/746k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                

sub-MSSM1_rec-uncombined00015_T2starw.nii.gz:  43%|▍| 322k/743k [00:00<00:00, 1.
                                                                                
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:  11%| | 83.6k/746k [00:00<00:01, 6

sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:  41%|▍| 305k/746k [00:00<00:00, 1.

sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:  11%| | 85.2k/759k [00:00<00:01, 6
                                                                                
sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                

sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:  23%|▏| 171k/759k [00:00<00:00, 69
                                                                                
sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:  11%| | 83.6k/759k [00:00<00:01, 5

sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/737k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:  38%|▍| 288k/759k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:  11%| | 83.6k/737k [00:00<00:01, 6


sub-MSSM1_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/356k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:  25%|▎| 186k/737k [00:00<00:00, 82
sub-MSSM1_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00025_T2starw.nii.gz:  24%|▏| 85.2k/356k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:  85%|▊| 628k/737k [00:00<00:00, 2.

                                                                                
sub-MSSM1_rec-uncombined00025_T2starw.nii.gz:  81%|▊| 289k/356k [00:00<00:00, 1.


                                                                                
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:   0%|  | 0.00/722k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:  23%|▏| 83.6k/360k [00:00<00:00, 6


sub-MSSM1_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:  12%| | 83.6k/722k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:  80%|▊| 288k/360k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/722k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                


sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:  37%|▎| 271k/722k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00029_T2starw.nii.gz:  12%| | 83.6k/722k [00:00<00:01, 6
                                                                                
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00029_T2starw.nii.gz:  42%|▍| 305k/722k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                

sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:  11%| | 83.6k/736k [00:00<00:01, 5


                                                                                
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:  37%|▎| 271k/736k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:  11%| | 83.6k/736k [00:00<00:01, 5
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:  76%|▊| 560k/736k [00:00<00:00, 1.
                                                                                
sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:  41%|▍| 305k/736k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/706k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:  12%| | 83.6k/706k [00:00<00:01, 6
sub-MSSM1_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/346k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:  46%|▍| 322k/706k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/351k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_rec-uncombined00037_T2starw.nii.gz:  25%|▏| 85.2k/346k [00:00<00:00, 6
                                                                                
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/701k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:  24%|▏| 83.6k/351k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00037_T2starw.nii.gz:  89%|▉| 306k/346k [00:00<00:00, 1.

                                                                                
sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:  77%|▊| 271k/351k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:  12%| | 83.6k/701k [00:00<00:01, 6
                                                                                
sub-MSSM1_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:  41%|▍| 289k/701k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/703k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:  89%|▉| 628k/701k [00:00<00:00, 2.
                                                                                
sub-MSSM1_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                


sub-MSSM1_rec-uncombined00041_T2starw.nii.gz:  12%| | 83.5k/703k [00:00<00:01, 5
sub-MSSM1_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/713k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00041_T2starw.nii.gz:  46%|▍| 322k/703k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00043_T2starw.nii.gz:  12%| | 83.6k/713k [00:00<00:01, 5

                                                                                
sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00043_T2starw.nii.gz:  43%|▍| 305k/713k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/678k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                


sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:  12%| | 83.6k/712k [00:00<00:01, 5


sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:  12%| | 83.6k/678k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/334k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:  38%|▍| 271k/712k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:  45%|▍| 305k/678k [00:00<00:00, 1.
                                                                                


                                                                                
sub-MSSM1_rec-uncombined00049_T2starw.nii.gz:  25%|▏| 83.5k/334k [00:00<00:00, 5

sub-MSSM1_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-MSSM1_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/339k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00050_T2starw.nii.gz:  25%|▏| 83.5k/339k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00050_T2starw.nii.gz:  65%|▋| 220k/339k [00:00<00:00, 99

sub-MSSM1_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/677k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/680k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00051_T2starw.nii.gz:  10%| | 66.5k/677k [00:00<00:01, 4
sub-MSSM1_rec-uncombined00053_T2starw.nii.gz:  12%| | 83.6k/680k [00:00<00:00, 6


sub-MSSM1_rec-uncombined00055_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00051_T2starw.nii.gz:  40%|▍| 271k/677k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                


sub-MSSM1_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/687k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00053_T2starw.nii.gz:  55%|▌| 373k/680k [00:00<00:00, 1.
                                                                                
sub-MSSM1_rec-uncombined00055_T2starw.nii.gz:  12%| | 83.6k/687k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                



sub-MSSM1_rec-uncombined00055_T2starw.nii.gz:  42%|▍| 288k/687k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/685k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/1.29k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/651k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:  10%| | 67.5k/685k [00:00<00:00, 6
sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:  22%|▏| 152k/685k [00:00<00:00, 75
sub-MSSM1_rec-uncombined00059_T2starw.nii.gz:  13%|▏| 83.6k/651k [00:00<00:00, 6
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.34M [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:  97%|▉| 662k/685k [00:00<00:00, 2.
                                                                                
sub-MSSM1_rec-uncombined00059_T2starw.nii.gz:  47%|▍| 305k/651k [00:00<00:00, 1.
sub-MSSM1_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.5k/4.34M [00:00<00:07, 615kB
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.61M [00:00<00:06, 6

sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 339k/4.34M [00:00<00:03, 1.35MB
sub-MSSM1_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.61M [00:00<00:03, 1.

sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.41M/4.34M [00:00<00:00, 4.43M
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/16.1M [00:00<?, ?B/s]
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  96%|▉| 4.16M/4.34M [00:00<00:00, 12.2M

                                                                                
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.24M/3.61M [00:00<00:00, 3


sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/16.1M [00:00<00:27, 612kB/
                                                                                

sub-MSSM1_acq-famp_TB1TFL.json:   0%|               | 0.00/1.76k [00:00<?, ?B/s]
                                                                                



sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   1%| | 152k/16.1M [00:00<00:26, 640kB/s
sub-MSSM1_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/93.1k [00:00<?, ?B/s]


sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   4%| | 628k/16.1M [00:00<00:06, 2.33MB/
sub-MSSM1_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/830k [00:00<?, ?B/s]


sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  14%|▏| 2.24M/16.1M [00:00<00:01, 7.71MB
sub-MSSM1_acq-famp_TB1DREAM.nii.gz:  90%|██▋| 83.5k/93.1k [00:00<00:00, 584kB/s]
                                                                                

sub-MSSM1_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/93.3k [00:00<?, ?B/s]


sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 3.35M/16.1M [00:00<00:01, 9.04MB
sub-MSSM1_acq-famp_TB1TFL.nii.gz:  10%|▌     | 83.6k/830k [00:00<00:01, 609kB/s]
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  48%|▍| 7.78M/16.1M [00:00<00:00, 21.4MB
sub-MSSM1_acq-refv_TB1DREAM.nii.gz:  90%|██▋| 83.6k/93.3k [00:00<00:00, 627kB/s]
                                                                                


sub-MSSM1_acq-famp_TB1TFL.nii.gz:  37%|██▏   | 305k/830k [00:00<00:00, 1.16MB/s]
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.8M/16.1M [00:00<00:00, 24.6MB
sub-MSSM2_T2starw.json:   0%|                       | 0.00/1.85k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM2_UNIT1.json:   0%|                         | 0.00/1.14k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  82%|▊| 13.2M/16.1M [00:00<00:00, 22.9MB
                                                                                
sub-MSSM2_T2starw.nii.gz:   0%|                     | 0.00/1.78M [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]
sub-MSSM2_T2starw.nii.gz:   5%|▌            | 83.6k/1.78M [00:00<00:02, 613kB/s]
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/17.4M [00:00<?, ?B/s]



sub-MSSM2_inv-1_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_UNIT1.nii.gz:   0%|               | 85.2k/26.6M [00:00<00:44, 622kB/s]
sub-MSSM2_T2starw.nii.gz:  20%|██▌          | 356k/1.78M [00:00<00:01, 1.43MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.4M [00:00<00:29, 608kB

sub-MSSM2_UNIT1.nii.gz:   1%|▏              | 408k/26.6M [00:00<00:16, 1.64MB/s]
sub-MSSM2_T2starw.nii.gz:  82%|█████████▊  | 1.46M/1.78M [00:00<00:00, 4.57MB/s]
                                                                                



sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/17.4M [00:00<00:16, 1.11MB
sub-MSSM2_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                


sub-MSSM2_UNIT1.nii.gz:   6%|▊             | 1.64M/26.6M [00:00<00:05, 5.10MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 900k/17.4M [00:00<00:06, 2.88MB
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.0M [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  15%|██▏           | 4.13M/26.6M [00:00<00:02, 11.7MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.51M/17.4M [00:00<00:02, 7.67M
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/19.0M [00:00<00:32, 609kB

sub-MSSM2_UNIT1.nii.gz:  26%|███▌          | 6.82M/26.6M [00:00<00:01, 16.8MB/s]



sub-MSSM2_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/361k [00:00<?, ?B/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.20M/17.4M [00:00<00:00, 14.3M
sub-MSSM2_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]




                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 271k/19.0M [00:00<00:16, 1.20MB

sub-MSSM2_UNIT1.nii.gz:  32%|████▌         | 8.60M/26.6M [00:00<00:01, 17.3MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.94M/17.4M [00:00<00:00, 15.5M
sub-MSSM2_rec-uncombined00001_T2starw.nii.gz:  23%|▏| 83.6k/361k [00:00<00:00, 6
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 628k/19.0M [00:00<00:08, 2.18MB

sub-MSSM2_UNIT1.nii.gz:  41%|█████▋        | 10.9M/26.6M [00:00<00:00, 19.3MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.11M/17.4M [00:00<00:00, 17.8M
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.58M/19.0M [00:00<00:03, 5.06M



sub-MSSM2_rec-uncombined00001_T2starw.nii.gz:  84%|▊| 305k/361k [00:00<00:00, 1.



                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  62%|▌| 10.9M/17.4M [00:00<00:00, 16.8M

sub-MSSM2_UNIT1.nii.gz:  48%|██████▋       | 12.8M/26.6M [00:00<00:00, 17.6MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.90M/19.0M [00:00<00:02, 8.04M



sub-MSSM2_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.8M/17.4M [00:01<00:00, 17.8M

sub-MSSM2_UNIT1.nii.gz:  55%|███████▋      | 14.7M/26.6M [00:01<00:00, 18.3MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 4.76M/19.0M [00:00<00:01, 11.8M
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 14.7M/17.4M [00:01<00:00, 18.2M

sub-MSSM2_UNIT1.nii.gz:  62%|████████▋     | 16.6M/26.6M [00:01<00:00, 18.7MB/s]



sub-MSSM2_rec-uncombined00002_T2starw.nii.gz:  23%|▏| 83.6k/360k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.66M/19.0M [00:00<00:00, 14.3M




                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 16.5M/17.4M [00:01<00:00, 17.2M

sub-MSSM2_UNIT1.nii.gz:  69%|█████████▋    | 18.5M/26.6M [00:01<00:00, 17.7MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  43%|▍| 8.07M/19.0M [00:00<00:00, 14.4M



sub-MSSM2_rec-uncombined00002_T2starw.nii.gz:  85%|▊| 305k/360k [00:00<00:00, 1.



                                                                                
                                                                                
sub-MSSM2_UNIT1.nii.gz:  76%|██████████▌   | 20.2M/26.6M [00:01<00:00, 16.6MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  50%|▍| 9.46M/19.0M [00:00<00:00, 14.3M
sub-MSSM2_UNIT1.nii.gz:  86%|████████████  | 23.0M/26.6M [00:01<00:00, 20.0MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 12.2M/19.0M [00:01<00:00, 18.7M
sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  97%|█████████████▌| 25.8M/26.6M [00:01<00:00, 22.7MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 15.1M/19.0M [00:01<00:00, 22.1M

                                                                                
sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:  12%| | 85.2k/712k [00:00<00:01, 6

sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 18.4M/19.0M [00:01<00:00, 25.9M
                                                                                
sub-MSSM2_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:  53%|▌| 374k/712k [00:00<00:00, 1.

sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:  11%| | 83.6k/736k [00:00<00:01, 6


                                                                                
sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:  41%|▍| 305k/736k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/728k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:  12%| | 85.2k/728k [00:00<00:00, 7

sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/741k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:  42%|▍| 306k/728k [00:00<00:00, 1.

sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:  11%| | 83.6k/741k [00:00<00:01, 5


sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/354k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/737k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:  43%|▍| 322k/741k [00:00<00:00, 1.


sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:  24%|▏| 83.5k/354k [00:00<00:00, 7
                                                                                
sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:  11%| | 83.6k/737k [00:00<00:01, 6


sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:  57%|▌| 203k/354k [00:00<00:00, 98
                                                                                

sub-MSSM2_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:  39%|▍| 288k/737k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/696k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/352k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  10%| | 66.5k/696k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/702k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  22%|▏| 152k/696k [00:00<00:00, 75

sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:  24%|▏| 83.6k/352k [00:00<00:00, 7
sub-MSSM2_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:  12%| | 85.2k/702k [00:00<00:01, 6
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  95%|▉| 662k/696k [00:00<00:00, 2.
                                                                                


sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:  86%|▊| 305k/352k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/707k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:  41%|▍| 289k/702k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:  12%| | 85.2k/707k [00:00<00:01, 5
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/711k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:  43%|▍| 306k/707k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:  12%| | 85.2k/711k [00:00<00:01, 6
                                                                                
sub-MSSM2_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:  43%|▍| 306k/711k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/345k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/697k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00025_T2starw.nii.gz:  24%|▏| 83.6k/345k [00:00<00:00, 7
sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:  12%| | 83.6k/697k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/342k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:  44%|▍| 305k/697k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00025_T2starw.nii.gz:  88%|▉| 305k/345k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:  24%|▏| 83.6k/342k [00:00<00:00, 6

sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:  95%|▉| 663k/697k [00:00<00:00, 2.

                                                                                
sub-MSSM2_rec-uncombined00027_T2starw.nii.gz:   0%|  | 0.00/680k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:  89%|▉| 305k/342k [00:00<00:00, 1.


                                                                                
sub-MSSM2_rec-uncombined00027_T2starw.nii.gz:  12%| | 83.5k/680k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/678k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00027_T2starw.nii.gz:  47%|▍| 322k/680k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                


sub-MSSM2_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00029_T2starw.nii.gz:  13%|▏| 85.2k/678k [00:00<00:01, 5


                                                                                
                                                                                
sub-MSSM2_rec-uncombined00029_T2starw.nii.gz:  60%|▌| 408k/678k [00:00<00:00, 1.

                                                                                
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/676k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  12%| | 83.6k/676k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/682k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/662k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  25%|▏| 169k/676k [00:00<00:00, 76
sub-MSSM2_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:  12%| | 83.6k/682k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  95%|▉| 645k/676k [00:00<00:00, 2.


sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:  13%|▏| 83.6k/662k [00:00<00:00, 6
                                                                                
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:  45%|▍| 305k/682k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:  46%|▍| 305k/662k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/335k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz: 100%|▉| 680k/682k [00:00<00:00, 2.

                                                                                


                                                                                
sub-MSSM2_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/333k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:  25%|▎| 85.2k/335k [00:00<00:00, 5
sub-MSSM2_rec-uncombined00038_T2starw.nii.gz:  25%|▎| 83.6k/333k [00:00<00:00, 7
sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:  96%|▉| 323k/335k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/662k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00038_T2starw.nii.gz:  91%|▉| 305k/333k [00:00<00:00, 1.

                                                                                
sub-MSSM2_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:  13%|▏| 83.6k/662k [00:00<00:01, 5
sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/656k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:  46%|▍| 305k/662k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/648k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/655k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:  13%|▏| 83.6k/656k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_rec-uncombined00043_T2starw.nii.gz:  13%|▏| 83.6k/648k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:  13%|▏| 83.6k/655k [00:00<00:00, 6

sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:  46%|▍| 305k/656k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00043_T2starw.nii.gz:  55%|▌| 356k/648k [00:00<00:00, 1.

                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:  46%|▍| 305k/655k [00:00<00:00, 1.


                                                                                
                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00047_T2starw.nii.gz:  13%|▏| 83.6k/633k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/328k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.nii.gz:  48%|▍| 305k/633k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00049_T2starw.nii.gz:  26%|▎| 83.6k/328k [00:00<00:00, 6
                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.nii.gz:  88%|▉| 288k/328k [00:00<00:00, 1.

                                                                                
sub-MSSM2_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/324k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/647k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/639k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00050_T2starw.nii.gz:  26%|▎| 83.6k/324k [00:00<00:00, 6

sub-MSSM2_rec-uncombined00051_T2starw.nii.gz:  13%|▏| 83.6k/647k [00:00<00:00, 6
                                                                                
sub-MSSM2_rec-uncombined00053_T2starw.nii.gz:  13%|▏| 83.6k/639k [00:00<00:00, 5
sub-MSSM2_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/627k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00055_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                

sub-MSSM2_rec-uncombined00051_T2starw.nii.gz:  47%|▍| 305k/647k [00:00<00:00, 1.

sub-MSSM2_rec-uncombined00053_T2starw.nii.gz:  48%|▍| 305k/639k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00055_T2starw.nii.gz:  13%|▏| 83.6k/627k [00:00<00:00, 6

                                                                                
                                                                                
sub-MSSM2_rec-uncombined00055_T2starw.nii.gz:  49%|▍| 305k/627k [00:00<00:00, 1.

sub-MSSM2_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MSSM2_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/1.29k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:  13%|▏| 83.6k/633k [00:00<00:00, 6
sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/612k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:  48%|▍| 305k/633k [00:00<00:00, 1.
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.01M [00:00<?, ?B/s]



sub-MSSM2_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:  14%|▏| 83.6k/612k [00:00<00:00, 5
                                                                                
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.01M [00:00<00:06, 613kB

sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:  50%|▍| 305k/612k [00:00<00:00, 1.

                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 305k/4.01M [00:00<00:02, 1.37MB
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 85.2k/3.61M [00:00<00:05, 6
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  16%|▏| 645k/4.01M [00:00<00:01, 2.22MB

sub-MSSM2_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 306k/3.61M [00:00<00:02, 1.
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.8M [00:00<?, ?B/s]


sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  55%|▌| 2.22M/4.01M [00:00<00:00, 7.51M



sub-MSSM2_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/1.35k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  31%|▎| 1.11M/3.61M [00:00<00:00, 3
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  99%|▉| 3.95M/4.01M [00:00<00:00, 11.1M


                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   1%| | 85.2k/15.8M [00:00<00:26, 622kB/
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  75%|▊| 2.72M/3.61M [00:00<00:00, 8
                                                                                
sub-MSSM2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/91.9k [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   2%| | 306k/15.8M [00:00<00:13, 1.20MB/
sub-MSSM2_acq-famp-1.5_TB1DREAM.json:   0%|         | 0.00/1.35k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_acq-famp-0.66_TB1DREAM.nii.gz:  91%|▉| 83.6k/91.9k [00:00<00:00, 609kB

sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.03M/15.8M [00:00<00:04, 3.61MB
                                                                                
sub-MSSM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/90.5k [00:00<?, ?B/s]

sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.51M/15.8M [00:00<00:01, 7.42MB
sub-MSSM2_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]


                                                                                

sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 5.04M/15.8M [00:00<00:00, 13.6MB
sub-MSSM2_acq-famp-1.5_TB1DREAM.nii.gz:  92%|▉| 83.6k/90.5k [00:00<00:00, 650kB/
                                                                                
sub-MSSM2_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/91.2k [00:00<?, ?B/s]

sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 9.08M/15.8M [00:00<00:00, 22.7MB
sub-MSSM2_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/794k [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.6M/15.8M [00:00<00:00, 30.2MB
sub-MSSM2_acq-famp_TB1DREAM.nii.gz:  94%|██▊| 85.2k/91.2k [00:00<00:00, 624kB/s]
                                                                                

sub-MSSM2_acq-famp_TB1TFL.json:   0%|               | 0.00/1.74k [00:00<?, ?B/s]
                                                                                



sub-MSSM2_acq-famp_TB1TFL.nii.gz:  11%|▋     | 83.6k/794k [00:00<00:01, 601kB/s]
sub-MSSM2_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM2_acq-famp_TB1TFL.nii.gz:  36%|██▏   | 288k/794k [00:00<00:00, 1.08MB/s]
                                                                                
sub-MSSM2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.1k [00:00<?, ?B/s]

sub-MSSM2_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_acq-refv-1.5_TB1DREAM.json:   0%|         | 0.00/1.36k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/86.8k [00:00<?, ?B/s]
sub-MSSM2_acq-refv-0.66_TB1DREAM.nii.gz:  99%|▉| 83.6k/84.1k [00:00<00:00, 616kB
                                                                                
sub-MSSM2_acq-refv-1.5_TB1DREAM.nii.gz:  98%|▉| 85.2k/86.8k [00:00<00:00, 619kB/

                                                                                
sub-MSSM2_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/85.5k [00:00<?, ?B/s]

sub-MSSM3_T2starw.json:   0%|                       | 0.00/1.75k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_T2starw.nii.gz:   0%|                     | 0.00/1.51M [00:00<?, ?B/s]
sub-MSSM2_acq-refv_TB1DREAM.nii.gz: 100%|██▉| 85.2k/85.5k [00:00<00:00, 616kB/s]
                                                                                

sub-MSSM3_UNIT1.json:   0%|                         | 0.00/1.14k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_T2starw.nii.gz:   4%|▌            | 66.6k/1.51M [00:00<00:03, 486kB/s]
sub-MSSM3_inv-1_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]
sub-MSSM3_T2starw.nii.gz:  17%|██▎          | 271k/1.51M [00:00<00:01, 1.08MB/s]
sub-MSSM3_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_UNIT1.nii.gz:   0%|               | 85.2k/26.6M [00:00<00:44, 619kB/s]

sub-MSSM3_T2starw.nii.gz:  57%|███████▍     | 883k/1.51M [00:00<00:00, 3.02MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.9M [00:00<?, ?B/s]

                                                                                
sub-MSSM3_UNIT1.nii.gz:   1%|▏              | 289k/26.6M [00:00<00:24, 1.13MB/s]
sub-MSSM3_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/18.9M [00:00<00:32, 609kB
sub-MSSM3_UNIT1.nii.gz:   4%|▌             | 1.10M/26.6M [00:00<00:07, 3.39MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 271k/18.9M [00:00<00:16, 1.19MB
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/22.0M [00:00<?, ?B/s]
sub-MSSM3_UNIT1.nii.gz:  14%|█▉            | 3.77M/26.6M [00:00<00:02, 11.2MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 611k/18.9M [00:00<00:09, 2.12MB



sub-MSSM3_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]




sub-MSSM3_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]




                                                                                
sub-MSSM3_UNIT1.nii.gz:  22%|███           | 5.77M/26.6M [00:00<00:01, 14.2MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/22.0M [00:00<00:37, 609kB


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.53M/18.9M [00:00<00:03, 4.91M
sub-MSSM3_rec-uncombined00001_T2starw.nii.gz:  23%|▏| 83.6k/371k [00:00<00:00, 6
sub-MSSM3_UNIT1.nii.gz:  32%|████▌         | 8.61M/26.6M [00:00<00:00, 19.0MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.56M/18.9M [00:00<00:01, 10.5M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 305k/22.0M [00:00<00:19, 1.19MB
sub-MSSM3_UNIT1.nii.gz:  41%|█████▋        | 10.8M/26.6M [00:00<00:00, 20.3MB/s]
sub-MSSM3_rec-uncombined00001_T2starw.nii.gz:  82%|▊| 305k/371k [00:00<00:00, 1.


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  31%|▎| 5.84M/18.9M [00:00<00:00, 14.9M



                                                                                



sub-MSSM3_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/377k [00:00<?, ?B/s]

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 696k/22.0M [00:00<00:10, 2.23MB
sub-MSSM3_UNIT1.nii.gz:  49%|██████▊       | 12.9M/26.6M [00:00<00:00, 19.5MB/s]


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.31M/18.9M [00:00<00:00, 14.9M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.81M/22.0M [00:00<00:03, 5.54M
sub-MSSM3_rec-uncombined00002_T2starw.nii.gz:  22%|▏| 83.6k/377k [00:00<00:00, 6
sub-MSSM3_UNIT1.nii.gz:  56%|███████▊      | 14.9M/26.6M [00:01<00:00, 19.5MB/s]


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  48%|▍| 9.15M/18.9M [00:00<00:00, 16.3M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.73M/22.0M [00:00<00:01, 10.4M
sub-MSSM3_UNIT1.nii.gz:  63%|████████▊     | 16.8M/26.6M [00:01<00:00, 19.4MB/s]


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.0M/18.9M [00:00<00:00, 17.2M



sub-MSSM3_rec-uncombined00002_T2starw.nii.gz:  81%|▊| 305k/377k [00:00<00:00, 1.



                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 5.24M/22.0M [00:00<00:01, 11.8M
sub-MSSM3_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 12.7M/18.9M [00:01<00:00, 15.7M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 6.76M/22.0M [00:00<00:01, 13.1M
sub-MSSM3_UNIT1.nii.gz:  70%|█████████▊    | 18.7M/26.6M [00:01<00:00, 17.2MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  77%|▊| 14.6M/18.9M [00:01<00:00, 17.1M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.70M/22.0M [00:00<00:00, 15.3M
sub-MSSM3_UNIT1.nii.gz:  78%|██████████▊   | 20.6M/26.6M [00:01<00:00, 18.1MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  87%|▊| 16.6M/18.9M [00:01<00:00, 18.0M

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 10.6M/22.0M [00:00<00:00, 16.8M
sub-MSSM3_UNIT1.nii.gz:  85%|███████████▉  | 22.6M/26.6M [00:01<00:00, 18.7MB/s]
sub-MSSM3_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 12.3M/22.0M [00:01<00:00, 16.4M


sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 18.3M/18.9M [00:01<00:00, 17.1M
sub-MSSM3_UNIT1.nii.gz:  92%|████████████▊ | 24.4M/26.6M [00:01<00:00, 17.6MB/s]


                                                                                
sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:  11%| | 83.6k/759k [00:00<00:01, 5
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 14.0M/22.0M [00:01<00:00, 16.9M
sub-MSSM3_UNIT1.nii.gz:  99%|█████████████▉| 26.4M/26.6M [00:01<00:00, 18.5MB/s]
                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 17.4M/22.0M [00:01<00:00, 22.2M




sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:  40%|▍| 305k/759k [00:00<00:00, 1.
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 21.3M/22.0M [00:01<00:00, 26.9M

                                                                                
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/766k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:  11%| | 83.6k/766k [00:00<00:00, 7

sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/769k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:  40%|▍| 305k/766k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:  11%| | 83.6k/769k [00:00<00:01, 6


sub-MSSM3_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:  89%|▉| 679k/766k [00:00<00:00, 2.


sub-MSSM3_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/768k [00:00<?, ?B/s]
                                                                                


sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:  31%|▎| 237k/769k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:  84%|▊| 645k/769k [00:00<00:00, 2.

                                                                                


sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:  11%| | 83.6k/768k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/762k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:  40%|▍| 305k/768k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/367k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:  11%| | 83.6k/762k [00:00<00:01, 5
sub-MSSM3_rec-uncombined00013_T2starw.nii.gz:  23%|▏| 83.6k/367k [00:00<00:00, 6
sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:  40%|▍| 305k/762k [00:00<00:00, 1.


sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00013_T2starw.nii.gz:  83%|▊| 305k/367k [00:00<00:00, 1.

                                                                                
                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:  23%|▏| 83.6k/371k [00:00<00:00, 6
sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/748k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:  82%|▊| 305k/371k [00:00<00:00, 1.


                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:  11%| | 83.6k/748k [00:00<00:01, 6

sub-MSSM3_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:  41%|▍| 305k/748k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:  11%| | 83.6k/755k [00:00<00:01, 6
                                                                                
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/756k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:  40%|▍| 305k/755k [00:00<00:00, 1.

sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:  11%| | 83.6k/756k [00:00<00:01, 5
sub-MSSM3_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                

sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:  11%| | 83.6k/755k [00:00<00:01, 5
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:  40%|▍| 305k/756k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:  40%|▍| 305k/755k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/740k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                

                                                                                
sub-MSSM3_rec-uncombined00023_T2starw.nii.gz:  11%| | 83.6k/740k [00:00<00:01, 6

sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/358k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00023_T2starw.nii.gz:  41%|▍| 305k/740k [00:00<00:00, 1.

sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:  23%|▏| 83.6k/358k [00:00<00:00, 6


sub-MSSM3_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/363k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:  85%|▊| 305k/358k [00:00<00:00, 1.

                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.nii.gz:  23%|▏| 83.6k/363k [00:00<00:00, 6
sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:   0%|  | 0.00/728k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.nii.gz:  84%|▊| 305k/363k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/731k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:  11%| | 83.6k/728k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:  11%| | 83.6k/731k [00:00<00:01, 6


sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/735k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:  37%|▎| 271k/728k [00:00<00:00, 1.
                                                                                

sub-MSSM3_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



sub-MSSM3_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                



                                                                                
sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:  42%|▍| 305k/731k [00:00<00:00, 1.


sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:  11%| | 83.5k/735k [00:00<00:01, 4
                                                                                
sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:  65%|▋| 476k/735k [00:00<00:00, 2.


                                                                                
sub-MSSM3_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/730k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/705k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:   9%| | 66.6k/730k [00:00<00:01, 4
sub-MSSM3_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/347k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:  12%| | 83.6k/705k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:  37%|▎| 271k/730k [00:00<00:00, 1.


sub-MSSM3_rec-uncombined00037_T2starw.nii.gz:  25%|▏| 85.2k/347k [00:00<00:00, 6
sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:  41%|▍| 288k/705k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/353k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:  98%|▉| 714k/730k [00:00<00:00, 2.
                                                                                



sub-MSSM3_rec-uncombined00037_T2starw.nii.gz:  69%|▋| 239k/347k [00:00<00:00, 1.

                                                                                
                                                                                
sub-MSSM3_rec-uncombined00038_T2starw.nii.gz:  24%|▏| 83.5k/353k [00:00<00:00, 6
                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/708k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                

sub-MSSM3_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:   9%| | 61.0k/708k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:  21%|▏| 152k/708k [00:00<00:00, 76

sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/710k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:  86%|▊| 611k/708k [00:00<00:00, 2.


sub-MSSM3_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:  12%| | 83.6k/710k [00:00<00:01, 5
                                                                                
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:  43%|▍| 305k/710k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:  12%| | 83.6k/712k [00:00<00:01, 6

                                                                                

sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/705k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/672k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:  43%|▍| 305k/712k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:  12%| | 83.6k/705k [00:00<00:00, 6
                                                                                
sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:  12%| | 83.5k/672k [00:00<00:00, 6

sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:  41%|▍| 288k/705k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:  84%|▊| 595k/705k [00:00<00:00, 2.

                                                                                
sub-MSSM3_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/335k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:  61%|▌| 407k/672k [00:00<00:00, 1.


                                                                                
sub-MSSM3_rec-uncombined00049_T2starw.nii.gz:  25%|▏| 83.6k/335k [00:00<00:00, 6

sub-MSSM3_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/342k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00049_T2starw.nii.gz:  91%|▉| 305k/335k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/686k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:  24%|▏| 83.6k/342k [00:00<00:00, 6
sub-MSSM3_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:  12%| | 83.6k/686k [00:00<00:01, 5
sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:  84%|▊| 288k/342k [00:00<00:00, 1.

                                                                                
sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:  44%|▍| 305k/686k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/686k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00055_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:  97%|▉| 663k/686k [00:00<00:00, 2.
                                                                                
sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/687k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00053_T2starw.nii.gz:  12%| | 83.6k/686k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/676k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:  12%| | 83.6k/687k [00:00<00:01, 6
sub-MSSM3_rec-uncombined00053_T2starw.nii.gz:  44%|▍| 305k/686k [00:00<00:00, 1.
sub-MSSM3_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:  12%| | 83.5k/676k [00:00<00:01, 5
sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:  44%|▍| 305k/687k [00:00<00:00, 1.



                                                                                

sub-MSSM3_rec-uncombined00053_T2starw.nii.gz: 100%|█| 686k/686k [00:00<00:00, 2.

                                                                                
                                                                                
sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:  60%|▌| 407k/676k [00:00<00:00, 1.


                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/642k [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/1.29k [00:00<?, ?B/s]

                                                                                

sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.32M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:  13%|▏| 83.6k/642k [00:00<00:00, 6
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.32M [00:00<00:07, 625kB
sub-MSSM3_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.61M [00:00<00:06, 6

sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   6%| | 271k/4.32M [00:00<00:03, 1.21MB
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:  47%|▍| 305k/642k [00:00<00:00, 1.



sub-MSSM3_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/1.35k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:   7%| | 271k/3.61M [00:00<00:02, 1.

sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  13%|▏| 577k/4.32M [00:00<00:01, 2.00MB
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  18%|▏| 679k/3.61M [00:00<00:01, 2.

sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  49%|▍| 2.11M/4.32M [00:00<00:00, 6.91M
sub-MSSM3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/92.7k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  45%|▍| 1.61M/3.61M [00:00<00:00, 5
sub-MSSM3_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/16.0M [00:00<?, ?B/s]
sub-MSSM3_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.7k [00:00<00:00, 536kB
                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/16.0M [00:00<00:22, 730kB/
sub-MSSM3_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/92.9k [00:00<?, ?B/s]
sub-MSSM3_acq-famp_TB1TFL.json:   0%|               | 0.00/1.73k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   2%| | 288k/16.0M [00:00<00:14, 1.10MB/


sub-MSSM3_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/1.36k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_acq-famp_TB1DREAM.nii.gz:  90%|██▋| 83.6k/92.9k [00:00<00:00, 603kB/s]
                                                                                
sub-MSSM3_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/833k [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.14M/16.0M [00:00<00:04, 3.78MB
sub-MSSM3_acq-famp_TB1TFL.nii.gz:  10%|▌     | 83.6k/833k [00:00<00:01, 667kB/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  22%|▏| 3.46M/16.0M [00:00<00:01, 10.6MB
sub-NTNU1_T2starw.json:   0%|                       | 0.00/2.45k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/89.7k [00:00<?, ?B/s]

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 6.32M/16.0M [00:00<00:00, 16.8MB



sub-MSSM3_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]
sub-MSSM3_acq-famp_TB1TFL.nii.gz:  35%|██    | 288k/833k [00:00<00:00, 1.15MB/s]



                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  59%|▌| 9.51M/16.0M [00:00<00:00, 22.0MB
                                                                                



sub-MSSM3_acq-refv-0.66_TB1DREAM.nii.gz:  93%|▉| 83.6k/89.7k [00:00<00:00, 656kB


                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.2M/16.0M [00:00<00:00, 23.8MB
                                                                                
sub-NTNU1_T2starw.nii.gz:   0%|                     | 0.00/1.33M [00:00<?, ?B/s]
sub-MSSM3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/92.7k [00:00<?, ?B/s]


sub-NTNU1_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_T2starw.nii.gz:   5%|▋            | 67.5k/1.33M [00:00<00:02, 492kB/s]
sub-NTNU1_UNIT1.nii.gz:   0%|                       | 0.00/26.0M [00:00<?, ?B/s]

sub-MSSM3_acq-refv_TB1DREAM.nii.gz:  90%|██▋| 83.5k/92.7k [00:00<00:00, 583kB/s]

                                                                                
sub-NTNU1_T2starw.nii.gz:  20%|██▌          | 271k/1.33M [00:00<00:01, 1.07MB/s]
sub-NTNU1_UNIT1.nii.gz:   0%|               | 83.6k/26.0M [00:00<00:44, 611kB/s]

sub-NTNU1_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.7M [00:00<?, ?B/s]
sub-NTNU1_T2starw.nii.gz:  56%|███████▎     | 764k/1.33M [00:00<00:00, 2.56MB/s]
                                                                                
sub-NTNU1_UNIT1.nii.gz:   1%|▏              | 271k/26.0M [00:00<00:26, 1.01MB/s]
sub-NTNU1_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]
                                                                                


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.5k/19.7M [00:00<00:32, 630kB
sub-NTNU1_UNIT1.nii.gz:   4%|▌             | 0.98M/26.0M [00:00<00:08, 3.04MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 407k/19.7M [00:00<00:12, 1.66MB
sub-NTNU1_UNIT1.nii.gz:  14%|█▉            | 3.64M/26.0M [00:00<00:02, 11.0MB/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/21.4M [00:00<?, ?B/s]



sub-NTNU1_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.18M/19.7M [00:00<00:04, 4.00M
sub-NTNU1_UNIT1.nii.gz:  19%|██▋           | 5.05M/26.0M [00:00<00:01, 12.1MB/s]



sub-NTNU1_rec-uncombined02_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.52M/19.7M [00:00<00:02, 7.48M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.5k/21.4M [00:00<00:36, 608kB
sub-NTNU1_UNIT1.nii.gz:  28%|███▉          | 7.24M/26.0M [00:00<00:01, 15.5MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.15M/19.7M [00:00<00:01, 14.1M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 356k/21.4M [00:00<00:15, 1.41MB


sub-NTNU1_UNIT1.nii.gz:  37%|█████▏        | 9.71M/26.0M [00:00<00:00, 18.6MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.56M/19.7M [00:00<00:00, 17.6M



sub-NTNU1_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 1.03M/21.4M [00:00<00:06, 3.54M


sub-NTNU1_UNIT1.nii.gz:  46%|██████▍       | 11.9M/26.0M [00:00<00:00, 19.8MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  48%|▍| 9.49M/19.7M [00:00<00:00, 18.4M
sub-NTNU1_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]



sub-NTNU1_rec-uncombined01_T2starw.nii.gz:   8%| | 83.5k/1.06M [00:00<00:01, 609
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 2.10M/21.4M [00:00<00:03, 6.22M


sub-NTNU1_UNIT1.nii.gz:  53%|███████▍      | 13.8M/26.0M [00:01<00:00, 19.4MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.3M/19.7M [00:00<00:00, 18.6M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.82M/21.4M [00:00<00:01, 10.1M


sub-NTNU1_UNIT1.nii.gz:  61%|████████▍     | 15.7M/26.0M [00:01<00:00, 19.2MB/s]
sub-NTNU1_rec-uncombined02_T2starw.nii.gz:   8%| | 83.5k/1.01M [00:00<00:01, 612



sub-NTNU1_rec-uncombined01_T2starw.nii.gz:  37%|▎| 407k/1.06M [00:00<00:00, 1.64

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 13.1M/19.7M [00:00<00:00, 18.1M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.51M/21.4M [00:00<00:01, 12.5M
sub-NTNU1_rec-uncombined01_T2starw.nii.gz:  97%|▉| 1.03M/1.06M [00:00<00:00, 3.5



                                                                                


sub-NTNU1_UNIT1.nii.gz:  68%|█████████▍    | 17.6M/26.0M [00:01<00:00, 16.9MB/s]




sub-NTNU1_rec-uncombined02_T2starw.nii.gz:  35%|▎| 356k/1.01M [00:00<00:00, 1.42
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 14.9M/19.7M [00:01<00:00, 16.3M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.77M/21.4M [00:00<00:01, 12.4M
sub-NTNU1_UNIT1.nii.gz:  74%|██████████▍   | 19.3M/26.0M [00:01<00:00, 16.9MB/s]




sub-NTNU1_rec-uncombined02_T2starw.nii.gz:  92%|▉| 952k/1.01M [00:00<00:00, 3.16
                                                                                
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 8.12M/21.4M [00:00<00:01, 12.9M

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 16.5M/19.7M [00:01<00:00, 15.5M
sub-NTNU1_UNIT1.nii.gz:  81%|███████████▎  | 21.0M/26.0M [00:01<00:00, 16.5MB/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 9.96M/21.4M [00:00<00:00, 14.8M

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 18.3M/19.7M [00:01<00:00, 16.4M
sub-NTNU1_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_UNIT1.nii.gz:  87%|████████████▏ | 22.6M/26.0M [00:01<00:00, 15.4MB/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 11.4M/21.4M [00:01<00:00, 14.3M

                                                                                
sub-NTNU1_UNIT1.nii.gz:  93%|████████████▉ | 24.1M/26.0M [00:01<00:00, 15.4MB/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 12.9M/21.4M [00:01<00:00, 14.8M
sub-NTNU1_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]


                                                                                
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  72%|▋| 15.4M/21.4M [00:01<00:00, 18.0M
sub-NTNU1_rec-uncombined04_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined03_T2starw.nii.gz:   8%| | 85.2k/1.04M [00:00<00:01, 629
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 19.3M/21.4M [00:01<00:00, 24.8M
                                                                                
sub-NTNU1_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined03_T2starw.nii.gz:  24%|▏| 256k/1.04M [00:00<00:00, 1.20
sub-NTNU1_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined03_T2starw.nii.gz:  56%|▌| 595k/1.04M [00:00<00:00, 2.08

                                                                                
sub-NTNU1_rec-uncombined04_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 573
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined04_T2starw.nii.gz:  29%|▎| 305k/1.02M [00:00<00:00, 1.23
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 614


sub-NTNU1_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_rec-uncombined04_T2starw.nii.gz:  90%|▉| 934k/1.02M [00:00<00:00, 3.15
                                                                                
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:  22%|▏| 237k/1.03M [00:00<00:00, 1.10
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:   8%| | 83.5k/1.04M [00:00<00:01, 611
sub-NTNU1_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:  60%|▌| 628k/1.03M [00:00<00:00, 2.23

                                                                                
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:  24%|▏| 254k/1.04M [00:00<00:00, 1.14
sub-NTNU1_rec-uncombined07_T2starw.nii.gz:   7%| | 83.6k/1.09M [00:00<00:01, 608

sub-NTNU1_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:  62%|▌| 662k/1.04M [00:00<00:00, 2.36


                                                                                
sub-NTNU1_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined07_T2starw.nii.gz:  26%|▎| 288k/1.09M [00:00<00:00, 1.12
                                                                                
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:   8%| | 83.5k/1.01M [00:00<00:01, 608
sub-NTNU1_rec-uncombined09_T2starw.nii.gz:   8%| | 83.6k/1.08M [00:00<00:01, 701
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:  39%|▍| 407k/1.01M [00:00<00:00, 1.64


sub-NTNU1_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined11_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                



sub-NTNU1_rec-uncombined10_T2starw.nii.gz:   6%| | 66.5k/1.09M [00:00<00:01, 669

sub-NTNU1_rec-uncombined09_T2starw.nii.gz:  28%|▎| 305k/1.08M [00:00<00:00, 1.18
sub-NTNU1_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.12M [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined10_T2starw.nii.gz:  14%|▏| 152k/1.09M [00:00<00:01, 748k
sub-NTNU1_rec-uncombined11_T2starw.nii.gz:   7%| | 85.2k/1.12M [00:00<00:01, 663
sub-NTNU1_rec-uncombined10_T2starw.nii.gz:  59%|▌| 662k/1.09M [00:00<00:00, 2.31


                                                                                
sub-NTNU1_rec-uncombined12_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined11_T2starw.nii.gz:  27%|▎| 306k/1.12M [00:00<00:00, 1.23


sub-NTNU1_rec-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.11M [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined13_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-NTNU1_rec-uncombined12_T2starw.nii.gz:   7%| | 85.2k/1.11M [00:00<00:01, 667
sub-NTNU1_rec-uncombined12_T2starw.nii.gz:  27%|▎| 306k/1.11M [00:00<00:00, 1.23
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.14M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined15_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                

sub-NTNU1_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined14_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_rec-uncombined12_T2starw.nii.gz:  75%|▋| 851k/1.11M [00:00<00:00, 2.67


                                                                                
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:   7%| | 83.6k/1.14M [00:00<00:01, 610

sub-NTNU1_rec-uncombined13_T2starw.nii.gz:   7%| | 83.5k/1.09M [00:00<00:01, 613
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:  26%|▎| 305k/1.14M [00:00<00:00, 1.20

sub-NTNU1_rec-uncombined13_T2starw.nii.gz:  36%|▎| 407k/1.09M [00:00<00:00, 1.63
sub-NTNU1_rec-uncombined16_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:  71%|▋| 832k/1.14M [00:00<00:00, 2.73


sub-NTNU1_rec-uncombined15_T2starw.nii.gz:   0%|    | 0.00/1.10M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined13_T2starw.nii.gz:  77%|▊| 866k/1.09M [00:00<00:00, 2.73



sub-NTNU1_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]

                                                                                
                                                                                
sub-NTNU1_rec-uncombined15_T2starw.nii.gz:   7%| | 83.6k/1.10M [00:00<00:01, 735
sub-NTNU1_rec-uncombined16_T2starw.nii.gz:   7%| | 83.6k/1.09M [00:00<00:01, 612
sub-NTNU1_rec-uncombined15_T2starw.nii.gz:  27%|▎| 305k/1.10M [00:00<00:00, 1.29
sub-NTNU1_rec-uncombined17_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined16_T2starw.nii.gz:  27%|▎| 305k/1.09M [00:00<00:00, 1.20


                                                                                
sub-NTNU1_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                

sub-NTNU1_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined16_T2starw.nii.gz:  87%|▊| 968k/1.09M [00:00<00:00, 3.29



                                                                                
sub-NTNU1_rec-uncombined17_T2starw.nii.gz:   8%| | 83.5k/0.99M [00:00<00:01, 669
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined17_T2starw.nii.gz:  40%|▍| 407k/0.99M [00:00<00:00, 1.62


sub-NTNU1_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined18_T2starw.nii.gz:   8%| | 85.2k/0.98M [00:00<00:01, 628
                                                                                
sub-NTNU1_rec-uncombined19_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 710
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:  30%|▎| 306k/0.98M [00:00<00:00, 1.18
                                                                                


sub-NTNU1_rec-uncombined19_T2starw.nii.gz:  28%|▎| 288k/1.01M [00:00<00:00, 1.13
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-NTNU1_rec-uncombined22_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:   8%| | 83.6k/0.99M [00:00<00:01, 606
sub-NTNU1_rec-uncombined22_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 607
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:  28%|▎| 288k/0.99M [00:00<00:00, 1.12



sub-NTNU1_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_rec-uncombined22_T2starw.nii.gz:  28%|▎| 288k/1.01M [00:00<00:00, 1.12
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:  94%|▉| 952k/0.99M [00:00<00:00, 3.24
                                                                                
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 602
                                                                                
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:  30%|▎| 305k/1.00M [00:00<00:00, 1.30
sub-NTNU1_acq-anat_TB1TFL.json:   0%|               | 0.00/2.68k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                



sub-NTNU1_rec-uncombined21_T2starw.nii.gz:  71%|▋| 731k/1.00M [00:00<00:00, 2.34
                                                                                
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined23_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:   6%| | 66.6k/1.01M [00:00<00:02, 490
sub-NTNU1_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/2.21k [00:00<?, ?B/s]


                                                                                

sub-NTNU1_rec-uncombined23_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 532


sub-NTNU1_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/846k [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:  26%|▎| 271k/1.01M [00:00<00:00, 1.11
sub-NTNU1_acq-anat_TB1TFL.nii.gz:  10%|▌     | 83.6k/846k [00:00<00:01, 720kB/s]

sub-NTNU1_rec-uncombined23_T2starw.nii.gz:  29%|▎| 288k/0.98M [00:00<00:00, 1.15
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.11M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:  95%|▉| 985k/1.01M [00:00<00:00, 3.48
                                                                                
                                                                                
sub-NTNU1_acq-anat_TB1TFL.nii.gz:  36%|██▏   | 305k/846k [00:00<00:00, 1.34MB/s]



sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.5k/4.11M [00:00<00:06, 619kB
                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  10%| | 407k/4.11M [00:00<00:02, 1.64MB

sub-NTNU1_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.23k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.61M [00:00<00:05, 7

sub-NTNU1_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  24%|▏| 1.00M/4.11M [00:00<00:00, 3.37M
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  70%|▋| 2.90M/4.11M [00:00<00:00, 9.15M
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.61M [00:00<00:02, 1.
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.6M [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.24M/3.61M [00:00<00:00, 4


sub-NTNU1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/88.6k [00:00<?, ?B/s]
sub-NTNU1_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.18k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.6M [00:00<00:28, 568kB/
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  83%|▊| 3.01M/3.61M [00:00<00:00, 8
                                                                                
sub-NTNU1_acq-famp-0.66_TB1DREAM.nii.gz:  94%|▉| 83.6k/88.6k [00:00<00:00, 613kB


                                                                                
sub-NTNU1_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.18k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   1%| | 169k/15.6M [00:00<00:23, 696kB/s
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   4%| | 714k/15.6M [00:00<00:05, 2.67MB/
sub-NTNU1_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.6k [00:00<?, ?B/s]


sub-NTNU1_acq-famp_TB1TFL.json:   0%|               | 0.00/2.71k [00:00<?, ?B/s]


                                                                                

sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.34M/15.6M [00:00<00:02, 6.89MB
sub-NTNU1_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.20k [00:00<?, ?B/s]


                                                                                

sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  35%|▎| 5.53M/15.6M [00:00<00:00, 14.9MB
sub-NTNU1_acq-famp_TB1DREAM.nii.gz:  95%|██▊| 85.2k/89.6k [00:00<00:00, 611kB/s]


sub-NTNU1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.7k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  61%|▌| 9.45M/15.6M [00:00<00:00, 22.9MB
sub-NTNU1_acq-refv-0.66_TB1DREAM.nii.gz:  99%|▉| 83.6k/84.7k [00:00<00:00, 696kB


                                                                                
sub-NTNU1_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/951k [00:00<?, ?B/s]

sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  87%|▊| 13.5M/15.6M [00:00<00:00, 28.8MB
                                                                                

sub-NTNU1_acq-refv_TB1DREAM.json:   0%|             | 0.00/2.19k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_acq-famp_TB1TFL.nii.gz:   5%|▎     | 50.5k/951k [00:00<00:01, 478kB/s]

sub-NTNU1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.3k [00:00<?, ?B/s]
sub-NTNU1_acq-famp_TB1TFL.nii.gz:  16%|█      | 152k/951k [00:00<00:01, 790kB/s]
sub-NTNU1_acq-refv_TB1DREAM.nii.gz:  94%|██▊| 83.6k/89.3k [00:00<00:00, 611kB/s]

                                                                                
sub-NTNU1_acq-famp_TB1TFL.nii.gz:  50%|██▉   | 475k/951k [00:00<00:00, 1.88MB/s]

sub-NTNU2_T2starw.nii.gz:   0%|                     | 0.00/1.32M [00:00<?, ?B/s]


sub-NTNU2_T2starw.json:   0%|                       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_acq-famp_TB1TFL.nii.gz:  98%|█████▉| 934k/951k [00:00<00:00, 2.97MB/s]
                                                                                


sub-NTNU2_T2starw.nii.gz:   6%|▊            | 83.6k/1.32M [00:00<00:01, 693kB/s]
sub-NTNU2_T2starw.nii.gz:  21%|██▊          | 288k/1.32M [00:00<00:00, 1.41MB/s]
sub-NTNU2_T2starw.nii.gz:  44%|█████▋       | 594k/1.32M [00:00<00:00, 2.14MB/s]
sub-NTNU2_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1.nii.gz:   0%|                       | 0.00/26.1M [00:00<?, ?B/s]
                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.9M [00:00<?, ?B/s]
sub-NTNU2_UNIT1.nii.gz:   0%|               | 83.6k/26.1M [00:00<00:38, 704kB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.3M [00:00<?, ?B/s]
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/19.9M [00:00<00:33, 615kB



sub-NTNU2_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_UNIT1.nii.gz:   1%|▏              | 305k/26.1M [00:00<00:23, 1.16MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/18.3M [00:00<00:31, 615kB



sub-NTNU2_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 271k/19.9M [00:00<00:19, 1.06MB
sub-NTNU2_UNIT1.nii.gz:   5%|▋             | 1.24M/26.1M [00:00<00:06, 4.09MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/18.3M [00:00<00:15, 1.20MB
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 968k/19.9M [00:00<00:05, 3.33MB
sub-NTNU2_UNIT1.nii.gz:  11%|█▌            | 2.88M/26.1M [00:00<00:02, 8.38MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.03M/18.3M [00:00<00:05, 3.62M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.79M/19.9M [00:00<00:03, 5.26M
sub-NTNU2_UNIT1.nii.gz:  22%|███           | 5.68M/26.1M [00:00<00:01, 15.1MB/s]



sub-NTNU2_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]




sub-NTNU2_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]




                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.72M/18.3M [00:00<00:03, 4.88M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.54M/19.9M [00:00<00:02, 6.11M
sub-NTNU2_UNIT1.nii.gz:  28%|███▉          | 7.27M/26.1M [00:00<00:01, 14.8MB/s]
sub-NTNU2_rec-uncombined01_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 615


sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.58M/18.3M [00:00<00:01, 9.72M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.52M/19.9M [00:00<00:01, 10.8M
sub-NTNU2_UNIT1.nii.gz:  35%|████▉         | 9.15M/26.1M [00:00<00:01, 16.2MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.47M/18.3M [00:00<00:01, 13.0M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.34M/19.9M [00:00<00:01, 13.4M



sub-NTNU2_rec-uncombined01_T2starw.nii.gz:  26%|▎| 271k/1.02M [00:00<00:00, 1.06
sub-NTNU2_UNIT1.nii.gz:  42%|█████▊        | 10.9M/26.1M [00:00<00:00, 16.8MB/s]
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:   0%|     | 0.00/983k [00:00<?, ?B/s]


sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.22M/18.3M [00:00<00:00, 14.6M

sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.01M/19.9M [00:00<00:00, 14.6M



sub-NTNU2_rec-uncombined01_T2starw.nii.gz:  76%|▊| 799k/1.02M [00:00<00:00, 2.69
sub-NTNU2_UNIT1.nii.gz:  48%|██████▋       | 12.6M/26.1M [00:01<00:00, 17.0MB/s]



                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  47%|▍| 8.67M/18.3M [00:00<00:00, 14.2M




sub-NTNU2_rec-uncombined02_T2starw.nii.gz:   8%| | 83.6k/983k [00:00<00:01, 613k
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 9.45M/19.9M [00:00<00:00, 14.3M
sub-NTNU2_UNIT1.nii.gz:  54%|███████▌      | 14.2M/26.1M [00:01<00:00, 16.4MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  57%|▌| 10.5M/18.3M [00:00<00:00, 15.6M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 11.3M/19.9M [00:01<00:00, 15.9M
sub-NTNU2_UNIT1.nii.gz:  62%|████████▋     | 16.1M/26.1M [00:01<00:00, 17.4MB/s]




sub-NTNU2_rec-uncombined02_T2starw.nii.gz:  36%|▎| 356k/983k [00:00<00:00, 1.43M
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 12.2M/18.3M [00:01<00:00, 16.2M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 13.1M/19.9M [00:01<00:00, 16.5M



sub-NTNU2_rec-uncombined02_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                




sub-NTNU2_rec-uncombined02_T2starw.nii.gz:  98%|▉| 968k/983k [00:00<00:00, 3.22M
sub-NTNU2_UNIT1.nii.gz:  68%|█████████▌    | 17.8M/26.1M [00:01<00:00, 17.2MB/s]
                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  75%|▊| 13.8M/18.3M [00:01<00:00, 14.6M

sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  74%|▋| 14.6M/19.9M [00:01<00:00, 14.9M
sub-NTNU2_UNIT1.nii.gz:  74%|██████████▍   | 19.5M/26.1M [00:01<00:00, 15.7MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  86%|▊| 15.8M/18.3M [00:01<00:00, 16.4M

sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  83%|▊| 16.5M/19.9M [00:01<00:00, 16.2M
sub-NTNU2_UNIT1.nii.gz:  82%|███████████▍  | 21.4M/26.1M [00:01<00:00, 17.0MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 17.7M/18.3M [00:01<00:00, 17.4M

sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  93%|▉| 18.5M/19.9M [00:01<00:00, 17.5M


                                                                                
sub-NTNU2_rec-uncombined04_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_UNIT1.nii.gz:  88%|████████████▍ | 23.1M/26.1M [00:01<00:00, 15.8MB/s]


sub-NTNU2_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU2_rec-uncombined03_T2starw.nii.gz:   8%| | 83.5k/1.01M [00:00<00:01, 614
sub-NTNU2_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                



sub-NTNU2_rec-uncombined03_T2starw.nii.gz:  39%|▍| 407k/1.01M [00:00<00:00, 1.60
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
                                                                                

sub-NTNU2_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]


sub-NTNU2_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:   7%| | 66.6k/1.00M [00:00<00:01, 650
sub-NTNU2_rec-uncombined05_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 639
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:  13%|▏| 135k/1.00M [00:00<00:01, 663k
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_rec-uncombined05_T2starw.nii.gz:  30%|▎| 305k/0.98M [00:00<00:00, 1.18
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:  62%|▌| 628k/1.00M [00:00<00:00, 2.19
                                                                                
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 616

                                                                                
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:  35%|▎| 356k/1.00M [00:00<00:00, 1.54
                                                                                
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:   8%| | 85.2k/1.05M [00:00<00:01, 564

sub-NTNU2_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                
sub-NTNU2_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                

sub-NTNU2_rec-uncombined08_T2starw.nii.gz:   0%|     | 0.00/999k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:  25%|▎| 272k/1.05M [00:00<00:00, 1.05
sub-NTNU2_rec-uncombined08_T2starw.nii.gz:   8%| | 83.5k/999k [00:00<00:01, 656k
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:  98%|▉| 1.03M/1.05M [00:00<00:00, 3.1
                                                                                

sub-NTNU2_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined11_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                

sub-NTNU2_rec-uncombined08_T2starw.nii.gz:  41%|▍| 407k/999k [00:00<00:00, 1.53M
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:   8%| | 83.6k/1.04M [00:00<00:01, 702
                                                                                
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:  29%|▎| 305k/1.04M [00:00<00:00, 1.28

sub-NTNU2_rec-uncombined12_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                
sub-NTNU2_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined10_T2starw.nii.gz:   8%| | 83.5k/1.04M [00:00<00:01, 614
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.07M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:   8%| | 83.6k/1.04M [00:00<00:01, 627
sub-NTNU2_rec-uncombined10_T2starw.nii.gz:  38%|▍| 407k/1.04M [00:00<00:00, 1.65
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:   8%| | 83.5k/1.07M [00:00<00:01, 656
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:  28%|▎| 305k/1.04M [00:00<00:00, 1.22
                                                                                

sub-NTNU2_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]



sub-NTNU2_rec-uncombined13_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:  20%|▏| 220k/1.07M [00:00<00:00, 1.00
                                                                                
sub-NTNU2_rec-uncombined13_T2starw.nii.gz:   8%| | 83.6k/1.05M [00:00<00:01, 752
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:  82%|▊| 900k/1.07M [00:00<00:00, 3.35


                                                                                
sub-NTNU2_rec-uncombined13_T2starw.nii.gz:  25%|▎| 272k/1.05M [00:00<00:00, 1.15
sub-NTNU2_rec-uncombined14_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined15_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                


sub-NTNU2_rec-uncombined13_T2starw.nii.gz:  63%|▋| 679k/1.05M [00:00<00:00, 2.27
                                                                                
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.10M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined15_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:   7%| | 83.5k/1.10M [00:00<00:01, 651


sub-NTNU2_rec-uncombined16_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined15_T2starw.nii.gz:   8%| | 83.6k/1.06M [00:00<00:01, 609
sub-NTNU2_rec-uncombined17_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:  36%|▎| 407k/1.10M [00:00<00:00, 1.60


sub-NTNU2_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined15_T2starw.nii.gz:  28%|▎| 305k/1.06M [00:00<00:00, 1.20
                                                                                
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 642
                                                                                
sub-NTNU2_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/993k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:  29%|▎| 305k/1.03M [00:00<00:00, 1.23
sub-NTNU2_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/973k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined17_T2starw.nii.gz:   9%| | 85.2k/993k [00:00<00:01, 604k


sub-NTNU2_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined18_T2starw.nii.gz:   9%| | 83.5k/973k [00:00<00:01, 649k
sub-NTNU2_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined17_T2starw.nii.gz:  29%|▎| 289k/993k [00:00<00:00, 1.13M
sub-NTNU2_rec-uncombined18_T2starw.nii.gz:  33%|▎| 322k/973k [00:00<00:00, 1.35M
                                                                                


                                                                                
sub-NTNU2_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                

sub-NTNU2_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/987k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:   7%| | 66.6k/0.99M [00:00<00:01, 492
sub-NTNU2_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined20_T2starw.nii.gz:   8%| | 83.6k/987k [00:00<00:01, 616k


sub-NTNU2_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:  27%|▎| 271k/0.99M [00:00<00:00, 1.12
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/980k [00:00<?, ?B/s]

sub-NTNU2_rec-uncombined20_T2starw.nii.gz:  31%|▎| 305k/987k [00:00<00:00, 1.38M
                                                                                
sub-NTNU2_rec-uncombined20_T2starw.nii.gz:  67%|▋| 663k/987k [00:00<00:00, 2.31M

                                                                                
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:   9%| | 83.5k/980k [00:00<00:01, 566k
sub-NTNU2_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                

sub-NTNU2_rec-uncombined22_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:  41%|▍| 407k/980k [00:00<00:00, 1.65M
sub-NTNU2_rec-uncombined22_T2starw.nii.gz:   8%| | 83.5k/0.98M [00:00<00:01, 737


                                                                                
sub-NTNU2_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/991k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined22_T2starw.nii.gz:  41%|▍| 407k/0.98M [00:00<00:00, 1.76
sub-NTNU2_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]

sub-NTNU2_rec-uncombined23_T2starw.nii.gz:   8%| | 83.6k/991k [00:00<00:01, 533k
                                                                                
sub-NTNU2_acq-anat_TB1TFL.json:   0%|               | 0.00/2.68k [00:00<?, ?B/s]
                                                                                



sub-NTNU2_rec-uncombined24_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 665

sub-NTNU2_rec-uncombined23_T2starw.nii.gz:  29%|▎| 288k/991k [00:00<00:00, 1.11M
                                                                                


sub-NTNU2_rec-uncombined24_T2starw.nii.gz:  28%|▎| 288k/1.00M [00:00<00:00, 1.38
sub-NTNU2_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/2.28k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/731k [00:00<?, ?B/s]


sub-NTNU2_rec-uncombined24_T2starw.nii.gz:  63%|▋| 646k/1.00M [00:00<00:00, 2.35
                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.04M [00:00<?, ?B/s]
sub-NTNU2_acq-anat_TB1TFL.nii.gz:  11%|▋     | 83.6k/731k [00:00<00:01, 610kB/s]
sub-NTNU2_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.28k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.04M [00:00<00:06, 606kB
sub-NTNU2_acq-anat_TB1TFL.nii.gz:  42%|██▌   | 305k/731k [00:00<00:00, 1.20MB/s]


sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.62M [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 305k/4.04M [00:00<00:03, 1.19MB
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.5M [00:00<?, ?B/s]


sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.62M [00:00<00:06, 6
sub-NTNU2_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]



                                                                                

sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:  17%|▏| 714k/4.04M [00:00<00:01, 2.31MB
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   1%| | 85.2k/15.5M [00:00<00:25, 628kB/
sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.62M [00:00<00:02, 1.

sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:  62%|▌| 2.51M/4.04M [00:00<00:00, 7.82M
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   2%| | 273k/15.5M [00:00<00:12, 1.28MB/
sub-NTNU2_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.25k [00:00<?, ?B/s]

                                                                                


sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  18%|▏| 662k/3.62M [00:00<00:01, 2.
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   4%| | 629k/15.5M [00:00<00:07, 2.18MB/

sub-NTNU2_acq-famp-1.5_TB1DREAM.json:   0%|         | 0.00/2.25k [00:00<?, ?B/s]

                                                                                


sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  69%|▋| 2.50M/3.62M [00:00<00:00, 7
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.40M/15.5M [00:00<00:03, 4.37MB
sub-NTNU2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/88.6k [00:00<?, ?B/s]


sub-NTNU2_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.24k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 4.95M/15.5M [00:00<00:00, 15.1MB
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  54%|▌| 8.34M/15.5M [00:00<00:00, 21.7MB


sub-NTNU2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/89.6k [00:00<?, ?B/s]

sub-NTNU2_acq-famp-0.66_TB1DREAM.nii.gz:  96%|▉| 85.2k/88.6k [00:00<00:00, 623kB

                                                                                
sub-NTNU2_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.1k [00:00<?, ?B/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  73%|▋| 11.3M/15.5M [00:00<00:00, 24.6MB
sub-NTNU2_acq-famp-1.5_TB1DREAM.nii.gz:  95%|▉| 85.2k/89.6k [00:00<00:00, 623kB/


                                                                                
sub-NTNU2_acq-famp_TB1TFL.json:   0%|               | 0.00/2.72k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  97%|▉| 15.0M/15.5M [00:00<00:00, 28.9MB

sub-NTNU2_acq-famp_TB1DREAM.nii.gz:  94%|██▊| 83.6k/89.1k [00:00<00:00, 553kB/s]

                                                                                
                                                                                
sub-NTNU2_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/935k [00:00<?, ?B/s]
sub-NTNU2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/82.6k [00:00<?, ?B/s]
sub-NTNU2_acq-famp_TB1TFL.nii.gz:   9%|▌     | 83.6k/935k [00:00<00:01, 614kB/s]


sub-NTNU2_acq-refv-1.5_TB1DREAM.json:   0%|         | 0.00/2.27k [00:00<?, ?B/s]


                                                                                


sub-NTNU2_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.27k [00:00<?, ?B/s]
                                                                                


sub-NTNU2_acq-refv_TB1DREAM.json:   0%|             | 0.00/2.26k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_acq-famp_TB1TFL.nii.gz:  33%|█▉    | 305k/935k [00:00<00:00, 1.38MB/s]
sub-NTNU2_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 82.6k/82.6k [00:00<00:00, 608kB

                                                                                
sub-NTNU2_acq-famp_TB1TFL.nii.gz:  73%|████▎ | 679k/935k [00:00<00:00, 2.37MB/s]
                                                                                
sub-NTNU3_T2starw.json:   0%|                       | 0.00/2.47k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/89.8k [00:00<?, ?B/s]

sub-NTNU2_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/85.9k [00:00<?, ?B/s]
sub-NTNU3_T2starw.nii.gz:   0%|                     | 0.00/1.33M [00:00<?, ?B/s]
sub-NTNU2_acq-refv-1.5_TB1DREAM.nii.gz:  93%|▉| 83.6k/89.8k [00:00<00:00, 670kB/
                                                                                
sub-NTNU3_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]
                                                                                


sub-NTNU2_acq-refv_TB1DREAM.nii.gz:  97%|██▉| 83.6k/85.9k [00:00<00:00, 580kB/s]

                                                                                
sub-NTNU3_T2starw.nii.gz:   5%|▋            | 66.6k/1.33M [00:00<00:01, 671kB/s]
sub-NTNU3_T2starw.nii.gz:  10%|█▍            | 136k/1.33M [00:00<00:01, 662kB/s]
sub-NTNU3_UNIT1.nii.gz:   0%|                       | 0.00/25.8M [00:00<?, ?B/s]
sub-NTNU3_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]

                                                                                


sub-NTNU3_T2starw.nii.gz:  46%|█████▉       | 628k/1.33M [00:00<00:00, 2.21MB/s]
sub-NTNU3_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_UNIT1.nii.gz:   0%|               | 83.6k/25.8M [00:00<00:44, 611kB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.6M [00:00<?, ?B/s]


                                                                                
sub-NTNU3_UNIT1.nii.gz:   1%|▏              | 305k/25.8M [00:00<00:19, 1.37MB/s]

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 83.5k/18.6M [00:00<00:32, 599kB
sub-NTNU3_UNIT1.nii.gz:   2%|▎              | 645k/25.8M [00:00<00:11, 2.22MB/s]


sub-NTNU3_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/20.4M [00:00<?, ?B/s]

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 356k/18.6M [00:00<00:13, 1.41MB
sub-NTNU3_UNIT1.nii.gz:   7%|▉             | 1.73M/25.8M [00:00<00:04, 5.60MB/s]



sub-NTNU3_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.19M/18.6M [00:00<00:04, 4.19M
sub-NTNU3_UNIT1.nii.gz:  16%|██▎           | 4.18M/25.8M [00:00<00:01, 12.5MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/20.4M [00:00<00:35, 610kB
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:   8%| | 85.2k/1.06M [00:00<00:01, 617

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.42M/18.6M [00:00<00:02, 7.20M
sub-NTNU3_UNIT1.nii.gz:  28%|███▉          | 7.32M/25.8M [00:00<00:01, 19.2MB/s]




sub-NTNU3_rec-uncombined02_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]




                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 271k/20.4M [00:00<00:20, 1.05MB

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.35M/18.6M [00:00<00:01, 8.04M
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:  28%|▎| 306k/1.06M [00:00<00:00, 1.19
sub-NTNU3_UNIT1.nii.gz:  36%|████▉         | 9.21M/25.8M [00:00<00:00, 18.8MB/s]
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 816k/20.4M [00:00<00:07, 2.74MB

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.24M/18.6M [00:00<00:01, 11.8M
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:  85%|▊| 918k/1.06M [00:00<00:00, 3.07
sub-NTNU3_UNIT1.nii.gz:  43%|██████        | 11.1M/25.8M [00:00<00:00, 19.0MB/s]



                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.28M/20.4M [00:00<00:05, 3.54M

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.52M/18.6M [00:00<00:01, 12.3M
sub-NTNU3_UNIT1.nii.gz:  50%|███████       | 12.9M/25.8M [00:00<00:00, 17.8MB/s]
sub-NTNU3_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.37M/20.4M [00:00<00:03, 6.14M

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.48M/18.6M [00:00<00:00, 14.8M
sub-NTNU3_UNIT1.nii.gz:  57%|████████      | 14.8M/25.8M [00:01<00:00, 18.4MB/s]
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.28M/20.4M [00:00<00:01, 10.6M

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 10.4M/18.6M [00:00<00:00, 16.4M



sub-NTNU3_rec-uncombined02_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 607
sub-NTNU3_UNIT1.nii.gz:  65%|█████████▏    | 16.9M/25.8M [00:01<00:00, 19.1MB/s]




sub-NTNU3_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 6.22M/20.4M [00:00<00:01, 13.6M
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.2M/18.6M [00:01<00:00, 17.2M
sub-NTNU3_rec-uncombined02_T2starw.nii.gz:  31%|▎| 322k/1.00M [00:00<00:00, 1.26
sub-NTNU3_UNIT1.nii.gz:  73%|██████████▏   | 18.7M/25.8M [00:01<00:00, 19.0MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.98M/20.4M [00:00<00:00, 15.1M
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  75%|▊| 14.0M/18.6M [00:01<00:00, 17.5M




sub-NTNU3_rec-uncombined03_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 608
sub-NTNU3_rec-uncombined02_T2starw.nii.gz:  91%|▉| 935k/1.00M [00:00<00:00, 3.13



                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.48M/20.4M [00:01<00:00, 14.6M
sub-NTNU3_UNIT1.nii.gz:  80%|███████████▏  | 20.5M/25.8M [00:01<00:00, 17.3MB/s]

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 15.6M/18.6M [00:01<00:00, 16.3M
sub-NTNU3_rec-uncombined03_T2starw.nii.gz:  27%|▎| 288k/1.03M [00:00<00:00, 1.12
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 11.2M/20.4M [00:01<00:00, 15.5M
sub-NTNU3_UNIT1.nii.gz:  87%|████████████  | 22.3M/25.8M [00:01<00:00, 17.6MB/s]

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 17.5M/18.6M [00:01<00:00, 17.2M
sub-NTNU3_rec-uncombined03_T2starw.nii.gz:  79%|▊| 833k/1.03M [00:00<00:00, 2.78




                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 12.8M/20.4M [00:01<00:00, 15.2M

                                                                                
sub-NTNU3_UNIT1.nii.gz:  93%|█████████████ | 24.0M/25.8M [00:01<00:00, 15.8MB/s]

sub-NTNU3_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 14.2M/20.4M [00:01<00:00, 15.2M
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  87%|▊| 17.8M/20.4M [00:01<00:00, 21.6M
sub-NTNU3_rec-uncombined04_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                



                                                                                
sub-NTNU3_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:   8%| | 83.6k/1.01M [00:00<00:01, 609


sub-NTNU3_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]

sub-NTNU3_rec-uncombined05_T2starw.nii.gz:   8%| | 83.6k/1.02M [00:00<00:01, 583



sub-NTNU3_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:  26%|▎| 271k/1.01M [00:00<00:00, 1.05
sub-NTNU3_rec-uncombined05_T2starw.nii.gz:  29%|▎| 305k/1.02M [00:00<00:00, 1.38


sub-NTNU3_rec-uncombined06_T2starw.nii.gz:   8%| | 83.6k/1.03M [00:00<00:01, 675
                                                                                




sub-NTNU3_rec-uncombined07_T2starw.nii.gz:   8%| | 83.6k/1.08M [00:00<00:01, 537
sub-NTNU3_rec-uncombined05_T2starw.nii.gz:  63%|▋| 662k/1.02M [00:00<00:00, 2.31

                                                                                
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:  27%|▎| 288k/1.03M [00:00<00:00, 1.17
sub-NTNU3_rec-uncombined07_T2starw.nii.gz:  25%|▏| 271k/1.08M [00:00<00:00, 1.09
sub-NTNU3_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:  93%|▉| 986k/1.03M [00:00<00:00, 3.47


                                                                                
sub-NTNU3_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                




sub-NTNU3_rec-uncombined07_T2starw.nii.gz:  98%|▉| 1.06M/1.08M [00:00<00:00, 3.1



                                                                                
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:   8%| | 83.5k/0.99M [00:00<00:01, 608
sub-NTNU3_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]


sub-NTNU3_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.07M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:  40%|▍| 407k/0.99M [00:00<00:00, 1.63
sub-NTNU3_rec-uncombined11_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]



                                                                                

sub-NTNU3_rec-uncombined09_T2starw.nii.gz:   6%| | 66.6k/1.08M [00:00<00:02, 435


sub-NTNU3_rec-uncombined10_T2starw.nii.gz:   8%| | 83.6k/1.07M [00:00<00:01, 602
                                                                                
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.11M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined09_T2starw.nii.gz:  26%|▎| 288k/1.08M [00:00<00:00, 1.18
sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  28%|▎| 305k/1.07M [00:00<00:00, 1.20
                                                                                
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:   7%| | 83.6k/1.11M [00:00<00:02, 529


sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  65%|▋| 714k/1.07M [00:00<00:00, 2.32


                                                                                

sub-NTNU3_rec-uncombined12_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined13_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:  30%|▎| 339k/1.11M [00:00<00:00, 1.35
                                                                                
sub-NTNU3_rec-uncombined14_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.10M [00:00<?, ?B/s]

sub-NTNU3_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.12M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:   7%| | 83.6k/1.10M [00:00<00:01, 628
sub-NTNU3_rec-uncombined13_T2starw.nii.gz:   8%| | 83.6k/1.08M [00:00<00:01, 612



sub-NTNU3_rec-uncombined16_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]



                                                                                
sub-NTNU3_rec-uncombined15_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]



                                                                                


sub-NTNU3_rec-uncombined14_T2starw.nii.gz:   7%| | 83.6k/1.12M [00:00<00:01, 548

sub-NTNU3_rec-uncombined13_T2starw.nii.gz:  26%|▎| 288k/1.08M [00:00<00:00, 1.20
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:  25%|▎| 288k/1.10M [00:00<00:00, 1.09
                                                                                


sub-NTNU3_rec-uncombined13_T2starw.nii.gz:  54%|▌| 594k/1.08M [00:00<00:00, 1.92
                                                                                


sub-NTNU3_rec-uncombined14_T2starw.nii.gz:  26%|▎| 305k/1.12M [00:00<00:00, 1.12
                                                                                
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined17_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:   7%| | 83.6k/1.09M [00:00<00:01, 543
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:   8%| | 85.2k/1.06M [00:00<00:01, 625
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:  27%|▎| 305k/1.09M [00:00<00:00, 1.24
sub-NTNU3_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:  25%|▎| 272k/1.06M [00:00<00:00, 1.06
                                                                                
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:   8%| | 85.2k/0.98M [00:00<00:01, 618
sub-NTNU3_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:  94%|▉| 1.00M/1.06M [00:00<00:00, 3.4



sub-NTNU3_rec-uncombined17_T2starw.nii.gz:   8%| | 83.5k/0.99M [00:00<00:01, 602

                                                                                
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:  30%|▎| 306k/0.98M [00:00<00:00, 1.21
sub-NTNU3_rec-uncombined17_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 1.19


                                                                                
sub-NTNU3_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                




                                                                                
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:   8%| | 85.2k/1.01M [00:00<00:01, 615
sub-NTNU3_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                

sub-NTNU3_rec-uncombined20_T2starw.nii.gz:   8%| | 85.2k/0.99M [00:00<00:01, 623


sub-NTNU3_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:  23%|▏| 238k/1.01M [00:00<00:00, 1.05


sub-NTNU3_rec-uncombined21_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:  39%|▍| 391k/0.99M [00:00<00:00, 1.80
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:  53%|▌| 544k/1.01M [00:00<00:00, 1.87
                                                                                
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:  82%|▊| 833k/0.99M [00:00<00:00, 2.91


sub-NTNU3_rec-uncombined21_T2starw.nii.gz:   8%| | 83.6k/0.98M [00:00<00:01, 615

                                                                                
sub-NTNU3_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined21_T2starw.nii.gz:  30%|▎| 305k/0.98M [00:00<00:00, 1.21
sub-NTNU3_rec-uncombined22_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined22_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 612
sub-NTNU3_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/994k [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_rec-uncombined22_T2starw.nii.gz:  30%|▎| 305k/1.00M [00:00<00:00, 1.20
sub-NTNU3_acq-anat_TB1TFL.json:   0%|               | 0.00/2.70k [00:00<?, ?B/s]


                                                                                

sub-NTNU3_rec-uncombined23_T2starw.nii.gz:   8%| | 83.6k/994k [00:00<00:01, 560k
                                                                                
sub-NTNU3_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined23_T2starw.nii.gz:  27%|▎| 271k/994k [00:00<00:00, 1.08M
sub-NTNU3_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/2.21k [00:00<?, ?B/s]


                                                                                

                                                                                
sub-NTNU3_rec-uncombined24_T2starw.nii.gz:   8%| | 83.6k/1.00M [00:00<00:01, 605
sub-NTNU3_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/834k [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined24_T2starw.nii.gz:  32%|▎| 322k/1.00M [00:00<00:00, 1.27
                                                                                


sub-NTNU3_acq-anat_TB1TFL.nii.gz:  10%|▌     | 83.6k/834k [00:00<00:01, 560kB/s]
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.09M [00:00<?, ?B/s]


sub-NTNU3_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.23k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.62M [00:00<?, ?B/s]
sub-NTNU3_acq-anat_TB1TFL.nii.gz:  37%|██▏   | 305k/834k [00:00<00:00, 1.21MB/s]
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.5k/4.09M [00:00<00:06, 608kB


sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:   2%| | 83.6k/3.62M [00:00<00:05, 6

                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   9%| | 390k/4.09M [00:00<00:02, 1.73MB
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.62M [00:00<00:02, 1.

sub-NTNU3_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.19k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  21%|▏| 900k/4.09M [00:00<00:01, 3.12MB
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  33%|▎| 1.18M/3.62M [00:00<00:00, 4
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  55%|▌| 2.26M/4.09M [00:00<00:00, 7.25M
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  69%|▋| 2.51M/3.62M [00:00<00:00, 7

sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.6M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/88.1k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.18k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/15.6M [00:00<00:26, 607kB/
sub-NTNU3_acq-famp-0.66_TB1DREAM.nii.gz:  95%|▉| 83.6k/88.1k [00:00<00:00, 615kB
                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   2%| | 288k/15.6M [00:00<00:14, 1.12MB/
sub-NTNU3_acq-famp_TB1TFL.json:   0%|               | 0.00/2.73k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.3k [00:00<?, ?B/s]
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.08M/15.6M [00:00<00:04, 3.30MB


sub-NTNU3_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/955k [00:00<?, ?B/s]
sub-NTNU3_acq-famp_TB1DREAM.nii.gz:  95%|██▊| 85.2k/89.3k [00:00<00:00, 621kB/s]
                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 3.01M/15.6M [00:00<00:01, 8.33MB
sub-NTNU3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.4k [00:00<?, ?B/s]


sub-NTNU3_acq-famp_TB1TFL.nii.gz:   9%|▌     | 83.6k/955k [00:00<00:01, 614kB/s]
sub-NTNU3_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.20k [00:00<?, ?B/s]



                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  36%|▎| 5.67M/15.6M [00:00<00:00, 14.0MB
sub-NTNU3_acq-refv-0.66_TB1DREAM.nii.gz:  99%|▉| 83.6k/84.4k [00:00<00:00, 644kB
                                                                                
sub-NTNU3_acq-famp_TB1TFL.nii.gz:  30%|█▊    | 288k/955k [00:00<00:00, 1.13MB/s]
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  56%|▌| 8.80M/15.6M [00:00<00:00, 19.6MB
sub-NTNU3_acq-refv_TB1DREAM.json:   0%|             | 0.00/2.19k [00:00<?, ?B/s]
                                                                                



sub-NTNU3_acq-famp_TB1TFL.nii.gz:  89%|█████▎| 850k/955k [00:00<00:00, 2.76MB/s]


                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  73%|▋| 11.4M/15.6M [00:00<00:00, 21.5MB
                                                                                
sub-NTNU3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.6k [00:00<?, ?B/s]

sub-UCL1_T2starw.json:   0%|                        | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_acq-refv_TB1DREAM.nii.gz:  95%|██▊| 85.2k/89.6k [00:00<00:00, 672kB/s]
                                                                                
sub-UCL1_UNIT1.json:   0%|                          | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-UCL1_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]
sub-UCL1_T2starw.nii.gz:   8%|█             | 83.6k/1.06M [00:00<00:01, 615kB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/15.4M [00:00<?, ?B/s]


sub-UCL1_UNIT1.nii.gz:   0%|                        | 0.00/26.5M [00:00<?, ?B/s]



sub-UCL1_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-UCL1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-UCL1_T2starw.nii.gz:  28%|███▉          | 305k/1.06M [00:00<00:00, 1.19MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   0%| | 50.6k/15.4M [00:00<00:31, 516kB/


sub-UCL1_UNIT1.nii.gz:   0%|                | 83.6k/26.5M [00:00<00:44, 616kB/s]
                                                                                
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 136k/15.4M [00:00<00:23, 689kB/s
sub-UCL1_UNIT1.nii.gz:   1%|▏               | 305k/26.5M [00:00<00:20, 1.37MB/s]
sub-UCL1_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]
                                                                                
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 594k/15.4M [00:00<00:07, 1.99MB/


sub-UCL1_UNIT1.nii.gz:   2%|▍               | 645k/26.5M [00:00<00:12, 2.14MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.0M [00:00<?, ?B/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.89M/15.4M [00:00<00:02, 5.98MB


sub-UCL1_UNIT1.nii.gz:   7%|█              | 1.86M/26.5M [00:00<00:04, 5.95MB/s]
sub-UCL1_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/889k [00:00<?, ?B/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.0M [00:00<00:29, 601kB/

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  27%|▎| 4.19M/15.4M [00:00<00:00, 11.9MB


sub-UCL1_UNIT1.nii.gz:  16%|██▍            | 4.28M/26.5M [00:00<00:01, 12.5MB/s]
sub-UCL1_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 187k/17.0M [00:00<00:21, 825kB/s



sub-UCL1_rec-uncombined1_T2starw.nii.gz:  10%| | 84.7k/889k [00:00<00:01, 613kB/

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.08M/15.4M [00:00<00:00, 14.4MB


sub-UCL1_UNIT1.nii.gz:  23%|███▌           | 6.18M/26.5M [00:00<00:01, 14.9MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.43M/15.4M [00:00<00:00, 17.5MB


sub-UCL1_UNIT1.nii.gz:  32%|████▊          | 8.53M/26.5M [00:00<00:01, 18.0MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 628k/17.0M [00:00<00:07, 2.26MB/



sub-UCL1_rec-uncombined1_T2starw.nii.gz:  34%|▎| 306k/889k [00:00<00:00, 1.36MB/
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 10.2M/15.4M [00:00<00:00, 17.6MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 1.73M/17.0M [00:00<00:02, 5.70MB


sub-UCL1_UNIT1.nii.gz:  39%|█████▊         | 10.3M/26.5M [00:00<00:00, 17.9MB/s]



sub-UCL1_rec-uncombined1_T2starw.nii.gz:  73%|▋| 646k/889k [00:00<00:00, 2.20MB/



                                                                                
sub-UCL1_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]



                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.59M/17.0M [00:00<00:02, 6.82MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  77%|▊| 11.9M/15.4M [00:01<00:00, 15.5MB


sub-UCL1_UNIT1.nii.gz:  45%|██████▊        | 12.0M/26.5M [00:01<00:00, 15.8MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 4.52M/17.0M [00:00<00:01, 11.2MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  90%|▉| 13.8M/15.4M [00:01<00:00, 16.6MB


sub-UCL1_UNIT1.nii.gz:  53%|███████▉       | 13.9M/26.5M [00:01<00:00, 16.8MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 6.45M/17.0M [00:00<00:00, 14.1MB

                                                                                
sub-UCL1_UNIT1.nii.gz:  59%|████████▊      | 15.6M/26.5M [00:01<00:00, 16.8MB/s]

sub-UCL1_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/871k [00:00<?, ?B/s]



sub-UCL1_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/883k [00:00<?, ?B/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 8.19M/17.0M [00:00<00:00, 15.3MB
sub-UCL1_UNIT1.nii.gz:  69%|██████████▎    | 18.2M/26.5M [00:01<00:00, 19.8MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 10.9M/17.0M [00:00<00:00, 19.2MB

sub-UCL1_rec-uncombined3_T2starw.nii.gz:  10%| | 83.6k/871k [00:00<00:01, 610kB/



sub-UCL1_rec-uncombined2_T2starw.nii.gz:   9%| | 83.6k/883k [00:00<00:01, 605kB/
sub-UCL1_UNIT1.nii.gz:  78%|███████████▊   | 20.8M/26.5M [00:01<00:00, 21.8MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 13.4M/17.0M [00:01<00:00, 21.5MB




sub-UCL1_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                



sub-UCL1_rec-uncombined2_T2starw.nii.gz:  31%|▎| 272k/883k [00:00<00:00, 1.23MB/
sub-UCL1_rec-uncombined3_T2starw.nii.gz:  35%|▎| 305k/871k [00:00<00:00, 1.19MB/


sub-UCL1_UNIT1.nii.gz:  86%|████████████▉  | 22.9M/26.5M [00:01<00:00, 20.2MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 15.5M/17.0M [00:01<00:00, 19.5MB



sub-UCL1_rec-uncombined2_T2starw.nii.gz:  71%|▋| 628k/883k [00:00<00:00, 2.18MB/
                                                                                



                                                                                
sub-UCL1_UNIT1.nii.gz:  94%|██████████████ | 24.9M/26.5M [00:01<00:00, 18.2MB/s]
                                                                                



                                                                                
sub-UCL1_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/810k [00:00<?, ?B/s]
sub-UCL1_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]

                                                                                
sub-UCL1_rec-uncombined4_T2starw.nii.gz:  11%| | 85.2k/810k [00:00<00:01, 606kB/

sub-UCL1_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/897k [00:00<?, ?B/s]
sub-UCL1_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]


                                                                                
sub-UCL1_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/862k [00:00<?, ?B/s]
sub-UCL1_rec-uncombined4_T2starw.nii.gz:  38%|▍| 306k/810k [00:00<00:00, 1.29MB/
sub-UCL1_rec-uncombined5_T2starw.nii.gz:  10%| | 85.2k/897k [00:00<00:01, 624kB/
                                                                                



sub-UCL1_rec-uncombined6_T2starw.nii.gz:  10%| | 83.6k/862k [00:00<00:01, 670kB/
sub-UCL1_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]
                                                                                


sub-UCL1_rec-uncombined5_T2starw.nii.gz:  28%|▎| 255k/897k [00:00<00:00, 1.14MB/
sub-UCL1_rec-uncombined6_T2starw.nii.gz:  35%|▎| 305k/862k [00:00<00:00, 1.43MB/

sub-UCL1_rec-uncombined5_T2starw.nii.gz:  66%|▋| 596k/897k [00:00<00:00, 2.08MB/

                                                                                
sub-UCL1_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/828k [00:00<?, ?B/s]
sub-UCL1_rec-uncombined6_T2starw.nii.gz:  75%|▋| 645k/862k [00:00<00:00, 2.27MB/


                                                                                
sub-UCL1_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]

                                                                                

sub-UCL1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]

                                                                                
sub-UCL1_rec-uncombined7_T2starw.nii.gz:  10%| | 83.6k/828k [00:00<00:01, 616kB/
sub-UCL1_rec-uncombined7_T2starw.nii.gz:  37%|▎| 305k/828k [00:00<00:00, 1.38MB/
sub-UCL1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/886k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]


                                                                                
sub-UCL1_rec-uncombined7_T2starw.nii.gz:  78%|▊| 645k/828k [00:00<00:00, 2.22MB/
                                                                                
sub-UCL1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/855k [00:00<?, ?B/s]
sub-UCL1_acq-anat_TB1TFL.nii.gz:  10%|▋      | 85.2k/886k [00:00<00:01, 624kB/s]
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.19M [00:00<?, ?B/s]
sub-UCL1_rec-uncombined8_T2starw.nii.gz:  10%| | 83.6k/855k [00:00<00:01, 721kB/
sub-UCL1_acq-anat_TB1TFL.nii.gz:  35%|██▍    | 306k/886k [00:00<00:00, 1.21MB/s]
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/4.19M [00:00<00:07, 610kB/



sub-UCL1_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.20k [00:00<?, ?B/s]



                                                                                
sub-UCL1_rec-uncombined8_T2starw.nii.gz:  34%|▎| 288k/855k [00:00<00:00, 1.14MB/

sub-UCL1_acq-anat_TB1TFL.nii.gz:  83%|█████▊ | 731k/886k [00:00<00:00, 2.38MB/s]
                                                                                

sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/2.69M [00:00<?, ?B/s]
                                                                                



sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 305k/4.19M [00:00<00:03, 1.20MB/
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.6k/2.69M [00:00<00:04, 61
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  30%|▎| 1.24M/4.19M [00:00<00:00, 3.87MB
sub-UCL1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.10k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  10%| | 288k/2.69M [00:00<00:02, 1.1
sub-UCL1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  78%|▊| 3.26M/4.19M [00:00<00:00, 8.70MB


                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  41%|▍| 1.09M/2.69M [00:00<00:00, 3.
                                                                                
sub-UCL1_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/11.7M [00:00<00:22, 532kB/s
sub-UCL1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/93.0k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   3%| | 305k/11.7M [00:00<00:09, 1.21MB/s


sub-UCL1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.9k [00:00<?, ?B/s]
sub-UCL1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.15k [00:00<?, ?B/s]



                                                                                

sub-UCL1_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/93.0k [00:00<00:00, 605kB/

                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.24M/11.7M [00:00<00:02, 3.77MB/


sub-UCL1_acq-famp-1.5_TB1DREAM.nii.gz:  92%|▉| 85.2k/92.9k [00:00<00:00, 624kB/s


                                                                                

sub-UCL1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/93.1k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  36%|▎| 4.21M/11.7M [00:00<00:00, 12.3MB/
sub-UCL1_acq-famp_TB1DREAM.nii.gz:  90%|███▌| 83.6k/93.1k [00:00<00:00, 608kB/s]

                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  59%|▌| 6.88M/11.7M [00:00<00:00, 16.9MB/
sub-UCL1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.70k [00:00<?, ?B/s]

                                                                                

sub-UCL1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.17k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 10.5M/11.7M [00:00<00:00, 23.0MB/

                                                                                

sub-UCL1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-famp_TB1TFL.nii.gz:   9%|▋      | 85.2k/943k [00:00<00:01, 717kB/s]
sub-UCL1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.17k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-famp_TB1TFL.nii.gz:  43%|███    | 408k/943k [00:00<00:00, 1.58MB/s]
sub-UCL1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/86.7k [00:00<?, ?B/s]
sub-UCL1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]

                                                                                
sub-UCL1_acq-refv-0.66_TB1DREAM.nii.gz:  96%|▉| 83.5k/86.7k [00:00<00:00, 613kB/
                                                                                
sub-UCL1_acq-refv-1.5_TB1DREAM.nii.gz:  91%|▉| 83.5k/92.1k [00:00<00:00, 609kB/s


                                                                                
sub-UCL1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/89.4k [00:00<?, ?B/s]
sub-UCL2_T2starw.json:   0%|                        | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-UCL1_acq-refv_TB1DREAM.nii.gz:  74%|██▉ | 66.6k/89.4k [00:00<00:00, 565kB/s]
                                                                                
sub-UCL2_T2starw.nii.gz:   0%|                      | 0.00/1.02M [00:00<?, ?B/s]
sub-UCL2_UNIT1.json:   0%|                          | 0.00/2.08k [00:00<?, ?B/s]

                                                                                

sub-UCL2_UNIT1.nii.gz:   0%|                        | 0.00/26.7M [00:00<?, ?B/s]
sub-UCL2_T2starw.nii.gz:   8%|█             | 83.5k/1.02M [00:00<00:01, 606kB/s]
sub-UCL2_UNIT1.nii.gz:   0%|                | 83.6k/26.7M [00:00<00:44, 628kB/s]


sub-UCL2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/s]


                                                                                
sub-UCL2_T2starw.nii.gz:  26%|███▌          | 271k/1.02M [00:00<00:00, 1.26MB/s]
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/13.6M [00:00<?, ?B/s]



sub-UCL2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/s]



                                                                                
sub-UCL2_UNIT1.nii.gz:   1%|▏               | 305k/26.7M [00:00<00:23, 1.16MB/s]
sub-UCL2_T2starw.nii.gz:  80%|███████████▏  | 832k/1.02M [00:00<00:00, 2.99MB/s]
                                                                                
sub-UCL2_UNIT1.nii.gz:   4%|▋              | 1.19M/26.7M [00:00<00:06, 4.12MB/s]


sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.5k/13.6M [00:00<00:23, 607kB/
sub-UCL2_UNIT1.nii.gz:   9%|█▍             | 2.49M/26.7M [00:00<00:03, 7.34MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/15.3M [00:00<?, ?B/s]
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 322k/13.6M [00:00<00:10, 1.27MB/



sub-UCL2_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/832k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

sub-UCL2_UNIT1.nii.gz:  23%|███▍           | 6.18M/26.7M [00:00<00:01, 17.6MB/s]




                                                                                
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.03M/13.6M [00:00<00:03, 3.59MB
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 85.2k/15.3M [00:00<00:25, 617kB/
sub-UCL2_UNIT1.nii.gz:  33%|████▉          | 8.79M/26.7M [00:00<00:00, 20.7MB/s]



sub-UCL2_rec-uncombined1_T2starw.nii.gz:  10%| | 85.2k/832k [00:00<00:01, 625kB/
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 2.59M/13.6M [00:00<00:01, 7.75MB
sub-UCL2_UNIT1.nii.gz:  43%|██████▍        | 11.6M/26.7M [00:00<00:00, 23.2MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 408k/15.3M [00:00<00:09, 1.62MB/
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 4.67M/13.6M [00:00<00:00, 12.3MB



sub-UCL2_rec-uncombined1_T2starw.nii.gz:  37%|▎| 306k/832k [00:00<00:00, 1.21MB/




sub-UCL2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 885k/15.3M [00:00<00:05, 2.83MB/
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 5.98M/13.6M [00:00<00:00, 12.7MB

sub-UCL2_UNIT1.nii.gz:  52%|███████▊       | 13.9M/26.7M [00:00<00:00, 19.8MB/s]



                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.43M/15.3M [00:00<00:03, 3.90MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 7.26M/13.6M [00:00<00:00, 12.6MB
sub-UCL2_UNIT1.nii.gz:  59%|████████▉      | 15.9M/26.7M [00:01<00:00, 17.9MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 2.73M/15.3M [00:00<00:01, 7.09MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 9.14M/13.6M [00:00<00:00, 14.7MB
sub-UCL2_UNIT1.nii.gz:  67%|█████████▉     | 17.8M/26.7M [00:01<00:00, 18.4MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 4.65M/15.3M [00:00<00:00, 11.3MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 11.2M/13.6M [00:01<00:00, 16.7MB



sub-UCL2_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/786k [00:00<?, ?B/s]




sub-UCL2_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.15M/15.3M [00:00<00:00, 12.7MB

sub-UCL2_UNIT1.nii.gz:  73%|███████████    | 19.6M/26.7M [00:01<00:00, 17.7MB/s]
sub-UCL2_rec-uncombined2_T2starw.nii.gz:  11%| | 83.6k/786k [00:00<00:01, 612kB/
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 7.41M/15.3M [00:00<00:00, 12.8MB


sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 12.8M/13.6M [00:01<00:00, 14.8MB

sub-UCL2_UNIT1.nii.gz:  80%|████████████   | 21.4M/26.7M [00:01<00:00, 16.8MB/s]


                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 9.01M/15.3M [00:00<00:00, 14.0MB



sub-UCL2_rec-uncombined2_T2starw.nii.gz:  37%|▎| 288k/786k [00:00<00:00, 1.13MB/

sub-UCL2_UNIT1.nii.gz:  87%|█████████████  | 23.3M/26.7M [00:01<00:00, 17.5MB/s]
sub-UCL2_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]


                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  74%|▋| 11.3M/15.3M [00:01<00:00, 16.3MB



sub-UCL2_rec-uncombined2_T2starw.nii.gz:  97%|▉| 764k/786k [00:00<00:00, 2.53MB/



                                                                                
sub-UCL2_UNIT1.nii.gz:  94%|██████████████ | 25.0M/26.7M [00:01<00:00, 16.5MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 13.1M/15.3M [00:01<00:00, 17.1MB

                                                                                
                                                                                
sub-UCL2_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/797k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

                                                                                
sub-UCL2_rec-uncombined3_T2starw.nii.gz:  10%| | 83.6k/797k [00:00<00:01, 707kB/
sub-UCL2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/751k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/880k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL2_rec-uncombined3_T2starw.nii.gz:  38%|▍| 305k/797k [00:00<00:00, 1.23MB/
sub-UCL2_rec-uncombined4_T2starw.nii.gz:  11%| | 83.6k/751k [00:00<00:01, 610kB/
                                                                                
sub-UCL2_rec-uncombined5_T2starw.nii.gz:   9%| | 83.6k/880k [00:00<00:01, 609kB/
sub-UCL2_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/860k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined4_T2starw.nii.gz:  41%|▍| 305k/751k [00:00<00:00, 1.20MB/


sub-UCL2_rec-uncombined5_T2starw.nii.gz:  33%|▎| 288k/880k [00:00<00:00, 1.29MB/
                                                                                
sub-UCL2_rec-uncombined6_T2starw.nii.gz:  10%| | 83.6k/860k [00:00<00:01, 594kB/

sub-UCL2_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/802k [00:00<?, ?B/s]


sub-UCL2_rec-uncombined5_T2starw.nii.gz:  71%|▋| 628k/880k [00:00<00:00, 2.17MB/
                                                                                


sub-UCL2_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]


                                                                                
sub-UCL2_rec-uncombined6_T2starw.nii.gz:  28%|▎| 237k/860k [00:00<00:00, 1.06MB/
sub-UCL2_rec-uncombined7_T2starw.nii.gz:  11%| | 85.2k/802k [00:00<00:01, 619kB/
sub-UCL2_rec-uncombined6_T2starw.nii.gz:  69%|▋| 594k/860k [00:00<00:00, 2.10MB/
                                                                                
sub-UCL2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]
                                                                                
sub-UCL2_rec-uncombined7_T2starw.nii.gz:  40%|▍| 323k/802k [00:00<00:00, 1.27MB/
sub-UCL2_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL2_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/814k [00:00<?, ?B/s]

                                                                                
sub-UCL2_rec-uncombined8_T2starw.nii.gz:  10%| | 83.6k/814k [00:00<00:01, 627kB/
sub-UCL2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]

                                                                                

sub-UCL2_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/797k [00:00<?, ?B/s]
sub-UCL2_rec-uncombined8_T2starw.nii.gz:  35%|▎| 288k/814k [00:00<00:00, 1.13MB/
sub-UCL2_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.6k/797k [00:00<00:01, 679kB/s]


sub-UCL2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]


                                                                                
                                                                                

sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.92M [00:00<?, ?B/s]
sub-UCL2_acq-anat_TB1TFL.nii.gz:  36%|██▌    | 288k/797k [00:00<00:00, 1.34MB/s]
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/2.68M [00:00<?, ?B/s]

sub-UCL2_acq-anat_TB1TFL.nii.gz:  85%|█████▉ | 679k/797k [00:00<00:00, 2.45MB/s]

                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 83.6k/3.92M [00:00<00:07, 530kB/
sub-UCL2_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]

                                                                                
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.6k/2.68M [00:00<00:04, 60
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 305k/3.92M [00:00<00:03, 1.22MB/
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  10%| | 288k/2.68M [00:00<00:01, 1.2
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.24M/3.92M [00:00<00:00, 3.90MB

sub-UCL2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]


sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  22%|▏| 595k/2.68M [00:00<00:01, 2.0
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  75%|▋| 2.93M/3.92M [00:00<00:00, 8.28MB
                                                                                
sub-UCL2_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.12k [00:00<?, ?B/s]
                                                                                



sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  46%|▍| 1.23M/2.68M [00:00<00:00, 3.

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/11.7M [00:00<00:18, 661kB/s
                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   2%| | 271k/11.7M [00:00<00:09, 1.28MB/s
sub-UCL2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.4k [00:00<?, ?B/s]

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   5%| | 577k/11.7M [00:00<00:05, 2.02MB/s
sub-UCL2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.1k [00:00<?, ?B/s]



sub-UCL2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]




sub-UCL2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.11k [00:00<?, ?B/s]




                                                                                
sub-UCL2_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.4k [00:00<00:00, 605kB/
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.12M/11.7M [00:00<00:01, 6.39MB/
                                                                                
sub-UCL2_acq-famp_TB1DREAM.nii.gz:  91%|███▋| 83.6k/92.1k [00:00<00:00, 613kB/s]


                                                                                

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 5.20M/11.7M [00:00<00:00, 14.1MB/



sub-UCL2_acq-famp-1.5_TB1DREAM.nii.gz:  91%|▉| 83.6k/92.1k [00:00<00:00, 531kB/s



                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 7.92M/11.7M [00:00<00:00, 18.4MB/
                                                                                
sub-UCL2_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]

sub-UCL2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/952k [00:00<?, ?B/s]
                                                                                

sub-UCL2_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-UCL2_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-UCL2_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/952k [00:00<00:01, 636kB/s]
sub-UCL2_acq-famp_TB1TFL.nii.gz:  32%|██▏    | 305k/952k [00:00<00:00, 1.22MB/s]
sub-UCL2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/80.0k [00:00<?, ?B/s]
                                                                                

sub-UCL2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/86.6k [00:00<?, ?B/s]


sub-UCL2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-UCL2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/84.3k [00:00<?, ?B/s]
sub-UCL2_acq-refv-0.66_TB1DREAM.nii.gz: 100%|█| 80.0k/80.0k [00:00<00:00, 557kB/
                                                                                
sub-UCL2_acq-refv-1.5_TB1DREAM.nii.gz:  96%|▉| 83.5k/86.6k [00:00<00:00, 638kB/s

                                                                                


sub-UCL2_acq-refv_TB1DREAM.nii.gz:  79%|███▏| 66.6k/84.3k [00:00<00:00, 667kB/s]
                                                                                
sub-UCL3_T2starw.json:   0%|                        | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-UCL3_UNIT1.json:   0%|                          | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-UCL3_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]

sub-UCL3_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-UCL3_UNIT1.nii.gz:   0%|                        | 0.00/26.3M [00:00<?, ?B/s]
sub-UCL3_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]


                                                                                
sub-UCL3_T2starw.nii.gz:   8%|█             | 83.5k/1.06M [00:00<00:01, 610kB/s]
sub-UCL3_UNIT1.nii.gz:   0%|                | 85.2k/26.3M [00:00<00:44, 617kB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.6M [00:00<?, ?B/s]
sub-UCL3_T2starw.nii.gz:  37%|█████▏        | 407k/1.06M [00:00<00:00, 1.63MB/s]



sub-UCL3_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-UCL3_UNIT1.nii.gz:   1%|▏               | 323k/26.3M [00:00<00:21, 1.26MB/s]
                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   0%| | 83.6k/17.6M [00:00<00:30, 611kB/
sub-UCL3_UNIT1.nii.gz:   5%|▋              | 1.31M/26.3M [00:00<00:06, 4.06MB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 373k/17.6M [00:00<00:12, 1.50MB/
sub-UCL3_UNIT1.nii.gz:  15%|██▏            | 3.89M/26.3M [00:00<00:02, 11.3MB/s]
sub-UCL3_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/877k [00:00<?, ?B/s]
sub-UCL3_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                


sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.14M/17.6M [00:00<00:04, 3.79MB



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/16.1M [00:00<?, ?B/s]
sub-UCL3_UNIT1.nii.gz:  24%|███▌           | 6.19M/26.3M [00:00<00:01, 15.3MB/s]
sub-UCL3_rec-uncombined1_T2starw.nii.gz:  10%| | 83.6k/877k [00:00<00:01, 599kB/


sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.65M/17.6M [00:00<00:02, 7.83MB
sub-UCL3_UNIT1.nii.gz:  33%|████▉          | 8.76M/26.3M [00:00<00:00, 18.9MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 83.5k/16.1M [00:00<00:26, 638kB/
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  28%|▎| 4.92M/17.6M [00:00<00:01, 13.0MB
sub-UCL3_rec-uncombined1_T2starw.nii.gz:  39%|▍| 339k/877k [00:00<00:00, 1.33MB/

sub-UCL3_UNIT1.nii.gz:  42%|██████▎        | 11.0M/26.3M [00:00<00:00, 20.3MB/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 407k/16.1M [00:00<00:09, 1.65MB/


sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.90M/17.6M [00:00<00:00, 15.4MB
                                                                                
sub-UCL3_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL3_UNIT1.nii.gz:  50%|███████▍       | 13.1M/26.3M [00:00<00:00, 17.7MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 918k/16.1M [00:00<00:05, 2.99MB/
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 8.46M/17.6M [00:00<00:00, 14.2MB
sub-UCL3_UNIT1.nii.gz:  57%|████████▌      | 15.0M/26.3M [00:01<00:00, 18.2MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.02M/16.1M [00:00<00:02, 6.07MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.3M/17.6M [00:00<00:00, 15.7MB
sub-UCL3_UNIT1.nii.gz:  64%|█████████▌     | 16.9M/26.3M [00:01<00:00, 18.7MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.76M/16.1M [00:00<00:01, 10.1MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 12.4M/17.6M [00:01<00:00, 17.4MB
sub-UCL3_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/849k [00:00<?, ?B/s]




sub-UCL3_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/861k [00:00<?, ?B/s]

sub-UCL3_UNIT1.nii.gz:  72%|██████████▋    | 18.8M/26.3M [00:01<00:00, 19.2MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 5.65M/16.1M [00:00<00:00, 13.2MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 14.3M/17.6M [00:01<00:00, 18.2MB
sub-UCL3_UNIT1.nii.gz:  79%|███████████▊   | 20.8M/26.3M [00:01<00:00, 19.5MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  47%|▍| 7.60M/16.1M [00:00<00:00, 15.5MB
sub-UCL3_rec-uncombined2_T2starw.nii.gz:  10%| | 83.6k/849k [00:00<00:01, 603kB/




sub-UCL3_rec-uncombined3_T2starw.nii.gz:  10%| | 83.6k/861k [00:00<00:01, 604kB/
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 16.1M/17.6M [00:01<00:00, 18.4MB
sub-UCL3_UNIT1.nii.gz:  86%|████████████▉  | 22.7M/26.3M [00:01<00:00, 19.7MB/s]



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  59%|▌| 9.54M/16.1M [00:00<00:00, 17.0MB
                                                                                
sub-UCL3_rec-uncombined2_T2starw.nii.gz:  36%|▎| 305k/849k [00:00<00:00, 1.20MB/




sub-UCL3_rec-uncombined3_T2starw.nii.gz:  33%|▎| 288k/861k [00:00<00:00, 1.12MB/
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 11.2M/16.1M [00:00<00:00, 16.3MB

sub-UCL3_UNIT1.nii.gz:  93%|██████████████ | 24.6M/26.3M [00:01<00:00, 18.4MB/s]
                                                                                
sub-UCL3_rec-uncombined3_T2starw.nii.gz:  97%|▉| 832k/861k [00:00<00:00, 2.61MB/




                                                                                



sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 12.8M/16.1M [00:01<00:00, 15.7MB
                                                                                
                                                                                
sub-UCL3_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL3_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL3_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/801k [00:00<?, ?B/s]

sub-UCL3_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/875k [00:00<?, ?B/s]
sub-UCL3_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/856k [00:00<?, ?B/s]



sub-UCL3_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL3_rec-uncombined4_T2starw.nii.gz:  10%| | 83.6k/801k [00:00<00:01, 545kB/

sub-UCL3_rec-uncombined5_T2starw.nii.gz:  10%| | 83.5k/875k [00:00<00:01, 545kB/
sub-UCL3_rec-uncombined6_T2starw.nii.gz:  10%| | 83.6k/856k [00:00<00:01, 600kB/



sub-UCL3_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL3_rec-uncombined5_T2starw.nii.gz:  46%|▍| 407k/875k [00:00<00:00, 1.55MB/
sub-UCL3_rec-uncombined4_T2starw.nii.gz:  38%|▍| 305k/801k [00:00<00:00, 1.13MB/
                                                                                


                                                                                
sub-UCL3_rec-uncombined6_T2starw.nii.gz:  36%|▎| 305k/856k [00:00<00:00, 1.18MB/
sub-UCL3_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/808k [00:00<?, ?B/s]
                                                                                
sub-UCL3_rec-uncombined7_T2starw.nii.gz:  10%| | 83.6k/808k [00:00<00:01, 611kB/
sub-UCL3_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

                                                                                

sub-UCL3_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/860k [00:00<?, ?B/s]
sub-UCL3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.67k [00:00<?, ?B/s]


                                                                                
sub-UCL3_rec-uncombined7_T2starw.nii.gz:  38%|▍| 305k/808k [00:00<00:00, 1.20MB/
sub-UCL3_rec-uncombined8_T2starw.nii.gz:  10%| | 83.6k/860k [00:00<00:01, 733kB/
                                                                                
sub-UCL3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/859k [00:00<?, ?B/s]
sub-UCL3_rec-uncombined8_T2starw.nii.gz:  35%|▎| 305k/860k [00:00<00:00, 1.25MB/
sub-UCL3_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.18k [00:00<?, ?B/s]


                                                                                
sub-UCL3_acq-anat_TB1TFL.nii.gz:  10%|▋      | 83.6k/859k [00:00<00:01, 687kB/s]


sub-UCL3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.20k [00:00<?, ?B/s]
                                                                                

                                                                                
sub-UCL3_acq-anat_TB1TFL.nii.gz:  35%|██▍    | 305k/859k [00:00<00:00, 1.46MB/s]
sub-UCL3_acq-anat_TB1TFL.nii.gz:  75%|█████▎ | 645k/859k [00:00<00:00, 2.31MB/s]
                                                                                
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.17M [00:00<?, ?B/s]
sub-UCL3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.09k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:   2%| | 85.2k/4.17M [00:00<00:06, 668kB/
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/2.68M [00:00<?, ?B/s]
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:   6%| | 272k/4.17M [00:00<00:03, 1.30MB/
sub-UCL3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.4k [00:00<?, ?B/s]

sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.5k/11.7M [00:00<00:20, 610kB/s


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 83.6k/2.68M [00:00<00:04, 61
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  14%|▏| 595k/4.17M [00:00<00:01, 2.12MB/
sub-UCL3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]




                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   2%| | 254k/11.7M [00:00<00:10, 1.17MB/s


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 220k/2.68M [00:00<00:02, 1.0
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  40%|▍| 1.66M/4.17M [00:00<00:00, 5.55MB
sub-UCL3_acq-famp-0.66_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.4k [00:00<00:00, 609kB/



                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   7%| | 832k/11.7M [00:00<00:03, 3.02MB/s


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  19%|▏| 509k/2.68M [00:00<00:01, 1.7
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  81%|▊| 3.40M/4.17M [00:00<00:00, 9.91MB
                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  14%|▏| 1.64M/11.7M [00:00<00:02, 5.08MB/


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  48%|▍| 1.28M/2.68M [00:00<00:00, 4.
sub-UCL3_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 3.73M/11.7M [00:00<00:00, 10.8MB/


                                                                                
sub-UCL3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.8k [00:00<?, ?B/s]
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 7.93M/11.7M [00:00<00:00, 21.7MB/
sub-UCL3_acq-famp-1.5_TB1DREAM.nii.gz:  90%|▉| 83.6k/92.8k [00:00<00:00, 609kB/s
                                                                                


sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  97%|▉| 11.3M/11.7M [00:00<00:00, 24.5MB/
sub-UCL3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.9k [00:00<?, ?B/s]
                                                                                

sub-UCL3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.71k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.14k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-famp_TB1DREAM.nii.gz:  92%|███▋| 85.2k/92.9k [00:00<00:00, 729kB/s]
                                                                                
sub-UCL3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/949k [00:00<?, ?B/s]
sub-UCL3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.9k [00:00<?, ?B/s]


sub-UCL3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.17k [00:00<?, ?B/s]


                                                                                
sub-UCL3_acq-famp_TB1TFL.nii.gz:   9%|▌      | 83.6k/949k [00:00<00:01, 622kB/s]
sub-UCL3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.7k [00:00<?, ?B/s]
sub-UCL3_acq-refv-0.66_TB1DREAM.nii.gz:  95%|▉| 83.6k/87.9k [00:00<00:00, 608kB/

                                                                                
sub-UCL3_acq-famp_TB1TFL.nii.gz:  32%|██▏    | 305k/949k [00:00<00:00, 1.21MB/s]
sub-UCL3_acq-refv-1.5_TB1DREAM.nii.gz:  92%|▉| 85.2k/92.7k [00:00<00:00, 628kB/s


                                                                                
                                                                                
sub-UCL3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/92.2k [00:00<?, ?B/s]
sub-UCL3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-refv_TB1DREAM.nii.gz:  91%|███▋| 83.6k/92.2k [00:00<00:00, 616kB/s]
                                                                                
✅ Finished downloading ds005025.
 
🧠 Please enjoy your brains.
 
# Define useful variables
path_data = os.path.join(os.getcwd(), "data-human/")
print(f"path_data: {path_data}")
path_labels = os.path.join(path_data, "derivatives", "labels")
path_qc = os.path.join(path_data, "qc")
subjects = [os.path.basename(subject_path) for subject_path in sorted(glob.glob(os.path.join(path_data, "sub-*")))]
print(f"subjects: {subjects}")

# Create output folder
path_results = os.path.join(path_data, "derivatives", "results")
os.makedirs(path_results, exist_ok=True)
path_data: /home/runner/work/coil-qc-code/coil-qc-code/data-human/
subjects: ['sub-CRMBM1', 'sub-CRMBM2', 'sub-CRMBM3', 'sub-MGH1', 'sub-MGH2', 'sub-MGH3', 'sub-MNI1', 'sub-MNI2', 'sub-MNI3', 'sub-MPI1', 'sub-MPI2', 'sub-MPI3', 'sub-MSSM1', 'sub-MSSM2', 'sub-MSSM3', 'sub-NTNU1', 'sub-NTNU2', 'sub-NTNU3', 'sub-UCL1', 'sub-UCL2', 'sub-UCL3']

MP2RAGE segmentation and vertebral labeling#

# Run segmentation on MP2RAGE scan ⏳

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "anat"))
    fname_manual_seg = os.path.join(path_labels, subject, "anat", f"{subject}_UNIT1_label-SC_seg.nii.gz")
    if os.path.exists(fname_manual_seg):
        # Manual segmentation already exists. Copy it to local folder
        print(f"{subject}: Manual segmentation found\n")
        shutil.copyfile(fname_manual_seg, f"{subject}_UNIT1_seg.nii.gz")
        # Generate QC report to make sure the manual segmentation is correct
        !sct_qc -i {subject}_UNIT1.nii.gz -s {subject}_UNIT1_seg.nii.gz -p sct_deepseg_sc -qc {path_qc} -qc-subject {subject}
    else:
        # Manual segmentation does not exist. Run automatic segmentation.
        print(f"{subject}: Manual segmentation not found")
        !sct_deepseg -i "{subject}_UNIT1.nii.gz" -task seg_sc_contrast_agnostic -thr 0 -qc {path_qc}
sub-CRMBM1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model model_seg_sc_contrast_agnostic_softseg_monai is not installed. Installing it now...

INSTALLING MODEL: model_seg_sc_contrast_agnostic_softseg_monai
Trying URL: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip
Downloading: model_contrast-agnostic_20240930-1002.zip

Status:   0%|                                        | 0.00/431M [00:00<?, ?B/s]
Status:   2%|▊                              | 10.5M/431M [00:00<00:04, 89.9MB/s]
Status:   5%|█▌                             | 21.0M/431M [00:00<00:04, 91.9MB/s]
Status:   8%|██▌                             | 34.2M/431M [00:00<00:03, 109MB/s]
Status:  11%|███▍                            | 46.6M/431M [00:00<00:03, 115MB/s]
Status:  13%|████▎                           | 58.2M/431M [00:00<00:03, 107MB/s]
Status:  16%|█████                           | 69.1M/431M [00:00<00:03, 104MB/s]
Status:  19%|█████▉                          | 79.8M/431M [00:00<00:03, 105MB/s]
Status:  22%|██████▊                        | 94.4M/431M [00:00<00:03, 99.6MB/s]
Status:  25%|████████                         | 106M/431M [00:01<00:03, 104MB/s]
Status:  27%|████████▋                       | 117M/431M [00:01<00:04, 76.5MB/s]
Status:  29%|█████████▎                      | 126M/431M [00:01<00:03, 78.7MB/s]
Status:  32%|██████████▏                     | 137M/431M [00:01<00:03, 85.3MB/s]
Status:  35%|███████████▏                    | 150M/431M [00:01<00:02, 98.1MB/s]
Status:  38%|████████████▌                    | 164M/431M [00:01<00:02, 108MB/s]
Status:  41%|█████████████▍                   | 175M/431M [00:01<00:02, 110MB/s]
Status:  44%|██████████████▍                  | 189M/431M [00:01<00:02, 107MB/s]
Status:  46%|███████████████▎                 | 200M/431M [00:01<00:02, 108MB/s]
Status:  49%|███████████████▋                | 211M/431M [00:02<00:02, 98.5MB/s]
Status:  51%|████████████████▉                | 222M/431M [00:02<00:02, 101MB/s]
Status:  54%|█████████████████▉               | 234M/431M [00:02<00:01, 106MB/s]
Status:  57%|██████████████████▋              | 245M/431M [00:02<00:01, 106MB/s]
Status:  59%|███████████████████▌             | 255M/431M [00:02<00:01, 106MB/s]
Status:  62%|████████████████████▎            | 266M/431M [00:02<00:01, 105MB/s]
Status:  64%|█████████████████████▏           | 277M/431M [00:02<00:01, 102MB/s]
Status:  67%|█████████████████████▎          | 287M/431M [00:02<00:01, 99.3MB/s]
Status:  70%|██████████████████████▉          | 300M/431M [00:02<00:01, 108MB/s]
Status:  73%|███████████████████████▉         | 313M/431M [00:03<00:01, 116MB/s]
Status:  75%|████████████████████████▏       | 325M/431M [00:03<00:01, 91.4MB/s]
Status:  78%|████████████████████████▉       | 336M/431M [00:03<00:01, 93.0MB/s]
Status:  80%|█████████████████████████▋      | 346M/431M [00:03<00:00, 96.1MB/s]
Status:  83%|██████████████████████████▍     | 357M/431M [00:03<00:00, 97.2MB/s]
Status:  85%|███████████████████████████▏    | 367M/431M [00:03<00:00, 85.0MB/s]
Status:  88%|████████████████████████████    | 377M/431M [00:03<00:00, 87.0MB/s]
Status:  90%|████████████████████████████▊   | 388M/431M [00:03<00:00, 92.2MB/s]
Status:  93%|█████████████████████████████▋  | 400M/431M [00:04<00:00, 99.8MB/s]
Status:  95%|███████████████████████████████▍ | 411M/431M [00:04<00:00, 103MB/s]
Status:  98%|████████████████████████████████▎| 423M/431M [00:04<00:00, 106MB/s]
Status: 100%|████████████████████████████████| 431M/431M [00:04<00:00, 99.9MB/s]
Creating temporary folder (/tmp/sct_2025-01-15_15-03-13_install-data_gd1_jkyr)
Unzip data to: /tmp/sct_2025-01-15_15-03-13_install-data_gd1_jkyr
Copying data to: /home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/data/deepseg_models/model_seg_sc_contrast_agnostic_softseg_monai
Removing temporary folders...
Creating temporary folder (/tmp/sct_2025-01-15_15-03-21_sct_deepseg_mwchlu2c)
Copied sub-CRMBM1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-03-21_sct_deepseg_mwchlu2c/sub-CRMBM1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 15 seconds
Saving results to: /tmp/sct_2025-01-15_15-03-21_sct_deepseg_mwchlu2c/sub-CRMBM1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150339.234942.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-CRMBM2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-03-51_sct_deepseg_xhiwdexx)
Copied sub-CRMBM2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-03-51_sct_deepseg_xhiwdexx/sub-CRMBM2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-03-51_sct_deepseg_xhiwdexx/sub-CRMBM2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150408.247600.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-CRMBM3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--
Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-04-20_sct_deepseg_ouovn4pc)
Copied sub-CRMBM3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-04-20_sct_deepseg_ouovn4pc/sub-CRMBM3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-04-20_sct_deepseg_ouovn4pc/sub-CRMBM3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150436.927367.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-04-49_sct_deepseg_igra3er3)
Copied sub-MGH1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-04-49_sct_deepseg_igra3er3/sub-MGH1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 12 seconds
Saving results to: /tmp/sct_2025-01-15_15-04-49_sct_deepseg_igra3er3/sub-MGH1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150501.722889.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-05-14_sct_deepseg_9pr8zl6a)
Copied sub-MGH2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-05-14_sct_deepseg_9pr8zl6a/sub-MGH2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 12 seconds
Saving results to: /tmp/sct_2025-01-15_15-05-14_sct_deepseg_9pr8zl6a/sub-MGH2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150527.463275.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-05-40_sct_deepseg_q6q516ad)
Copied sub-MGH3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-05-40_sct_deepseg_q6q516ad/sub-MGH3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 12 seconds
Saving results to: /tmp/sct_2025-01-15_15-05-40_sct_deepseg_q6q516ad/sub-MGH3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150553.066560.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-06-06_sct_deepseg_y1o6mgk2)
Copied sub-MNI1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-06-06_sct_deepseg_y1o6mgk2/sub-MNI1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-06-06_sct_deepseg_y1o6mgk2/sub-MNI1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150622.550498.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-06-34_sct_deepseg_v49re62z)
Copied sub-MNI2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-06-34_sct_deepseg_v49re62z/sub-MNI2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-06-34_sct_deepseg_v49re62z/sub-MNI2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150651.158090.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-07-03_sct_deepseg_eyjt_w92)
Copied sub-MNI3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-07-03_sct_deepseg_eyjt_w92/sub-MNI3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-07-03_sct_deepseg_eyjt_w92/sub-MNI3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150719.823472.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MPI1: Manual segmentation found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MPI1_UNIT1.nii.gz -s sub-MPI1_UNIT1_seg.nii.gz -p sct_deepseg_sc -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MPI1
--
Resampling image "sub-MPI1_UNIT1.nii.gz" to 0.6x0.6 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Resampling image "sub-MPI1_UNIT1_seg.nii.gz" to 0.6x0.6 mm
Converting image from type 'uint8' to type 'float64' for linear interpolation
Image header specifies datatype 'float64', but array is of type 'int64'. Header metadata will be overwritten to use 'int64'.
Compute center of mass at each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MPI2: Manual segmentation found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MPI2_UNIT1.nii.gz -s sub-MPI2_UNIT1_seg.nii.gz -p sct_deepseg_sc -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MPI2
--
Resampling image "sub-MPI2_UNIT1.nii.gz" to 0.6x0.6 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Resampling image "sub-MPI2_UNIT1_seg.nii.gz" to 0.6x0.6 mm
Converting image from type 'uint8' to type 'float64' for linear interpolation
Image header specifies datatype 'float64', but array is of type 'int64'. Header metadata will be overwritten to use 'int64'.
Compute center of mass at each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MPI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-07-46_sct_deepseg_2l92iefl)
Copied sub-MPI3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-07-46_sct_deepseg_2l92iefl/sub-MPI3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-07-46_sct_deepseg_2l92iefl/sub-MPI3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150802.949796.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MSSM1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-08-15_sct_deepseg_mfkbplc2)
Copied sub-MSSM1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-08-15_sct_deepseg_mfkbplc2/sub-MSSM1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-08-15_sct_deepseg_mfkbplc2/sub-MSSM1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150831.578300.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MSSM2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-08-43_sct_deepseg_e3bngn03)
Copied sub-MSSM2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-08-43_sct_deepseg_e3bngn03/sub-MSSM2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-08-43_sct_deepseg_e3bngn03/sub-MSSM2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150900.324702.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MSSM3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-09-12_sct_deepseg_qffijhtw)
Copied sub-MSSM3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-09-12_sct_deepseg_qffijhtw/sub-MSSM3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-09-12_sct_deepseg_qffijhtw/sub-MSSM3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150929.028204.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--
Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-09-41_sct_deepseg_n2e9_kph)
Copied sub-NTNU1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-09-41_sct_deepseg_n2e9_kph/sub-NTNU1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-09-41_sct_deepseg_n2e9_kph/sub-NTNU1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_150957.677646.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-10-09_sct_deepseg_9vvqyzqa)
Copied sub-NTNU2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-10-09_sct_deepseg_9vvqyzqa/sub-NTNU2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-10-09_sct_deepseg_9vvqyzqa/sub-NTNU2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151026.136960.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU3: Manual segmentation found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-NTNU3_UNIT1.nii.gz -s sub-NTNU3_UNIT1_seg.nii.gz -p sct_deepseg_sc -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-NTNU3
--
Resampling image "sub-NTNU3_UNIT1.nii.gz" to 0.6x0.6 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Resampling image "sub-NTNU3_UNIT1_seg.nii.gz" to 0.6x0.6 mm
Converting image from type 'uint8' to type 'float64' for linear interpolation
Image header specifies datatype 'float64', but array is of type 'int64'. Header metadata will be overwritten to use 'int64'.
Compute center of mass at each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-UCL1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL1_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-10-45_sct_deepseg_tubg_fln)
Copied sub-UCL1_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-10-45_sct_deepseg_tubg_fln/sub-UCL1_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-10-45_sct_deepseg_tubg_fln/sub-UCL1_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151101.914127.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-UCL2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL2_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-11-14_sct_deepseg_p6sx2p37)
Copied sub-UCL2_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-11-14_sct_deepseg_p6sx2p37/sub-UCL2_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-11-14_sct_deepseg_p6sx2p37/sub-UCL2_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151130.696432.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-UCL3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL3_UNIT1.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-11-43_sct_deepseg_3ip_wr_q)
Copied sub-UCL3_UNIT1.nii.gz to /tmp/sct_2025-01-15_15-11-43_sct_deepseg_3ip_wr_q/sub-UCL3_UNIT1.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2025-01-15_15-11-43_sct_deepseg_3ip_wr_q/sub-UCL3_UNIT1_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151159.549813.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

# Label vertebrae

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "anat"))
    fname_manual_labels = os.path.join(path_labels, subject, "anat", f"{subject}_UNIT1_label-disc.nii.gz")
    if os.path.exists(fname_manual_labels):
        # Use manual disc labels to generate labeled segmentation.
        print(f"{subject}: Manual labels found\n")
        !sct_label_utils -i {subject}_UNIT1_seg.nii.gz -disc {fname_manual_labels} -o {subject}_UNIT1_seg_labeled.nii.gz
        # Generate QC report to assess labeled segmentation
        !sct_qc -i {subject}_UNIT1.nii.gz -s {subject}_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc {path_qc} -qc-subject {subject}
    else:
        # Manual labels do not exist. They should!
        print(f"{subject}: Manual labels not found.")
sub-CRMBM1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-CRMBM1/anat/sub-CRMBM1_UNIT1_label-disc.nii.gz -o sub-CRMBM1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-CRMBM1_UNIT1.nii.gz -s sub-CRMBM1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-CRMBM1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-CRMBM2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-CRMBM2/anat/sub-CRMBM2_UNIT1_label-disc.nii.gz -o sub-CRMBM2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-CRMBM2_UNIT1.nii.gz -s sub-CRMBM2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-CRMBM2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-CRMBM3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-CRMBM3/anat/sub-CRMBM3_UNIT1_label-disc.nii.gz -o sub-CRMBM3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-CRMBM3_UNIT1.nii.gz -s sub-CRMBM3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-CRMBM3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MGH1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MGH1/anat/sub-MGH1_UNIT1_label-disc.nii.gz -o sub-MGH1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MGH1_UNIT1.nii.gz -s sub-MGH1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MGH1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MGH2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MGH2/anat/sub-MGH2_UNIT1_label-disc.nii.gz -o sub-MGH2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MGH2_UNIT1.nii.gz -s sub-MGH2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MGH2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MGH3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MGH3/anat/sub-MGH3_UNIT1_label-disc.nii.gz -o sub-MGH3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MGH3_UNIT1.nii.gz -s sub-MGH3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MGH3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MNI1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MNI1/anat/sub-MNI1_UNIT1_label-disc.nii.gz -o sub-MNI1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MNI1_UNIT1.nii.gz -s sub-MNI1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MNI1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MNI2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MNI2/anat/sub-MNI2_UNIT1_label-disc.nii.gz -o sub-MNI2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MNI2_UNIT1.nii.gz -s sub-MNI2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MNI2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MNI3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MNI3/anat/sub-MNI3_UNIT1_label-disc.nii.gz -o sub-MNI3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MNI3_UNIT1.nii.gz -s sub-MNI3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MNI3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MPI1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MPI1/anat/sub-MPI1_UNIT1_label-disc.nii.gz -o sub-MPI1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MPI1_UNIT1.nii.gz -s sub-MPI1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MPI1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MPI2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MPI2/anat/sub-MPI2_UNIT1_label-disc.nii.gz -o sub-MPI2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MPI2_UNIT1.nii.gz -s sub-MPI2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MPI2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MPI3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MPI3/anat/sub-MPI3_UNIT1_label-disc.nii.gz -o sub-MPI3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MPI3_UNIT1.nii.gz -s sub-MPI3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MPI3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MSSM1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MSSM1/anat/sub-MSSM1_UNIT1_label-disc.nii.gz -o sub-MSSM1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MSSM1_UNIT1.nii.gz -s sub-MSSM1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MSSM1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MSSM2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MSSM2/anat/sub-MSSM2_UNIT1_label-disc.nii.gz -o sub-MSSM2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MSSM2_UNIT1.nii.gz -s sub-MSSM2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MSSM2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-MSSM3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-MSSM3/anat/sub-MSSM3_UNIT1_label-disc.nii.gz -o sub-MSSM3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-MSSM3_UNIT1.nii.gz -s sub-MSSM3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-MSSM3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-NTNU1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-NTNU1/anat/sub-NTNU1_UNIT1_label-disc.nii.gz -o sub-NTNU1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-NTNU1_UNIT1.nii.gz -s sub-NTNU1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-NTNU1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-NTNU2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-NTNU2/anat/sub-NTNU2_UNIT1_label-disc.nii.gz -o sub-NTNU2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-NTNU2_UNIT1.nii.gz -s sub-NTNU2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-NTNU2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-NTNU3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-NTNU3/anat/sub-NTNU3_UNIT1_label-disc.nii.gz -o sub-NTNU3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-NTNU3_UNIT1.nii.gz -s sub-NTNU3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-NTNU3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-UCL1: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL1_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-UCL1/anat/sub-UCL1_UNIT1_label-disc.nii.gz -o sub-UCL1_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-UCL1_UNIT1.nii.gz -s sub-UCL1_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-UCL1
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-UCL2: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL2_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-UCL2/anat/sub-UCL2_UNIT1_label-disc.nii.gz -o sub-UCL2_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-UCL2_UNIT1.nii.gz -s sub-UCL2_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-UCL2
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-UCL3: Manual labels found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL3_UNIT1_seg.nii.gz -disc /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/labels/sub-UCL3/anat/sub-UCL3_UNIT1_label-disc.nii.gz -o sub-UCL3_UNIT1_seg_labeled.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-UCL3_UNIT1.nii.gz -s sub-UCL3_UNIT1_seg_labeled.nii.gz -p sct_label_vertebrae -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-UCL3
--
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
# Crop MP2RAGE for faster processing and better registration results
dilation_kernel="20x20x0"

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "anat"))
    !sct_crop_image -i {subject}_inv-1_part-mag_MP2RAGE.nii.gz -m {subject}_UNIT1_seg.nii.gz -dilate {dilation_kernel} -o {subject}_inv-1_part-mag_MP2RAGE_crop.nii.gz 
    !sct_crop_image -i {subject}_UNIT1.nii.gz -m {subject}_UNIT1_seg.nii.gz -dilate {dilation_kernel} -o {subject}_UNIT1_crop.nii.gz
    !sct_crop_image -i {subject}_UNIT1_seg.nii.gz -m {subject}_UNIT1_seg.nii.gz -dilate {dilation_kernel} -o {subject}_UNIT1_seg_crop.nii.gz
    !sct_crop_image -i {subject}_UNIT1_seg_labeled.nii.gz -m {subject}_UNIT1_seg.nii.gz -dilate {dilation_kernel} -o {subject}_UNIT1_seg_labeled_crop.nii.gz
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-CRMBM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[92, 157], y=[24, 124], z=[54, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_UNIT1.nii.gz -m sub-CRMBM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM1_UNIT1_crop.nii.gz
--
Bounding box: x=[92, 157], y=[24, 124], z=[54, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_UNIT1_seg.nii.gz -m sub-CRMBM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[92, 157], y=[24, 124], z=[54, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_UNIT1_seg_labeled.nii.gz -m sub-CRMBM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[92, 157], y=[24, 124], z=[54, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-CRMBM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[88, 153], y=[33, 123], z=[63, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_UNIT1.nii.gz -m sub-CRMBM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM2_UNIT1_crop.nii.gz
--
Bounding box: x=[88, 153], y=[33, 123], z=[63, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_UNIT1_seg.nii.gz -m sub-CRMBM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[88, 153], y=[33, 123], z=[63, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_UNIT1_seg_labeled.nii.gz -m sub-CRMBM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[88, 153], y=[33, 123], z=[63, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-CRMBM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[84, 153], y=[14, 135], z=[0, 337]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_UNIT1.nii.gz -m sub-CRMBM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM3_UNIT1_crop.nii.gz
--
Bounding box: x=[84, 153], y=[14, 135], z=[0, 337]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_UNIT1_seg.nii.gz -m sub-CRMBM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[84, 153], y=[14, 135], z=[0, 337]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_UNIT1_seg_labeled.nii.gz -m sub-CRMBM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[84, 153], y=[14, 135], z=[0, 337]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MGH1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[63, 125], y=[42, 160], z=[30, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_UNIT1.nii.gz -m sub-MGH1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH1_UNIT1_crop.nii.gz
--
Bounding box: x=[63, 125], y=[42, 160], z=[30, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_UNIT1_seg.nii.gz -m sub-MGH1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[63, 125], y=[42, 160], z=[30, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_UNIT1_seg_labeled.nii.gz -m sub-MGH1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[63, 125], y=[42, 160], z=[30, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MGH2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[65, 124], y=[34, 151], z=[20, 243]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_UNIT1.nii.gz -m sub-MGH2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH2_UNIT1_crop.nii.gz
--
Bounding box: x=[65, 124], y=[34, 151], z=[20, 243]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_UNIT1_seg.nii.gz -m sub-MGH2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[65, 124], y=[34, 151], z=[20, 243]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_UNIT1_seg_labeled.nii.gz -m sub-MGH2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[65, 124], y=[34, 151], z=[20, 243]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MGH3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[61, 124], y=[38, 165], z=[18, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_UNIT1.nii.gz -m sub-MGH3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH3_UNIT1_crop.nii.gz
--
Bounding box: x=[61, 124], y=[38, 165], z=[18, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_UNIT1_seg.nii.gz -m sub-MGH3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[61, 124], y=[38, 165], z=[18, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_UNIT1_seg_labeled.nii.gz -m sub-MGH3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MGH3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[61, 124], y=[38, 165], z=[18, 256]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MNI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[90, 155], y=[49, 126], z=[0, 367]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_UNIT1.nii.gz -m sub-MNI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI1_UNIT1_crop.nii.gz
--
Bounding box: x=[90, 155], y=[49, 126], z=[0, 367]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_UNIT1_seg.nii.gz -m sub-MNI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[90, 155], y=[49, 126], z=[0, 367]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_UNIT1_seg_labeled.nii.gz -m sub-MNI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[90, 155], y=[49, 126], z=[0, 367]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MNI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[91, 154], y=[39, 114], z=[0, 361]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_UNIT1.nii.gz -m sub-MNI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI2_UNIT1_crop.nii.gz
--
Bounding box: x=[91, 154], y=[39, 114], z=[0, 361]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_UNIT1_seg.nii.gz -m sub-MNI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[91, 154], y=[39, 114], z=[0, 361]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_UNIT1_seg_labeled.nii.gz -m sub-MNI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[91, 154], y=[39, 114], z=[0, 361]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MNI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[81, 150], y=[60, 162], z=[19, 279]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_UNIT1.nii.gz -m sub-MNI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI3_UNIT1_crop.nii.gz
--
Bounding box: x=[81, 150], y=[60, 162], z=[19, 279]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_UNIT1_seg.nii.gz -m sub-MNI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[81, 150], y=[60, 162], z=[19, 279]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_UNIT1_seg_labeled.nii.gz -m sub-MNI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MNI3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[81, 150], y=[60, 162], z=[19, 279]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MPI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[96, 164], y=[29, 118], z=[9, 275]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_UNIT1.nii.gz -m sub-MPI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI1_UNIT1_crop.nii.gz
--
Bounding box: x=[96, 164], y=[29, 118], z=[9, 275]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_UNIT1_seg.nii.gz -m sub-MPI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[96, 164], y=[29, 118], z=[9, 275]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_UNIT1_seg_labeled.nii.gz -m sub-MPI1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[96, 164], y=[29, 118], z=[9, 275]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MPI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[87, 148], y=[31, 120], z=[0, 276]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_UNIT1.nii.gz -m sub-MPI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI2_UNIT1_crop.nii.gz
--
Bounding box: x=[87, 148], y=[31, 120], z=[0, 276]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_UNIT1_seg.nii.gz -m sub-MPI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[87, 148], y=[31, 120], z=[0, 276]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_UNIT1_seg_labeled.nii.gz -m sub-MPI2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[87, 148], y=[31, 120], z=[0, 276]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MPI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[93, 161], y=[14, 131], z=[7, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_UNIT1.nii.gz -m sub-MPI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI3_UNIT1_crop.nii.gz
--
Bounding box: x=[93, 161], y=[14, 131], z=[7, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_UNIT1_seg.nii.gz -m sub-MPI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[93, 161], y=[14, 131], z=[7, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_UNIT1_seg_labeled.nii.gz -m sub-MPI3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MPI3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[93, 161], y=[14, 131], z=[7, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MSSM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[81, 149], y=[50, 122], z=[16, 254]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_UNIT1.nii.gz -m sub-MSSM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM1_UNIT1_crop.nii.gz
--
Bounding box: x=[81, 149], y=[50, 122], z=[16, 254]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_UNIT1_seg.nii.gz -m sub-MSSM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[81, 149], y=[50, 122], z=[16, 254]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_UNIT1_seg_labeled.nii.gz -m sub-MSSM1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[81, 149], y=[50, 122], z=[16, 254]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MSSM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[88, 150], y=[50, 124], z=[40, 268]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_UNIT1.nii.gz -m sub-MSSM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM2_UNIT1_crop.nii.gz
--
Bounding box: x=[88, 150], y=[50, 124], z=[40, 268]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_UNIT1_seg.nii.gz -m sub-MSSM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[88, 150], y=[50, 124], z=[40, 268]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_UNIT1_seg_labeled.nii.gz -m sub-MSSM2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[88, 150], y=[50, 124], z=[40, 268]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-MSSM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[87, 152], y=[32, 136], z=[0, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_UNIT1.nii.gz -m sub-MSSM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM3_UNIT1_crop.nii.gz
--
Bounding box: x=[87, 152], y=[32, 136], z=[0, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_UNIT1_seg.nii.gz -m sub-MSSM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[87, 152], y=[32, 136], z=[0, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_UNIT1_seg_labeled.nii.gz -m sub-MSSM3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[87, 152], y=[32, 136], z=[0, 289]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-NTNU1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[90, 155], y=[61, 126], z=[20, 316]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_UNIT1.nii.gz -m sub-NTNU1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU1_UNIT1_crop.nii.gz
--
Bounding box: x=[90, 155], y=[61, 126], z=[20, 316]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_UNIT1_seg.nii.gz -m sub-NTNU1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[90, 155], y=[61, 126], z=[20, 316]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_UNIT1_seg_labeled.nii.gz -m sub-NTNU1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[90, 155], y=[61, 126], z=[20, 316]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-NTNU2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[82, 151], y=[49, 120], z=[60, 294]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_UNIT1.nii.gz -m sub-NTNU2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU2_UNIT1_crop.nii.gz
--
Bounding box: x=[82, 151], y=[49, 120], z=[60, 294]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_UNIT1_seg.nii.gz -m sub-NTNU2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[82, 151], y=[49, 120], z=[60, 294]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_UNIT1_seg_labeled.nii.gz -m sub-NTNU2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[82, 151], y=[49, 120], z=[60, 294]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-NTNU3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[94, 154], y=[23, 126], z=[8, 330]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_UNIT1.nii.gz -m sub-NTNU3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU3_UNIT1_crop.nii.gz
--
Bounding box: x=[94, 154], y=[23, 126], z=[8, 330]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_UNIT1_seg.nii.gz -m sub-NTNU3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[94, 154], y=[23, 126], z=[8, 330]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_UNIT1_seg_labeled.nii.gz -m sub-NTNU3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[94, 154], y=[23, 126], z=[8, 330]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz -m sub-UCL1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[103, 170], y=[18, 123], z=[35, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_UNIT1.nii.gz -m sub-UCL1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL1_UNIT1_crop.nii.gz
--
Bounding box: x=[103, 170], y=[18, 123], z=[35, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_UNIT1_seg.nii.gz -m sub-UCL1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL1_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[103, 170], y=[18, 123], z=[35, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_UNIT1_seg_labeled.nii.gz -m sub-UCL1_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL1_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[103, 170], y=[18, 123], z=[35, 368]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz -m sub-UCL2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[77, 152], y=[25, 135], z=[72, 359]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_UNIT1.nii.gz -m sub-UCL2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL2_UNIT1_crop.nii.gz
--
Bounding box: x=[77, 152], y=[25, 135], z=[72, 359]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_UNIT1_seg.nii.gz -m sub-UCL2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL2_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[77, 152], y=[25, 135], z=[72, 359]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_UNIT1_seg_labeled.nii.gz -m sub-UCL2_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL2_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[77, 152], y=[25, 135], z=[72, 359]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz -m sub-UCL3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz
--
Bounding box: x=[91, 160], y=[12, 127], z=[62, 362]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_UNIT1.nii.gz -m sub-UCL3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL3_UNIT1_crop.nii.gz
--
Bounding box: x=[91, 160], y=[12, 127], z=[62, 362]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_UNIT1_seg.nii.gz -m sub-UCL3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL3_UNIT1_seg_crop.nii.gz
--
Bounding box: x=[91, 160], y=[12, 127], z=[62, 362]
Cropping the image...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_UNIT1_seg_labeled.nii.gz -m sub-UCL3_UNIT1_seg.nii.gz -dilate 20x20x0 -o sub-UCL3_UNIT1_seg_labeled_crop.nii.gz
--
Bounding box: x=[91, 160], y=[12, 127], z=[62, 362]
Cropping the image...

Register MP2RAGE to B1+ and SNR data#

Segment spinal cord on TFL#

# Segment spinal cord on TFL data (B1+ mapping) ⏳

# Only do this for subjects without MSSM in their name (https://github.com/spinal-cord-7t/coil-qc-code/issues/153)
subjects_without_MSSM = [subject for subject in subjects if "MSSM" not in subject]

for subject in subjects_without_MSSM:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    fname_manual_seg = os.path.join(path_labels, subject, "fmap", f"{subject}_acq-anat_TB1TFL_label-SC_seg.nii.gz")
    if os.path.exists(fname_manual_seg):
        # Manual segmentation already exists. Copy it to local folder
        print(f"{subject}: Manual segmentation found\n")
        shutil.copyfile(fname_manual_seg, f"{subject}_acq-anat_TB1TFL_seg.nii.gz")
        # Generate QC report to make sure the manual segmentation is correct
        if subject in ['sub-MSSM1', 'sub-MSSM2', 'sub-MSSM3']:
            !sct_qc -i "{subject}_acq-famp_TB1TFL.nii.gz" -s "{subject}_acq-anat_TB1TFL_seg.nii.gz" -p sct_deepseg_sc -qc {path_qc} -qc-subject {subject}
        else:
            !sct_qc -i "{subject}_acq-anat_TB1TFL.nii.gz" -s "{subject}_acq-anat_TB1TFL_seg.nii.gz" -p sct_deepseg_sc -qc {path_qc} -qc-subject {subject}
    else:
        # Manual segmentation does not exist. Run automatic segmentation.
        print(f"{subject}: Manual segmentation not found")
        !sct_deepseg -i "{subject}_acq-anat_TB1TFL.nii.gz" -task seg_sc_contrast_agnostic -thr 0 -qc {path_qc} 
sub-CRMBM1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-14-46_sct_deepseg_ml9xowk7)
Copied sub-CRMBM1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-14-46_sct_deepseg_ml9xowk7/sub-CRMBM1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 25 seconds
Saving results to: /tmp/sct_2025-01-15_15-14-46_sct_deepseg_ml9xowk7/sub-CRMBM1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151512.927033.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-CRMBM2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-15-21_sct_deepseg_fgzu7lhi)
Copied sub-CRMBM2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-15-21_sct_deepseg_fgzu7lhi/sub-CRMBM2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-15-21_sct_deepseg_fgzu7lhi/sub-CRMBM2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151547.070889.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-CRMBM3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM3_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-15-55_sct_deepseg_62whctbv)
Copied sub-CRMBM3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-15-55_sct_deepseg_62whctbv/sub-CRMBM3_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-15-55_sct_deepseg_62whctbv/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151620.905308.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-16-29_sct_deepseg_h58b2asp)
Copied sub-MGH1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-16-29_sct_deepseg_h58b2asp/sub-MGH1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_15-16-29_sct_deepseg_h58b2asp/sub-MGH1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151654.493635.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-17-03_sct_deepseg_p2r780b_)
Copied sub-MGH2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-17-03_sct_deepseg_p2r780b_/sub-MGH2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-17-03_sct_deepseg_p2r780b_/sub-MGH2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151728.251085.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MGH3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH3_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-17-36_sct_deepseg_k004aa36)
Copied sub-MGH3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-17-36_sct_deepseg_k004aa36/sub-MGH3_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-17-36_sct_deepseg_k004aa36/sub-MGH3_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151802.071939.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-18-10_sct_deepseg_ga8hjyyz)
Copied sub-MNI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-18-10_sct_deepseg_ga8hjyyz/sub-MNI1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-18-10_sct_deepseg_ga8hjyyz/sub-MNI1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151836.113294.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-18-44_sct_deepseg_w03wodjx)
Copied sub-MNI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-18-44_sct_deepseg_w03wodjx/sub-MNI2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_15-18-44_sct_deepseg_w03wodjx/sub-MNI2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151909.783428.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MNI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI3_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-19-18_sct_deepseg__32plpav)
Copied sub-MNI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-19-18_sct_deepseg__32plpav/sub-MNI3_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-19-18_sct_deepseg__32plpav/sub-MNI3_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_151943.760551.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MPI1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-19-52_sct_deepseg_42eww616)
Copied sub-MPI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-19-52_sct_deepseg_42eww616/sub-MPI1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-19-52_sct_deepseg_42eww616/sub-MPI1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152017.947209.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MPI2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-20-27_sct_deepseg_4ftv7753)
Copied sub-MPI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-20-27_sct_deepseg_4ftv7753/sub-MPI2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-20-27_sct_deepseg_4ftv7753/sub-MPI2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152052.476957.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-MPI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI3_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-21-01_sct_deepseg_i6qx4ma6)
Copied sub-MPI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-21-01_sct_deepseg_i6qx4ma6/sub-MPI3_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-21-01_sct_deepseg_i6qx4ma6/sub-MPI3_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152126.777365.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-21-35_sct_deepseg_nfz4iyeq)
Copied sub-NTNU1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-21-35_sct_deepseg_nfz4iyeq/sub-NTNU1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-21-35_sct_deepseg_nfz4iyeq/sub-NTNU1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152200.776628.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--
Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-22-09_sct_deepseg_p5xcws4f)
Copied sub-NTNU2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-22-09_sct_deepseg_p5xcws4f/sub-NTNU2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-22-09_sct_deepseg_p5xcws4f/sub-NTNU2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152235.106246.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-NTNU3: Manual segmentation found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_qc -i sub-NTNU3_acq-anat_TB1TFL.nii.gz -s sub-NTNU3_acq-anat_TB1TFL_seg.nii.gz -p sct_deepseg_sc -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc -qc-subject sub-NTNU3
--
Resampling image "sub-NTNU3_acq-anat_TB1TFL.nii.gz" to 0.6x0.6 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Resampling image "sub-NTNU3_acq-anat_TB1TFL_seg.nii.gz" to 0.6x0.6 mm
Converting image from type 'uint8' to type 'float64' for linear interpolation
Image header specifies datatype 'float64', but array is of type 'int64'. Header metadata will be overwritten to use 'int64'.
Compute center of mass at each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
*** Generating Quality Control (QC) html report ***
Traceback (most recent call last):
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 125, in <module>
    main(sys.argv[1:])
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/scripts/sct_qc.py", line 108, in main
    generate_qc(fname_in1=arguments.i,
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 632, in generate_qc
    qc_image._make_QC_image_for_3d_volumes(img, mask, plane, imgs_to_generate)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/reports/qc.py", line 228, in _make_QC_image_for_3d_volumes
    fig = mpl_plt.figure()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 1027, in figure
    manager = new_figure_manager(
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 549, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 526, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 358, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/__init__.py", line 1, in <module>
    from . import backend_inline, config  # noqa
  File "/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py", line 13, in <module>
    from IPython.core.interactiveshell import InteractiveShell
ModuleNotFoundError: No module named 'IPython'
sub-UCL1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL1_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-22-47_sct_deepseg_rq0_f8im)
Copied sub-UCL1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-22-47_sct_deepseg_rq0_f8im/sub-UCL1_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-22-47_sct_deepseg_rq0_f8im/sub-UCL1_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152312.805876.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-UCL2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL2_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-23-21_sct_deepseg_snabp82r)
Copied sub-UCL2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-23-21_sct_deepseg_snabp82r/sub-UCL2_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-23-21_sct_deepseg_snabp82r/sub-UCL2_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152346.883961.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

sub-UCL3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL3_acq-anat_TB1TFL.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_15-23-55_sct_deepseg_o_ydtahh)
Copied sub-UCL3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2025-01-15_15-23-55_sct_deepseg_o_ydtahh/sub-UCL3_acq-anat_TB1TFL.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_15-23-55_sct_deepseg_o_ydtahh/sub-UCL3_acq-anat_TB1TFL_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152420.991608.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

Register TFL to MP2RAGE#

# Register TFL data (B1+ mapping) to the MP2RAGE scan ⏳

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    if subject in ['sub-MSSM1', 'sub-MSSM2', 'sub-MSSM3']:
        # https://github.com/spinal-cord-7t/coil-qc-code/issues/43
        # https://github.com/spinal-cord-7t/coil-qc-code/issues/153
        !sct_register_multimodal -i {subject}_acq-famp_TB1TFL.nii.gz -d ../anat/{subject}_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/{subject}_UNIT1_seg_crop.nii.gz -identity 1 -qc "{path_qc}"
    else:
        !sct_register_multimodal -i {subject}_acq-anat_TB1TFL.nii.gz -iseg {subject}_acq-anat_TB1TFL_seg.nii.gz -d ../anat/{subject}_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/{subject}_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc "{path_qc}"
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM1_acq-anat_TB1TFL.nii.gz -iseg sub-CRMBM1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-CRMBM1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM1_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 100, 314)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-24-27_register-slicewise_kma_xoxb)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 100 x 314
  voxel size: 0.7065217mm x 0.6999998mm x 314mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/314 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/314 [00:00<01:09,  4.51iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1446: RuntimeWarning: invalid value encountered in divide
  coordsrc /= coordsrc.std()
Slice #8 is empty. It will be ignored.
Estimate cord angle for each slice:  37%|████████▏             | 116/314 [00:00<00:00, 452.52iter/s]
Estimate cord angle for each slice:  74%|████████████████▎     | 233/314 [00:00<00:00, 709.24iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #311 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #312 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #313 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 314/314 [00:00<00:00, 638.15iter/s]

Build 3D deformation field:   0%|                                         | 0/302 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 13/302 [00:00<00:02, 129.31iter/s]
Build 3D deformation field:   9%|██▊                            | 27/302 [00:00<00:02, 134.75iter/s]
Build 3D deformation field:  14%|████▏                          | 41/302 [00:00<00:01, 134.44iter/s]
Build 3D deformation field:  18%|█████▋                         | 55/302 [00:00<00:01, 134.96iter/s]
Build 3D deformation field:  23%|███████                        | 69/302 [00:00<00:01, 134.47iter/s]
Build 3D deformation field:  27%|████████▌                      | 83/302 [00:00<00:01, 135.63iter/s]
Build 3D deformation field:  32%|█████████▉                     | 97/302 [00:00<00:01, 136.81iter/s]
Build 3D deformation field:  37%|███████████                   | 111/302 [00:00<00:01, 136.55iter/s]
Build 3D deformation field:  41%|████████████▍                 | 125/302 [00:00<00:01, 135.92iter/s]
Build 3D deformation field:  46%|█████████████▊                | 139/302 [00:01<00:01, 136.04iter/s]
Build 3D deformation field:  51%|███████████████▏              | 153/302 [00:01<00:01, 135.45iter/s]
Build 3D deformation field:  55%|████████████████▌             | 167/302 [00:01<00:01, 134.91iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 181/302 [00:01<00:00, 134.86iter/s]
Build 3D deformation field:  65%|███████████████████▎          | 195/302 [00:01<00:00, 134.80iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 209/302 [00:01<00:00, 134.85iter/s]
Build 3D deformation field:  74%|██████████████████████▏       | 223/302 [00:01<00:00, 135.28iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 237/302 [00:01<00:00, 134.85iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 251/302 [00:01<00:00, 134.61iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 265/302 [00:01<00:00, 134.62iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 279/302 [00:02<00:00, 134.42iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 293/302 [00:02<00:00, 134.38iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 302/302 [00:02<00:00, 134.94iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz
Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr
rm -rf /tmp/sct_2025-01-15_15-24-27_register-slicewise_kma_xoxb

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr/warp_src2dest.nii.gz warp_sub-CRMBM1_acq-anat_TB1TFL2sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM1_acq-anat_TB1TFL2sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr/warp_dest2src.nii.gz warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-24-25_register-wrapper_q19oserr

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152434.453513.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM2_acq-anat_TB1TFL.nii.gz -iseg sub-CRMBM2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-CRMBM2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM2_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 90, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-24-38_register-slicewise_28z0d_ey)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 90 x 226
  voxel size: 0.7065217mm x 0.6999998mm x 226mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/226 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/226 [00:00<00:49,  4.52iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
Estimate cord angle for each slice:  52%|███████████▍          | 117/226 [00:00<00:00, 457.14iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #224 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #225 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 544.86iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 13/220 [00:00<00:01, 126.70iter/s]
Build 3D deformation field:  12%|███▊                           | 27/220 [00:00<00:01, 131.17iter/s]
Build 3D deformation field:  19%|█████▊                         | 41/220 [00:00<00:01, 132.17iter/s]
Build 3D deformation field:  25%|███████▊                       | 55/220 [00:00<00:01, 132.56iter/s]
Build 3D deformation field:  31%|█████████▋                     | 69/220 [00:00<00:01, 132.63iter/s]
Build 3D deformation field:  38%|███████████▋                   | 83/220 [00:00<00:01, 132.76iter/s]
Build 3D deformation field:  44%|█████████████▋                 | 97/220 [00:00<00:00, 132.52iter/s]
Build 3D deformation field:  50%|███████████████▏              | 111/220 [00:00<00:00, 132.41iter/s]
Build 3D deformation field:  57%|█████████████████             | 125/220 [00:00<00:00, 132.69iter/s]
Build 3D deformation field:  63%|██████████████████▉           | 139/220 [00:01<00:00, 132.90iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 153/220 [00:01<00:00, 132.98iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 167/220 [00:01<00:00, 132.86iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 181/220 [00:01<00:00, 133.05iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 195/220 [00:01<00:00, 133.21iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 209/220 [00:01<00:00, 133.82iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 132.92iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7
rm -rf /tmp/sct_2025-01-15_15-24-38_register-slicewise_28z0d_ey

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7/warp_src2dest.nii.gz warp_sub-CRMBM2_acq-anat_TB1TFL2sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM2_acq-anat_TB1TFL2sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7/warp_dest2src.nii.gz warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-24-37_register-wrapper_oer1ber7

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152443.892047.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM3_acq-anat_TB1TFL.nii.gz -iseg sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-CRMBM3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM3_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 121, 337)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-24-49_register-slicewise_jbg3w7t6)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 121 x 337
  voxel size: 0.7065217mm x 0.6999998mm x 337mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/337 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/337 [00:00<01:16,  4.40iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
Estimate cord angle for each slice:  29%|██████▊                | 99/337 [00:00<00:00, 379.91iter/s]
Estimate cord angle for each slice:  63%|█████████████▉        | 213/337 [00:00<00:00, 647.71iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #324 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #325 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #326 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #327 is empty. It will be ignored.

Estimate cord angle for each slice:  97%|█████████████████████▍| 328/337 [00:00<00:00, 815.00iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #328 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #329 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #330 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #331 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #332 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #333 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #334 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #335 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #336 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 337/337 [00:00<00:00, 630.41iter/s]

Build 3D deformation field:   0%|                                         | 0/284 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/284 [00:00<00:02, 99.15iter/s]
Build 3D deformation field:   7%|██▎                            | 21/284 [00:00<00:02, 105.16iter/s]
Build 3D deformation field:  11%|███▍                           | 32/284 [00:00<00:02, 106.74iter/s]
Build 3D deformation field:  15%|████▋                          | 43/284 [00:00<00:02, 106.90iter/s]
Build 3D deformation field:  19%|█████▉                         | 54/284 [00:00<00:02, 106.99iter/s]
Build 3D deformation field:  23%|███████                        | 65/284 [00:00<00:02, 106.41iter/s]
Build 3D deformation field:  27%|████████▎                      | 76/284 [00:00<00:01, 106.47iter/s]
Build 3D deformation field:  31%|█████████▍                     | 87/284 [00:00<00:01, 106.13iter/s]
Build 3D deformation field:  35%|██████████▋                    | 98/284 [00:00<00:01, 104.99iter/s]
Build 3D deformation field:  38%|███████████▌                  | 109/284 [00:01<00:01, 105.10iter/s]
Build 3D deformation field:  42%|████████████▋                 | 120/284 [00:01<00:01, 104.04iter/s]
Build 3D deformation field:  46%|█████████████▊                | 131/284 [00:01<00:01, 104.80iter/s]
Build 3D deformation field:  50%|███████████████               | 142/284 [00:01<00:01, 106.02iter/s]
Build 3D deformation field:  54%|████████████████▏             | 153/284 [00:01<00:01, 105.71iter/s]
Build 3D deformation field:  58%|█████████████████▎            | 164/284 [00:01<00:01, 105.43iter/s]
Build 3D deformation field:  62%|██████████████████▍           | 175/284 [00:01<00:01, 105.28iter/s]
Build 3D deformation field:  65%|███████████████████▋          | 186/284 [00:01<00:00, 105.77iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 197/284 [00:01<00:00, 105.79iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 208/284 [00:01<00:00, 105.39iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 219/284 [00:02<00:00, 106.58iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 230/284 [00:02<00:00, 107.05iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 241/284 [00:02<00:00, 107.44iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 253/284 [00:02<00:00, 108.88iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 264/284 [00:02<00:00, 108.56iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 275/284 [00:02<00:00, 107.31iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 284/284 [00:02<00:00, 106.22iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt
rm -rf /tmp/sct_2025-01-15_15-24-49_register-slicewise_jbg3w7t6

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt/warp_src2dest.nii.gz warp_sub-CRMBM3_acq-anat_TB1TFL2sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM3_acq-anat_TB1TFL2sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt/warp_dest2src.nii.gz warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-24-46_register-wrapper__fyfvbxt

Finished! Elapsed time: 12s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152457.937811.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH1_acq-anat_TB1TFL.nii.gz -iseg sub-MGH1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MGH1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH1_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz (62, 118, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-03_register-slicewise_g9ael_s0)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 62 x 118 x 226
  voxel size: 1.0mm x 1.0mm x 226mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/226 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/226 [00:00<00:48,  4.62iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
Estimate cord angle for each slice:  47%|██████████▎           | 106/226 [00:00<00:00, 419.69iter/s]
Estimate cord angle for each slice:  98%|█████████████████████▌| 221/226 [00:00<00:00, 683.93iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 536.28iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 12/189 [00:00<00:01, 118.18iter/s]
Build 3D deformation field:  13%|████                           | 25/189 [00:00<00:01, 123.31iter/s]
Build 3D deformation field:  20%|██████▏                        | 38/189 [00:00<00:01, 123.71iter/s]
Build 3D deformation field:  27%|████████▎                      | 51/189 [00:00<00:01, 123.80iter/s]
Build 3D deformation field:  34%|██████████▍                    | 64/189 [00:00<00:01, 124.79iter/s]
Build 3D deformation field:  41%|████████████▋                  | 77/189 [00:00<00:00, 125.27iter/s]
Build 3D deformation field:  48%|██████████████▊                | 90/189 [00:00<00:00, 124.34iter/s]
Build 3D deformation field:  54%|████████████████▎             | 103/189 [00:00<00:00, 123.39iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 116/189 [00:00<00:00, 122.49iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 129/189 [00:01<00:00, 123.23iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 142/189 [00:01<00:00, 122.76iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 155/189 [00:01<00:00, 122.41iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 168/189 [00:01<00:00, 121.68iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 181/189 [00:01<00:00, 121.34iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 122.75iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes
rm -rf /tmp/sct_2025-01-15_15-25-03_register-slicewise_g9ael_s0

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes/warp_src2dest.nii.gz warp_sub-MGH1_acq-anat_TB1TFL2sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH1_acq-anat_TB1TFL2sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MGH1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes/warp_dest2src.nii.gz warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-01_register-wrapper_5aqeqkes

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152508.167469.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH2_acq-anat_TB1TFL.nii.gz -iseg sub-MGH2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MGH2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH2_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz (59, 117, 223)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-13_register-slicewise_py0n5lpu)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 59 x 117 x 223
  voxel size: 1.0mm x 1.0mm x 223mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/223 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/223 [00:00<00:49,  4.50iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  49%|██████████▊           | 110/223 [00:00<00:00, 429.07iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 223/223 [00:00<00:00, 532.33iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 12/218 [00:00<00:01, 119.83iter/s]
Build 3D deformation field:  11%|███▌                           | 25/218 [00:00<00:01, 125.50iter/s]
Build 3D deformation field:  17%|█████▍                         | 38/218 [00:00<00:01, 126.93iter/s]
Build 3D deformation field:  23%|███████▎                       | 51/218 [00:00<00:01, 127.22iter/s]
Build 3D deformation field:  29%|█████████                      | 64/218 [00:00<00:01, 127.44iter/s]
Build 3D deformation field:  35%|██████████▉                    | 77/218 [00:00<00:01, 127.81iter/s]
Build 3D deformation field:  41%|████████████▊                  | 90/218 [00:00<00:00, 128.30iter/s]
Build 3D deformation field:  48%|██████████████▎               | 104/218 [00:00<00:00, 129.07iter/s]
Build 3D deformation field:  54%|████████████████▏             | 118/218 [00:00<00:00, 129.36iter/s]
Build 3D deformation field:  61%|██████████████████▏           | 132/218 [00:01<00:00, 129.52iter/s]
Build 3D deformation field:  67%|███████████████████▉          | 145/218 [00:01<00:00, 129.49iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 158/218 [00:01<00:00, 128.62iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 171/218 [00:01<00:00, 128.01iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 184/218 [00:01<00:00, 127.31iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 197/218 [00:01<00:00, 127.08iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 210/218 [00:01<00:00, 127.18iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 127.77iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s
rm -rf /tmp/sct_2025-01-15_15-25-13_register-slicewise_py0n5lpu

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s/warp_src2dest.nii.gz warp_sub-MGH2_acq-anat_TB1TFL2sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH2_acq-anat_TB1TFL2sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MGH2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s/warp_dest2src.nii.gz warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-11_register-wrapper_cj9q8r2s

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152518.234793.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_acq-anat_TB1TFL.nii.gz -iseg sub-MGH3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MGH3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH3_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz (63, 127, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-23_register-slicewise_t62f9y4h)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 63 x 127 x 238
  voxel size: 1.0mm x 1.0mm x 238mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/238 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/238 [00:00<00:52,  4.55iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
Estimate cord angle for each slice:  46%|██████████            | 109/238 [00:00<00:00, 427.19iter/s]
Estimate cord angle for each slice:  94%|████████████████████▋ | 224/238 [00:00<00:00, 685.33iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #237 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 238/238 [00:00<00:00, 547.96iter/s]

Build 3D deformation field:   0%|                                         | 0/216 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 11/216 [00:00<00:01, 106.41iter/s]
Build 3D deformation field:  11%|███▎                           | 23/216 [00:00<00:01, 111.34iter/s]
Build 3D deformation field:  16%|█████                          | 35/216 [00:00<00:01, 112.43iter/s]
Build 3D deformation field:  22%|██████▋                        | 47/216 [00:00<00:01, 113.13iter/s]
Build 3D deformation field:  27%|████████▍                      | 59/216 [00:00<00:01, 112.61iter/s]
Build 3D deformation field:  33%|██████████▏                    | 71/216 [00:00<00:01, 113.23iter/s]
Build 3D deformation field:  38%|███████████▉                   | 83/216 [00:00<00:01, 113.75iter/s]
Build 3D deformation field:  44%|█████████████▋                 | 95/216 [00:00<00:01, 113.55iter/s]
Build 3D deformation field:  50%|██████████████▊               | 107/216 [00:00<00:00, 114.47iter/s]
Build 3D deformation field:  55%|████████████████▌             | 119/216 [00:01<00:00, 113.67iter/s]
Build 3D deformation field:  61%|██████████████████▏           | 131/216 [00:01<00:00, 112.94iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 143/216 [00:01<00:00, 112.58iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 155/216 [00:01<00:00, 113.76iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 167/216 [00:01<00:00, 113.89iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 179/216 [00:01<00:00, 112.91iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 191/216 [00:01<00:00, 112.25iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 203/216 [00:01<00:00, 112.70iter/s]
Build 3D deformation field: 100%|█████████████████████████████▊| 215/216 [00:01<00:00, 113.27iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 216/216 [00:01<00:00, 113.07iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j
rm -rf /tmp/sct_2025-01-15_15-25-23_register-slicewise_t62f9y4h

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j/warp_src2dest.nii.gz warp_sub-MGH3_acq-anat_TB1TFL2sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH3_acq-anat_TB1TFL2sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MGH3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j/warp_dest2src.nii.gz warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-21_register-wrapper_fvgf2l6j

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152529.242404.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI1_acq-anat_TB1TFL.nii.gz -iseg sub-MNI1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MNI1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI1_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 77, 367)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-34_register-slicewise_mb_hofu6)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 77 x 367
  voxel size: 0.7065217mm x 0.7000043mm x 367mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/367 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/367 [00:00<01:19,  4.59iter/s]
Estimate cord angle for each slice:  32%|███████               | 118/367 [00:00<00:00, 464.76iter/s]
Estimate cord angle for each slice:  65%|██████████████▏       | 237/367 [00:00<00:00, 724.27iter/s]
Estimate cord angle for each slice:  97%|█████████████████████▎| 356/367 [00:00<00:00, 880.20iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #364 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #365 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #366 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 367/367 [00:00<00:00, 692.29iter/s]

Build 3D deformation field:   0%|                                         | 0/363 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 17/363 [00:00<00:02, 166.27iter/s]
Build 3D deformation field:  10%|██▉                            | 35/363 [00:00<00:01, 171.30iter/s]
Build 3D deformation field:  15%|████▌                          | 53/363 [00:00<00:01, 173.95iter/s]
Build 3D deformation field:  20%|██████                         | 71/363 [00:00<00:01, 173.81iter/s]
Build 3D deformation field:  25%|███████▌                       | 89/363 [00:00<00:01, 173.35iter/s]
Build 3D deformation field:  29%|████████▊                     | 107/363 [00:00<00:01, 174.38iter/s]
Build 3D deformation field:  34%|██████████▎                   | 125/363 [00:00<00:01, 174.22iter/s]
Build 3D deformation field:  39%|███████████▊                  | 143/363 [00:00<00:01, 175.10iter/s]
Build 3D deformation field:  44%|█████████████▎                | 161/363 [00:00<00:01, 174.50iter/s]
Build 3D deformation field:  49%|██████████████▊               | 179/363 [00:01<00:01, 174.03iter/s]
Build 3D deformation field:  54%|████████████████▎             | 197/363 [00:01<00:00, 173.95iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 215/363 [00:01<00:00, 173.66iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 233/363 [00:01<00:00, 173.64iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 251/363 [00:01<00:00, 173.94iter/s]
Build 3D deformation field:  74%|██████████████████████▏       | 269/363 [00:01<00:00, 174.37iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 287/363 [00:01<00:00, 174.42iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 305/363 [00:01<00:00, 174.33iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 323/363 [00:01<00:00, 174.17iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 341/363 [00:01<00:00, 174.42iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 359/363 [00:02<00:00, 175.21iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 363/363 [00:02<00:00, 174.15iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv
rm -rf /tmp/sct_2025-01-15_15-25-34_register-slicewise_mb_hofu6

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv/warp_src2dest.nii.gz warp_sub-MNI1_acq-anat_TB1TFL2sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI1_acq-anat_TB1TFL2sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MNI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv/warp_dest2src.nii.gz warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-32_register-wrapper_aq_zmfvv

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152541.326506.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI2_acq-anat_TB1TFL.nii.gz -iseg sub-MNI2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MNI2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI2_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz (63, 75, 361)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-46_register-slicewise_e6cggqi0)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 63 x 75 x 361
  voxel size: 0.7065217mm x 0.7000043mm x 361mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/361 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.
Estimate cord angle for each slice:   0%|                         | 1/361 [00:00<01:18,  4.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  33%|███████▎              | 119/361 [00:00<00:00, 467.30iter/s]
Estimate cord angle for each slice:  66%|██████████████▌       | 239/361 [00:00<00:00, 730.71iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #348 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #349 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #350 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #351 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #352 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #353 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #354 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #355 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #356 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #357 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #358 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #359 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #360 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 361/361 [00:00<00:00, 699.08iter/s]

Build 3D deformation field:   0%|                                         | 0/345 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 19/345 [00:00<00:01, 184.39iter/s]
Build 3D deformation field:  11%|███▌                           | 39/345 [00:00<00:01, 188.13iter/s]
Build 3D deformation field:  17%|█████▏                         | 58/345 [00:00<00:01, 184.69iter/s]
Build 3D deformation field:  22%|██████▉                        | 77/345 [00:00<00:01, 186.63iter/s]
Build 3D deformation field:  28%|████████▋                      | 96/345 [00:00<00:01, 186.64iter/s]
Build 3D deformation field:  33%|██████████                    | 115/345 [00:00<00:01, 186.37iter/s]
Build 3D deformation field:  39%|███████████▋                  | 134/345 [00:00<00:01, 185.99iter/s]
Build 3D deformation field:  44%|█████████████▎                | 153/345 [00:00<00:01, 186.10iter/s]
Build 3D deformation field:  50%|██████████████▉               | 172/345 [00:00<00:00, 186.20iter/s]
Build 3D deformation field:  55%|████████████████▌             | 191/345 [00:01<00:00, 186.01iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 210/345 [00:01<00:00, 185.55iter/s]
Build 3D deformation field:  66%|███████████████████▉          | 229/345 [00:01<00:00, 185.35iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 248/345 [00:01<00:00, 185.31iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 267/345 [00:01<00:00, 185.83iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 286/345 [00:01<00:00, 186.05iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 305/345 [00:01<00:00, 185.98iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 324/345 [00:01<00:00, 185.63iter/s]
Build 3D deformation field:  99%|█████████████████████████████▊| 343/345 [00:01<00:00, 185.16iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 345/345 [00:01<00:00, 185.76iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq
rm -rf /tmp/sct_2025-01-15_15-25-46_register-slicewise_e6cggqi0

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq/warp_src2dest.nii.gz warp_sub-MNI2_acq-anat_TB1TFL2sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI2_acq-anat_TB1TFL2sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MNI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq/warp_dest2src.nii.gz warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-44_register-wrapper_a02azcjq

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152552.309743.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_acq-anat_TB1TFL.nii.gz -iseg sub-MNI3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MNI3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI3_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 102, 260)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-25-57_register-slicewise_gxq2yy9_)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 102 x 260
  voxel size: 0.7065217mm x 0.6999958mm x 260mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/260 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/260 [00:00<00:56,  4.55iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
Estimate cord angle for each slice:  45%|█████████▊            | 116/260 [00:00<00:00, 454.77iter/s]
Estimate cord angle for each slice:  90%|███████████████████▊  | 234/260 [00:00<00:00, 714.12iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #257 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #258 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #259 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 260/260 [00:00<00:00, 585.69iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 12/252 [00:00<00:02, 117.84iter/s]
Build 3D deformation field:  10%|███                            | 25/252 [00:00<00:01, 123.42iter/s]
Build 3D deformation field:  15%|████▋                          | 38/252 [00:00<00:01, 125.54iter/s]
Build 3D deformation field:  20%|██████▎                        | 51/252 [00:00<00:01, 126.25iter/s]
Build 3D deformation field:  25%|███████▊                       | 64/252 [00:00<00:01, 125.86iter/s]
Build 3D deformation field:  31%|█████████▍                     | 77/252 [00:00<00:01, 125.47iter/s]
Build 3D deformation field:  36%|███████████                    | 90/252 [00:00<00:01, 125.43iter/s]
Build 3D deformation field:  41%|████████████▎                 | 103/252 [00:00<00:01, 125.37iter/s]
Build 3D deformation field:  46%|█████████████▊                | 116/252 [00:00<00:01, 125.16iter/s]
Build 3D deformation field:  51%|███████████████▎              | 129/252 [00:01<00:00, 125.45iter/s]
Build 3D deformation field:  56%|████████████████▉             | 142/252 [00:01<00:00, 125.36iter/s]
Build 3D deformation field:  62%|██████████████████▍           | 155/252 [00:01<00:00, 125.59iter/s]
Build 3D deformation field:  67%|████████████████████          | 168/252 [00:01<00:00, 125.76iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 181/252 [00:01<00:00, 125.37iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 195/252 [00:01<00:00, 126.80iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 208/252 [00:01<00:00, 126.50iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 221/252 [00:01<00:00, 126.34iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 234/252 [00:01<00:00, 125.53iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 247/252 [00:01<00:00, 125.35iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:02<00:00, 125.46iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke
rm -rf /tmp/sct_2025-01-15_15-25-57_register-slicewise_gxq2yy9_

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke/warp_src2dest.nii.gz warp_sub-MNI3_acq-anat_TB1TFL2sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI3_acq-anat_TB1TFL2sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MNI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke/warp_dest2src.nii.gz warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-25-55_register-wrapper_9j0aecke

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152603.208174.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI1_acq-anat_TB1TFL.nii.gz -iseg sub-MPI1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MPI1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI1_acq-anat_TB1TFL.nii.gz (90, 144, 56)
  Destination ......... ../anat/sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 89, 266)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-26-07_register-slicewise_n7zevj64)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 68 x 89 x 266
  voxel size: 0.7065217mm x 0.7000045mm x 266mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/266 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/266 [00:00<00:57,  4.61iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #42 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #43 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #44 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #45 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #46 is empty. It will be ignored.
Estimate cord angle for each slice:  42%|█████████▎            | 112/266 [00:00<00:00, 443.37iter/s]
Estimate cord angle for each slice:  86%|██████████████████▉   | 229/266 [00:00<00:00, 705.37iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 591.56iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 15/248 [00:00<00:01, 142.32iter/s]
Build 3D deformation field:  12%|███▊                           | 30/248 [00:00<00:01, 143.14iter/s]
Build 3D deformation field:  18%|█████▋                         | 45/248 [00:00<00:01, 145.38iter/s]
Build 3D deformation field:  24%|███████▌                       | 60/248 [00:00<00:01, 146.43iter/s]
Build 3D deformation field:  30%|█████████▍                     | 75/248 [00:00<00:01, 145.67iter/s]
Build 3D deformation field:  36%|███████████▎                   | 90/248 [00:00<00:01, 145.57iter/s]
Build 3D deformation field:  42%|████████████▋                 | 105/248 [00:00<00:00, 144.75iter/s]
Build 3D deformation field:  48%|██████████████▌               | 120/248 [00:00<00:00, 145.47iter/s]
Build 3D deformation field:  54%|████████████████▎             | 135/248 [00:00<00:00, 145.13iter/s]
Build 3D deformation field:  60%|██████████████████▏           | 150/248 [00:01<00:00, 144.73iter/s]
Build 3D deformation field:  67%|███████████████████▉          | 165/248 [00:01<00:00, 144.71iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 180/248 [00:01<00:00, 144.64iter/s]
Build 3D deformation field:  79%|███████████████████████▌      | 195/248 [00:01<00:00, 141.54iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 210/248 [00:01<00:00, 142.45iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 225/248 [00:01<00:00, 143.32iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 241/248 [00:01<00:00, 146.05iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 144.94iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f
rm -rf /tmp/sct_2025-01-15_15-26-07_register-slicewise_n7zevj64

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f/warp_src2dest.nii.gz warp_sub-MPI1_acq-anat_TB1TFL2sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI1_acq-anat_TB1TFL2sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MPI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f/warp_dest2src.nii.gz warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-05_register-wrapper_1nlymc9f

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152613.199978.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI2_acq-anat_TB1TFL.nii.gz -iseg sub-MPI2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MPI2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI2_acq-anat_TB1TFL.nii.gz (90, 144, 56)
  Destination ......... ../anat/sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz (61, 89, 276)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-26-17_register-slicewise_97_0w6yo)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 61 x 89 x 276
  voxel size: 0.7065217mm x 0.6999956mm x 276mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/276 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/276 [00:00<01:01,  4.49iter/s]
Estimate cord angle for each slice:  44%|█████████▋            | 122/276 [00:00<00:00, 474.60iter/s]
Estimate cord angle for each slice:  88%|███████████████████▍  | 244/276 [00:00<00:00, 740.73iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 612.66iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 16/276 [00:00<00:01, 152.51iter/s]
Build 3D deformation field:  12%|███▋                           | 33/276 [00:00<00:01, 157.32iter/s]
Build 3D deformation field:  18%|█████▌                         | 49/276 [00:00<00:01, 157.85iter/s]
Build 3D deformation field:  24%|███████▍                       | 66/276 [00:00<00:01, 159.12iter/s]
Build 3D deformation field:  30%|█████████▎                     | 83/276 [00:00<00:01, 159.51iter/s]
Build 3D deformation field:  36%|██████████▊                   | 100/276 [00:00<00:01, 160.10iter/s]
Build 3D deformation field:  42%|████████████▋                 | 117/276 [00:00<00:00, 159.80iter/s]
Build 3D deformation field:  49%|██████████████▌               | 134/276 [00:00<00:00, 160.16iter/s]
Build 3D deformation field:  55%|████████████████▍             | 151/276 [00:00<00:00, 160.16iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 168/276 [00:01<00:00, 160.52iter/s]
Build 3D deformation field:  67%|████████████████████          | 185/276 [00:01<00:00, 160.49iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 202/276 [00:01<00:00, 160.47iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 219/276 [00:01<00:00, 160.61iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 236/276 [00:01<00:00, 160.59iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 253/276 [00:01<00:00, 160.57iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 270/276 [00:01<00:00, 160.09iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 159.87iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg
rm -rf /tmp/sct_2025-01-15_15-26-17_register-slicewise_97_0w6yo

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg/warp_src2dest.nii.gz warp_sub-MPI2_acq-anat_TB1TFL2sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI2_acq-anat_TB1TFL2sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MPI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg/warp_dest2src.nii.gz warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-15_register-wrapper_9epf04eg

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152622.894577.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_acq-anat_TB1TFL.nii.gz -iseg sub-MPI3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MPI3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI3_acq-anat_TB1TFL.nii.gz (90, 144, 56)
  Destination ......... ../anat/sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 117, 282)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-26-27_register-slicewise_v_5ks3_2)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 117 x 282
  voxel size: 0.7065217mm x 0.7mm x 282mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/282 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/282 [00:00<01:01,  4.57iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
Estimate cord angle for each slice:  40%|████████▋             | 112/282 [00:00<00:00, 440.26iter/s]
Estimate cord angle for each slice:  80%|█████████████████▌    | 225/282 [00:00<00:00, 687.79iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 282/282 [00:00<00:00, 601.81iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/263 [00:00<00:02, 108.35iter/s]
Build 3D deformation field:   9%|██▋                            | 23/263 [00:00<00:02, 112.03iter/s]
Build 3D deformation field:  13%|████▏                          | 35/263 [00:00<00:02, 111.94iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/263 [00:00<00:01, 111.63iter/s]
Build 3D deformation field:  22%|██████▉                        | 59/263 [00:00<00:01, 111.16iter/s]
Build 3D deformation field:  27%|████████▎                      | 71/263 [00:00<00:01, 110.93iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/263 [00:00<00:01, 111.59iter/s]
Build 3D deformation field:  36%|███████████▏                   | 95/263 [00:00<00:01, 111.33iter/s]
Build 3D deformation field:  41%|████████████▏                 | 107/263 [00:00<00:01, 110.89iter/s]
Build 3D deformation field:  45%|█████████████▌                | 119/263 [00:01<00:01, 110.67iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 110.17iter/s]
Build 3D deformation field:  54%|████████████████▎             | 143/263 [00:01<00:01, 110.41iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 155/263 [00:01<00:00, 110.62iter/s]
Build 3D deformation field:  63%|███████████████████           | 167/263 [00:01<00:00, 110.69iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 179/263 [00:01<00:00, 112.13iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 191/263 [00:01<00:00, 112.18iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 203/263 [00:01<00:00, 112.06iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 215/263 [00:01<00:00, 112.06iter/s]
Build 3D deformation field:  86%|█████████████████████████▉    | 227/263 [00:02<00:00, 112.61iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 239/263 [00:02<00:00, 112.22iter/s]
Build 3D deformation field:  95%|████████████████████████████▋ | 251/263 [00:02<00:00, 110.37iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 110.73iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 111.21iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2
rm -rf /tmp/sct_2025-01-15_15-26-27_register-slicewise_v_5ks3_2

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2/warp_src2dest.nii.gz warp_sub-MPI3_acq-anat_TB1TFL2sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI3_acq-anat_TB1TFL2sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MPI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2/warp_dest2src.nii.gz warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-25_register-wrapper_2mvixro2

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152634.960592.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM1_acq-famp_TB1TFL.nii.gz -d ../anat/sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -identity 1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM1_acq-famp_TB1TFL.nii.gz (88, 128, 56)
  Destination ......... ../anat/sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 72, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz # in /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM1_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb/warp_src2dest.nii.gz warp_sub-MSSM1_acq-famp_TB1TFL2sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM1_acq-famp_TB1TFL2sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MSSM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb/warp_dest2src.nii.gz warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz
File created: warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-38_register-wrapper__f0c3krb

Finished! Elapsed time: 2s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152640.360909.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM2_acq-famp_TB1TFL.nii.gz -d ../anat/sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -identity 1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM2_acq-famp_TB1TFL.nii.gz (88, 128, 56)
  Destination ......... ../anat/sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz (62, 74, 228)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz # in /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM2_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq/warp_src2dest.nii.gz warp_sub-MSSM2_acq-famp_TB1TFL2sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM2_acq-famp_TB1TFL2sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MSSM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq/warp_dest2src.nii.gz warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz
File created: warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-42_register-wrapper_02j5rffq

Finished! Elapsed time: 2s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152644.906008.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_acq-famp_TB1TFL.nii.gz -d ../anat/sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -identity 1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM3_acq-famp_TB1TFL.nii.gz (88, 128, 56)
  Destination ......... ../anat/sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 104, 289)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz # in /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h/warp_src2dest.nii.gz warp_sub-MSSM3_acq-famp_TB1TFL2sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM3_acq-famp_TB1TFL2sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-MSSM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h/warp_dest2src.nii.gz warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz
File created: warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-47_register-wrapper_re8ifx9h

Finished! Elapsed time: 4s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152650.840184.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU1_acq-anat_TB1TFL.nii.gz -iseg sub-NTNU1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-NTNU1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU1_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 65, 296)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-26-55_register-slicewise_g51ow4bo)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 65 x 65 x 296
  voxel size: 0.7065217mm x 0.6999944mm x 296mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/296 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/296 [00:00<01:08,  4.33iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #42 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #43 is empty. It will be ignored.
Estimate cord angle for each slice:  38%|████████▍             | 113/296 [00:00<00:00, 429.64iter/s]
Estimate cord angle for each slice:  78%|█████████████████▏    | 232/296 [00:00<00:00, 696.30iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #289 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #290 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #291 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #292 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #293 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #294 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #295 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 296/296 [00:00<00:00, 615.39iter/s]

Build 3D deformation field:   0%|                                         | 0/240 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▌                            | 20/240 [00:00<00:01, 190.69iter/s]
Build 3D deformation field:  17%|█████▏                         | 40/240 [00:00<00:01, 195.89iter/s]
Build 3D deformation field:  25%|███████▉                       | 61/240 [00:00<00:00, 201.40iter/s]
Build 3D deformation field:  34%|██████████▌                    | 82/240 [00:00<00:00, 202.59iter/s]
Build 3D deformation field:  43%|████████████▉                 | 103/240 [00:00<00:00, 205.01iter/s]
Build 3D deformation field:  52%|███████████████▌              | 124/240 [00:00<00:00, 204.75iter/s]
Build 3D deformation field:  60%|██████████████████▏           | 145/240 [00:00<00:00, 205.20iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 166/240 [00:00<00:00, 205.29iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 187/240 [00:00<00:00, 204.86iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 208/240 [00:01<00:00, 204.91iter/s]
Build 3D deformation field:  95%|████████████████████████████▋ | 229/240 [00:01<00:00, 204.97iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 240/240 [00:01<00:00, 203.57iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy
rm -rf /tmp/sct_2025-01-15_15-26-55_register-slicewise_g51ow4bo

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy/warp_src2dest.nii.gz warp_sub-NTNU1_acq-anat_TB1TFL2sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU1_acq-anat_TB1TFL2sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-NTNU1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy/warp_dest2src.nii.gz warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-26-53_register-wrapper_s7l_rhcy

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152659.806472.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU2_acq-anat_TB1TFL.nii.gz -iseg sub-NTNU2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-NTNU2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU2_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 71, 234)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-27-03_register-slicewise_8feqodyw)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 71 x 234
  voxel size: 0.7065217mm x 0.6999992mm x 234mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/234 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/234 [00:00<00:50,  4.59iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
Estimate cord angle for each slice:  50%|███████████           | 118/234 [00:00<00:00, 464.88iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #230 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #231 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #232 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #233 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 234/234 [00:00<00:00, 561.91iter/s]

Build 3D deformation field:   0%|                                         | 0/225 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▎                            | 17/225 [00:00<00:01, 169.47iter/s]
Build 3D deformation field:  16%|████▊                          | 35/225 [00:00<00:01, 174.55iter/s]
Build 3D deformation field:  24%|███████▎                       | 53/225 [00:00<00:00, 176.29iter/s]
Build 3D deformation field:  32%|█████████▊                     | 71/225 [00:00<00:00, 177.62iter/s]
Build 3D deformation field:  40%|████████████▎                  | 89/225 [00:00<00:00, 177.34iter/s]
Build 3D deformation field:  48%|██████████████▎               | 107/225 [00:00<00:00, 177.65iter/s]
Build 3D deformation field:  56%|████████████████▋             | 125/225 [00:00<00:00, 178.17iter/s]
Build 3D deformation field:  64%|███████████████████           | 143/225 [00:00<00:00, 178.23iter/s]
Build 3D deformation field:  72%|█████████████████████▍        | 161/225 [00:00<00:00, 178.55iter/s]
Build 3D deformation field:  80%|███████████████████████▊      | 179/225 [00:01<00:00, 178.14iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 197/225 [00:01<00:00, 177.90iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 215/225 [00:01<00:00, 177.73iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 225/225 [00:01<00:00, 177.36iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft
rm -rf /tmp/sct_2025-01-15_15-27-03_register-slicewise_8feqodyw

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft/warp_src2dest.nii.gz warp_sub-NTNU2_acq-anat_TB1TFL2sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU2_acq-anat_TB1TFL2sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-NTNU2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft/warp_dest2src.nii.gz warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-27-02_register-wrapper_qrh2h9ft

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152708.007245.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_acq-anat_TB1TFL.nii.gz -iseg sub-NTNU3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-NTNU3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU3_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz (60, 103, 322)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-27-12_register-slicewise_wi6upr6l)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 60 x 103 x 322
  voxel size: 0.7065217mm x 0.6999952mm x 322mm

Split input segmentation...
Split destination segmentation...

Estimate cord angle for each slice:   0%|                                 | 0/322 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/322 [00:00<01:09,  4.59iter/s]
Estimate cord angle for each slice:  37%|████████▏             | 120/322 [00:00<00:00, 473.54iter/s]
Estimate cord angle for each slice:  75%|████████████████▍     | 240/322 [00:00<00:00, 734.86iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 651.32iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 14/322 [00:00<00:02, 132.78iter/s]
Build 3D deformation field:   9%|██▋                            | 28/322 [00:00<00:02, 136.40iter/s]
Build 3D deformation field:  13%|████▏                          | 43/322 [00:00<00:01, 142.11iter/s]
Build 3D deformation field:  18%|█████▌                         | 58/322 [00:00<00:01, 144.34iter/s]
Build 3D deformation field:  23%|███████                        | 73/322 [00:00<00:01, 143.03iter/s]
Build 3D deformation field:  27%|████████▍                      | 88/322 [00:00<00:01, 142.16iter/s]
Build 3D deformation field:  32%|█████████▌                    | 103/322 [00:00<00:01, 141.66iter/s]
Build 3D deformation field:  37%|██████████▉                   | 118/322 [00:00<00:01, 142.11iter/s]
Build 3D deformation field:  41%|████████████▍                 | 133/322 [00:00<00:01, 143.20iter/s]
Build 3D deformation field:  46%|█████████████▊                | 148/322 [00:01<00:01, 142.88iter/s]
Build 3D deformation field:  51%|███████████████▏              | 163/322 [00:01<00:01, 142.62iter/s]
Build 3D deformation field:  55%|████████████████▌             | 178/322 [00:01<00:01, 142.49iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 193/322 [00:01<00:00, 142.55iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 208/322 [00:01<00:00, 143.65iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 223/322 [00:01<00:00, 142.70iter/s]
Build 3D deformation field:  74%|██████████████████████▏       | 238/322 [00:01<00:00, 142.15iter/s]
Build 3D deformation field:  79%|███████████████████████▌      | 253/322 [00:01<00:00, 141.61iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 268/322 [00:01<00:00, 140.13iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 283/322 [00:01<00:00, 140.99iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 298/322 [00:02<00:00, 141.71iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 313/322 [00:02<00:00, 141.96iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 141.99iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng
rm -rf /tmp/sct_2025-01-15_15-27-12_register-slicewise_wi6upr6l

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng/warp_src2dest.nii.gz warp_sub-NTNU3_acq-anat_TB1TFL2sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU3_acq-anat_TB1TFL2sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-NTNU3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng/warp_dest2src.nii.gz warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-27-10_register-wrapper_2h8mzjng

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152719.255177.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL1_acq-anat_TB1TFL.nii.gz -iseg sub-UCL1_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-UCL1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL1_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz (67, 105, 333)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-27-24_register-slicewise_lx5c5gi8)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 67 x 105 x 333
  voxel size: 0.7065217mm x 0.7mm x 333mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/333 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/333 [00:00<01:13,  4.51iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
Estimate cord angle for each slice:  34%|███████▍              | 112/333 [00:00<00:00, 436.95iter/s]
Estimate cord angle for each slice:  67%|██████████████▋       | 223/333 [00:00<00:00, 677.60iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 333/333 [00:00<00:00, 642.86iter/s]

Build 3D deformation field:   0%|                                         | 0/303 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                             | 12/303 [00:00<00:02, 114.63iter/s]
Build 3D deformation field:   8%|██▌                            | 25/303 [00:00<00:02, 121.25iter/s]
Build 3D deformation field:  13%|███▉                           | 38/303 [00:00<00:02, 122.90iter/s]
Build 3D deformation field:  17%|█████▏                         | 51/303 [00:00<00:02, 124.25iter/s]
Build 3D deformation field:  21%|██████▌                        | 64/303 [00:00<00:01, 124.38iter/s]
Build 3D deformation field:  25%|███████▉                       | 77/303 [00:00<00:01, 124.40iter/s]
Build 3D deformation field:  30%|█████████▏                     | 90/303 [00:00<00:01, 124.64iter/s]
Build 3D deformation field:  34%|██████████▏                   | 103/303 [00:00<00:01, 125.23iter/s]
Build 3D deformation field:  38%|███████████▍                  | 116/303 [00:00<00:01, 125.97iter/s]
Build 3D deformation field:  43%|████████████▊                 | 129/303 [00:01<00:01, 125.54iter/s]
Build 3D deformation field:  47%|██████████████                | 142/303 [00:01<00:01, 125.27iter/s]
Build 3D deformation field:  51%|███████████████▎              | 155/303 [00:01<00:01, 125.40iter/s]
Build 3D deformation field:  55%|████████████████▋             | 168/303 [00:01<00:01, 125.44iter/s]
Build 3D deformation field:  60%|██████████████████            | 182/303 [00:01<00:00, 127.06iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 195/303 [00:01<00:00, 126.53iter/s]
Build 3D deformation field:  69%|████████████████████▌         | 208/303 [00:01<00:00, 126.14iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 221/303 [00:01<00:00, 126.02iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 234/303 [00:01<00:00, 125.29iter/s]
Build 3D deformation field:  82%|████████████████████████▍     | 247/303 [00:01<00:00, 124.57iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 260/303 [00:02<00:00, 124.55iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 273/303 [00:02<00:00, 124.16iter/s]
Build 3D deformation field:  94%|████████████████████████████▎ | 286/303 [00:02<00:00, 124.47iter/s]
Build 3D deformation field:  99%|█████████████████████████████▌| 299/303 [00:02<00:00, 124.81iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 303/303 [00:02<00:00, 124.89iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ
rm -rf /tmp/sct_2025-01-15_15-27-24_register-slicewise_lx5c5gi8

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ/warp_src2dest.nii.gz warp_sub-UCL1_acq-anat_TB1TFL2sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL1_acq-anat_TB1TFL2sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-UCL1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ/warp_dest2src.nii.gz warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-anat_TB1TFL.nii.gz
File created: warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-27-22_register-wrapper_6706_equ

Finished! Elapsed time: 10s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152732.254070.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL2_acq-anat_TB1TFL.nii.gz -iseg sub-UCL2_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-UCL2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL2_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz (75, 110, 287)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-27-37_register-slicewise_w2ty4tf7)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 75 x 110 x 287
  voxel size: 0.7065217mm x 0.7000031mm x 287mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/287 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/287 [00:00<01:04,  4.46iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  39%|████████▋             | 113/287 [00:00<00:00, 437.95iter/s]
Estimate cord angle for each slice:  79%|█████████████████▍    | 227/287 [00:00<00:00, 686.67iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #265 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #266 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #267 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #268 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #269 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 287/287 [00:00<00:00, 611.27iter/s]

Build 3D deformation field:   0%|                                         | 0/262 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/262 [00:00<00:02, 99.34iter/s]
Build 3D deformation field:   8%|██▍                            | 21/262 [00:00<00:02, 103.39iter/s]
Build 3D deformation field:  12%|███▊                           | 32/262 [00:00<00:02, 104.62iter/s]
Build 3D deformation field:  16%|█████                          | 43/262 [00:00<00:02, 105.22iter/s]
Build 3D deformation field:  21%|██████▍                        | 54/262 [00:00<00:01, 105.69iter/s]
Build 3D deformation field:  25%|███████▋                       | 65/262 [00:00<00:01, 105.83iter/s]
Build 3D deformation field:  29%|████████▉                      | 76/262 [00:00<00:01, 105.85iter/s]
Build 3D deformation field:  33%|██████████▎                    | 87/262 [00:00<00:01, 105.82iter/s]
Build 3D deformation field:  37%|███████████▌                   | 98/262 [00:00<00:01, 105.60iter/s]
Build 3D deformation field:  42%|████████████▍                 | 109/262 [00:01<00:01, 105.34iter/s]
Build 3D deformation field:  46%|█████████████▋                | 120/262 [00:01<00:01, 101.35iter/s]
Build 3D deformation field:  50%|███████████████               | 131/262 [00:01<00:01, 102.84iter/s]
Build 3D deformation field:  54%|████████████████▎             | 142/262 [00:01<00:01, 103.99iter/s]
Build 3D deformation field:  58%|█████████████████▌            | 153/262 [00:01<00:01, 104.90iter/s]
Build 3D deformation field:  63%|██████████████████▊           | 164/262 [00:01<00:00, 105.68iter/s]
Build 3D deformation field:  67%|████████████████████          | 175/262 [00:01<00:00, 105.74iter/s]
Build 3D deformation field:  71%|█████████████████████▎        | 186/262 [00:01<00:00, 106.54iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 197/262 [00:01<00:00, 106.95iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 208/262 [00:01<00:00, 107.24iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 219/262 [00:02<00:00, 107.26iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 230/262 [00:02<00:00, 107.74iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 241/262 [00:02<00:00, 107.31iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 252/262 [00:02<00:00, 107.39iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 262/262 [00:02<00:00, 105.75iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6
rm -rf /tmp/sct_2025-01-15_15-27-37_register-slicewise_w2ty4tf7

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6/warp_src2dest.nii.gz warp_sub-UCL2_acq-anat_TB1TFL2sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL2_acq-anat_TB1TFL2sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-UCL2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6/warp_dest2src.nii.gz warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-anat_TB1TFL.nii.gz
File created: warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-27-35_register-wrapper_b9rzj9y6

Finished! Elapsed time: 10s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152745.235106.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_acq-anat_TB1TFL.nii.gz -iseg sub-UCL3_acq-anat_TB1TFL_seg.nii.gz -d ../anat/sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz -dseg ../anat/sub-UCL3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL3_acq-anat_TB1TFL.nii.gz (88, 144, 56)
  Destination ......... ../anat/sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 115, 300)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_15-27-50_register-slicewise_84lgomg4)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 115 x 300
  voxel size: 0.7065217mm x 0.7mm x 300mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/300 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/300 [00:00<01:05,  4.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
Estimate cord angle for each slice:  37%|████████▏             | 112/300 [00:00<00:00, 439.29iter/s]
Estimate cord angle for each slice:  75%|████████████████▌     | 225/300 [00:00<00:00, 685.97iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #266 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #267 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #268 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #269 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #289 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #290 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #291 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #292 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #293 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #294 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #295 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #296 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #297 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #298 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #299 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 300/300 [00:00<00:00, 634.16iter/s]

Build 3D deformation field:   0%|                                         | 0/260 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/260 [00:00<00:02, 105.21iter/s]
Build 3D deformation field:   9%|██▋                            | 23/260 [00:00<00:02, 111.47iter/s]
Build 3D deformation field:  13%|████▏                          | 35/260 [00:00<00:01, 113.38iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/260 [00:00<00:01, 112.10iter/s]
Build 3D deformation field:  23%|███████                        | 59/260 [00:00<00:01, 113.99iter/s]
Build 3D deformation field:  27%|████████▍                      | 71/260 [00:00<00:01, 114.24iter/s]
Build 3D deformation field:  32%|█████████▉                     | 83/260 [00:00<00:01, 113.09iter/s]
Build 3D deformation field:  37%|███████████▎                   | 95/260 [00:00<00:01, 114.62iter/s]
Build 3D deformation field:  41%|████████████▎                 | 107/260 [00:00<00:01, 115.07iter/s]
Build 3D deformation field:  46%|█████████████▋                | 119/260 [00:01<00:01, 115.56iter/s]
Build 3D deformation field:  50%|███████████████               | 131/260 [00:01<00:01, 115.08iter/s]
Build 3D deformation field:  55%|████████████████▌             | 143/260 [00:01<00:01, 115.62iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 155/260 [00:01<00:00, 114.87iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 167/260 [00:01<00:00, 114.52iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 179/260 [00:01<00:00, 113.28iter/s]
Build 3D deformation field:  73%|██████████████████████        | 191/260 [00:01<00:00, 112.91iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 203/260 [00:01<00:00, 112.37iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 215/260 [00:01<00:00, 112.78iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 227/260 [00:02<00:00, 112.34iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 239/260 [00:02<00:00, 112.47iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 251/260 [00:02<00:00, 112.19iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 260/260 [00:02<00:00, 113.29iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx
rm -rf /tmp/sct_2025-01-15_15-27-50_register-slicewise_84lgomg4

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx/warp_src2dest.nii.gz warp_sub-UCL3_acq-anat_TB1TFL2sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL3_acq-anat_TB1TFL2sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: sub-UCL3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx/warp_dest2src.nii.gz warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-anat_TB1TFL.nii.gz
File created: warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-anat_TB1TFL.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-27-48_register-wrapper_jq2xclwx

Finished! Elapsed time: 10s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152758.043355.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

Register DREAM to MP2RAGE#

# Register DREAM data (B1+ mapping) to the MP2RAGE scan ⏳

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    !sct_register_multimodal -i {subject}_acq-famp_TB1DREAM.nii.gz -d ../anat/{subject}_UNIT1_crop.nii.gz -dseg ../anat/{subject}_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc "{path_qc}"
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-CRMBM1_UNIT1_crop.nii.gz -dseg ../anat/sub-CRMBM1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-CRMBM1_UNIT1_crop.nii.gz (65, 100, 314)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj/warp_src2dest.nii.gz warp_sub-CRMBM1_acq-famp_TB1DREAM2sub-CRMBM1_UNIT1_crop.nii.gz
File created: warp_sub-CRMBM1_acq-famp_TB1DREAM2sub-CRMBM1_UNIT1_crop.nii.gz
File created: sub-CRMBM1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj/warp_dest2src.nii.gz warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-28-01_register-wrapper_dfnodgwj

Finished! Elapsed time: 109s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_152949.724043.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-CRMBM2_UNIT1_crop.nii.gz -dseg ../anat/sub-CRMBM2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-CRMBM2_UNIT1_crop.nii.gz (65, 90, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2/warp_src2dest.nii.gz warp_sub-CRMBM2_acq-famp_TB1DREAM2sub-CRMBM2_UNIT1_crop.nii.gz
File created: warp_sub-CRMBM2_acq-famp_TB1DREAM2sub-CRMBM2_UNIT1_crop.nii.gz
File created: sub-CRMBM2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2/warp_dest2src.nii.gz warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-29-52_register-wrapper_0ahzpml2

Finished! Elapsed time: 84s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153116.797886.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-CRMBM3_UNIT1_crop.nii.gz -dseg ../anat/sub-CRMBM3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-CRMBM3_UNIT1_crop.nii.gz (69, 121, 337)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl/warp_src2dest.nii.gz warp_sub-CRMBM3_acq-famp_TB1DREAM2sub-CRMBM3_UNIT1_crop.nii.gz
File created: warp_sub-CRMBM3_acq-famp_TB1DREAM2sub-CRMBM3_UNIT1_crop.nii.gz
File created: sub-CRMBM3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl/warp_dest2src.nii.gz warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-31-19_register-wrapper_vj8z5rsl

Finished! Elapsed time: 143s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153342.608774.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MGH1_UNIT1_crop.nii.gz -dseg ../anat/sub-MGH1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MGH1_UNIT1_crop.nii.gz (62, 118, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy/warp_src2dest.nii.gz warp_sub-MGH1_acq-famp_TB1DREAM2sub-MGH1_UNIT1_crop.nii.gz
File created: warp_sub-MGH1_acq-famp_TB1DREAM2sub-MGH1_UNIT1_crop.nii.gz
File created: sub-MGH1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy/warp_dest2src.nii.gz warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-33-45_register-wrapper_1qoeopyy

Finished! Elapsed time: 70s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153455.470557.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MGH2_UNIT1_crop.nii.gz -dseg ../anat/sub-MGH2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MGH2_UNIT1_crop.nii.gz (59, 117, 223)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b/warp_src2dest.nii.gz warp_sub-MGH2_acq-famp_TB1DREAM2sub-MGH2_UNIT1_crop.nii.gz
File created: warp_sub-MGH2_acq-famp_TB1DREAM2sub-MGH2_UNIT1_crop.nii.gz
File created: sub-MGH2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b/warp_dest2src.nii.gz warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-34-58_register-wrapper_qsxohw7b

Finished! Elapsed time: 71s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153609.870023.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MGH3_UNIT1_crop.nii.gz -dseg ../anat/sub-MGH3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MGH3_UNIT1_crop.nii.gz (63, 127, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk/warp_src2dest.nii.gz warp_sub-MGH3_acq-famp_TB1DREAM2sub-MGH3_UNIT1_crop.nii.gz
File created: warp_sub-MGH3_acq-famp_TB1DREAM2sub-MGH3_UNIT1_crop.nii.gz
File created: sub-MGH3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk/warp_dest2src.nii.gz warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-36-13_register-wrapper_mixh3htk

Finished! Elapsed time: 79s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153732.391083.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MNI1_UNIT1_crop.nii.gz -dseg ../anat/sub-MNI1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MNI1_UNIT1_crop.nii.gz (65, 77, 367)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_/warp_src2dest.nii.gz warp_sub-MNI1_acq-famp_TB1DREAM2sub-MNI1_UNIT1_crop.nii.gz
File created: warp_sub-MNI1_acq-famp_TB1DREAM2sub-MNI1_UNIT1_crop.nii.gz
File created: sub-MNI1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_/warp_dest2src.nii.gz warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-37-35_register-wrapper_ur0llt6_

Finished! Elapsed time: 90s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_153906.047109.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MNI2_UNIT1_crop.nii.gz -dseg ../anat/sub-MNI2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MNI2_UNIT1_crop.nii.gz (63, 75, 361)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8/warp_src2dest.nii.gz warp_sub-MNI2_acq-famp_TB1DREAM2sub-MNI2_UNIT1_crop.nii.gz
File created: warp_sub-MNI2_acq-famp_TB1DREAM2sub-MNI2_UNIT1_crop.nii.gz
File created: sub-MNI2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8/warp_dest2src.nii.gz warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-39-09_register-wrapper_d9ugpvt8

Finished! Elapsed time: 89s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154037.758289.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MNI3_UNIT1_crop.nii.gz -dseg ../anat/sub-MNI3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MNI3_UNIT1_crop.nii.gz (69, 102, 260)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r/warp_src2dest.nii.gz warp_sub-MNI3_acq-famp_TB1DREAM2sub-MNI3_UNIT1_crop.nii.gz
File created: warp_sub-MNI3_acq-famp_TB1DREAM2sub-MNI3_UNIT1_crop.nii.gz
File created: sub-MNI3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r/warp_dest2src.nii.gz warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-40-40_register-wrapper_e8kq_75r

Finished! Elapsed time: 118s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154238.451841.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MPI1_UNIT1_crop.nii.gz -dseg ../anat/sub-MPI1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MPI1_UNIT1_crop.nii.gz (68, 89, 266)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8/warp_src2dest.nii.gz warp_sub-MPI1_acq-famp_TB1DREAM2sub-MPI1_UNIT1_crop.nii.gz
File created: warp_sub-MPI1_acq-famp_TB1DREAM2sub-MPI1_UNIT1_crop.nii.gz
File created: sub-MPI1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8/warp_dest2src.nii.gz warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-42-41_register-wrapper_ozy50it8

Finished! Elapsed time: 98s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154418.710478.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MPI2_UNIT1_crop.nii.gz -dseg ../anat/sub-MPI2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MPI2_UNIT1_crop.nii.gz (61, 89, 276)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua/warp_src2dest.nii.gz warp_sub-MPI2_acq-famp_TB1DREAM2sub-MPI2_UNIT1_crop.nii.gz
File created: warp_sub-MPI2_acq-famp_TB1DREAM2sub-MPI2_UNIT1_crop.nii.gz
File created: sub-MPI2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua/warp_dest2src.nii.gz warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-44-21_register-wrapper_3vhwodua

Finished! Elapsed time: 87s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154548.721033.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MPI3_UNIT1_crop.nii.gz -dseg ../anat/sub-MPI3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MPI3_UNIT1_crop.nii.gz (68, 117, 282)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun/warp_src2dest.nii.gz warp_sub-MPI3_acq-famp_TB1DREAM2sub-MPI3_UNIT1_crop.nii.gz
File created: warp_sub-MPI3_acq-famp_TB1DREAM2sub-MPI3_UNIT1_crop.nii.gz
File created: sub-MPI3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun/warp_dest2src.nii.gz warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-45-51_register-wrapper_w1fq_cun

Finished! Elapsed time: 142s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154813.389395.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MSSM1_UNIT1_crop.nii.gz -dseg ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MSSM1_UNIT1_crop.nii.gz (68, 72, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt/warp_src2dest.nii.gz warp_sub-MSSM1_acq-famp_TB1DREAM2sub-MSSM1_UNIT1_crop.nii.gz
File created: warp_sub-MSSM1_acq-famp_TB1DREAM2sub-MSSM1_UNIT1_crop.nii.gz
File created: sub-MSSM1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt/warp_dest2src.nii.gz warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-48-16_register-wrapper_tlfd1yrt

Finished! Elapsed time: 54s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_154910.443608.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MSSM2_UNIT1_crop.nii.gz -dseg ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MSSM2_UNIT1_crop.nii.gz (62, 74, 228)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a/warp_src2dest.nii.gz warp_sub-MSSM2_acq-famp_TB1DREAM2sub-MSSM2_UNIT1_crop.nii.gz
File created: warp_sub-MSSM2_acq-famp_TB1DREAM2sub-MSSM2_UNIT1_crop.nii.gz
File created: sub-MSSM2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a/warp_dest2src.nii.gz warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-49-12_register-wrapper_mbivth3a

Finished! Elapsed time: 63s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155015.975649.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-MSSM3_UNIT1_crop.nii.gz -dseg ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-MSSM3_UNIT1_crop.nii.gz (65, 104, 289)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs/warp_src2dest.nii.gz warp_sub-MSSM3_acq-famp_TB1DREAM2sub-MSSM3_UNIT1_crop.nii.gz
File created: warp_sub-MSSM3_acq-famp_TB1DREAM2sub-MSSM3_UNIT1_crop.nii.gz
File created: sub-MSSM3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs/warp_dest2src.nii.gz warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-50-18_register-wrapper_mbxxmgrs

Finished! Elapsed time: 107s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155205.631363.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-NTNU1_UNIT1_crop.nii.gz -dseg ../anat/sub-NTNU1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-NTNU1_UNIT1_crop.nii.gz (65, 65, 296)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0/warp_src2dest.nii.gz warp_sub-NTNU1_acq-famp_TB1DREAM2sub-NTNU1_UNIT1_crop.nii.gz
File created: warp_sub-NTNU1_acq-famp_TB1DREAM2sub-NTNU1_UNIT1_crop.nii.gz
File created: sub-NTNU1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0/warp_dest2src.nii.gz warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-52-08_register-wrapper__q5v_0f0

Finished! Elapsed time: 71s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155319.404802.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-NTNU2_UNIT1_crop.nii.gz -dseg ../anat/sub-NTNU2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Input parameters:
  Source .............. sub-NTNU2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-NTNU2_UNIT1_crop.nii.gz (69, 71, 234)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4/warp_src2dest.nii.gz warp_sub-NTNU2_acq-famp_TB1DREAM2sub-NTNU2_UNIT1_crop.nii.gz
File created: warp_sub-NTNU2_acq-famp_TB1DREAM2sub-NTNU2_UNIT1_crop.nii.gz
File created: sub-NTNU2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4/warp_dest2src.nii.gz warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-53-21_register-wrapper_ampiv8u4

Finished! Elapsed time: 76s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155438.212250.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-NTNU3_UNIT1_crop.nii.gz -dseg ../anat/sub-NTNU3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-NTNU3_UNIT1_crop.nii.gz (60, 103, 322)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b/warp_src2dest.nii.gz warp_sub-NTNU3_acq-famp_TB1DREAM2sub-NTNU3_UNIT1_crop.nii.gz
File created: warp_sub-NTNU3_acq-famp_TB1DREAM2sub-NTNU3_UNIT1_crop.nii.gz
File created: sub-NTNU3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b/warp_dest2src.nii.gz warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-54-40_register-wrapper_r4nqnu8b

Finished! Elapsed time: 108s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155628.648546.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL1_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-UCL1_UNIT1_crop.nii.gz -dseg ../anat/sub-UCL1_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL1_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-UCL1_UNIT1_crop.nii.gz (67, 105, 333)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4/warp_src2dest.nii.gz warp_sub-UCL1_acq-famp_TB1DREAM2sub-UCL1_UNIT1_crop.nii.gz
File created: warp_sub-UCL1_acq-famp_TB1DREAM2sub-UCL1_UNIT1_crop.nii.gz
File created: sub-UCL1_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4/warp_dest2src.nii.gz warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-56-31_register-wrapper_fk4mbxe4

Finished! Elapsed time: 120s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_155831.855625.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL2_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-UCL2_UNIT1_crop.nii.gz -dseg ../anat/sub-UCL2_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL2_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-UCL2_UNIT1_crop.nii.gz (75, 110, 287)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h/warp_src2dest.nii.gz warp_sub-UCL2_acq-famp_TB1DREAM2sub-UCL2_UNIT1_crop.nii.gz
File created: warp_sub-UCL2_acq-famp_TB1DREAM2sub-UCL2_UNIT1_crop.nii.gz
File created: sub-UCL2_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h/warp_dest2src.nii.gz warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_15-58-34_register-wrapper_r8yse_9h

Finished! Elapsed time: 112s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160026.713445.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_acq-famp_TB1DREAM.nii.gz -d ../anat/sub-UCL3_UNIT1_crop.nii.gz -dseg ../anat/sub-UCL3_UNIT1_seg_crop.nii.gz -param step=1,type=im,algo=slicereg,metric=CC,smooth=1 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL3_acq-famp_TB1DREAM.nii.gz (80, 80, 11)
  Destination ......... ../anat/sub-UCL3_UNIT1_crop.nii.gz (69, 115, 300)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... im
  algo ........... slicereg
  slicewise ...... 0
  metric ......... CC
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 1
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'CC[dest_RPI_crop.nii,src_reg_crop.nii,1,4,None,0.2]' -p 5 -i 10 -f 1 -s 1 -v 1 -o '[step1,src_reg_crop_regStep1.nii]' # in /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij/warp_src2dest.nii.gz warp_sub-UCL3_acq-famp_TB1DREAM2sub-UCL3_UNIT1_crop.nii.gz
File created: warp_sub-UCL3_acq-famp_TB1DREAM2sub-UCL3_UNIT1_crop.nii.gz
File created: sub-UCL3_UNIT1_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij/warp_dest2src.nii.gz warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz
File created: warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-00-29_register-wrapper_gg5briij

Finished! Elapsed time: 133s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160243.111400.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

Segment spinal cord on SNR data#

# Segment spinal cord on SNR data

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    # Split SNR data into sub-volumes (https://github.com/spinal-cord-7t/coil-qc-code/issues/34)
    !sct_image -i {subject}_acq-coilQaSagLarge_SNR.nii.gz -split t -o {subject}_acq-coilQaSagLarge_SNR.nii.gz
    # Crop SNR data (https://github.com/spinal-cord-7t/coil-qc-code/issues/128)
    !sct_crop_image -i {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz
    !sct_crop_image -i {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -m {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -o {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz
    # Segment spinal cord on SNR data, unless it already exists
    fname_manual_seg = os.path.join(path_labels, subject, "fmap", f"{subject}_acq-coilQaSagLarge_SNR_T0000_label-SC_seg.nii.gz")
    if os.path.exists(fname_manual_seg):
        # Manual segmentation already exists. Copy it to local folder and put it in the same space as the SNR data
        print(f"{subject}: Manual segmentation found\n")
        !sct_register_multimodal -i {fname_manual_seg} -d {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -o {subject}_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -identity 1 -x linear
        # Generate QC report to make sure the manual segmentation is correct
        !sct_qc -i "{subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz" -s "{subject}_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz" -p sct_deepseg_sc -qc {path_qc} -qc-subject {subject}
    else:
        # Manual segmentation does not exist. Run automatic segmentation.
        print(f"{subject}: Manual segmentation not found")
        !sct_deepseg -i "{subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz" -task seg_sc_contrast_agnostic -thr 0 -qc {path_qc} 
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-CRMBM1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-02-53_sct_deepseg_rxwv76l9)
Copied sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-02-53_sct_deepseg_rxwv76l9/sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-02-53_sct_deepseg_rxwv76l9/sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160317.839216.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-CRMBM2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-03-29_sct_deepseg_euto4sgm)
Copied sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-03-29_sct_deepseg_euto4sgm/sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-03-29_sct_deepseg_euto4sgm/sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160353.319921.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-CRMBM3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-04-04_sct_deepseg_2axmd4un)
Copied sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-04-04_sct_deepseg_2axmd4un/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-04-04_sct_deepseg_2axmd4un/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160429.080711.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MGH1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-04-40_sct_deepseg_d4z9udpu)
Copied sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-04-40_sct_deepseg_d4z9udpu/sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-04-40_sct_deepseg_d4z9udpu/sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160504.498814.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MGH2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-05-15_sct_deepseg_grmb0s8q)
Copied sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-05-15_sct_deepseg_grmb0s8q/sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-05-15_sct_deepseg_grmb0s8q/sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160540.115810.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 383], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MGH3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-05-51_sct_deepseg_f5ob9tjv)
Copied sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-05-51_sct_deepseg_f5ob9tjv/sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-05-51_sct_deepseg_f5ob9tjv/sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160615.638225.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MNI1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-06-26_sct_deepseg_wlib2dhh)
Copied sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-06-26_sct_deepseg_wlib2dhh/sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-06-26_sct_deepseg_wlib2dhh/sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160651.428443.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MNI2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-07-02_sct_deepseg_fjcjxm29)
Copied sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-07-02_sct_deepseg_fjcjxm29/sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-07-02_sct_deepseg_fjcjxm29/sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160726.886695.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MNI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-07-38_sct_deepseg_aasy0sx3)
Copied sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-07-38_sct_deepseg_aasy0sx3/sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-07-38_sct_deepseg_aasy0sx3/sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160802.544289.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MPI1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-08-13_sct_deepseg_rdspypbw)
Copied sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-08-13_sct_deepseg_rdspypbw/sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-08-13_sct_deepseg_rdspypbw/sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160838.086705.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[129, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MPI2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-08-49_sct_deepseg_wt_yqub6)
Copied sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-08-49_sct_deepseg_wt_yqub6/sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-08-49_sct_deepseg_wt_yqub6/sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160913.748882.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[129, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MPI3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-09-25_sct_deepseg_36w3_efq)
Copied sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-09-25_sct_deepseg_36w3_efq/sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_16-09-25_sct_deepseg_36w3_efq/sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_160949.617748.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[144, 361], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MSSM1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-10-00_sct_deepseg_i0tjk5qi)
Copied sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-10-00_sct_deepseg_i0tjk5qi/sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-10-00_sct_deepseg_i0tjk5qi/sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161025.051254.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[172, 344], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MSSM2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-10-36_sct_deepseg_3vsrwcwi)
Copied sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-10-36_sct_deepseg_3vsrwcwi/sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-10-36_sct_deepseg_3vsrwcwi/sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161100.066624.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[154, 359], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-MSSM3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-11-10_sct_deepseg_5e_9_7vd)
Copied sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-11-10_sct_deepseg_5e_9_7vd/sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-11-10_sct_deepseg_5e_9_7vd/sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161134.987992.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-NTNU1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-11-46_sct_deepseg_evpurwdc)
Copied sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-11-46_sct_deepseg_evpurwdc/sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-11-46_sct_deepseg_evpurwdc/sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161210.489031.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-NTNU2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-12-21_sct_deepseg_rzpb8zas)
Copied sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-12-21_sct_deepseg_rzpb8zas/sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-12-21_sct_deepseg_rzpb8zas/sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161246.082152.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-NTNU3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-12-57_sct_deepseg_9cmzyy98)
Copied sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-12-57_sct_deepseg_9cmzyy98/sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2025-01-15_16-12-57_sct_deepseg_9cmzyy98/sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161321.853678.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-UCL1: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-13-33_sct_deepseg_44klsses)
Copied sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-13-33_sct_deepseg_44klsses/sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-13-33_sct_deepseg_44klsses/sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161357.654440.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-UCL2: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-14-09_sct_deepseg_0jjuty80)
Copied sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-14-09_sct_deepseg_0jjuty80/sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-14-09_sct_deepseg_0jjuty80/sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161433.510710.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_image -i sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz -split t -o sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz
--
Generate output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -xmax 450 -o sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--

Bounding box: x=[0, 451], y=[0, 512], z=[0, 13]
Cropping the image...
File sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_crop_image -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -m sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -o sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
--
Bounding box: x=[128, 384], y=[128, 384], z=[0, 13]
Cropping the image...
File sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz already exists. Will overwrite it.
sub-UCL3: Manual segmentation not found
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_deepseg -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -task seg_sc_contrast_agnostic -thr 0 -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--

Model 'model_seg_sc_contrast_agnostic_softseg_monai' is up to date (Source: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/releases/download/v2.5/model_contrast-agnostic_20240930-1002.zip)
Creating temporary folder (/tmp/sct_2025-01-15_16-14-44_sct_deepseg_vikub7e2)
Copied sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2025-01-15_16-14-44_sct_deepseg_vikub7e2/sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2025-01-15_16-14-44_sct_deepseg_vikub7e2/sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 vox
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161508.938150.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

Register SNR to MP2RAGE#

# Register Rx coilQA data (SNR, g-factor) to the MP2RAGE scan ⏳

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    !sct_register_multimodal -i {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/{subject}_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg {subject}_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/{subject}_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc "{path_qc}"
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-CRMBM1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 100, 314)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-15-15_register-slicewise_hwvs92i0)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 100 x 314
  voxel size: 0.7065217mm x 0.6999998mm x 314mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/314 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/314 [00:00<01:06,  4.68iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1446: RuntimeWarning: invalid value encountered in divide
  coordsrc /= coordsrc.std()
Slice #8 is empty. It will be ignored.
Estimate cord angle for each slice:  36%|███████▉              | 114/314 [00:00<00:00, 454.76iter/s]
Estimate cord angle for each slice:  73%|████████████████      | 229/314 [00:00<00:00, 706.41iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #289 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #290 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #291 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #292 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #293 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #294 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #295 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #296 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #297 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #298 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #299 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #300 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #301 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #302 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #303 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #304 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #305 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #306 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #307 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #308 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #309 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #310 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #311 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #312 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #313 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 314/314 [00:00<00:00, 668.63iter/s]

Build 3D deformation field:   0%|                                         | 0/261 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 14/261 [00:00<00:01, 133.76iter/s]
Build 3D deformation field:  11%|███▎                           | 28/261 [00:00<00:01, 136.64iter/s]
Build 3D deformation field:  16%|████▉                          | 42/261 [00:00<00:01, 136.67iter/s]
Build 3D deformation field:  21%|██████▋                        | 56/261 [00:00<00:01, 136.37iter/s]
Build 3D deformation field:  27%|████████▍                      | 71/261 [00:00<00:01, 137.65iter/s]
Build 3D deformation field:  33%|██████████                     | 85/261 [00:00<00:01, 137.45iter/s]
Build 3D deformation field:  38%|███████████▊                   | 99/261 [00:00<00:01, 136.60iter/s]
Build 3D deformation field:  43%|████████████▉                 | 113/261 [00:00<00:01, 136.13iter/s]
Build 3D deformation field:  49%|██████████████▌               | 127/261 [00:00<00:00, 136.80iter/s]
Build 3D deformation field:  54%|████████████████▏             | 141/261 [00:01<00:00, 136.98iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 155/261 [00:01<00:00, 136.55iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 169/261 [00:01<00:00, 134.72iter/s]
Build 3D deformation field:  70%|█████████████████████         | 183/261 [00:01<00:00, 135.23iter/s]
Build 3D deformation field:  75%|██████████████████████▋       | 197/261 [00:01<00:00, 135.80iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 211/261 [00:01<00:00, 135.75iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 225/261 [00:01<00:00, 135.57iter/s]
Build 3D deformation field:  92%|███████████████████████████▍  | 239/261 [00:01<00:00, 135.01iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 253/261 [00:01<00:00, 134.84iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 261/261 [00:01<00:00, 135.90iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d
rm -rf /tmp/sct_2025-01-15_16-15-15_register-slicewise_hwvs92i0

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d/warp_src2dest.nii.gz warp_sub-CRMBM1_acq-coilQaSagLarge_SNR_T00002sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM1_acq-coilQaSagLarge_SNR_T00002sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d/warp_dest2src.nii.gz warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-15-12_register-wrapper_0pz_r23d

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161521.445800.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-CRMBM2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 90, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-15-25_register-slicewise_7k8gmutt)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 65 x 90 x 226
  voxel size: 0.7065217mm x 0.6999998mm x 226mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/226 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/226 [00:00<00:48,  4.63iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
Estimate cord angle for each slice:  52%|███████████▍          | 117/226 [00:00<00:00, 463.53iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #218 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #219 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #220 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #223 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #224 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #225 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 553.99iter/s]

Build 3D deformation field:   0%|                                         | 0/214 [00:00<?, ?iter/s]
Build 3D deformation field:   7%|██▏                            | 15/214 [00:00<00:01, 148.99iter/s]
Build 3D deformation field:  14%|████▍                          | 31/214 [00:00<00:01, 155.22iter/s]
Build 3D deformation field:  22%|██████▊                        | 47/214 [00:00<00:01, 154.86iter/s]
Build 3D deformation field:  29%|█████████▏                     | 63/214 [00:00<00:00, 155.37iter/s]
Build 3D deformation field:  37%|███████████▍                   | 79/214 [00:00<00:00, 155.70iter/s]
Build 3D deformation field:  44%|█████████████▊                 | 95/214 [00:00<00:00, 154.51iter/s]
Build 3D deformation field:  52%|███████████████▌              | 111/214 [00:00<00:00, 155.24iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 127/214 [00:00<00:00, 154.35iter/s]
Build 3D deformation field:  67%|████████████████████          | 143/214 [00:00<00:00, 153.76iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 159/214 [00:01<00:00, 152.46iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 175/214 [00:01<00:00, 151.93iter/s]
Build 3D deformation field:  89%|██████████████████████████▊   | 191/214 [00:01<00:00, 151.40iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 207/214 [00:01<00:00, 151.07iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 214/214 [00:01<00:00, 152.99iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3
rm -rf /tmp/sct_2025-01-15_16-15-25_register-slicewise_7k8gmutt

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3/warp_src2dest.nii.gz warp_sub-CRMBM2_acq-coilQaSagLarge_SNR_T00002sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM2_acq-coilQaSagLarge_SNR_T00002sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3/warp_dest2src.nii.gz warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-15-24_register-wrapper_jk9m34f3

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161530.479556.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-CRMBM3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 121, 337)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-15-35_register-slicewise_dgy8yryf)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 121 x 337
  voxel size: 0.7065217mm x 0.6999998mm x 337mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/337 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/337 [00:00<01:11,  4.68iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
Estimate cord angle for each slice:  34%|███████▍              | 113/337 [00:00<00:00, 450.39iter/s]
Estimate cord angle for each slice:  68%|██████████████▉       | 228/337 [00:00<00:00, 704.37iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #303 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #304 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #305 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #306 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #307 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #308 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #309 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #310 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #311 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #312 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #313 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #314 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #315 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #316 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #317 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #318 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #319 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #320 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #321 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #322 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #323 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #324 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #325 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #326 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #327 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #328 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #329 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #330 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #331 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #332 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #333 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #334 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #335 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #336 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 337/337 [00:00<00:00, 680.71iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/263 [00:00<00:02, 97.37iter/s]
Build 3D deformation field:   8%|██▍                            | 21/263 [00:00<00:02, 102.69iter/s]
Build 3D deformation field:  12%|███▊                           | 32/263 [00:00<00:02, 104.37iter/s]
Build 3D deformation field:  16%|█████                          | 43/263 [00:00<00:02, 105.98iter/s]
Build 3D deformation field:  21%|██████▎                        | 54/263 [00:00<00:01, 106.34iter/s]
Build 3D deformation field:  25%|███████▊                       | 66/263 [00:00<00:01, 107.74iter/s]
Build 3D deformation field:  29%|█████████                      | 77/263 [00:00<00:01, 107.28iter/s]
Build 3D deformation field:  33%|██████████▎                    | 88/263 [00:00<00:01, 107.24iter/s]
Build 3D deformation field:  38%|███████████▋                   | 99/263 [00:00<00:01, 106.86iter/s]
Build 3D deformation field:  42%|████████████▋                 | 111/263 [00:01<00:01, 108.10iter/s]
Build 3D deformation field:  46%|█████████████▉                | 122/263 [00:01<00:01, 108.31iter/s]
Build 3D deformation field:  51%|███████████████▏              | 133/263 [00:01<00:01, 107.70iter/s]
Build 3D deformation field:  55%|████████████████▍             | 144/263 [00:01<00:01, 107.55iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 156/263 [00:01<00:00, 108.78iter/s]
Build 3D deformation field:  63%|███████████████████           | 167/263 [00:01<00:00, 108.28iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 178/263 [00:01<00:00, 107.76iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 190/263 [00:01<00:00, 108.72iter/s]
Build 3D deformation field:  76%|██████████████████████▉       | 201/263 [00:01<00:00, 108.69iter/s]
Build 3D deformation field:  81%|████████████████████████▏     | 212/263 [00:01<00:00, 108.77iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 223/263 [00:02<00:00, 108.51iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 234/263 [00:02<00:00, 108.10iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 245/263 [00:02<00:00, 107.62iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 256/263 [00:02<00:00, 106.89iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 107.36iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n
rm -rf /tmp/sct_2025-01-15_16-15-35_register-slicewise_dgy8yryf

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n/warp_src2dest.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n/warp_dest2src.nii.gz warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-15-32_register-wrapper_49j4xr1n

Finished! Elapsed time: 11s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161543.804503.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MGH1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz (62, 118, 226)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-15-48_register-slicewise_2j0c9p3j)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 62 x 118 x 226
  voxel size: 1.0mm x 1.0mm x 226mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/226 [00:00<?, ?iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/226 [00:00<00:48,  4.63iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
Estimate cord angle for each slice:  56%|████████████▎         | 126/226 [00:00<00:00, 499.46iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 560.41iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 12/189 [00:00<00:01, 115.10iter/s]
Build 3D deformation field:  13%|████                           | 25/189 [00:00<00:01, 118.25iter/s]
Build 3D deformation field:  20%|██████▏                        | 38/189 [00:00<00:01, 119.39iter/s]
Build 3D deformation field:  27%|████████▎                      | 51/189 [00:00<00:01, 120.10iter/s]
Build 3D deformation field:  34%|██████████▍                    | 64/189 [00:00<00:01, 120.23iter/s]
Build 3D deformation field:  41%|████████████▋                  | 77/189 [00:00<00:00, 121.45iter/s]
Build 3D deformation field:  48%|██████████████▊                | 90/189 [00:00<00:00, 121.14iter/s]
Build 3D deformation field:  54%|████████████████▎             | 103/189 [00:00<00:00, 120.53iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 116/189 [00:00<00:00, 121.14iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 129/189 [00:01<00:00, 121.97iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 142/189 [00:01<00:00, 121.59iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 155/189 [00:01<00:00, 121.50iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 168/189 [00:01<00:00, 121.25iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 181/189 [00:01<00:00, 121.07iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 120.84iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e
rm -rf /tmp/sct_2025-01-15_16-15-48_register-slicewise_2j0c9p3j

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e/warp_src2dest.nii.gz warp_sub-MGH1_acq-coilQaSagLarge_SNR_T00002sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH1_acq-coilQaSagLarge_SNR_T00002sub-MGH1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MGH1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MGH1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e/warp_dest2src.nii.gz warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-15-47_register-wrapper_5n7npc1e

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161553.700326.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MGH2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz (59, 117, 223)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-15-58_register-slicewise_4c84asnp)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 59 x 117 x 223
  voxel size: 1.0mm x 1.0mm x 223mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/223 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/223 [00:00<00:48,  4.57iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  52%|███████████▎          | 115/223 [00:00<00:00, 452.13iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #211 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #212 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #213 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #214 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #215 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #216 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #217 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #218 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #219 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #220 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 223/223 [00:00<00:00, 545.64iter/s]

Build 3D deformation field:   0%|                                         | 0/208 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 13/208 [00:00<00:01, 121.58iter/s]
Build 3D deformation field:  12%|███▉                           | 26/208 [00:00<00:01, 125.56iter/s]
Build 3D deformation field:  19%|█████▊                         | 39/208 [00:00<00:01, 126.47iter/s]
Build 3D deformation field:  25%|███████▊                       | 52/208 [00:00<00:01, 126.95iter/s]
Build 3D deformation field:  31%|█████████▋                     | 65/208 [00:00<00:01, 127.94iter/s]
Build 3D deformation field:  38%|███████████▋                   | 78/208 [00:00<00:01, 127.87iter/s]
Build 3D deformation field:  44%|█████████████▋                 | 92/208 [00:00<00:00, 129.31iter/s]
Build 3D deformation field:  50%|███████████████▏              | 105/208 [00:00<00:00, 129.40iter/s]
Build 3D deformation field:  57%|█████████████████             | 118/208 [00:00<00:00, 128.99iter/s]
Build 3D deformation field:  63%|██████████████████▉           | 131/208 [00:01<00:00, 128.87iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 144/208 [00:01<00:00, 128.53iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 158/208 [00:01<00:00, 128.95iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 171/208 [00:01<00:00, 128.84iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 184/208 [00:01<00:00, 128.45iter/s]
Build 3D deformation field:  95%|████████████████████████████▍ | 197/208 [00:01<00:00, 127.38iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 208/208 [00:01<00:00, 127.94iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4
rm -rf /tmp/sct_2025-01-15_16-15-58_register-slicewise_4c84asnp

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4/warp_src2dest.nii.gz warp_sub-MGH2_acq-coilQaSagLarge_SNR_T00002sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH2_acq-coilQaSagLarge_SNR_T00002sub-MGH2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MGH2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MGH2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4/warp_dest2src.nii.gz warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-15-56_register-wrapper_u1qeicz4

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161603.392706.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MGH3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz (255, 256, 13)
  Destination ......... ../anat/sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz (63, 127, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-16-08_register-slicewise_5m05l6c1)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 63 x 127 x 238
  voxel size: 1.0mm x 1.0mm x 238mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/238 [00:00<?, ?iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/238 [00:00<00:52,  4.52iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
Estimate cord angle for each slice:  47%|██████████▎           | 111/238 [00:00<00:00, 433.38iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #180 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #181 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #200 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #201 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #202 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #203 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #204 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #205 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #206 is empty. It will be ignored.
Estimate cord angle for each slice:  96%|█████████████████████ | 228/238 [00:00<00:00, 696.10iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #230 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #231 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #232 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #233 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #234 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #235 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #236 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #237 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 238/238 [00:00<00:00, 555.24iter/s]

Build 3D deformation field:   0%|                                         | 0/200 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 11/200 [00:00<00:01, 105.96iter/s]
Build 3D deformation field:  12%|███▌                           | 23/200 [00:00<00:01, 108.87iter/s]
Build 3D deformation field:  18%|█████▍                         | 35/200 [00:00<00:01, 109.92iter/s]
Build 3D deformation field:  24%|███████▎                       | 47/200 [00:00<00:01, 110.06iter/s]
Build 3D deformation field:  30%|█████████▏                     | 59/200 [00:00<00:01, 110.26iter/s]
Build 3D deformation field:  36%|███████████                    | 71/200 [00:00<00:01, 108.70iter/s]
Build 3D deformation field:  42%|████████████▊                  | 83/200 [00:00<00:01, 109.28iter/s]
Build 3D deformation field:  48%|██████████████▋                | 95/200 [00:00<00:00, 109.85iter/s]
Build 3D deformation field:  54%|████████████████              | 107/200 [00:00<00:00, 110.04iter/s]
Build 3D deformation field:  60%|█████████████████▊            | 119/200 [00:01<00:00, 111.14iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 131/200 [00:01<00:00, 112.66iter/s]
Build 3D deformation field:  72%|█████████████████████▍        | 143/200 [00:01<00:00, 112.23iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 155/200 [00:01<00:00, 111.79iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 167/200 [00:01<00:00, 111.70iter/s]
Build 3D deformation field:  90%|██████████████████████████▊   | 179/200 [00:01<00:00, 111.21iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 191/200 [00:01<00:00, 111.28iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 200/200 [00:01<00:00, 110.73iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl
rm -rf /tmp/sct_2025-01-15_16-16-08_register-slicewise_5m05l6c1

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl/warp_src2dest.nii.gz warp_sub-MGH3_acq-coilQaSagLarge_SNR_T00002sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MGH3_acq-coilQaSagLarge_SNR_T00002sub-MGH3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MGH3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MGH3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl/warp_dest2src.nii.gz warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-06_register-wrapper_yd4d59jl

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161613.886414.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MNI1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 77, 367)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-16-19_register-slicewise_q5wslo7i)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 77 x 367
  voxel size: 0.7065217mm x 0.7000043mm x 367mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/367 [00:00<?, ?iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/367 [00:00<01:19,  4.62iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
Estimate cord angle for each slice:  34%|███████▌              | 126/367 [00:00<00:00, 498.44iter/s]
Estimate cord angle for each slice:  67%|██████████████▋       | 246/367 [00:00<00:00, 750.15iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #341 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #342 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #343 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #344 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #345 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #346 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #347 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #348 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #349 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #350 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #351 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #352 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #353 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #354 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #355 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #356 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #357 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #358 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #359 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #360 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #361 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #362 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #363 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #364 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #365 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #366 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 367/367 [00:00<00:00, 718.50iter/s]

Build 3D deformation field:   0%|                                         | 0/320 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 17/320 [00:00<00:01, 166.42iter/s]
Build 3D deformation field:  11%|███▍                           | 35/320 [00:00<00:01, 169.80iter/s]
Build 3D deformation field:  17%|█████▏                         | 54/320 [00:00<00:01, 175.68iter/s]
Build 3D deformation field:  23%|███████                        | 73/320 [00:00<00:01, 177.81iter/s]
Build 3D deformation field:  28%|████████▊                      | 91/320 [00:00<00:01, 177.31iter/s]
Build 3D deformation field:  34%|██████████▏                   | 109/320 [00:00<00:01, 176.76iter/s]
Build 3D deformation field:  40%|███████████▉                  | 127/320 [00:00<00:01, 175.86iter/s]
Build 3D deformation field:  45%|█████████████▌                | 145/320 [00:00<00:00, 175.72iter/s]
Build 3D deformation field:  51%|███████████████▎              | 163/320 [00:00<00:00, 175.41iter/s]
Build 3D deformation field:  57%|████████████████▉             | 181/320 [00:01<00:00, 175.82iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 199/320 [00:01<00:00, 175.43iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 217/320 [00:01<00:00, 174.83iter/s]
Build 3D deformation field:  73%|██████████████████████        | 235/320 [00:01<00:00, 175.76iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 253/320 [00:01<00:00, 175.51iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 271/320 [00:01<00:00, 175.74iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 289/320 [00:01<00:00, 176.25iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 307/320 [00:01<00:00, 175.59iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 320/320 [00:01<00:00, 175.53iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7
rm -rf /tmp/sct_2025-01-15_16-16-19_register-slicewise_q5wslo7i

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7/warp_src2dest.nii.gz warp_sub-MNI1_acq-coilQaSagLarge_SNR_T00002sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI1_acq-coilQaSagLarge_SNR_T00002sub-MNI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MNI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MNI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7/warp_dest2src.nii.gz warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-17_register-wrapper_wtqrp5o7

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161625.512251.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MNI2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz (63, 75, 361)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-16-30_register-slicewise___7zvdqg)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 63 x 75 x 361
  voxel size: 0.7065217mm x 0.7000043mm x 361mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/361 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/361 [00:00<01:19,  4.55iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  32%|███████               | 116/361 [00:00<00:00, 454.66iter/s]
Estimate cord angle for each slice:  65%|██████████████▏       | 233/361 [00:00<00:00, 711.31iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #330 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #331 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #332 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #333 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #334 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #335 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #336 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #337 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #338 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #339 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #340 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #341 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #342 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #343 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #344 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #345 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #346 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #347 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #348 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #349 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #350 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #351 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #352 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #353 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #354 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #355 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #356 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #357 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #358 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #359 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #360 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 361/361 [00:00<00:00, 695.79iter/s]

Build 3D deformation field:   0%|                                         | 0/327 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 19/327 [00:00<00:01, 182.65iter/s]
Build 3D deformation field:  12%|███▌                           | 38/327 [00:00<00:01, 184.67iter/s]
Build 3D deformation field:  17%|█████▍                         | 57/327 [00:00<00:01, 185.48iter/s]
Build 3D deformation field:  23%|███████▏                       | 76/327 [00:00<00:01, 186.55iter/s]
Build 3D deformation field:  29%|█████████                      | 95/327 [00:00<00:01, 186.58iter/s]
Build 3D deformation field:  35%|██████████▍                   | 114/327 [00:00<00:01, 186.44iter/s]
Build 3D deformation field:  41%|████████████▏                 | 133/327 [00:00<00:01, 185.70iter/s]
Build 3D deformation field:  46%|█████████████▉                | 152/327 [00:00<00:00, 186.00iter/s]
Build 3D deformation field:  52%|███████████████▋              | 171/327 [00:00<00:00, 185.85iter/s]
Build 3D deformation field:  58%|█████████████████▍            | 190/327 [00:01<00:00, 185.54iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 209/327 [00:01<00:00, 185.29iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 228/327 [00:01<00:00, 185.38iter/s]
Build 3D deformation field:  76%|██████████████████████▋       | 247/327 [00:01<00:00, 184.13iter/s]
Build 3D deformation field:  81%|████████████████████████▍     | 266/327 [00:01<00:00, 185.32iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 285/327 [00:01<00:00, 185.31iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 304/327 [00:01<00:00, 184.85iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 323/327 [00:01<00:00, 185.29iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 327/327 [00:01<00:00, 185.41iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck
rm -rf /tmp/sct_2025-01-15_16-16-30_register-slicewise___7zvdqg

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck/warp_src2dest.nii.gz warp_sub-MNI2_acq-coilQaSagLarge_SNR_T00002sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI2_acq-coilQaSagLarge_SNR_T00002sub-MNI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MNI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MNI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck/warp_dest2src.nii.gz warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-28_register-wrapper_q31s_zck

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161636.290805.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MNI3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 102, 260)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-16-41_register-slicewise_h6oiwl1w)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 102 x 260
  voxel size: 0.7065217mm x 0.6999958mm x 260mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/260 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/260 [00:00<00:55,  4.64iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
Estimate cord angle for each slice:  45%|█████████▊            | 116/260 [00:00<00:00, 459.91iter/s]
Estimate cord angle for each slice:  90%|███████████████████▋  | 233/260 [00:00<00:00, 716.93iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #257 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #258 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #259 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 260/260 [00:00<00:00, 590.27iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 13/252 [00:00<00:01, 124.20iter/s]
Build 3D deformation field:  11%|███▎                           | 27/252 [00:00<00:01, 127.71iter/s]
Build 3D deformation field:  16%|█████                          | 41/252 [00:00<00:01, 129.07iter/s]
Build 3D deformation field:  22%|██████▊                        | 55/252 [00:00<00:01, 129.47iter/s]
Build 3D deformation field:  27%|████████▍                      | 69/252 [00:00<00:01, 130.37iter/s]
Build 3D deformation field:  33%|██████████▏                    | 83/252 [00:00<00:01, 130.46iter/s]
Build 3D deformation field:  38%|███████████▉                   | 97/252 [00:00<00:01, 130.57iter/s]
Build 3D deformation field:  44%|█████████████▏                | 111/252 [00:00<00:01, 128.80iter/s]
Build 3D deformation field:  49%|██████████████▊               | 124/252 [00:00<00:00, 128.48iter/s]
Build 3D deformation field:  54%|████████████████▎             | 137/252 [00:01<00:00, 126.45iter/s]
Build 3D deformation field:  60%|█████████████████▊            | 150/252 [00:01<00:00, 125.96iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 163/252 [00:01<00:00, 125.37iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 176/252 [00:01<00:00, 125.43iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 189/252 [00:01<00:00, 125.87iter/s]
Build 3D deformation field:  80%|████████████████████████      | 202/252 [00:01<00:00, 125.52iter/s]
Build 3D deformation field:  85%|█████████████████████████▌    | 215/252 [00:01<00:00, 125.50iter/s]
Build 3D deformation field:  90%|███████████████████████████▏  | 228/252 [00:01<00:00, 125.20iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 241/252 [00:01<00:00, 124.99iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:01<00:00, 126.90iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd
rm -rf /tmp/sct_2025-01-15_16-16-41_register-slicewise_h6oiwl1w

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd/warp_src2dest.nii.gz warp_sub-MNI3_acq-coilQaSagLarge_SNR_T00002sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MNI3_acq-coilQaSagLarge_SNR_T00002sub-MNI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MNI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MNI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd/warp_dest2src.nii.gz warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-39_register-wrapper_tsnovpdd

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161646.986496.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MPI1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 89, 266)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-16-51_register-slicewise_du8a8o6o)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 89 x 266
  voxel size: 0.7065217mm x 0.7000045mm x 266mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/266 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/266 [00:00<00:58,  4.54iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #42 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #43 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #44 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #45 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #46 is empty. It will be ignored.
Estimate cord angle for each slice:  44%|█████████▌            | 116/266 [00:00<00:00, 453.62iter/s]
Estimate cord angle for each slice:  88%|███████████████████▍  | 235/266 [00:00<00:00, 716.46iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 592.69iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 14/248 [00:00<00:01, 139.71iter/s]
Build 3D deformation field:  12%|███▋                           | 29/248 [00:00<00:01, 142.67iter/s]
Build 3D deformation field:  18%|█████▌                         | 44/248 [00:00<00:01, 143.89iter/s]
Build 3D deformation field:  24%|███████▍                       | 59/248 [00:00<00:01, 144.46iter/s]
Build 3D deformation field:  30%|█████████▎                     | 74/248 [00:00<00:01, 145.17iter/s]
Build 3D deformation field:  36%|███████████▏                   | 89/248 [00:00<00:01, 145.02iter/s]
Build 3D deformation field:  42%|████████████▌                 | 104/248 [00:00<00:00, 144.18iter/s]
Build 3D deformation field:  48%|██████████████▍               | 119/248 [00:00<00:00, 144.73iter/s]
Build 3D deformation field:  54%|████████████████▏             | 134/248 [00:00<00:00, 145.34iter/s]
Build 3D deformation field:  60%|██████████████████            | 149/248 [00:01<00:00, 145.57iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 164/248 [00:01<00:00, 145.68iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 179/248 [00:01<00:00, 145.45iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 194/248 [00:01<00:00, 145.81iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 209/248 [00:01<00:00, 146.13iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 224/248 [00:01<00:00, 146.04iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 239/248 [00:01<00:00, 146.45iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 145.22iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7
rm -rf /tmp/sct_2025-01-15_16-16-51_register-slicewise_du8a8o6o

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7/warp_src2dest.nii.gz warp_sub-MPI1_acq-coilQaSagLarge_SNR_T00002sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI1_acq-coilQaSagLarge_SNR_T00002sub-MPI1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MPI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MPI1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7/warp_dest2src.nii.gz warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-49_register-wrapper_a38_1zs7

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161656.817484.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MPI2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz (255, 256, 13)
  Destination ......... ../anat/sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz (61, 89, 276)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-01_register-slicewise_g1airwcf)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 61 x 89 x 276
  voxel size: 0.7065217mm x 0.6999956mm x 276mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/276 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/276 [00:00<00:59,  4.60iter/s]
Estimate cord angle for each slice:  43%|█████████▍            | 119/276 [00:00<00:00, 469.76iter/s]
Estimate cord angle for each slice:  86%|██████████████████▉   | 238/276 [00:00<00:00, 729.66iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 612.35iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 16/276 [00:00<00:01, 151.51iter/s]
Build 3D deformation field:  12%|███▋                           | 33/276 [00:00<00:01, 158.74iter/s]
Build 3D deformation field:  18%|█████▌                         | 50/276 [00:00<00:01, 159.88iter/s]
Build 3D deformation field:  24%|███████▌                       | 67/276 [00:00<00:01, 160.35iter/s]
Build 3D deformation field:  30%|█████████▍                     | 84/276 [00:00<00:01, 160.36iter/s]
Build 3D deformation field:  37%|██████████▉                   | 101/276 [00:00<00:01, 161.41iter/s]
Build 3D deformation field:  43%|████████████▊                 | 118/276 [00:00<00:00, 162.62iter/s]
Build 3D deformation field:  49%|██████████████▋               | 135/276 [00:00<00:00, 162.15iter/s]
Build 3D deformation field:  55%|████████████████▌             | 152/276 [00:00<00:00, 161.65iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 169/276 [00:01<00:00, 161.40iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 186/276 [00:01<00:00, 161.06iter/s]
Build 3D deformation field:  74%|██████████████████████        | 203/276 [00:01<00:00, 161.13iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 220/276 [00:01<00:00, 161.25iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 237/276 [00:01<00:00, 161.56iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 254/276 [00:01<00:00, 160.99iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 271/276 [00:01<00:00, 160.70iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 160.81iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f
rm -rf /tmp/sct_2025-01-15_16-17-01_register-slicewise_g1airwcf

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f/warp_src2dest.nii.gz warp_sub-MPI2_acq-coilQaSagLarge_SNR_T00002sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI2_acq-coilQaSagLarge_SNR_T00002sub-MPI2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MPI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MPI2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f/warp_dest2src.nii.gz warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-16-59_register-wrapper_m5l1d22f

Finished! Elapsed time: 7s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161706.389630.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MPI3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz (255, 256, 13)
  Destination ......... ../anat/sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 117, 282)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-11_register-slicewise_zjet46jc)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 117 x 282
  voxel size: 0.7065217mm x 0.7mm x 282mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/282 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/282 [00:00<01:01,  4.57iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
Estimate cord angle for each slice:  38%|████████▎             | 106/282 [00:00<00:00, 417.22iter/s]
Estimate cord angle for each slice:  78%|█████████████████▏    | 220/282 [00:00<00:00, 676.97iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 282/282 [00:00<00:00, 594.88iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/263 [00:00<00:02, 104.59iter/s]
Build 3D deformation field:   9%|██▋                            | 23/263 [00:00<00:02, 108.83iter/s]
Build 3D deformation field:  13%|████▏                          | 35/263 [00:00<00:02, 110.28iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/263 [00:00<00:01, 111.09iter/s]
Build 3D deformation field:  22%|██████▉                        | 59/263 [00:00<00:01, 111.37iter/s]
Build 3D deformation field:  27%|████████▎                      | 71/263 [00:00<00:01, 111.96iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/263 [00:00<00:01, 112.93iter/s]
Build 3D deformation field:  36%|███████████▏                   | 95/263 [00:00<00:01, 112.54iter/s]
Build 3D deformation field:  41%|████████████▏                 | 107/263 [00:00<00:01, 112.48iter/s]
Build 3D deformation field:  45%|█████████████▌                | 119/263 [00:01<00:01, 112.28iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 111.26iter/s]
Build 3D deformation field:  54%|████████████████▎             | 143/263 [00:01<00:01, 111.47iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 155/263 [00:01<00:00, 111.00iter/s]
Build 3D deformation field:  63%|███████████████████           | 167/263 [00:01<00:00, 111.22iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 179/263 [00:01<00:00, 111.41iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 191/263 [00:01<00:00, 111.73iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 203/263 [00:01<00:00, 111.68iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 215/263 [00:01<00:00, 111.59iter/s]
Build 3D deformation field:  86%|█████████████████████████▉    | 227/263 [00:02<00:00, 112.13iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 239/263 [00:02<00:00, 112.02iter/s]
Build 3D deformation field:  95%|████████████████████████████▋ | 251/263 [00:02<00:00, 111.19iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 111.08iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 111.43iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1
rm -rf /tmp/sct_2025-01-15_16-17-11_register-slicewise_zjet46jc

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1/warp_src2dest.nii.gz warp_sub-MPI3_acq-coilQaSagLarge_SNR_T00002sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MPI3_acq-coilQaSagLarge_SNR_T00002sub-MPI3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MPI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MPI3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1/warp_dest2src.nii.gz warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-09_register-wrapper_e3hv12n1

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161718.097044.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz (217, 256, 13)
  Destination ......... ../anat/sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz (68, 72, 238)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-22_register-slicewise_0nx4aymt)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 72 x 238
  voxel size: 0.7065217mm x 0.7000028mm x 238mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/238 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/238 [00:00<00:50,  4.69iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
Estimate cord angle for each slice:  49%|██████████▊           | 117/238 [00:00<00:00, 468.06iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #233 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #234 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #235 is empty. It will be ignored.

Estimate cord angle for each slice:  99%|█████████████████████▊| 236/238 [00:00<00:00, 730.66iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #236 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #237 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 238/238 [00:00<00:00, 572.47iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 17/220 [00:00<00:01, 169.83iter/s]
Build 3D deformation field:  16%|█████                          | 36/220 [00:00<00:01, 178.39iter/s]
Build 3D deformation field:  25%|███████▊                       | 55/220 [00:00<00:00, 179.40iter/s]
Build 3D deformation field:  34%|██████████▍                    | 74/220 [00:00<00:00, 179.76iter/s]
Build 3D deformation field:  42%|█████████████                  | 93/220 [00:00<00:00, 179.93iter/s]
Build 3D deformation field:  50%|███████████████▏              | 111/220 [00:00<00:00, 179.73iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 130/220 [00:00<00:00, 180.23iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 149/220 [00:00<00:00, 179.69iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 167/220 [00:00<00:00, 179.51iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 185/220 [00:01<00:00, 179.21iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 203/220 [00:01<00:00, 178.53iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 178.90iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt
rm -rf /tmp/sct_2025-01-15_16-17-22_register-slicewise_0nx4aymt

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt/warp_src2dest.nii.gz warp_sub-MSSM1_acq-coilQaSagLarge_SNR_T00002sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM1_acq-coilQaSagLarge_SNR_T00002sub-MSSM1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MSSM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MSSM1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt/warp_dest2src.nii.gz warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-21_register-wrapper_2n_12tlt

Finished! Elapsed time: 5s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161726.496911.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz (172, 256, 13)
  Destination ......... ../anat/sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz (62, 74, 228)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-30_register-slicewise_1_4_9vyx)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 62 x 74 x 228
  voxel size: 0.7065217mm x 0.7000019mm x 228mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/228 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/228 [00:00<00:50,  4.54iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
Estimate cord angle for each slice:  52%|███████████▍          | 118/228 [00:00<00:00, 461.71iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #218 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #219 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #220 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #223 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #224 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #225 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #226 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #227 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 228/228 [00:00<00:00, 555.38iter/s]

Build 3D deformation field:   0%|                                         | 0/213 [00:00<?, ?iter/s]
Build 3D deformation field:   9%|██▊                            | 19/213 [00:00<00:01, 185.15iter/s]
Build 3D deformation field:  18%|█████▋                         | 39/213 [00:00<00:00, 189.04iter/s]
Build 3D deformation field:  27%|████████▍                      | 58/213 [00:00<00:00, 189.22iter/s]
Build 3D deformation field:  37%|███████████▎                   | 78/213 [00:00<00:00, 191.43iter/s]
Build 3D deformation field:  46%|██████████████▎                | 98/213 [00:00<00:00, 190.68iter/s]
Build 3D deformation field:  55%|████████████████▌             | 118/213 [00:00<00:00, 189.75iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 138/213 [00:00<00:00, 189.98iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 158/213 [00:00<00:00, 190.08iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 178/213 [00:00<00:00, 189.79iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 197/213 [00:01<00:00, 189.40iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 213/213 [00:01<00:00, 189.76iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7
rm -rf /tmp/sct_2025-01-15_16-17-30_register-slicewise_1_4_9vyx

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7/warp_src2dest.nii.gz warp_sub-MSSM2_acq-coilQaSagLarge_SNR_T00002sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM2_acq-coilQaSagLarge_SNR_T00002sub-MSSM2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MSSM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MSSM2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7/warp_dest2src.nii.gz warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-28_register-wrapper_f2hcd2p7

Finished! Elapsed time: 5s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161733.910752.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (205, 256, 13)
  Destination ......... ../anat/sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 104, 289)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-38_register-slicewise_wdsjvi3r)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 104 x 289
  voxel size: 0.7065217mm x 0.7000019mm x 289mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/289 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/289 [00:00<01:03,  4.57iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
Estimate cord angle for each slice:  38%|████████▎             | 110/289 [00:00<00:00, 432.95iter/s]
Estimate cord angle for each slice:  78%|█████████████████▏    | 226/289 [00:00<00:00, 693.58iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #242 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #243 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #244 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #245 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #246 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #247 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #248 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #249 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #250 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #251 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #252 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #253 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #254 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #255 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #256 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #257 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #258 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #259 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #260 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #261 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #262 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #263 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #264 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #265 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #266 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #267 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #268 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #269 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 289/289 [00:00<00:00, 632.24iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 13/218 [00:00<00:01, 121.79iter/s]
Build 3D deformation field:  12%|███▊                           | 27/218 [00:00<00:01, 127.20iter/s]
Build 3D deformation field:  18%|█████▋                         | 40/218 [00:00<00:01, 128.21iter/s]
Build 3D deformation field:  24%|███████▌                       | 53/218 [00:00<00:01, 128.23iter/s]
Build 3D deformation field:  30%|█████████▍                     | 66/218 [00:00<00:01, 128.70iter/s]
Build 3D deformation field:  36%|███████████▏                   | 79/218 [00:00<00:01, 128.90iter/s]
Build 3D deformation field:  42%|█████████████                  | 92/218 [00:00<00:00, 129.13iter/s]
Build 3D deformation field:  48%|██████████████▍               | 105/218 [00:00<00:00, 129.24iter/s]
Build 3D deformation field:  55%|████████████████▍             | 119/218 [00:00<00:00, 129.82iter/s]
Build 3D deformation field:  61%|██████████████████▏           | 132/218 [00:01<00:00, 129.76iter/s]
Build 3D deformation field:  67%|███████████████████▉          | 145/218 [00:01<00:00, 128.94iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 158/218 [00:01<00:00, 129.01iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 171/218 [00:01<00:00, 128.79iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 184/218 [00:01<00:00, 129.02iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 197/218 [00:01<00:00, 129.10iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 210/218 [00:01<00:00, 129.20iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 128.85iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff
rm -rf /tmp/sct_2025-01-15_16-17-38_register-slicewise_wdsjvi3r

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff/warp_src2dest.nii.gz warp_sub-MSSM3_acq-coilQaSagLarge_SNR_T00002sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-MSSM3_acq-coilQaSagLarge_SNR_T00002sub-MSSM3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-MSSM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-MSSM3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff/warp_dest2src.nii.gz warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-36_register-wrapper_8grursff

Finished! Elapsed time: 8s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161744.002675.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-NTNU1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz (65, 65, 296)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-48_register-slicewise_qi8f724p)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 65 x 296
  voxel size: 0.7065217mm x 0.6999944mm x 296mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/296 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/296 [00:00<01:04,  4.59iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #42 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #43 is empty. It will be ignored.
Estimate cord angle for each slice:  36%|███████▉              | 106/296 [00:00<00:00, 417.84iter/s]
Estimate cord angle for each slice:  76%|████████████████▋     | 225/296 [00:00<00:00, 695.01iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #289 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #290 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #291 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #292 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #293 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #294 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #295 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 296/296 [00:00<00:00, 623.03iter/s]

Build 3D deformation field:   0%|                                         | 0/238 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▌                            | 20/238 [00:00<00:01, 195.45iter/s]
Build 3D deformation field:  17%|█████▎                         | 41/238 [00:00<00:00, 202.16iter/s]
Build 3D deformation field:  26%|████████                       | 62/238 [00:00<00:00, 203.30iter/s]
Build 3D deformation field:  35%|██████████▊                    | 83/238 [00:00<00:00, 203.39iter/s]
Build 3D deformation field:  44%|█████████████                 | 104/238 [00:00<00:00, 204.09iter/s]
Build 3D deformation field:  53%|███████████████▊              | 125/238 [00:00<00:00, 204.37iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 146/238 [00:00<00:00, 204.93iter/s]
Build 3D deformation field:  70%|█████████████████████         | 167/238 [00:00<00:00, 205.23iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 188/238 [00:00<00:00, 204.75iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 209/238 [00:01<00:00, 204.94iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 230/238 [00:01<00:00, 205.01iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 238/238 [00:01<00:00, 204.32iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda
rm -rf /tmp/sct_2025-01-15_16-17-48_register-slicewise_qi8f724p

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda/warp_src2dest.nii.gz warp_sub-NTNU1_acq-coilQaSagLarge_SNR_T00002sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU1_acq-coilQaSagLarge_SNR_T00002sub-NTNU1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-NTNU1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-NTNU1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda/warp_dest2src.nii.gz warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-46_register-wrapper_34csirda

Finished! Elapsed time: 6s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161752.775880.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-NTNU2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 71, 234)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-17-56_register-slicewise_j8lqm3rl)

Copy input data to temp folder...

Get image dimensions of destination image...
  matrix size: 69 x 71 x 234
  voxel size: 0.7065217mm x 0.6999992mm x 234mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/234 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/234 [00:00<00:49,  4.71iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
Estimate cord angle for each slice:  50%|███████████           | 117/234 [00:00<00:00, 468.45iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #216 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #217 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #218 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #219 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #220 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #223 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #224 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #225 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #226 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #227 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #228 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #229 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #230 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #231 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #232 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #233 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 234/234 [00:00<00:00, 575.72iter/s]

Build 3D deformation field:   0%|                                         | 0/211 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 17/211 [00:00<00:01, 167.66iter/s]
Build 3D deformation field:  17%|█████▏                         | 35/211 [00:00<00:01, 173.12iter/s]
Build 3D deformation field:  26%|███████▉                       | 54/211 [00:00<00:00, 177.33iter/s]
Build 3D deformation field:  34%|██████████▌                    | 72/211 [00:00<00:00, 177.76iter/s]
Build 3D deformation field:  43%|█████████████▏                 | 90/211 [00:00<00:00, 177.79iter/s]
Build 3D deformation field:  51%|███████████████▎              | 108/211 [00:00<00:00, 177.82iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 126/211 [00:00<00:00, 177.80iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 144/211 [00:00<00:00, 177.87iter/s]
Build 3D deformation field:  77%|███████████████████████       | 162/211 [00:00<00:00, 177.99iter/s]
Build 3D deformation field:  85%|█████████████████████████▌    | 180/211 [00:01<00:00, 177.73iter/s]
Build 3D deformation field:  94%|████████████████████████████▎ | 199/211 [00:01<00:00, 178.75iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 211/211 [00:01<00:00, 177.79iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_
rm -rf /tmp/sct_2025-01-15_16-17-56_register-slicewise_j8lqm3rl

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_/warp_src2dest.nii.gz warp_sub-NTNU2_acq-coilQaSagLarge_SNR_T00002sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU2_acq-coilQaSagLarge_SNR_T00002sub-NTNU2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-NTNU2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-NTNU2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_/warp_dest2src.nii.gz warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-17-55_register-wrapper_fykb4rb_

Finished! Elapsed time: 5s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161800.722982.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-NTNU3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz (60, 103, 322)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-18-05_register-slicewise_my3peo3z)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 60 x 103 x 322
  voxel size: 0.7065217mm x 0.6999952mm x 322mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/322 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/322 [00:00<01:09,  4.61iter/s]
Estimate cord angle for each slice:  37%|████████              | 118/322 [00:00<00:00, 466.39iter/s]
Estimate cord angle for each slice:  73%|████████████████      | 236/322 [00:00<00:00, 723.41iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 655.79iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 14/322 [00:00<00:02, 132.98iter/s]
Build 3D deformation field:   9%|██▊                            | 29/322 [00:00<00:02, 137.36iter/s]
Build 3D deformation field:  14%|████▏                          | 44/322 [00:00<00:01, 140.13iter/s]
Build 3D deformation field:  18%|█████▋                         | 59/322 [00:00<00:01, 141.42iter/s]
Build 3D deformation field:  23%|███████                        | 74/322 [00:00<00:01, 141.53iter/s]
Build 3D deformation field:  28%|████████▌                      | 89/322 [00:00<00:01, 141.57iter/s]
Build 3D deformation field:  32%|█████████▋                    | 104/322 [00:00<00:01, 141.39iter/s]
Build 3D deformation field:  37%|███████████                   | 119/322 [00:00<00:01, 141.80iter/s]
Build 3D deformation field:  42%|████████████▍                 | 134/322 [00:00<00:01, 141.72iter/s]
Build 3D deformation field:  46%|█████████████▉                | 149/322 [00:01<00:01, 142.91iter/s]
Build 3D deformation field:  51%|███████████████▎              | 164/322 [00:01<00:01, 144.36iter/s]
Build 3D deformation field:  56%|████████████████▋             | 179/322 [00:01<00:01, 141.87iter/s]
Build 3D deformation field:  60%|██████████████████            | 194/322 [00:01<00:00, 141.86iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 209/322 [00:01<00:00, 143.24iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 224/322 [00:01<00:00, 142.44iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 239/322 [00:01<00:00, 142.82iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 254/322 [00:01<00:00, 142.48iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 269/322 [00:01<00:00, 142.19iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 284/322 [00:02<00:00, 141.39iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 299/322 [00:02<00:00, 140.64iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 314/322 [00:02<00:00, 141.23iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 141.35iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219
rm -rf /tmp/sct_2025-01-15_16-18-05_register-slicewise_my3peo3z

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219/warp_src2dest.nii.gz warp_sub-NTNU3_acq-coilQaSagLarge_SNR_T00002sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-NTNU3_acq-coilQaSagLarge_SNR_T00002sub-NTNU3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-NTNU3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-NTNU3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219/warp_dest2src.nii.gz warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-18-03_register-wrapper_ozuyy219

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Converting image from type 'uint8' to type 'float64' for linear interpolation
Find the center of each slice
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161812.033272.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-UCL1_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz (67, 105, 333)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-18-17_register-slicewise_57huz0zq)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 67 x 105 x 333
  voxel size: 0.7065217mm x 0.7mm x 333mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/333 [00:00<?, ?iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/333 [00:00<01:12,  4.59iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
Estimate cord angle for each slice:  39%|████████▋             | 131/333 [00:00<00:00, 516.31iter/s]
Estimate cord angle for each slice:  74%|████████████████▏     | 245/333 [00:00<00:00, 740.05iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #324 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #325 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #326 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #327 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #328 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #329 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #330 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #331 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #332 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 333/333 [00:00<00:00, 674.26iter/s]

Build 3D deformation field:   0%|                                         | 0/282 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 12/282 [00:00<00:02, 114.67iter/s]
Build 3D deformation field:   9%|██▋                            | 25/282 [00:00<00:02, 120.14iter/s]
Build 3D deformation field:  13%|████▏                          | 38/282 [00:00<00:01, 122.22iter/s]
Build 3D deformation field:  18%|█████▌                         | 51/282 [00:00<00:01, 123.31iter/s]
Build 3D deformation field:  23%|███████                        | 64/282 [00:00<00:01, 123.95iter/s]
Build 3D deformation field:  27%|████████▍                      | 77/282 [00:00<00:01, 124.42iter/s]
Build 3D deformation field:  32%|█████████▉                     | 90/282 [00:00<00:01, 124.39iter/s]
Build 3D deformation field:  37%|██████████▉                   | 103/282 [00:00<00:01, 124.71iter/s]
Build 3D deformation field:  41%|████████████▎                 | 116/282 [00:00<00:01, 124.72iter/s]
Build 3D deformation field:  46%|█████████████▋                | 129/282 [00:01<00:01, 124.67iter/s]
Build 3D deformation field:  50%|███████████████               | 142/282 [00:01<00:01, 125.37iter/s]
Build 3D deformation field:  55%|████████████████▍             | 155/282 [00:01<00:01, 125.11iter/s]
Build 3D deformation field:  60%|█████████████████▊            | 168/282 [00:01<00:00, 126.23iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 181/282 [00:01<00:00, 125.75iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 194/282 [00:01<00:00, 126.23iter/s]
Build 3D deformation field:  73%|██████████████████████        | 207/282 [00:01<00:00, 125.60iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 220/282 [00:01<00:00, 125.19iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 233/282 [00:01<00:00, 125.02iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 246/282 [00:01<00:00, 124.87iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 259/282 [00:02<00:00, 124.79iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 272/282 [00:02<00:00, 124.48iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 282/282 [00:02<00:00, 124.65iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z
rm -rf /tmp/sct_2025-01-15_16-18-17_register-slicewise_57huz0zq

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL1_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z/warp_src2dest.nii.gz warp_sub-UCL1_acq-coilQaSagLarge_SNR_T00002sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL1_acq-coilQaSagLarge_SNR_T00002sub-UCL1_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-UCL1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-UCL1_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z/warp_dest2src.nii.gz warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-18-14_register-wrapper_1vu3yq_z

Finished! Elapsed time: 10s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161824.547626.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-UCL2_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz (75, 110, 287)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-18-30_register-slicewise_r38si4of)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 75 x 110 x 287
  voxel size: 0.7065217mm x 0.7000031mm x 287mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/287 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/287 [00:00<01:02,  4.57iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  39%|████████▌             | 112/287 [00:00<00:00, 439.96iter/s]
Estimate cord angle for each slice:  78%|█████████████████▏    | 225/287 [00:00<00:00, 686.65iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #258 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #259 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #260 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #261 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #262 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #263 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #264 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #265 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #266 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #267 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #268 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #269 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 287/287 [00:00<00:00, 619.56iter/s]

Build 3D deformation field:   0%|                                         | 0/255 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                              | 10/255 [00:00<00:02, 99.82iter/s]
Build 3D deformation field:   8%|██▌                            | 21/255 [00:00<00:02, 103.96iter/s]
Build 3D deformation field:  13%|███▉                           | 32/255 [00:00<00:02, 105.65iter/s]
Build 3D deformation field:  17%|█████▏                         | 43/255 [00:00<00:01, 106.10iter/s]
Build 3D deformation field:  21%|██████▌                        | 54/255 [00:00<00:01, 106.36iter/s]
Build 3D deformation field:  25%|███████▉                       | 65/255 [00:00<00:01, 106.55iter/s]
Build 3D deformation field:  30%|█████████▏                     | 76/255 [00:00<00:01, 106.34iter/s]
Build 3D deformation field:  34%|██████████▌                    | 87/255 [00:00<00:01, 106.07iter/s]
Build 3D deformation field:  38%|███████████▉                   | 98/255 [00:00<00:01, 105.92iter/s]
Build 3D deformation field:  43%|████████████▊                 | 109/255 [00:01<00:01, 105.77iter/s]
Build 3D deformation field:  47%|██████████████                | 120/255 [00:01<00:01, 106.05iter/s]
Build 3D deformation field:  51%|███████████████▍              | 131/255 [00:01<00:01, 106.44iter/s]
Build 3D deformation field:  56%|████████████████▋             | 142/255 [00:01<00:01, 107.21iter/s]
Build 3D deformation field:  60%|██████████████████            | 154/255 [00:01<00:00, 108.70iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 165/255 [00:01<00:00, 108.62iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 176/255 [00:01<00:00, 108.08iter/s]
Build 3D deformation field:  73%|██████████████████████        | 187/255 [00:01<00:00, 107.55iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 198/255 [00:01<00:00, 107.72iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 209/255 [00:01<00:00, 107.82iter/s]
Build 3D deformation field:  86%|█████████████████████████▉    | 220/255 [00:02<00:00, 107.99iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 231/255 [00:02<00:00, 107.91iter/s]
Build 3D deformation field:  95%|████████████████████████████▍ | 242/255 [00:02<00:00, 107.49iter/s]
Build 3D deformation field:  99%|█████████████████████████████▊| 253/255 [00:02<00:00, 107.11iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 255/255 [00:02<00:00, 106.90iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj
rm -rf /tmp/sct_2025-01-15_16-18-30_register-slicewise_r38si4of

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL2_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj/warp_src2dest.nii.gz warp_sub-UCL2_acq-coilQaSagLarge_SNR_T00002sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL2_acq-coilQaSagLarge_SNR_T00002sub-UCL2_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-UCL2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-UCL2_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj/warp_dest2src.nii.gz warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-18-27_register-wrapper_5wvvj3kj

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161837.077464.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -d ../anat/sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz -iseg sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dseg ../anat/sub-UCL3_UNIT1_seg_crop.nii.gz -param step=1,type=seg,algo=centermass -qc /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc
--


Input parameters:
  Source .............. sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../anat/sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz (69, 115, 300)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... im
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... centermass
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Creating temporary folder (/tmp/sct_2025-01-15_16-18-42_register-slicewise_szq7kfkg)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 115 x 300
  voxel size: 0.7065217mm x 0.7mm x 300mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/300 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/300 [00:00<01:04,  4.65iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
Estimate cord angle for each slice:  38%|████████▎             | 114/300 [00:00<00:00, 453.49iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #180 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #181 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #182 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #183 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #216 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #217 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #218 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #219 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #220 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #221 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #222 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #223 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #224 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #225 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #226 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #227 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #228 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #229 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #230 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #231 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #232 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #233 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #234 is empty. It will be ignored.

Estimate cord angle for each slice:  79%|█████████████████▍    | 237/300 [00:00<00:00, 734.45iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #252 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #253 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #254 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #255 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #256 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #257 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #258 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #259 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #260 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #261 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #262 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #263 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #264 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #265 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #266 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #267 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #268 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #269 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #270 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #271 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #272 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #273 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #274 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #275 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #276 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #277 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #278 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #279 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #280 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #281 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #282 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #283 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #284 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #285 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #286 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #287 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #288 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #289 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #290 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #291 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #292 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #293 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #294 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #295 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #296 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #297 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #298 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #299 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 300/300 [00:00<00:00, 662.90iter/s]

Build 3D deformation field:   0%|                                         | 0/223 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 11/223 [00:00<00:02, 103.64iter/s]
Build 3D deformation field:  10%|███▏                           | 23/223 [00:00<00:01, 107.49iter/s]
Build 3D deformation field:  16%|████▊                          | 35/223 [00:00<00:01, 108.72iter/s]
Build 3D deformation field:  21%|██████▌                        | 47/223 [00:00<00:01, 109.61iter/s]
Build 3D deformation field:  26%|████████▏                      | 59/223 [00:00<00:01, 111.75iter/s]
Build 3D deformation field:  32%|█████████▊                     | 71/223 [00:00<00:01, 113.77iter/s]
Build 3D deformation field:  37%|███████████▌                   | 83/223 [00:00<00:01, 112.70iter/s]
Build 3D deformation field:  43%|█████████████▏                 | 95/223 [00:00<00:01, 112.76iter/s]
Build 3D deformation field:  48%|██████████████▍               | 107/223 [00:00<00:01, 113.42iter/s]
Build 3D deformation field:  53%|████████████████              | 119/223 [00:01<00:00, 113.24iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 131/223 [00:01<00:00, 111.60iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 143/223 [00:01<00:00, 112.34iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 155/223 [00:01<00:00, 111.61iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 167/223 [00:01<00:00, 111.22iter/s]
Build 3D deformation field:  80%|████████████████████████      | 179/223 [00:01<00:00, 110.97iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 191/223 [00:01<00:00, 110.42iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 203/223 [00:01<00:00, 111.33iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 215/223 [00:01<00:00, 110.94iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 223/223 [00:02<00:00, 111.28iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf
cp step1InverseWarp.nii.gz /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf
rm -rf /tmp/sct_2025-01-15_16-18-42_register-slicewise_szq7kfkg

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.nii.gz # in /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii warp_inverse_0.nii.gz warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf/warp_src2dest.nii.gz warp_sub-UCL3_acq-coilQaSagLarge_SNR_T00002sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File created: warp_sub-UCL3_acq-coilQaSagLarge_SNR_T00002sub-UCL3_inv-1_part-mag_MP2RAGE_crop.nii.gz
File sub-UCL3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz already exists. Deleting it..
File created: sub-UCL3_inv-1_part-mag_MP2RAGE_crop_reg.nii.gz
mv /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf/warp_dest2src.nii.gz warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-18-40_register-wrapper_1p80jgvf

Finished! Elapsed time: 9s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2025_01_15_161849.337245.json

To see the results in a browser, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/index.html

Warp MP2RAGE vertebral levels to fmap metrics#

# Warping vertebral level to each flip angle and SNR map

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    
    # For MSSM subjects, we also need to warp the SC segmentation
    if subject in ['sub-MSSM1', 'sub-MSSM2', 'sub-MSSM3']:
        # Warping spinal cord segmentation to TFL data
        !sct_apply_transfo -i ../anat/{subject}_UNIT1_seg_crop.nii.gz -d {subject}_acq-famp_TB1TFL.nii.gz -w warp_{subject}_inv-1_part-mag_MP2RAGE_crop2{subject}_acq-famp_TB1TFL.nii.gz -x linear -o {subject}_acq-anat_TB1TFL_seg.nii.gz
        # Setting type to 'famp' for command below (https://github.com/spinal-cord-7t/coil-qc-code/issues/43)
        type = 'famp'
    else:
        type = 'anat'
    # Warping vertebral levels to TFL data
    !sct_apply_transfo -i ../anat/{subject}_UNIT1_seg_labeled_crop.nii.gz -d {subject}_acq-famp_TB1TFL.nii.gz -w warp_{subject}_inv-1_part-mag_MP2RAGE_crop2{subject}_acq-{type}_TB1TFL.nii.gz -x nn -o {subject}_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
    # !sct_qc -i {subject}_acq-{type}_TB1TFL.nii.gz -s {subject}_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -p sct_label_vertebrae -qc {path_qc} -qc-subject {subject}
            
    # Warping SC segmentation and vertebral levels to DREAM fmaps 
    !sct_apply_transfo -i ../anat/{subject}_UNIT1_seg_crop.nii.gz -d {subject}_acq-famp_TB1DREAM.nii.gz -w warp_{subject}_UNIT1_crop2{subject}_acq-famp_TB1DREAM.nii.gz -x linear -o {subject}_acq-famp_TB1DREAM_seg.nii.gz
    # !sct_qc -i {subject}_acq-famp_TB1DREAM.nii.gz -s {subject}_acq-famp_TB1DREAM_seg.nii.gz -p sct_deepseg_sc -qc {path_qc} -qc-subject {subject}
    !sct_apply_transfo -i ../anat/{subject}_UNIT1_seg_labeled_crop.nii.gz -d {subject}_acq-famp_TB1DREAM.nii.gz -w warp_{subject}_UNIT1_crop2{subject}_acq-famp_TB1DREAM.nii.gz -x nn -o {subject}_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
    # !sct_qc -i {subject}_acq-famp_TB1DREAM.nii.gz -s {subject}_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -p sct_label_vertebrae -qc {path_qc} -qc-subject {subject}
    
    # Warping SC segmentation and vertebral level to SNR maps
    !sct_apply_transfo -i ../anat/{subject}_UNIT1_seg_labeled_crop.nii.gz -d {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_{subject}_inv-1_part-mag_MP2RAGE_crop2{subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o {subject}_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
    # !sct_qc -i {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -s {subject}_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -p sct_label_vertebrae -qc {path_qc} -qc-subject {subject}
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM1_acq-famp_TB1TFL.nii.gz -w warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-anat_TB1TFL.nii.gz -x nn -o sub-CRMBM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 100 x 314 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-anat_TB1TFL.nii.gz -r sub-CRMBM1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM1_UNIT1_seg_crop.nii.gz -d sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-CRMBM1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 100 x 314 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM1_UNIT1_seg_crop.nii.gz -o sub-CRMBM1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-CRMBM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 100 x 314 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM1_UNIT1_crop2sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 100 x 314 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM1_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM1_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM2_acq-famp_TB1TFL.nii.gz -w warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-anat_TB1TFL.nii.gz -x nn -o sub-CRMBM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 90 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-anat_TB1TFL.nii.gz -r sub-CRMBM2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM2_UNIT1_seg_crop.nii.gz -d sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-CRMBM2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 90 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM2_UNIT1_seg_crop.nii.gz -o sub-CRMBM2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-CRMBM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 90 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM2_UNIT1_crop2sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 90 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM2_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM2_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM3_acq-famp_TB1TFL.nii.gz -w warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-anat_TB1TFL.nii.gz -x nn -o sub-CRMBM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 121 x 337 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-anat_TB1TFL.nii.gz -r sub-CRMBM3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM3_UNIT1_seg_crop.nii.gz -d sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 121 x 337 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM3_UNIT1_seg_crop.nii.gz -o sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -w warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-CRMBM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 121 x 337 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM3_UNIT1_crop2sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -r sub-CRMBM3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -d sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 121 x 337 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-CRMBM3_UNIT1_seg_labeled_crop.nii.gz -o sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-CRMBM3_inv-1_part-mag_MP2RAGE_crop2sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-CRMBM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH1_acq-famp_TB1TFL.nii.gz -w warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-anat_TB1TFL.nii.gz -x nn -o sub-MGH1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 118 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-anat_TB1TFL.nii.gz -r sub-MGH1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH1_UNIT1_seg_crop.nii.gz -d sub-MGH1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MGH1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 118 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH1_UNIT1_seg_crop.nii.gz -o sub-MGH1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz -r sub-MGH1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MGH1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 118 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH1_UNIT1_crop2sub-MGH1_acq-famp_TB1DREAM.nii.gz -r sub-MGH1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 118 x 226 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH1_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH1_inv-1_part-mag_MP2RAGE_crop2sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH2_acq-famp_TB1TFL.nii.gz -w warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-anat_TB1TFL.nii.gz -x nn -o sub-MGH2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  59 x 117 x 223 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-anat_TB1TFL.nii.gz -r sub-MGH2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH2_UNIT1_seg_crop.nii.gz -d sub-MGH2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MGH2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  59 x 117 x 223 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH2_UNIT1_seg_crop.nii.gz -o sub-MGH2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz -r sub-MGH2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MGH2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  59 x 117 x 223 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH2_UNIT1_crop2sub-MGH2_acq-famp_TB1DREAM.nii.gz -r sub-MGH2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  59 x 117 x 223 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH2_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH2_inv-1_part-mag_MP2RAGE_crop2sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH3_acq-famp_TB1TFL.nii.gz -w warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-anat_TB1TFL.nii.gz -x nn -o sub-MGH3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 127 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-anat_TB1TFL.nii.gz -r sub-MGH3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH3_UNIT1_seg_crop.nii.gz -d sub-MGH3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MGH3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 127 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH3_UNIT1_seg_crop.nii.gz -o sub-MGH3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz -r sub-MGH3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MGH3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 127 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH3_UNIT1_crop2sub-MGH3_acq-famp_TB1DREAM.nii.gz -r sub-MGH3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -d sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 127 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MGH3_UNIT1_seg_labeled_crop.nii.gz -o sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MGH3_inv-1_part-mag_MP2RAGE_crop2sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MGH3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI1_acq-famp_TB1TFL.nii.gz -w warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-anat_TB1TFL.nii.gz -x nn -o sub-MNI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 77 x 367 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-anat_TB1TFL.nii.gz -r sub-MNI1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI1_UNIT1_seg_crop.nii.gz -d sub-MNI1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MNI1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 77 x 367 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI1_UNIT1_seg_crop.nii.gz -o sub-MNI1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz -r sub-MNI1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MNI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 77 x 367 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI1_UNIT1_crop2sub-MNI1_acq-famp_TB1DREAM.nii.gz -r sub-MNI1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 77 x 367 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI1_inv-1_part-mag_MP2RAGE_crop2sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI2_acq-famp_TB1TFL.nii.gz -w warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-anat_TB1TFL.nii.gz -x nn -o sub-MNI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 75 x 361 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-anat_TB1TFL.nii.gz -r sub-MNI2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI2_UNIT1_seg_crop.nii.gz -d sub-MNI2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MNI2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 75 x 361 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI2_UNIT1_seg_crop.nii.gz -o sub-MNI2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz -r sub-MNI2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MNI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 75 x 361 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI2_UNIT1_crop2sub-MNI2_acq-famp_TB1DREAM.nii.gz -r sub-MNI2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  63 x 75 x 361 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI2_inv-1_part-mag_MP2RAGE_crop2sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI3_acq-famp_TB1TFL.nii.gz -w warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-anat_TB1TFL.nii.gz -x nn -o sub-MNI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 102 x 260 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-anat_TB1TFL.nii.gz -r sub-MNI3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI3_UNIT1_seg_crop.nii.gz -d sub-MNI3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MNI3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 102 x 260 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI3_UNIT1_seg_crop.nii.gz -o sub-MNI3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz -r sub-MNI3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MNI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 102 x 260 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI3_UNIT1_crop2sub-MNI3_acq-famp_TB1DREAM.nii.gz -r sub-MNI3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 102 x 260 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MNI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MNI3_inv-1_part-mag_MP2RAGE_crop2sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MNI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI1_acq-famp_TB1TFL.nii.gz -w warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-anat_TB1TFL.nii.gz -x nn -o sub-MPI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 89 x 266 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-anat_TB1TFL.nii.gz -r sub-MPI1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI1_UNIT1_seg_crop.nii.gz -d sub-MPI1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MPI1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 89 x 266 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI1_UNIT1_seg_crop.nii.gz -o sub-MPI1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz -r sub-MPI1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MPI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 89 x 266 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI1_UNIT1_crop2sub-MPI1_acq-famp_TB1DREAM.nii.gz -r sub-MPI1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 89 x 266 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI1_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI1_inv-1_part-mag_MP2RAGE_crop2sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI2_acq-famp_TB1TFL.nii.gz -w warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-anat_TB1TFL.nii.gz -x nn -o sub-MPI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  61 x 89 x 276 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-anat_TB1TFL.nii.gz -r sub-MPI2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI2_UNIT1_seg_crop.nii.gz -d sub-MPI2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MPI2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  61 x 89 x 276 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI2_UNIT1_seg_crop.nii.gz -o sub-MPI2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz -r sub-MPI2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MPI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  61 x 89 x 276 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI2_UNIT1_crop2sub-MPI2_acq-famp_TB1DREAM.nii.gz -r sub-MPI2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  61 x 89 x 276 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI2_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI2_inv-1_part-mag_MP2RAGE_crop2sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI3_acq-famp_TB1TFL.nii.gz -w warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-anat_TB1TFL.nii.gz -x nn -o sub-MPI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 117 x 282 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-anat_TB1TFL.nii.gz -r sub-MPI3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI3_UNIT1_seg_crop.nii.gz -d sub-MPI3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MPI3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 117 x 282 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI3_UNIT1_seg_crop.nii.gz -o sub-MPI3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz -r sub-MPI3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MPI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 117 x 282 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI3_UNIT1_crop2sub-MPI3_acq-famp_TB1DREAM.nii.gz -r sub-MPI3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -d sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 117 x 282 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MPI3_UNIT1_seg_labeled_crop.nii.gz -o sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MPI3_inv-1_part-mag_MP2RAGE_crop2sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MPI3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -d sub-MSSM1_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz -x linear -o sub-MSSM1_acq-anat_TB1TFL_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 72 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -o sub-MSSM1_acq-anat_TB1TFL_seg.nii.gz -t warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz -r sub-MSSM1_acq-famp_TB1TFL.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM1_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz -x nn -o sub-MSSM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 72 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-famp_TB1TFL.nii.gz -r sub-MSSM1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -d sub-MSSM1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MSSM1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 72 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM1_UNIT1_seg_crop.nii.gz -o sub-MSSM1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz -r sub-MSSM1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM1_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MSSM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 72 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM1_UNIT1_crop2sub-MSSM1_acq-famp_TB1DREAM.nii.gz -r sub-MSSM1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  68 x 72 x 238 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM1_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM1_inv-1_part-mag_MP2RAGE_crop2sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -d sub-MSSM2_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz -x linear -o sub-MSSM2_acq-anat_TB1TFL_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 74 x 228 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -o sub-MSSM2_acq-anat_TB1TFL_seg.nii.gz -t warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz -r sub-MSSM2_acq-famp_TB1TFL.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM2_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz -x nn -o sub-MSSM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 74 x 228 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-famp_TB1TFL.nii.gz -r sub-MSSM2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -d sub-MSSM2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MSSM2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 74 x 228 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM2_UNIT1_seg_crop.nii.gz -o sub-MSSM2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz -r sub-MSSM2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM2_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MSSM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 74 x 228 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM2_UNIT1_crop2sub-MSSM2_acq-famp_TB1DREAM.nii.gz -r sub-MSSM2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  62 x 74 x 228 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM2_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM2_inv-1_part-mag_MP2RAGE_crop2sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -d sub-MSSM3_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz -x linear -o sub-MSSM3_acq-anat_TB1TFL_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 104 x 289 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -o sub-MSSM3_acq-anat_TB1TFL_seg.nii.gz -t warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz -r sub-MSSM3_acq-famp_TB1TFL.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM3_acq-famp_TB1TFL.nii.gz -w warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz -x nn -o sub-MSSM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 104 x 289 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-famp_TB1TFL.nii.gz -r sub-MSSM3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -d sub-MSSM3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-MSSM3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 104 x 289 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM3_UNIT1_seg_crop.nii.gz -o sub-MSSM3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz -r sub-MSSM3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM3_acq-famp_TB1DREAM.nii.gz -w warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-MSSM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 104 x 289 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM3_UNIT1_crop2sub-MSSM3_acq-famp_TB1DREAM.nii.gz -r sub-MSSM3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -d sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 104 x 289 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-MSSM3_UNIT1_seg_labeled_crop.nii.gz -o sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-MSSM3_inv-1_part-mag_MP2RAGE_crop2sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-MSSM3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU1_acq-famp_TB1TFL.nii.gz -w warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-anat_TB1TFL.nii.gz -x nn -o sub-NTNU1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 65 x 296 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-anat_TB1TFL.nii.gz -r sub-NTNU1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU1_UNIT1_seg_crop.nii.gz -d sub-NTNU1_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-NTNU1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 65 x 296 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU1_UNIT1_seg_crop.nii.gz -o sub-NTNU1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz -r sub-NTNU1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU1_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-NTNU1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 65 x 296 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU1_UNIT1_crop2sub-NTNU1_acq-famp_TB1DREAM.nii.gz -r sub-NTNU1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  65 x 65 x 296 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU1_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU1_inv-1_part-mag_MP2RAGE_crop2sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU2_acq-famp_TB1TFL.nii.gz -w warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-anat_TB1TFL.nii.gz -x nn -o sub-NTNU2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 71 x 234 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-anat_TB1TFL.nii.gz -r sub-NTNU2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU2_UNIT1_seg_crop.nii.gz -d sub-NTNU2_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-NTNU2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 71 x 234 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU2_UNIT1_seg_crop.nii.gz -o sub-NTNU2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz -r sub-NTNU2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU2_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-NTNU2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 71 x 234 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU2_UNIT1_crop2sub-NTNU2_acq-famp_TB1DREAM.nii.gz -r sub-NTNU2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 71 x 234 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU2_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU2_inv-1_part-mag_MP2RAGE_crop2sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU3_acq-famp_TB1TFL.nii.gz -w warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-anat_TB1TFL.nii.gz -x nn -o sub-NTNU3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  60 x 103 x 322 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-anat_TB1TFL.nii.gz -r sub-NTNU3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU3_UNIT1_seg_crop.nii.gz -d sub-NTNU3_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-NTNU3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  60 x 103 x 322 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU3_UNIT1_seg_crop.nii.gz -o sub-NTNU3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz -r sub-NTNU3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU3_acq-famp_TB1DREAM.nii.gz -w warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-NTNU3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  60 x 103 x 322 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU3_UNIT1_crop2sub-NTNU3_acq-famp_TB1DREAM.nii.gz -r sub-NTNU3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -d sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  60 x 103 x 322 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-NTNU3_UNIT1_seg_labeled_crop.nii.gz -o sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-NTNU3_inv-1_part-mag_MP2RAGE_crop2sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-NTNU3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL1_acq-famp_TB1TFL.nii.gz -w warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-anat_TB1TFL.nii.gz -x nn -o sub-UCL1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  67 x 105 x 333 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-anat_TB1TFL.nii.gz -r sub-UCL1_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL1_UNIT1_seg_crop.nii.gz -d sub-UCL1_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz -x linear -o sub-UCL1_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  67 x 105 x 333 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL1_UNIT1_seg_crop.nii.gz -o sub-UCL1_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz -r sub-UCL1_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL1_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz -x nn -o sub-UCL1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  67 x 105 x 333 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL1_UNIT1_crop2sub-UCL1_acq-famp_TB1DREAM.nii.gz -r sub-UCL1_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  67 x 105 x 333 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL1_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL1_inv-1_part-mag_MP2RAGE_crop2sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL1/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL2_acq-famp_TB1TFL.nii.gz -w warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-anat_TB1TFL.nii.gz -x nn -o sub-UCL2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  75 x 110 x 287 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-anat_TB1TFL.nii.gz -r sub-UCL2_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL2_UNIT1_seg_crop.nii.gz -d sub-UCL2_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz -x linear -o sub-UCL2_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  75 x 110 x 287 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL2_UNIT1_seg_crop.nii.gz -o sub-UCL2_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz -r sub-UCL2_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL2_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz -x nn -o sub-UCL2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  75 x 110 x 287 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL2_UNIT1_crop2sub-UCL2_acq-famp_TB1DREAM.nii.gz -r sub-UCL2_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  75 x 110 x 287 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL2_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL2_inv-1_part-mag_MP2RAGE_crop2sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL2/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL3_acq-famp_TB1TFL.nii.gz -w warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-anat_TB1TFL.nii.gz -x nn -o sub-UCL3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 115 x 300 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-anat_TB1TFL.nii.gz -r sub-UCL3_acq-famp_TB1TFL.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL3_UNIT1_seg_crop.nii.gz -d sub-UCL3_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz -x linear -o sub-UCL3_acq-famp_TB1DREAM_seg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 115 x 300 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL3_UNIT1_seg_crop.nii.gz -o sub-UCL3_acq-famp_TB1DREAM_seg.nii.gz -t warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz -r sub-UCL3_acq-famp_TB1DREAM.nii.gz -n Linear # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL3_acq-famp_TB1DREAM.nii.gz -w warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz -x nn -o sub-UCL3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 115 x 300 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL3_UNIT1_crop2sub-UCL3_acq-famp_TB1DREAM.nii.gz -r sub-UCL3_acq-famp_TB1DREAM.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_apply_transfo -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -d sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -w warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -x nn -o sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz
--


Parse list of warping fields...

Get dimensions of data...
  69 x 115 x 300 x 1

Apply transformation...

Apply transformation and resample to destination space...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsApplyTransforms -d 3 -i ../anat/sub-UCL3_UNIT1_seg_labeled_crop.nii.gz -o sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -t warp_sub-UCL3_inv-1_part-mag_MP2RAGE_crop2sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -r sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -n NearestNeighbor # in /home/runner/work/coil-qc-code/coil-qc-code/data-human/sub-UCL3/fmap
Copy affine matrix from destination space to make sure qform/sform are the same.

Quality control (local station)#

# Quality control of registration

# This code generates syntax to open the registered data in FSLeyes. The syntax should be run from within the `data-human/` folder.
for subject in subjects:
# for subject in ['sub-MGH1']:
    print(f"\n👉 CHECKING REGISTRATION FOR: {subject}\n")
    cmd = f"fsleyes {subject}/fmap/{subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz {subject}/fmap/{subject}_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow"
    print(cmd+" &")

# TODO: undisplay all scans but the first
👉 CHECKING REGISTRATION FOR: sub-CRMBM1

fsleyes sub-CRMBM1/fmap/sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-CRMBM1/fmap/sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-CRMBM2

fsleyes sub-CRMBM2/fmap/sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-CRMBM2/fmap/sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-CRMBM3

fsleyes sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MGH1

fsleyes sub-MGH1/fmap/sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MGH1/fmap/sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MGH2

fsleyes sub-MGH2/fmap/sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MGH2/fmap/sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MGH3

fsleyes sub-MGH3/fmap/sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MGH3/fmap/sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MNI1

fsleyes sub-MNI1/fmap/sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MNI1/fmap/sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MNI2

fsleyes sub-MNI2/fmap/sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MNI2/fmap/sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MNI3

fsleyes sub-MNI3/fmap/sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MNI3/fmap/sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MPI1

fsleyes sub-MPI1/fmap/sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MPI1/fmap/sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MPI2

fsleyes sub-MPI2/fmap/sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MPI2/fmap/sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MPI3

fsleyes sub-MPI3/fmap/sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MPI3/fmap/sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MSSM1

fsleyes sub-MSSM1/fmap/sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MSSM1/fmap/sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MSSM2

fsleyes sub-MSSM2/fmap/sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MSSM2/fmap/sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-MSSM3

fsleyes sub-MSSM3/fmap/sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-MSSM3/fmap/sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-NTNU1

fsleyes sub-NTNU1/fmap/sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-NTNU1/fmap/sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-NTNU2

fsleyes sub-NTNU2/fmap/sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-NTNU2/fmap/sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-NTNU3

fsleyes sub-NTNU3/fmap/sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-NTNU3/fmap/sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-UCL1

fsleyes sub-UCL1/fmap/sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-UCL1/fmap/sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-UCL2

fsleyes sub-UCL2/fmap/sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-UCL2/fmap/sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

👉 CHECKING REGISTRATION FOR: sub-UCL3

fsleyes sub-UCL3/fmap/sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz sub-UCL3/fmap/sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz --cmap rainbow &

Convert TFL and DREAM flip angle maps to B1+ in units of nT/V#

# load DREAM FA maps acquired with different reference voltages
# threshold FA maps to 20deg < FA < 50deg
# combine FA maps by averaging non-zero estimates of FA in each pixel

GAMMA = 2.675e8;  # [rad / (s T)]
voltages = ["1.5", "0.66"]

for subject in subjects:
    
    b1_maps = []
    os.chdir(os.path.join(path_data, subject, "fmap"))

    if subject=='sub-MSSM1':
        ref_voltage=450
    elif subject=='sub-MSSM2':
        ref_voltage=350
    elif subject=='sub-MSSM3':
        ref_voltage=450
    else:     
        # Fetch the reference voltage from the JSON sidecar 
        with open(f"{subject}_acq-famp_TB1DREAM.json", "r") as f:
            metadata = json.load(f)
            ref_voltage = metadata.get("TxRefAmp", "N/A")
            if (ref_voltage == "N/A"):
                ref_token = "N/A"
                for token in metadata.get("SeriesDescription", "N/A").split("_"):
                    if token.startswith("RefV"): ref_token = token
                ref_voltage = float(ref_token[4:-1])
    
    # Open refV flip angle map with nibabel
    nii = nib.load(f"{subject}_acq-famp_TB1DREAM.nii.gz")
    meas_fa = nii.get_fdata()
    #thresholding
    meas_fa[meas_fa < 200] = np.nan
    meas_fa[meas_fa > 500] = np.nan

    # Fetch the flip angle from the JSON sidecar 
    with open(f"{subject}_acq-famp_TB1DREAM.json", "r") as f:
        metadata = json.load(f)
        requested_fa = metadata.get("FlipAngle", "N/A")
        #convert measured FA to percent of requested FA (note that measured FA map is in degrees * 10)
        meas_fa = (meas_fa/10) / requested_fa

    # Account for the power loss between the coil and the socket. That number was given by Siemens.
    voltage_at_socket = ref_voltage * 10 ** -0.095
    # Compute B1 map in [T/V]
    b1_map = meas_fa * (np.pi / (GAMMA * 1e-3 * voltage_at_socket))
    # Convert to [nT/V]
    b1_map = b1_map * 1e9
    
    b1_maps.append(b1_map)

    for voltage in voltages:
        
        #check if map exists
        my_file = Path(f"{subject}_acq-famp-{voltage}_TB1DREAM.nii.gz")
        
        if my_file.is_file():
            
            if subject=='sub-MSSM2' and voltage=="1.5":
                ref_voltage=450
            elif subject=='sub-MSSM2' and voltage=="0.66":
                ref_voltage=234
            elif subject=='sub-MSSM3' and voltage=="0.66":
                ref_voltage=328
            else:            
                # Fetch the reference voltage from the JSON sidecar 
                with open(f"{subject}_acq-famp-{voltage}_TB1DREAM.json", "r") as f:
                    metadata = json.load(f)
                    ref_voltage = metadata.get("TxRefAmp", "N/A")
                    if (ref_voltage == "N/A"):
                        ref_token = "N/A"
                        for token in metadata.get("SeriesDescription", "N/A").split("_"):
                            if token.startswith("RefV"): ref_token = token
                        ref_voltage = float(ref_token[4:-1])
                
            # Open flip angle map with nibabel
            nii = nib.load(f"{subject}_acq-famp-{voltage}_TB1DREAM.nii.gz")
            meas_fa = nii.get_fdata()
            #thresholding
            meas_fa[meas_fa < 200] = np.nan
            meas_fa[meas_fa > 500] = np.nan
        
            # Fetch the flip angle from the JSON sidecar 
            with open(f"{subject}_acq-famp-{voltage}_TB1DREAM.json", "r") as f:
                metadata = json.load(f)
                requested_fa = metadata.get("FlipAngle", "N/A")
                #convert measured FA to percent of requested FA (note that measured FA map is in degrees * 10)
                meas_fa = (meas_fa/10) / requested_fa
        else:
            meas_fa = np.full((nii.header).get_data_shape(),np.nan)

        # Account for the power loss between the coil and the socket. That number was given by Siemens.
        voltage_at_socket = ref_voltage * 10 ** -0.095
        # Compute B1 map in [T/V]
        # Siemens maps are in units of flip angle * 10 (in degrees)
        b1_map = meas_fa * (np.pi / (GAMMA * 1e-3 * voltage_at_socket))
        # Convert to [nT/V]
        b1_map = b1_map * 1e9
        
        b1_maps.append(b1_map)
 
    # compute mean of non-zero values
    avgB1=np.nanmean(b1_maps,axis=0)
    
    # Save as NIfTI file
    nii_avgB1 = nib.Nifti1Image(avgB1, nii.affine, nii.header)
    nib.save(nii_avgB1, f"{subject}_DREAMTB1avgB1map.nii.gz")
    
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_3082/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
# Convert the TFL flip angle maps to B1+ efficiency maps [nT/V] (inspired by code from Kyle Gilbert)
# The approach consists in calculating the B1+ efficiency using a 1ms, pi-pulse at the acquisition voltage,
# then scale the efficiency by the ratio of the measured flip angle to the requested flip angle in the pulse sequence.

GAMMA = 2.675e8;  # [rad / (s T)]

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))

    if subject=='sub-MSSM1':
        ref_voltage=450
    elif subject=='sub-MSSM2':
        ref_voltage=350
    elif subject=='sub-MSSM3':
        ref_voltage=450
    else:     
        # Fetch the reference voltage from the JSON sidecar 
        with open(f"{subject}_acq-famp_TB1TFL.json", "r") as f:
            metadata = json.load(f)
            ref_voltage = metadata.get("TxRefAmp", "N/A")
            if (ref_voltage == "N/A"):
                ref_token = "N/A"
                for token in metadata.get("SeriesDescription", "N/A").split("_"):
                    if token.startswith("RefV"): ref_token = token
                ref_voltage = float(ref_token[4:-1])
        
    print(f"ref_voltage [V]: {ref_voltage} ({subject}_acq-famp_TB1TFL)")
                
    # Fetch the flip angle from the JSON sidecar 
    with open(f"{subject}_acq-famp_TB1TFL.json", "r") as f:
        metadata = json.load(f)
        requested_fa = metadata.get("FlipAngle", "N/A")
        print(f"flip angle [degrees]: {requested_fa} ({subject}_acq-famp_TB1TFL)")

    # Open flip angle map with nibabel
    nii = nib.load(f"{subject}_acq-famp_TB1TFL.nii.gz")
    meas_fa = nii.get_fdata()

    # Account for the power loss between the coil and the socket. That number was given by Siemens.
    voltage_at_socket = ref_voltage * 10 ** -0.095

    # Compute B1 map in [T/V]
    # Siemens maps are in units of flip angle * 10 (in degrees)
    b1_map = ((meas_fa / 10) / requested_fa) * (np.pi / (GAMMA * 1e-3 * voltage_at_socket))

    # Convert to [nT/V]
    b1_map = b1_map * 1e9

    # Save B1 map in [T/V] as NIfTI file
    nii_b1 = nib.Nifti1Image(b1_map, nii.affine, nii.header)
    nib.save(nii_b1, f"{subject}_TFLTB1map.nii.gz")
ref_voltage [V]: 387 (sub-CRMBM1_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-CRMBM1_acq-famp_TB1TFL)
ref_voltage [V]: 233 (sub-CRMBM2_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-CRMBM2_acq-famp_TB1TFL)
ref_voltage [V]: 380 (sub-CRMBM3_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-CRMBM3_acq-famp_TB1TFL)
ref_voltage [V]: 600 (sub-MGH1_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-MGH1_acq-famp_TB1TFL)
ref_voltage [V]: 520 (sub-MGH2_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-MGH2_acq-famp_TB1TFL)
ref_voltage [V]: 635.7 (sub-MGH3_acq-famp_TB1TFL)
flip angle [degrees]: 88.94 (sub-MGH3_acq-famp_TB1TFL)
ref_voltage [V]: 649.6 (sub-MNI1_acq-famp_TB1TFL)
flip angle [degrees]: 86.87 (sub-MNI1_acq-famp_TB1TFL)
ref_voltage [V]: 446.4 (sub-MNI2_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-MNI2_acq-famp_TB1TFL)
ref_voltage [V]: 595.5 (sub-MNI3_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-MNI3_acq-famp_TB1TFL)
ref_voltage [V]: 500 (sub-MPI1_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-MPI1_acq-famp_TB1TFL)
ref_voltage [V]: 510 (sub-MPI2_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-MPI2_acq-famp_TB1TFL)
ref_voltage [V]: 510 (sub-MPI3_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-MPI3_acq-famp_TB1TFL)
ref_voltage [V]: 450 (sub-MSSM1_acq-famp_TB1TFL)
flip angle [degrees]: 60 (sub-MSSM1_acq-famp_TB1TFL)
ref_voltage [V]: 350 (sub-MSSM2_acq-famp_TB1TFL)
flip angle [degrees]: 80 (sub-MSSM2_acq-famp_TB1TFL)
ref_voltage [V]: 450 (sub-MSSM3_acq-famp_TB1TFL)
flip angle [degrees]: 60 (sub-MSSM3_acq-famp_TB1TFL)
ref_voltage [V]: 550 (sub-NTNU1_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-NTNU1_acq-famp_TB1TFL)
ref_voltage [V]: 450 (sub-NTNU2_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-NTNU2_acq-famp_TB1TFL)
ref_voltage [V]: 550 (sub-NTNU3_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-NTNU3_acq-famp_TB1TFL)
ref_voltage [V]: 388 (sub-UCL1_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-UCL1_acq-famp_TB1TFL)
ref_voltage [V]: 248 (sub-UCL2_acq-famp_TB1TFL)
flip angle [degrees]: 89.99 (sub-UCL2_acq-famp_TB1TFL)
ref_voltage [V]: 482 (sub-UCL3_acq-famp_TB1TFL)
flip angle [degrees]: 90 (sub-UCL3_acq-famp_TB1TFL)

Extract B1+ and SNR along the spinal cord#

# Extract B1+ and SNR along the spinal cord between levels C1 and T2 (included) and save data to CSV files
# TODO: remove code duplication

for subject in subjects:
    os.chdir(os.path.join(path_data, subject, "fmap"))
    
    # Extract TFL B1+ along the spinal cord
    fname_result_b1plus = os.path.join(path_results, f"{subject}_TFLTB1map.csv")
    !sct_extract_metric -i {subject}_TFLTB1map.nii.gz -f {subject}_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile {subject}_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o "{fname_result_b1plus}"
            
    # Extract DREAM B1+ along the spinal cord
    fname_result_b1plus = os.path.join(path_results, f"{subject}_DREAMTB1avgB1map.csv")
    !sct_extract_metric -i {subject}_DREAMTB1avgB1map.nii.gz -f {subject}_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile {subject}_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o "{fname_result_b1plus}"
    
    # Extract SNR along the spinal cord
    fname_result_SNR = os.path.join(path_results, f"{subject}_SNRmap.csv")
    !sct_extract_metric -i {subject}_acq-coilQaSagLarge_SNR_T0000.nii.gz -f {subject}_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile {subject}_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o "{fname_result_SNR}"
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM1_TFLTB1map.nii.gz -f sub-CRMBM1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM1_DREAMTB1avgB1map.nii.gz -f sub-CRMBM1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM2_TFLTB1map.nii.gz -f sub-CRMBM2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM2_DREAMTB1avgB1map.nii.gz -f sub-CRMBM2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM3_TFLTB1map.nii.gz -f sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM3_DREAMTB1avgB1map.nii.gz -f sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-CRMBM3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_SNRmap.csv
--

Load metric image...
Estimation for label: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-CRMBM3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH1_TFLTB1map.nii.gz -f sub-MGH1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH1_DREAMTB1avgB1map.nii.gz -f sub-MGH1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MGH1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH2_TFLTB1map.nii.gz -f sub-MGH2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_TFLTB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH2_DREAMTB1avgB1map.nii.gz -f sub-MGH2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_DREAMTB1avgB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MGH2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH3_TFLTB1map.nii.gz -f sub-MGH3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH3_DREAMTB1avgB1map.nii.gz -f sub-MGH3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MGH3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MGH3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI1_TFLTB1map.nii.gz -f sub-MNI1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_TFLTB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI1_DREAMTB1avgB1map.nii.gz -f sub-MNI1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_DREAMTB1avgB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MNI1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI2_TFLTB1map.nii.gz -f sub-MNI2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI2_DREAMTB1avgB1map.nii.gz -f sub-MNI2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_SNRmap.csv
--

Load metric image...
Estimation for label: sub-MNI2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI3_TFLTB1map.nii.gz -f sub-MNI3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI3_DREAMTB1avgB1map.nii.gz -f sub-MNI3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MNI3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MNI3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI1_TFLTB1map.nii.gz -f sub-MPI1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI1_DREAMTB1avgB1map.nii.gz -f sub-MPI1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MPI1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI2_TFLTB1map.nii.gz -f sub-MPI2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_TFLTB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI2_DREAMTB1avgB1map.nii.gz -f sub-MPI2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MPI2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI3_TFLTB1map.nii.gz -f sub-MPI3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI3_DREAMTB1avgB1map.nii.gz -f sub-MPI3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MPI3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MPI3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM1_TFLTB1map.nii.gz -f sub-MSSM1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM1_DREAMTB1avgB1map.nii.gz -f sub-MSSM1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MSSM1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM2_TFLTB1map.nii.gz -f sub-MSSM2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_TFLTB1map.csv


--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM2_DREAMTB1avgB1map.nii.gz -f sub-MSSM2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MSSM2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM3_TFLTB1map.nii.gz -f sub-MSSM3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM3_DREAMTB1avgB1map.nii.gz -f sub-MSSM3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-MSSM3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-MSSM3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU1_TFLTB1map.nii.gz -f sub-NTNU1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU1_DREAMTB1avgB1map.nii.gz -f sub-NTNU1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_SNRmap.csv
--


Load metric image...
Estimation for label: sub-NTNU1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU2_TFLTB1map.nii.gz -f sub-NTNU2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU2_DREAMTB1avgB1map.nii.gz -f sub-NTNU2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-NTNU2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU3_TFLTB1map.nii.gz -f sub-NTNU3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU3_DREAMTB1avgB1map.nii.gz -f sub-NTNU3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-NTNU3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-NTNU3_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL1_TFLTB1map.nii.gz -f sub-UCL1_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL1_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL1_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL1_DREAMTB1avgB1map.nii.gz -f sub-UCL1_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL1_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_DREAMTB1avgB1map.csv
--

Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL1_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_SNRmap.csv
--

Load metric image...
Estimation for label: sub-UCL1_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL1_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL2_TFLTB1map.nii.gz -f sub-UCL2_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL2_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL2_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL2_DREAMTB1avgB1map.nii.gz -f sub-UCL2_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL2_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL2_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_SNRmap.csv
--


Load metric image...
Estimation for label: sub-UCL2_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL2_SNRmap.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL3_TFLTB1map.nii.gz -f sub-UCL3_acq-anat_TB1TFL_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_TFLTB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL3_acq-anat_TB1TFL_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_TFLTB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL3_DREAMTB1avgB1map.nii.gz -f sub-UCL3_acq-famp_TB1DREAM_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_DREAMTB1avgB1map.csv
--


Load metric image...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Estimation for label: sub-UCL3_acq-famp_TB1DREAM_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_DREAMTB1avgB1map.csv

--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_extract_metric -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -f sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -method wa -vert 1:9 -vertfile sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -perlevel 1 -o /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_SNRmap.csv
--


Load metric image...
Estimation for label: sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg

Done! To view results, type:
xdg-open /home/runner/work/coil-qc-code/coil-qc-code/data-human/derivatives/results/sub-UCL3_SNRmap.csv

Generate plots along spinal cord#

Load and post-process extracted metrics#

# Reorder subjects so that identical coils are displayed side-by-side
subjects = ['sub-CRMBM1', 'sub-CRMBM2', 'sub-CRMBM3', 'sub-UCL1', 'sub-UCL2', 'sub-UCL3', 'sub-MNI1', 'sub-MNI2', 'sub-MNI3', 'sub-MGH1', 'sub-MGH2', 'sub-MGH3', 'sub-MPI1', 'sub-MPI2', 'sub-MPI3', 'sub-NTNU1', 'sub-NTNU2', 'sub-NTNU3', 'sub-MSSM1', 'sub-MSSM2', 'sub-MSSM3']

# Go back to root data folder
os.chdir(os.path.join(path_data))

def smooth_data(data, window_size=20):
    """ Apply a simple moving average to smooth the data. """
    return uniform_filter1d(data, size=window_size, mode='nearest')

# Fixed grid for x-axis
x_grid = np.linspace(0, 1, 100)

# z-slices corresponding to levels C3 to T2 on the PAM50 template. These will be used to scale the x-label of each subject.
original_vector = np.array([985, 939, 907, 870, 833, 800, 769, 735, 692, 646])

# Normalize the PAM50 z-slice numbers to the 1-0 range (to show inferior-superior instead of superior-inferior)
min_val = original_vector.min()
max_val = original_vector.max()
normalized_vector = 1 - ((original_vector - min_val) / (max_val - min_val))

# Use this normalized vector as x-ticks
custom_xticks = normalized_vector

# Vertebral level labels
vertebral_levels = ["C1", "C2", "C3", "C4", "C5", "C6", "C7", "T1", "T2"]
# Calculate midpoints for label positions
label_positions = normalized_vector[:-1] + np.diff(normalized_vector) / 2

sites = ["CRMBM", "UCL", "MNI", "MGH", "MPI", "NTNU", "MSSM"]

# map types
map_types = ["TFLTB1", "DREAMTB1avgB1", "SNR"]

# Data storage for statistics
TFLTB1_data_stats = []
DREAMTB1avgB1_data_stats = []
SNR_TB1_data_stats = []

data_stats = [TFLTB1_data_stats, DREAMTB1avgB1_data_stats, SNR_TB1_data_stats]

# Data storage 
TFLTB1_data = {}
DREAMTB1avgB1_data = {}
SNR_data = {}
data = [TFLTB1_data, DREAMTB1avgB1_data, SNR_data]


for map_type, data_stats_type, data_type in zip(map_types,data_stats,data):
    
    i = 0
    j = 0

    for site in sites:

        data_type[site]={}


        while i < (j+3):

            os.chdir(os.path.join(path_data, f"{subjects[i]}", "fmap"))

            # Initialize list to collect data for this subject
            subject_data = []

            file_csv = os.path.join(path_results, f"{subjects[i]}_{map_type}map.csv")
            df = pd.read_csv(file_csv)
            wa_data = df['WA()']

            # Compute stats on the non-resampled data (to avoid interpolation errors)
            mean_data = np.mean(wa_data)
            sd_data = np.std(wa_data)

            # Normalize the x-axis to a 1-0 scale for each subject (to go from superior-inferior direction)
            x_subject = np.linspace(1, 0, len(wa_data))

            # Interpolate to the fixed grid
            interp_func = interp1d(x_subject, wa_data, kind='linear', bounds_error=False, fill_value='extrapolate')
            resampled_data = interp_func(x_grid)

            # Apply smoothing
            smoothed_data = smooth_data(resampled_data)
            subject_data.append(smoothed_data)

            for resampled_data in subject_data:
                data_type[site][subjects[i]]=resampled_data
                
            data_stats_type.append([site, subjects[i], mean_data, sd_data])

            i += 1        
        j += 3       

Normalize slice average SNR values by slice-average TFL B1+#

# Following https://onlinelibrary.wiley.com/doi/full/10.1002/mrm.27695; here we normalize SNR maps by sin(FA), where FA is the actual FA map for the GRE SNR scan
# By normalizing we extrapolate to the SNR value that we would achive with FA = 90, ie, SNR_90 = SNR_meas/sin(FA_meas), which can be directly compated between RF coils

# Since we do not have the FA_meas (for the SNR GRE scan), we will compute it from the ratio of the measured and requested FA in the TFL B1+ scan
# FA_gre_meas = FA_gre_requested * (FA_TFL_meas/FA_TFL_requested)
# FA_TFL_meas/FA_TFL_requested was previously computed to obtain the TFL B1+ efficiency (stored in "data"), we will reconvert TFL B1+ efficiency to the FA_TFL_meas/FA_TFL_requested ratio

sites = ["CRMBM", "UCL", "MNI", "MGH", "MPI", "NTNU", "MSSM"]

# SNR along the cord is stored in a dictionary (data) of dictionaries (?) that has an array associated with each element
# The order of the dictionary is {'CRMBM': {'sub-CRMBM1': array([...]), 'sub-CRMBM2': array([...]), etc.
# The 1st dictionary corresponds to the TFL B1+ data
# The 3rd/last dictionary corresponds to the SNR data

TFLB1_data = data[0]
SNR_data = data[2]

GAMMA = 2.675e8;  # [rad / (s T)]

j = 0
i = 0   
for site in sites:   
    while i < (j+3):

        os.chdir(os.path.join(path_data, f"{subjects[i]}", "fmap"))

        if subjects[i]=='sub-MSSM1':
            ref_voltage=450
        elif subjects[i]=='sub-MSSM2':
            ref_voltage=350
        elif subjects[i]=='sub-MSSM3':
            ref_voltage=450
        else:     
            # Fetch the reference voltage from the JSON sidecar 
            with open(f"{subjects[i]}_acq-famp_TB1TFL.json", "r") as f:
                metadata = json.load(f)
                ref_voltage = metadata.get("TxRefAmp", "N/A")
                if (ref_voltage == "N/A"):
                    ref_token = "N/A"
                    for token in metadata.get("SeriesDescription", "N/A").split("_"):
                        if token.startswith("RefV"): ref_token = token
                    ref_voltage = float(ref_token[4:-1])

        # Account for the power loss between the coil and the socket. That number was given by Siemens.
        voltage_at_socket = ref_voltage * 10 ** -0.095
                
        # Fetch the requested flip angle for the SNR(GRE) scan from the JSON sidecar 
        with open(f"{subjects[i]}_acq-coilQaSagLarge_SNR.json", "r") as f:
            metadata = json.load(f)
            requested_fa = metadata.get("FlipAngle", "N/A")

        # compute the actual flip angle for the SNR(GRE) scan 
        actual_fa = requested_fa * (TFLB1_data[site][subjects[i]]/1e9) * ((GAMMA * 1e-3 * voltage_at_socket)/np.pi)
        # normalize the SNR data by the actual flip angle
        data[2][site][subjects[i]] = SNR_data[site][subjects[i]]/np.sin(np.deg2rad(actual_fa))

        i += 1       
    j += 3

    
# replace SNR SC average and std in data_stats with SNR90 data
j = 0
i = 0
k = 0
for site in sites:   
    while i < (j+3):

        data_stats[2][k][2] = np.mean(data[2][site][subjects[i]])
        data_stats[2][k][3] = np.std(data[2][site][subjects[i]])

        k += 1

        i += 1       
    j += 3

Generate plots of B1+ and SNR along the cord#

sites = ["CRMBM", "UCL", "MNI", "MGH", "MPI", "NTNU", "MSSM"]
site_colors = ['cornflowerblue', 'royalblue', 'firebrick', 'darkred', 'limegreen', 'green', 'mediumpurple']

subject_names = ["Subject 1", "Subject 2", "Subject 3", "average"]
sub_linestyles = ['dotted','dashed','dashdot']
sub_colors = ['dimgray','darkgray','silver']

# figure types
fig_types = ["TFL B1+ [nT/V]", "DREAM B1+ [nT/V]", "SNR_90"]
    
for data_type, data_stats_type, fig_type in zip(data, data_stats, fig_types):
    
    avg_data = {'CRMBM': 0, 'UCL': 0, 'MNI': 0, 'MGH': 0, 'MPI': 0, 'NTNU': 0, 'MSSM': 0}
   
    fig = plt.figure()
    gs = fig.add_gridspec(1, len(sites), wspace=0)
    axs = gs.subplots(sharex=True, sharey=True)
    fig.set_size_inches(16, 6)

    j = 0
    i = 0    
    for k, site in enumerate(sites):    
        l = 0
        while i < (j+3):
            axs[k].plot(data_type[site][subjects[i]],color=sub_colors[l], linestyle=sub_linestyles[l])
            avg_data[site] += data_type[site][subjects[i]]
            l += 1
            i += 1
        j += 3
        
        avg_data[site] = avg_data[site]/3
        
        axs[k].plot(avg_data[site],color="black",linestyle='solid',linewidth=1)
        axs[k].set_title(sites[k], color=site_colors[k])
        axs[k].grid()
    
    axs[0].legend(subject_names,loc="upper right")

    for ax in axs.flat:
        ax.set(xlabel='Vertebral Levels', ylabel=fig_type, xticks=100*label_positions, xticklabels=vertebral_levels)
        ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='center')

    if fig_type=="SNR_90":
        ax.set_ylim(200, 1300)
    else:
        ax.set_ylim(0, 85)  
        
    # Hide x labels and tick labels for top plots and y ticks for right plots.
    for ax in axs.flat:
        ax.label_outer()

    plt.show()

    
    print('Subject-averaged', fig_type,'averaged along SC:',*zip(*{k: np.mean(v) for k, v in avg_data.items()}.items()),'\n')
    print('Subject-averaged', fig_type,'std along SC:',*zip(*{k: np.std(v) for k, v in avg_data.items()}.items()),'\n')
_images/e0f75fac803f0db6742a70a57b54b40cd40f8610b90766d432d7f5b018ebc4d2.png
Subject-averaged TFL B1+ [nT/V] averaged along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(39.93356260254999), np.float64(37.39520489692691), np.float64(23.676592328930937), np.float64(21.882446479876236), np.float64(18.16152873545494), np.float64(21.302348080576603), np.float64(28.333119882266598)) 

Subject-averaged TFL B1+ [nT/V] std along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(9.009996302084597), np.float64(7.376676479079951), np.float64(3.0524725341725305), np.float64(3.2922307236237507), np.float64(2.3954373291064797), np.float64(1.4432340268800385), np.float64(5.050655094212115)) 
_images/388203f380981444ad1e56e4e081dc3fbf0860373780cafe9717c0b7d5670b98.png
Subject-averaged DREAM B1+ [nT/V] averaged along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(39.36771115234862), np.float64(35.35388072501364), np.float64(31.837834436423876), np.float64(22.031627812816954), np.float64(26.33482955892221), np.float64(27.11647518125965), np.float64(29.83728997391403)) 

Subject-averaged DREAM B1+ [nT/V] std along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(6.416527213952659), np.float64(4.404232804428753), np.float64(2.603268756155278), np.float64(2.0888421628029454), np.float64(0.3126350638528332), np.float64(1.6456022597906872), np.float64(3.3436260992431053)) 
_images/b045bd6a224b7d42c8305de2d5e1c080f0a4821c017723f145034cee4537f4b9.png
Subject-averaged SNR_90 averaged along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(627.0114196422146), np.float64(616.7775941543039), np.float64(693.6088225984932), np.float64(726.4827979145156), np.float64(535.2657270609408), np.float64(663.1814143787899), np.float64(566.8045632204831)) 

Subject-averaged SNR_90 std along SC: ('CRMBM', 'UCL', 'MNI', 'MGH', 'MPI', 'NTNU', 'MSSM') (np.float64(39.66589654462815), np.float64(25.40296498038003), np.float64(62.906550698018975), np.float64(39.75781841720328), np.float64(111.84441973828244), np.float64(58.8456618966059), np.float64(71.22951003335598)) 
# print some stats
# to do: automate this 

print("CRMBM std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][0][2],data_stats[0][1][2],data_stats[0][2][2]]))
print("UCL std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][3][2],data_stats[0][4][2],data_stats[0][5][2]]))
print("MNI std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][6][2],data_stats[0][7][2],data_stats[0][8][2]]))
print("MGH std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][9][2],data_stats[0][10][2],data_stats[0][11][2]]))
print("MPI std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][12][2],data_stats[0][13][2],data_stats[0][14][2]]))
print("NTNU std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][15][2],data_stats[0][16][2],data_stats[0][17][2]]))
print("MSSM std across subjects of mean TFL B1+ along SC: ",np.std([data_stats[0][18][2],data_stats[0][19][2],data_stats[0][20][2]]))

print("\n")

print("CRMBM std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][0][2],data_stats[1][1][2],data_stats[1][2][2]]))
print("UCL std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][3][2],data_stats[1][4][2],data_stats[1][5][2]]))
print("MNI std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][6][2],data_stats[1][7][2],data_stats[1][8][2]]))
print("MGH std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][9][2],data_stats[1][10][2],data_stats[1][11][2]]))
print("MPI std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][12][2],data_stats[1][13][2],data_stats[1][14][2]]))
print("NTNU std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][15][2],data_stats[1][16][2],data_stats[1][17][2]]))
print("MSSM std across subjects of mean DREAM B1+ along SC: ",np.std([data_stats[1][18][2],data_stats[1][19][2],data_stats[1][20][2]]))

print("\n")

print("CRMBM std across subjects: ",np.mean([np.std([data_stats[0][0][2],data_stats[0][1][2],data_stats[0][2][2]]),np.std([data_stats[1][0][2],data_stats[1][1][2],data_stats[1][2][2]])]))
print("UCL std across subjects: ",np.mean([np.std([data_stats[0][3][2],data_stats[0][4][2],data_stats[0][5][2]]),np.std([data_stats[1][3][2],data_stats[1][4][2],data_stats[1][5][2]])]))
print("MNI std across subjects: ",np.mean([np.std([data_stats[0][6][2],data_stats[0][7][2],data_stats[0][8][2]]),np.std([data_stats[1][6][2],data_stats[1][7][2],data_stats[1][8][2]])]))
print("MGH std across subjects: ",np.mean([np.std([data_stats[0][9][2],data_stats[0][10][2],data_stats[0][11][2]]),np.std([data_stats[1][9][2],data_stats[1][10][2],data_stats[1][11][2]])]))
print("MPI std across subjects: ",np.mean([np.std([data_stats[0][12][2],data_stats[0][13][2],data_stats[0][14][2]]),np.std([data_stats[1][12][2],data_stats[1][13][2],data_stats[1][14][2]])]))
print("NTNU std across subjects: ",np.mean([np.std([data_stats[0][15][2],data_stats[0][16][2],data_stats[0][17][2]]),np.std([data_stats[1][15][2],data_stats[1][16][2],data_stats[1][17][2]])]))
print("MSSM std across subjects: ",np.mean([np.std([data_stats[0][18][2],data_stats[0][19][2],data_stats[0][20][2]]),np.std([data_stats[1][18][2],data_stats[1][19][2],data_stats[1][20][2]])]))
CRMBM std across subjects of mean TFL B1+ along SC:  10.867004066007558
UCL std across subjects of mean TFL B1+ along SC:  10.09553696735376
MNI std across subjects of mean TFL B1+ along SC:  5.396384432808582
MGH std across subjects of mean TFL B1+ along SC:  2.94241423550438
MPI std across subjects of mean TFL B1+ along SC:  6.417458801845382
NTNU std across subjects of mean TFL B1+ along SC:  7.49483466983962
MSSM std across subjects of mean TFL B1+ along SC:  6.551542107044434


CRMBM std across subjects of mean DREAM B1+ along SC:  9.892631531013066
UCL std across subjects of mean DREAM B1+ along SC:  9.58656441041675
MNI std across subjects of mean DREAM B1+ along SC:  3.7625276905355896
MGH std across subjects of mean DREAM B1+ along SC:  3.441573734373501
MPI std across subjects of mean DREAM B1+ along SC:  0.6670820484605456
NTNU std across subjects of mean DREAM B1+ along SC:  3.096226309213366
MSSM std across subjects of mean DREAM B1+ along SC:  6.242806779790072


CRMBM std across subjects:  10.379817798510313
UCL std across subjects:  9.841050688885256
MNI std across subjects:  4.579456061672086
MGH std across subjects:  3.1919939849389403
MPI std across subjects:  3.5422704251529638
NTNU std across subjects:  5.295530489526493
MSSM std across subjects:  6.397174443417253

Generate plots of B1+ and SNR per vertebral levels#

# figure types
site_colors = ['cornflowerblue', 'royalblue', 'firebrick', 'darkred', 'limegreen', 'green', 'mediumpurple']
fig_types = ["TFL B1+ CoV [nT/V] across C1-T2", "DREAM B1+ CoV [nT/V] across C1-T2", "SNR_90 Mean [arb] across C1-T2"]
subject_names = ["Subject 1", "Subject 2", "Subject 3"]
sub_colors = ['dimgray','darkgray','silver']

for data_stats_type, fig_type in zip(data_stats,fig_types):
    
    series = [data_stats_type[i::len(subject_names)] for i in range(len(subject_names))]
    hline_x = np.arange(len(sites))
    hline_width = 0.25
    stat_metric = np.zeros((len(subject_names),len(sites)))
    fig, ax = plt.subplots()

    i = 0
    for subject_name, subject_series in zip(subject_names, series): 
        if fig_type == "SNR_90 Mean [arb] across C1-T2":
            # Compute mean across levels
            metric_indiv = [subject_series[j][2] for j in range(len(sites))]
        else:
            # Compute CoV across levels
            metric_indiv = [subject_series[j][3]/subject_series[j][2] for j in range(len(sites))]
        ax.scatter(sites, metric_indiv, label=subject_name, color=sub_colors[i])
        for xtick, site_color in zip(ax.get_xticklabels(), site_colors):
            xtick.set_color(site_color)        
        for j in range(len(sites)):
            if fig_type == "SNR_90 Mean [arb] across C1-T2":
                # Compute mean across levels and subjects
                stat_metric[i][j] = subject_series[j][2]
            else:
                # Compute CoV across levels and subjects
                stat_metric[i][j] = subject_series[j][3]/subject_series[j][2]
        i+=1
    
    plt.hlines(np.mean(stat_metric, axis=0),hline_x - hline_width/2, hline_x + hline_width/2, color="black", label="Across subj. mean")
        
    ax.legend()
    if fig_type=="SNR_90 Mean [arb] across C1-T2":
        ax.set_ylim(200, 1000)
        #ax.get_legend().remove()
    else:
        ax.set_ylim(0, 0.5)     
    ax.set_title(fig_type)

    plt.grid()
_images/63c8af347cfc5a7217ee81dafa3185d4346c103534bade5bb69c0ddd253deb4f.png _images/05a4cc723fc84424fc1a10a433f466bffa810dc261381a3d793c631f066560b3.png _images/2a48d1854ffc4585a24b26dd12fa661747951fdcde26991413ff86f68e6e5f9a.png

Generate maps#

Generate figures for B1+, SNR, and 1/g-factor maps obtained at each site (for one representative subject)

Co-register maps to reference site#

# Co-register subjects across sites for better visualisation

sites = ["CRMBM", "UCL", "MNI", "MGH", "MPI", "NTNU", "MSSM"]
subject_id = '3'  # Subject number to generate figures from
site_ref = 'CRMBM'
vert_labels = '3'  # vertebral levels for alignment between sites

files_anat = ["acq-anat_TB1TFL", "acq-famp_TB1DREAM","acq-coilQaSagLarge_SNR_T0000"]  # image that serves as a reference to get the segmentation
files_metric = ["TFLTB1map", "DREAMTB1avgB1map","acq-coilQaSagLarge_SNR_T0000"]  # coilQA image to display on the figure

for site in sites:
    print(f"👉 PROCESSING: {site}{subject_id}")
    for file_anat, file_metric in zip(files_anat, files_metric):
        os.chdir(os.path.join(path_data, "sub-"+site+subject_id, "fmap"))
        # Extract vertebral labels
        !sct_label_utils -i sub-{site}{subject_id}_{file_anat}_seg_labeled-UNIT1reg.nii.gz -vert-body {vert_labels} -o sub-{site}{subject_id}_{file_anat}_labels.nii.gz
        # Co-register data to reference subject
        if site != "CRMBM":
            !sct_register_multimodal \
                -i sub-{site}{subject_id}_{file_metric}.nii.gz \
                -iseg sub-{site}{subject_id}_{file_anat}_seg.nii.gz \
                -ilabel sub-{site}{subject_id}_{file_anat}_labels.nii.gz \
                -d ../../sub-{site_ref}{subject_id}/fmap/sub-{site_ref}{subject_id}_{file_metric}.nii.gz \
                -dseg ../../sub-{site_ref}{subject_id}/fmap/sub-{site_ref}{subject_id}_{file_anat}_seg.nii.gz \
                -dlabel ../../sub-{site_ref}{subject_id}/fmap/sub-{site_ref}{subject_id}_{file_anat}_labels.nii.gz \
                -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 \
                -x nn
👉 PROCESSING: CRMBM3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
👉 PROCESSING: UCL3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-UCL3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_TFLTB1map.nii.gz -iseg sub-UCL3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-UCL3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-UCL3_TFLTB1map.nii.gz (88, 144, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-8.339592218399048, -9.86110806465149, 21.72777557373047]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 86
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[-10.52442002  -0.04140306  -8.54901552]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx/warp_src2dest.nii.gz warp_sub-UCL3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-UCL3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-UCL3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-UCL3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-27_register-wrapper_5oz2qotx

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-UCL3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_DREAMTB1avgB1map.nii.gz -iseg sub-UCL3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-UCL3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-UCL3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-5.0303497314453125, -7.522422790527344, 20.21099853515625]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 49
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[ -3.83318138   2.43617249 -11.59356689]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w/warp_src2dest.nii.gz warp_sub-UCL3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-UCL3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-UCL3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-UCL3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-31_register-wrapper_2y1scq9w

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-UCL3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-UCL3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-UCL3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-7.430351257324219, -9.022430419921875, 21.21099853515625]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 72
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[ -6.33318138  -0.06384277 -10.09356689]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-UCL3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-UCL3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w/warp_src2dest.nii.gz warp_sub-UCL3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-UCL3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-34_register-wrapper_krobhy6w

Finished! Elapsed time: 2s
👉 PROCESSING: MNI3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MNI3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_TFLTB1map.nii.gz -iseg sub-MNI3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-MNI3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MNI3_TFLTB1map.nii.gz (88, 144, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[2.5, -60.16667032241821, 25.972225666046143]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 79
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[  0.3151722  -50.34696531  -4.30456543]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca
Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d/warp_src2dest.nii.gz warp_sub-MNI3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-MNI3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-MNI3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-MNI3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-38_register-wrapper_zwpjyx0d

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MNI3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_DREAMTB1avgB1map.nii.gz -iseg sub-MNI3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-MNI3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MNI3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-0.0, -58.5, 27.5]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 49
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[  1.19716835 -48.54140472  -4.30456543]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l/warp_src2dest.nii.gz warp_sub-MNI3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-MNI3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MNI3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MNI3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-41_register-wrapper_iv5_005l

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MNI3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-MNI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-MNI3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-1.9073486328125e-06, -61.0, 27.0]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 49
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[  1.09716797 -52.04141235  -4.30456543]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-MNI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-MNI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z/warp_src2dest.nii.gz warp_sub-MNI3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MNI3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-44_register-wrapper_5xcbge8z

Finished! Elapsed time: 2s
👉 PROCESSING: MGH3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MGH3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_TFLTB1map.nii.gz -iseg sub-MGH3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-MGH3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MGH3_TFLTB1map.nii.gz (88, 144, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-3.120776653289795, -73.15208745002747, 33.21037411689758]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[ -5.30560446 -63.33238244   2.93358302]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x/warp_src2dest.nii.gz warp_sub-MGH3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-MGH3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-MGH3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-MGH3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-48_register-wrapper_9_fejv9x

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MGH3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_DREAMTB1avgB1map.nii.gz -iseg sub-MGH3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-MGH3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MGH3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-5.2213897705078125, -72.7152099609375, 34.10382080078125]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 49
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[ -4.02422142 -62.75661469   2.29925537]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i/warp_src2dest.nii.gz warp_sub-MGH3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-MGH3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MGH3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MGH3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-52_register-wrapper_ybhfu10i

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MGH3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-MGH3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-MGH3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz (255, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-6.600725173950195, -72.59494018678092, 33.02645874107911]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 49
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[ -5.5035553  -63.63635254   1.72189331]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-MGH3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-MGH3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513/warp_src2dest.nii.gz warp_sub-MGH3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MGH3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-54_register-wrapper_81u83513

Finished! Elapsed time: 2s
👉 PROCESSING: MPI3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MPI3_acq-anat_TB1TFL_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_TFLTB1map.nii.gz -iseg sub-MPI3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-MPI3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MPI3_TFLTB1map.nii.gz (90, 144, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-6.205670356750488, -71.6954779624939, 26.370842456817627]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[ -8.39049816 -61.87577295  -3.90594864]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax/warp_src2dest.nii.gz warp_sub-MPI3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-MPI3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-MPI3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-MPI3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-21-58_register-wrapper_6gtewxax

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MPI3_acq-famp_TB1DREAM_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_DREAMTB1avgB1map.nii.gz -iseg sub-MPI3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-MPI3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MPI3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-9.586259841918945, -71.69548034667969, 28.870834350585938]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[ -8.38909149 -61.73688507  -2.93373108]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq/warp_src2dest.nii.gz warp_sub-MPI3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-MPI3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MPI3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MPI3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-02_register-wrapper_p_v4ebiq

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MPI3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-MPI3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-MPI3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz (255, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-7.086261749267578, -64.19546508789062, 27.370849609375]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[ -5.98909187 -55.23687744  -3.93371582]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-MPI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-MPI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc/warp_src2dest.nii.gz warp_sub-MPI3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MPI3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-05_register-wrapper_hg_oamgc

Finished! Elapsed time: 2s
👉 PROCESSING: NTNU3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-NTNU3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_TFLTB1map.nii.gz -iseg sub-NTNU3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-NTNU3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-NTNU3_TFLTB1map.nii.gz (88, 144, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[1.8448920249938965, -64.28926753997803, 38.56809759140015]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 80
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[ -0.33993578 -54.46956253   8.2913065 ]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv/warp_src2dest.nii.gz warp_sub-NTNU3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-NTNU3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-NTNU3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-NTNU3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-09_register-wrapper_0a2yekjv

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-NTNU3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_DREAMTB1avgB1map.nii.gz -iseg sub-NTNU3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-NTNU3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-NTNU3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-1.5000553131103516, -62.90037536621094, 38.15143585205078]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 108
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[ -0.30288696 -52.94178009   6.34687042]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9/warp_src2dest.nii.gz warp_sub-NTNU3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-NTNU3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-NTNU3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-NTNU3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-13_register-wrapper_f9p6_ud9

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[-1.5000572204589844, -66.40036010742188, 39.15142822265625]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 3
         Function evaluations: 72
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[ -0.40288734 -57.44177246   7.84686279]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v/warp_src2dest.nii.gz warp_sub-NTNU3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-NTNU3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-15_register-wrapper_z1879n1v

Finished! Elapsed time: 2s
👉 PROCESSING: MSSM3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM3_acq-anat_TB1TFL_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MSSM3_acq-anat_TB1TFL_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_TFLTB1map.nii.gz -iseg sub-MSSM3_acq-anat_TB1TFL_seg.nii.gz -ilabel sub-MSSM3_acq-anat_TB1TFL_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MSSM3_TFLTB1map.nii.gz (88, 128, 56)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_TFLTB1map.nii.gz (88, 144, 56)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[5.0, -25.0, 35.0]]
Labels dest: [[2.1848278045654297, -9.81970500946045, 30.276791095733643]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [ 2.1848278  -9.81970501 30.2767911 ]
Translation:
 [[  2.8151722  -15.18029499   4.7232089 ]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk/warp_src2dest.nii.gz warp_sub-MSSM3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: warp_sub-MSSM3_TFLTB1map2sub-CRMBM3_TFLTB1map.nii.gz
File created: sub-CRMBM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk/warp_dest2src.nii.gz warp_sub-CRMBM3_TFLTB1map2sub-MSSM3_TFLTB1map.nii.gz
File created: warp_sub-CRMBM3_TFLTB1map2sub-MSSM3_TFLTB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-19_register-wrapper_plone0tk

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM3_acq-famp_TB1DREAM_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MSSM3_acq-famp_TB1DREAM_labels.nii.gz
--

Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_DREAMTB1avgB1map.nii.gz -iseg sub-MSSM3_acq-famp_TB1DREAM_seg.nii.gz -ilabel sub-MSSM3_acq-famp_TB1DREAM_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Source .............. sub-MSSM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_DREAMTB1avgB1map.nii.gz (80, 80, 11)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Creating temporary folder (/tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e)

Copying input data to tmp folder and convert to nii...
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[2.5, -25.5, 37.5]]
Labels dest: [[-1.1971683502197266, -9.958595275878906, 31.8045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.19716835 -9.95859528 31.80456543]
Translation:
 [[  3.69716835 -15.54140472   5.69543457]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e/warp_src2dest.nii.gz warp_sub-MSSM3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-MSSM3_DREAMTB1avgB1map2sub-CRMBM3_DREAMTB1avgB1map.nii.gz
File created: sub-CRMBM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e/warp_dest2src.nii.gz warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MSSM3_DREAMTB1avgB1map.nii.gz
File created: warp_sub-CRMBM3_DREAMTB1avgB1map2sub-MSSM3_DREAMTB1avgB1map.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-23_register-wrapper_v92jwt5e

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_label_utils -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg_labeled-UNIT1reg.nii.gz -vert-body 3 -o sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz
--
Generating output files...
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_register_multimodal -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -iseg sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -ilabel sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -d ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -dseg ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz -dlabel ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_labels.nii.gz -param step=0,type=label,dof=Tx_Ty_Tz:step=1,type=seg,iter=0 -x nn
--


Input parameters:
  Source .............. sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (205, 256, 13)
  Destination ......... ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz (256, 256, 13)
  Init transfo ........ 
  Mask ................ 
  Output name ......... 
  Remove temp files ... 1
  Verbose ............. 1

Check if input data are 3D...
Creating temporary folder (/tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg)

Copying input data to tmp folder and convert to nii...

--
ESTIMATE TRANSFORMATION FOR STEP #0
Registration parameters:
  type ........... label
  algo ........... syn
  slicewise ...... 0
  metric ......... MI
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz
  smoothWarpXY ... 2
  rot_method ..... pca
Parameter 'algo=syn' has no effect for 'type=label' registration.
Labels src: [[2.3999977111816406, -26.499999955389995, 36.99999996831152]]
Labels dest: [[-1.0971698760986328, -8.958587646484375, 31.3045654296875]]
Degrees of freedom (dof): Tx_Ty_Tz
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 2
         Function evaluations: 50
Matrix:
 [[ 1.  0.  0.]
 [ 0.  1.  0.]
 [-0.  0.  1.]]
Center:
 [-1.09716988 -8.95858765 31.30456543]
Translation:
 [[  3.49716759 -17.54141231   5.69543454]]

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
Registration parameters:
  type ........... seg
  algo ........... syn
  slicewise ...... 0
  metric ......... MeanSquares
  samplStrategy .. None
  samplPercent ... 0.2
  iter ........... 0
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ........... 
  poly ........... 5
  filter_size .... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
  rot_method ..... pca

Estimate transformation
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MeanSquares[dest_seg_RPI.nii,src_seg_reg.nii,1,4]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step1,src_seg_reg_regStep1.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg

Concatenate transformations...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_src2dest.nii.gz -R dest.nii warp_forward_1.nii.gz warp_forward_0.txt # in /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/bin/isct_ComposeMultiTransform 3 warp_dest2src.nii.gz -R src.nii -i warp_forward_0.txt warp_inverse_1.nii.gz # in /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz already exists. Deleting it..
File created: sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg/warp_src2dest.nii.gz warp_sub-MSSM3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-MSSM3_acq-coilQaSagLarge_SNR_T00002sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz
mv /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg/warp_dest2src.nii.gz warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
File created: warp_sub-CRMBM3_acq-coilQaSagLarge_SNR_T00002sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz

Remove temporary files...
rm -rf /tmp/sct_2025-01-15_16-22-25_register-wrapper_xg7wfklg

Finished! Elapsed time: 2s

Align spinal cord with the medial plane#

For visualization purpose, such that the sagittal views show the spinal cord throughout the whole superior-inferior axis.

# Flatten the spinal cord (ie, being it into the sagittal midline)

for site in sites:
    print(f"👉 PROCESSING: {site}{subject_id}")
    for file_anat, file_metric in zip(files_anat, files_metric):
        os.chdir(os.path.join(path_data, "sub-"+site+subject_id, "fmap"))
        if site == site_ref:
            suffix = ""
        else:
            suffix = "_reg"
        # Flatten the spinal cord in the sagittal plane
        !sct_flatten_sagittal -i sub-{site}{subject_id}_{file_metric}{suffix}.nii.gz -s ../../sub-{site_ref}{subject_id}/fmap/sub-{site_ref}{subject_id}_{file_anat}_seg.nii.gz
👉 PROCESSING: CRMBM3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-CRMBM3_TFLTB1map.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--

Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-CRMBM3_DREAMTB1avgB1map.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--

Image header specifies datatype 'int16', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: UCL3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-UCL3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-UCL3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-UCL3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: MNI3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MNI3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MNI3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MNI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: MGH3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MGH3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MGH3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MGH3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: MPI3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MPI3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MPI3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MPI3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: NTNU3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-NTNU3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-NTNU3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-NTNU3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.
👉 PROCESSING: MSSM3
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MSSM3_TFLTB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-anat_TB1TFL_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MSSM3_DREAMTB1avgB1map_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-famp_TB1DREAM_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
--
Spinal Cord Toolbox (git-master-e293dca0512d7972fd1598a7c454aceeb0f40f74)

sct_flatten_sagittal -i sub-MSSM3_acq-coilQaSagLarge_SNR_T0000_reg.nii.gz -s ../../sub-CRMBM3/fmap/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000_seg.nii.gz
--
Image header specifies datatype 'float32', but array is of type 'int16'. Header metadata will be overwritten to use 'int16'.

Generate B1+ and SNR maps#

site_colors = ['cornflowerblue', 'royalblue', 'firebrick', 'darkred', 'limegreen', 'green', 'mediumpurple']

# legend types
legend_types = ["[nT/V]", "[nT/V]", "[arb]", "[arb]", "[arb]"]

# Define the slicing indices for each combination of file_metric and ind_subject
# The indices are defined as (x(min, max), y(min, max))
slicing_indices = {
    "TFLTB1map": {
        '1': (slice(31, 82), slice(43, 93)),
        '2': (slice(28, 71), slice(37, 94)),
        '3': (slice(25, 77), slice(35, 100))
    },
    "DREAMTB1avgB1map": {
        '1': (slice(29, 60), slice(13, 66)),
        '2': (slice(20, 65), slice(6, 56)),
        '3': (slice(25, 72), slice(0, 60))
    },
    "acq-coilQaSagLarge_SNR_T0000": {
        '1': (slice(224, 302), slice(213, 292)),
        '2': (slice(224, 302), slice(197, 289)),
        '3': (slice(100, 178), slice(55, 160))
    }
}

# Define the dynmax values for each file_metric
dynmax_values = {
    "TFLTB1map": 60,
    "DREAMTB1avgB1map": 60,
    "acq-coilQaSagLarge_SNR_T0000": 200
}

for file_metric, legend_type in zip(files_metric, legend_types):
    # Create a figure with multiple subplots
    fig, axes = plt.subplots(2, 4)#, figsize=(10, 8))
    font_size = 12
    axes=axes.flatten() 
    for i,site in enumerate(sites):
        # Load data
        os.chdir(os.path.join(path_data, f"sub-{site}{subject_id}", "fmap"))
        if site == site_ref:
            suffix = ""
        else:
            suffix = "_reg"
        map = nib.load(f"sub-{site}{subject_id}_{file_metric}{suffix}_flatten.nii.gz")
        # map = nib.load(f"sub-{site}{ind_subject}_{file_metric}{suffix}.nii.gz")
        slices = slicing_indices[file_metric][subject_id]
        data = map.get_fdata()[slices[0], slices[1], round(map.get_fdata().shape[2] / 2)]

        # Figure configuration
        axes[-1].axis('off') 
        # Defining dynamic range
        axes[-1].axis('off')            
        dynmin = 0 
        dynmax = dynmax_values[file_metric]
        splot=axes[i]
        im = splot.imshow((data.T), cmap='viridis', origin='lower',vmin=dynmin,vmax=dynmax)
        splot.set_title(site, size=font_size,color=site_colors[i])
        splot.axis('off')
    
    plt.tight_layout()

    # Colorbar
    # Assume that the colorbar should start at the bottom of the lower row of subplots and
    # extend to the top of the upper row of subplots
    cbar_bottom = 0.25  # This might need adjustment
    cbar_height = 0.5  # This represents the total height of both rows of subplots
    cbar_dist = 1.01
    cbar_ax = fig.add_axes([cbar_dist, cbar_bottom, 0.03, cbar_height])
    cbar = plt.colorbar(im, cax=cbar_ax)

    cbar_ax.set_title(legend_type, size=12)
    plt.show()
_images/64d0567740a05f6be23123a0c57fb7dda98393168e95547b1e732f2fd37346e0.png _images/271479ef2a4d6ab6fad6912cd8231883ad06044a1176e4789d8770ee7fe99e53.png _images/7a823ec1950355e286b5485a9e2463bf68bbda3e647d07556508dc031111cd39.png

Generate g-factor maps#

# map types
map_types = ["acq-coilQaSagSmall_GFactor", "acq-coilQaTra_GFactor", "T2starw"]

sites = ["CRMBM", "MNI", "MPI", "MSSM", "UCL", "MGH", "NTNU"]
site_colors = ['cornflowerblue', 'firebrick', 'limegreen', 'mediumpurple', 'royalblue', 'darkred', 'green']

# legend types
legend_types = ["1/g", "1/g", "[arb]"]

# Select individual subject to show
ind_subject = '2'  # Here we select subject 2 because it has the most complete data

mean_gfac = {}
max_gfac = {}

for map_type, legend_type in zip(map_types,legend_types):
    
    # Create a figure with multiple subplots
    fig, axes = plt.subplots(2, 4, figsize=(10, 8))
    font_size = 12
    axes=axes.flatten() 

    for i,site in enumerate(sites):
        # Load data
        if map_type=="T2starw":
            os.chdir(os.path.join(path_data, f"sub-{site}{ind_subject}", "anat"))
            map=nib.load(f"sub-{site}{ind_subject}_{map_type}.nii.gz")
            data=map.get_fdata()[:,:,round(map.get_fdata().shape[2]/2)]
        else:
            os.chdir(os.path.join(path_data, f"sub-{site}{ind_subject}", "fmap"))
            map=nib.load(f"sub-{site}{ind_subject}_{map_type}.nii.gz")
            # The 4th dimension inlcudes 12 acceleration maps: 
            #['R 2','R 3', 'R 4', 'R 6', 'R 8', 'R 2 x 2', 'R 2 x 3', 'R 3 x 2', 'R 3 x 3', 'R 3 x 4', 'R 4 x 3', 'R 4 x 4']
            if map_type=="acq-coilQaSagSmall_GFactor":   
                # show the R = 2 x 2 map
                data=(map.get_fdata()[64:191,64:191,round(map.get_fdata().shape[2]/2),0])/1000
                gfac_data=(map.get_fdata()[round(map.get_fdata().shape[0]/2)-10:round(map.get_fdata().shape[0]/2)+10,round(map.get_fdata().shape[1]/2)-10:round(map.get_fdata().shape[1]/2)+10,round(map.get_fdata().shape[2]/2),5])
            else:
                # show the R = 2 map
                data=(map.get_fdata()[192:574,192:574,round(map.get_fdata().shape[2]/2),0])/1000
                gfac_data=(map.get_fdata()[round(map.get_fdata().shape[0]/2)-30:round(map.get_fdata().shape[0]/2)+30,round(map.get_fdata().shape[1]/2)-30:round(map.get_fdata().shape[1]/2)+30,round(map.get_fdata().shape[2]/2),0])
            
            mean_gfac[site]=np.nanmean(gfac_data)/1000
            max_gfac[site]=np.max(gfac_data)/1000

        # Plot  
        splot=axes[i]
        dynmin = 0 
        if map_type=="T2starw":
            dynmax = 3000
            axes[-1].axis('off')
        else:
            dynmax = 1
            axes[-1].axis('off')
            splot.text(0, 3, r'mean 1/g='+str(round(mean_gfac[site],4)), size=10)
            
            if map_type=="acq-coilQaSagSmall_GFactor":
                x = [data.shape[0]/2-10, data.shape[1]/2-10] 
                y = [data.shape[0]/2-10, data.shape[1]/2+10] 
                splot.plot(x, y, color="black", linewidth=2) 
                
                x = [data.shape[0]/2-10, data.shape[1]/2+10] 
                y = [data.shape[0]/2+10, data.shape[1]/2+10] 
                splot.plot(x, y, color="black", linewidth=2) 
    
                x = [data.shape[0]/2+10, data.shape[1]/2+10] 
                y = [data.shape[0]/2+10, data.shape[1]/2-10] 
                splot.plot(x, y, color="black", linewidth=2)
    
                x = [data.shape[0]/2+10, data.shape[1]/2-10] 
                y = [data.shape[0]/2-10, data.shape[1]/2-10] 
                splot.plot(x, y, color="black", linewidth=2)  
            else:
                x = [data.shape[0]/2-30, data.shape[1]/2-30] 
                y = [data.shape[0]/2-30, data.shape[1]/2+30] 
                splot.plot(x, y, color="black", linewidth=2) 
                
                x = [data.shape[0]/2-30, data.shape[1]/2+30] 
                y = [data.shape[0]/2+30, data.shape[1]/2+30] 
                splot.plot(x, y, color="black", linewidth=2) 
    
                x = [data.shape[0]/2+30, data.shape[1]/2+30] 
                y = [data.shape[0]/2+30, data.shape[1]/2-30] 
                splot.plot(x, y, color="black", linewidth=2)
    
                x = [data.shape[0]/2+30, data.shape[1]/2-30] 
                y = [data.shape[0]/2-30, data.shape[1]/2-30] 
                splot.plot(x, y, color="black", linewidth=2) 
            
        im = splot.imshow((data.T), cmap='viridis', origin='lower',vmin=dynmin,vmax=dynmax)  
        splot.set_title(site, size=font_size,color=site_colors[i])
        splot.axis('off')
    
    plt.tight_layout()

    # Colorbar
    # Assume that the colorbar should start at the bottom of the lower row of subplots and
    # extend to the top of the upper row of subplots
    cbar_bottom = 0.25  # This might need adjustment
    cbar_height = 0.5  # This represents the total height of both rows of subplots
    cbar_dist = 1.01
    cbar_ax = fig.add_axes([cbar_dist, cbar_bottom, 0.03, cbar_height])
    cbar = plt.colorbar(im, cax=cbar_ax)

    cbar_ax.set_title(legend_type, size=12)
    plt.show()
_images/66b2898c907750a3dedfe1e3e4181adbbf6b7ecd387d92dcb1e36b97e0e91024.png _images/f3c525f23e85dd28adcc67d054cb0a17ad5bd57791c376367ce32fbc4972717a.png _images/7e427164953471b7167b1896d17e13c5edceb41e770cf77f85852b6fb89ff9f6.png

Generate tiled figure with individual channel on GRE scans#

sites = ["CRMBM", "UCL", "MNI", "MGH", "MPI", "NTNU", "MSSM"]

# Select subject to show
subject = '1'  # and here we select subject 1 because it has the most complete data

        
for i,site in enumerate(sites):

    gre_files=sorted(glob.glob(os.path.join(path_data, f"sub-{site}{subject}", "anat", '*uncombined*.nii.gz')))
        
    #Tiled figure in a five-row layout
    rows=int(np.ceil(len(gre_files)/4))
    cols=int(np.ceil(len(gre_files)/rows))

    fig=plt.figure(figsize=(15, 20))
    
    ax = fig.subplots(rows,cols,squeeze=True)
    
    for row in range(rows):
        for col in range(cols):

            i = row*cols+col

            if i < len(gre_files):
            
                #read in files
                data_to_plot=(nib.load(gre_files[i])).get_fdata() #load in nifti object, get only image data
                data_to_plot=np.rot90(data_to_plot[:,:,int(np.floor(data_to_plot.shape[2]/2))]) #central slice
           
                ax[row,col].imshow(data_to_plot,cmap=plt.cm.gray,clim=[0, 300])
                ax[row,col].text(0.5, 0.05, 'Rx channel : ' + str(i+1),horizontalalignment='center', transform=ax[row,col].transAxes,color='white',fontsize=17)
                ax[row,col].axis('off')

    plt.axis('off')
    plt.subplots_adjust(hspace=0,wspace=0)
    fig.suptitle(site, fontsize=20, y=0.9)
_images/47500b74ddc60430339fdc8da8387dd26733f894cc9f3b847086270cbbcee2dd.png _images/54819a4ffe4461428c2ea4037ff49a47fd55cb5968a1af0f82736e3456a09298.png _images/db09f26eb2067abff3f2267ffae337ee37a4f20536c996b5e204bcf96005c8ae.png _images/51817a98e966fea40af8a08049193f0717b3109e82b4286bd9c597bd7edd4ef0.png _images/814ce7bbf1ff7b8ad98ad61b37cb3270ca47829152c38d10708d3b544ebc1985.png _images/b53b93efde9e624422238176e0557cce6dcf72d6decd7bd774f9f06f67cc5e12.png _images/411167900e0423547436de46c97222b53fb0d33e5963d5a5c3f422774d2ebbe2.png

Finished#

# Indicate duration of data processing

end_time = datetime.now()
total_time = (end_time - start_time).total_seconds()

# Convert seconds to a timedelta object
total_time_delta = timedelta(seconds=total_time)

# Format the timedelta object to a string
formatted_time = str(total_time_delta)

# Pad the string representation if less than an hour
formatted_time = formatted_time.rjust(8, '0')

print(f"Total Runtime [hour:min:sec]: {formatted_time}")
Total Runtime [hour:min:sec]: 1:24:16.771705