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,  5.20 entities/s]
📁 Traversing directories for ds005025 : 7 entities [00:01,  5.02 entities/s]
📁 Traversing directories for ds005025 : 9 entities [00:01,  5.10 entities/s]
📁 Traversing directories for ds005025 : 11 entities [00:02,  5.07 entities/s]
📁 Traversing directories for ds005025 : 13 entities [00:02,  5.88 entities/s]
📁 Traversing directories for ds005025 : 15 entities [00:02,  5.45 entities/s]
📁 Traversing directories for ds005025 : 17 entities [00:03,  6.11 entities/s]
📁 Traversing directories for ds005025 : 19 entities [00:03,  5.58 entities/s]
📁 Traversing directories for ds005025 : 21 entities [00:03,  5.97 entities/s]
📁 Traversing directories for ds005025 : 23 entities [00:04,  6.31 entities/s]
📁 Traversing directories for ds005025 : 27 entities [00:04,  7.57 entities/s]
📁 Traversing directories for ds005025 : 31 entities [00:05,  7.08 entities/s]
📁 Traversing directories for ds005025 : 33 entities [00:05,  7.40 entities/s]
📁 Traversing directories for ds005025 : 35 entities [00:05,  8.52 entities/s]
📁 Traversing directories for ds005025 : 37 entities [00:05,  7.17 entities/s]
📁 Traversing directories for ds005025 : 38 entities [00:05,  7.33 entities/s]
📁 Traversing directories for ds005025 : 39 entities [00:06,  6.52 entities/s]
📁 Traversing directories for ds005025 : 41 entities [00:06,  6.98 entities/s]
📁 Traversing directories for ds005025 : 42 entities [00:06,  6.23 entities/s]
📁 Traversing directories for ds005025 : 44 entities [00:07,  5.92 entities/s]
📁 Traversing directories for ds005025 : 46 entities [00:07,  6.09 entities/s]
📁 Traversing directories for ds005025 : 50 entities [00:07, 10.11 entities/s]
📁 Traversing directories for ds005025 : 52 entities [00:07,  8.20 entities/s]
📁 Traversing directories for ds005025 : 54 entities [00:08,  6.07 entities/s]
📁 Traversing directories for ds005025 : 56 entities [00:08,  6.72 entities/s]
📁 Traversing directories for ds005025 : 58 entities [00:08,  7.04 entities/s]
📁 Traversing directories for ds005025 : 82 entities [00:08, 35.90 entities/s]
📁 Traversing directories for ds005025 : 104 entities [00:09, 52.05 entities/s]
📁 Traversing directories for ds005025 : 128 entities [00:09, 76.89 entities/s]
📁 Traversing directories for ds005025 : 150 entities [00:09, 81.20 entities/s]
📁 Traversing directories for ds005025 : 174 entities [00:09, 103.06 entities/s]
📁 Traversing directories for ds005025 : 196 entities [00:09, 99.50 entities/s] 
📁 Traversing directories for ds005025 : 244 entities [00:10, 155.30 entities/s]
📁 Traversing directories for ds005025 : 266 entities [00:10, 130.04 entities/s]
📁 Traversing directories for ds005025 : 314 entities [00:10, 164.66 entities/s]
📁 Traversing directories for ds005025 : 336 entities [00:10, 140.65 entities/s]
📁 Traversing directories for ds005025 : 384 entities [00:10, 193.49 entities/s]
📁 Traversing directories for ds005025 : 408 entities [00:11, 158.27 entities/s]
📁 Traversing directories for ds005025 : 454 entities [00:11, 202.55 entities/s]
📁 Traversing directories for ds005025 : 479 entities [00:11, 163.34 entities/s]
📁 Traversing directories for ds005025 : 524 entities [00:11, 205.72 entities/s]
📁 Traversing directories for ds005025 : 550 entities [00:11, 171.09 entities/s]
📁 Traversing directories for ds005025 : 594 entities [00:11, 216.97 entities/s]
📁 Traversing directories for ds005025 : 622 entities [00:12, 175.08 entities/s]
📁 Traversing directories for ds005025 : 668 entities [00:12, 223.15 entities/s]
📁 Traversing directories for ds005025 : 697 entities [00:12, 186.08 entities/s]
📁 Traversing directories for ds005025 : 746 entities [00:12, 230.36 entities/s]
📁 Traversing directories for ds005025 : 774 entities [00:13, 164.41 entities/s]
📁 Traversing directories for ds005025 : 820 entities [00:13, 211.49 entities/s]
📁 Traversing directories for ds005025 : 849 entities [00:13, 177.96 entities/s]
📁 Traversing directories for ds005025 : 920 entities [00:13, 258.75 entities/s]
📁 Traversing directories for ds005025 : 954 entities [00:13, 215.93 entities/s]
📁 Traversing directories for ds005025 : 1010 entities [00:13, 258.91 entities/s]
📁 Traversing directories for ds005025 : 1042 entities [00:14, 212.59 entities/s]
📁 Traversing directories for ds005025 : 1108 entities [00:14, 272.08 entities/s]
📁 Traversing directories for ds005025 : 1141 entities [00:14, 226.40 entities/s]
📁 Traversing directories for ds005025 : 1180 entities [00:14, 247.37 entities/s]
📁 Traversing directories for ds005025 : 1209 entities [00:14, 203.85 entities/s]
📁 Traversing directories for ds005025 : 1254 entities [00:14, 244.38 entities/s]
📁 Traversing directories for ds005025 : 1283 entities [00:15, 194.40 entities/s]
📁 Traversing directories for ds005025 : 1332 entities [00:15, 241.71 entities/s]
📁 Traversing directories for ds005025 : 1362 entities [00:15, 197.14 entities/s]
📁 Traversing directories for ds005025 : 1387 entities [00:15, 199.91 entities/s]
📁 Traversing directories for ds005025 : 1411 entities [00:15, 168.92 entities/s]
📁 Traversing directories for ds005025 : 1431 entities [00:16, 167.37 entities/s]
📁 Traversing directories for ds005025 : 1450 entities [00:16, 131.86 entities/s]
📁 Traversing directories for ds005025 : 1466 entities [00:16, 129.46 entities/s]
📁 Traversing directories for ds005025 : 1487 entities [00:16, 90.75 entities/s] 
📥 Retrieving up to 1487 files (5 concurrent downloads). 
sub-CRMBM1_UNIT1_label-disc.json:   0%|               | 0.00/198 [00:00<?, ?B/s]
                                                                                
.bidsignore:   0%|                                   | 0.00/92.0 [00:00<?, ?B/s]
                                                                                

CHANGES:   0%|                                      | 0.00/1.16k [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-CRMBM1_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-CRMBM2_UNIT1_label-disc.json:   0%|               | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_UNIT1_label-disc.nii.gz:   0%|           | 0.00/73.2k [00:00<?, ?B/s]

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

                                                                                

sub-MGH2_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-MGH1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/47.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-MGH3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [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-MPI1_UNIT1_label-disc.json:   0%|                 | 0.00/198 [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.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-MPI2_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-MNI3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]

sub-MPI1_UNIT1_label-SC_seg.nii.gz:   0%|           | 0.00/83.2k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI2_UNIT1_label-SC_seg.nii.gz:   0%|           | 0.00/84.3k [00:00<?, ?B/s]
sub-MPI1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [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.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]

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

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

sub-MSSM2_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-MSSM3_UNIT1_label-disc.json:   0%|                | 0.00/198 [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-NTNU2_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]

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


                                                                                
sub-NTNU1_UNIT1_label-disc.nii.gz:   0%|            | 0.00/73.2k [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_UNIT1_label-disc.json:   0%|                | 0.00/198 [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-disc.nii.gz:   0%|            | 0.00/73.2k [00:00<?, ?B/s]
                                                                                


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

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


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

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

                                                                                

sub-UCL3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-CRMBM1_inv-1_MP2RAGE.json:   0%|                | 0.00/2.11k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_T2starw.nii.gz:   0%|                    | 0.00/1.06M [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-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:   0%|                      | 0.00/26.6M [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 732k/17.5M [00:00<00:02, 7.43M



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



                                                                                

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 714k/15.6M [00:00<00:02, 7.28M


sub-CRMBM1_UNIT1.nii.gz:   2%|▎             | 680k/26.6M [00:00<00:03, 6.91MB/s]
sub-CRMBM1_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.43M/17.5M [00:00<00:02, 6.39

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.44M/15.6M [00:00<00:01, 7.56


sub-CRMBM1_UNIT1.nii.gz:   5%|▋            | 1.43M/26.6M [00:00<00:03, 7.51MB/s]
sub-CRMBM1_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                



sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/805k [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.09M/17.5M [00:00<00:02, 6.43

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.17M/15.6M [00:00<00:01, 7.44


sub-CRMBM1_UNIT1.nii.gz:   8%|█            | 2.15M/26.6M [00:00<00:03, 7.13MB/s]
sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:  97%|▉| 783k/805k [00:00<00:00, 8.00M



                                                                                
sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/826k [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.74M/17.5M [00:00<00:02, 6.55

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


sub-CRMBM1_UNIT1.nii.gz:  12%|█▌           | 3.23M/26.6M [00:00<00:02, 8.72MB/s]
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.16M/17.5M [00:00<00:01, 8.79

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


sub-CRMBM1_UNIT1.nii.gz:  17%|██▏          | 4.48M/26.6M [00:00<00:02, 9.86MB/s]



sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/886k [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 5.72M/17.5M [00:00<00:01, 11.2

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.08M/15.6M [00:00<00:00, 11.9


sub-CRMBM1_UNIT1.nii.gz:  23%|██▉          | 5.99M/26.6M [00:00<00:01, 11.8MB/s]



sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:  96%|▉| 850k/886k [00:00<00:00, 8.64M



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



                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 7.22M/15.6M [00:00<00:00, 11.2
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.80M/17.5M [00:00<00:01, 10.5


sub-CRMBM1_UNIT1.nii.gz:  27%|███▍         | 7.13M/26.6M [00:00<00:01, 11.0MB/s]
sub-CRMBM1_rec-uncombined5_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_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 8.47M/15.6M [00:00<00:00, 11.8
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.08M/17.5M [00:00<00:00, 11.3


sub-CRMBM1_UNIT1.nii.gz:  32%|████         | 8.38M/26.6M [00:00<00:01, 11.6MB/s]
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 9.35M/17.5M [00:00<00:00, 11.6


sub-CRMBM1_UNIT1.nii.gz:  36%|████▋        | 9.65M/26.6M [00:00<00:01, 11.8MB/s]

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 9.77M/15.6M [00:00<00:00, 11.9
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/777k [00:00<?, ?B/s]
sub-CRMBM1_rec-uncombined6_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]




                                                                                


sub-CRMBM1_UNIT1.nii.gz:  41%|█████▎       | 10.9M/26.6M [00:01<00:01, 12.0MB/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 10.6M/17.5M [00:01<00:00, 11.8

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 11.0M/15.6M [00:01<00:00, 12.1
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:  58%|▌| 454k/777k [00:00<00:00, 4.62M



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


sub-CRMBM1_UNIT1.nii.gz:  45%|█████▉       | 12.1M/26.6M [00:01<00:01, 11.7MB/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 11.7M/17.5M [00:01<00:00, 11.5
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  78%|▊| 12.2M/15.6M [00:01<00:00, 11.7
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 13.3M/17.5M [00:01<00:00, 11.9

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.7M/15.6M [00:01<00:00, 12.1


sub-CRMBM1_UNIT1.nii.gz:  51%|██████▋      | 13.6M/26.6M [00:01<00:01, 12.1MB/s]



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

sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  96%|▉| 14.9M/15.6M [00:01<00:00, 11.9
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  83%|▊| 14.5M/17.5M [00:01<00:00, 11.7


sub-CRMBM1_UNIT1.nii.gz:  56%|███████▎     | 14.9M/26.6M [00:01<00:01, 12.0MB/s]



sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:  80%|▊| 647k/804k [00:00<00:00, 6.20M



                                                                                
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 15.6M/17.5M [00:01<00:00, 11.3


sub-CRMBM1_UNIT1.nii.gz:  60%|███████▊     | 16.0M/26.6M [00:01<00:00, 11.5MB/s]

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

                                                                                
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/797k [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 17.0M/17.5M [00:01<00:00, 12.2


sub-CRMBM1_UNIT1.nii.gz:  65%|████████▍    | 17.4M/26.6M [00:01<00:00, 12.3MB/s]



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



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

sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:  92%|▉| 730k/797k [00:00<00:00, 7.37M

                                                                                
                                                                                
sub-CRMBM1_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.18k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:  58%|██▉  | 492k/854k [00:00<00:00, 3.98MB/s]


sub-CRMBM1_UNIT1.nii.gz:  70%|█████████    | 18.6M/26.6M [00:01<00:00, 9.97MB/s]



                                                                                
sub-CRMBM1_acq-anat_TB1TFL.json:   0%|              | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_UNIT1.nii.gz:  75%|█████████▋   | 19.9M/26.6M [00:01<00:00, 11.0MB/s]
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]

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

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


sub-CRMBM1_UNIT1.nii.gz:  85%|███████████  | 22.7M/26.6M [00:02<00:00, 15.9MB/s]
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  26%|▎| 731k/2.69M [00:00<00:00, 7



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



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

sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  16%|▏| 680k/4.21M [00:00<00:00, 6.95M


sub-CRMBM1_UNIT1.nii.gz:  92%|███████████▉ | 24.4M/26.6M [00:02<00:00, 15.1MB/s]
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  53%|▌| 1.43M/2.69M [00:00<00:00, 
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   7%| | 883k/11.7M [00:00<00:01, 9.03MB

sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  36%|▎| 1.51M/4.21M [00:00<00:00, 8.07




sub-CRMBM1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.7k [00:00<?, ?B/s]
sub-CRMBM1_UNIT1.nii.gz:  97%|████████████▋| 25.9M/26.6M [00:02<00:00, 15.1MB/s]
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  92%|▉| 2.49M/2.69M [00:00<00:00, 




                                                                                
                                                                                


sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.29M/4.21M [00:00<00:00, 6.96
                                                                                



sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 1.73M/11.7M [00:00<00:01, 6.15M
sub-CRMBM1_acq-famp_TB1TFL.json:   0%|              | 0.00/2.70k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                


sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  71%|▋| 2.97M/4.21M [00:00<00:00, 5.78
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 2.36M/11.7M [00:00<00:01, 5.70M
                                                                                
sub-CRMBM1_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.15k [00:00<?, ?B/s]
                                                                                

sub-CRMBM1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.4k [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 3.85M/11.7M [00:00<00:00, 8.69M
                                                                                
sub-CRMBM1_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/93.3k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  46%|▍| 5.36M/11.7M [00:00<00:00, 10.9M
sub-CRMBM1_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
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:   0%|             | 0.00/949k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  72%|▋| 8.46M/11.7M [00:00<00:00, 15.7M
sub-CRMBM1_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.13k [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-famp_TB1TFL.nii.gz:  16%|▊    | 153k/949k [00:00<00:00, 1.25MB/s]
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  85%|▊| 9.97M/11.7M [00:00<00:00, 14.6M

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

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

sub-CRMBM2_UNIT1.json:   0%|                        | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  97%|▉| 11.4M/11.7M [00:01<00:00, 12.6M
                                                                                

sub-CRMBM2_T2starw.nii.gz:  45%|█████▊       | 443k/990k [00:00<00:00, 3.70MB/s]

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

sub-CRMBM2_UNIT1.nii.gz:   0%|                      | 0.00/26.8M [00:00<?, ?B/s]
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.7M [00:00<?, ?B/s]


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


                                                                                
sub-CRMBM2_UNIT1.nii.gz:   4%|▍            | 1.01M/26.8M [00:00<00:02, 10.6MB/s]


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


                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 798k/15.7M [00:00<00:02, 6.52M


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


                                                                                
sub-CRMBM2_UNIT1.nii.gz:   8%|▉            | 2.03M/26.8M [00:00<00:02, 9.58MB/s]

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 1.84M/15.7M [00:00<00:01, 8.98


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




sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  15%|█▉           | 4.08M/26.8M [00:00<00:01, 14.7MB/s]

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 2.81M/15.7M [00:00<00:01, 9.45


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 884k/13.7M [00:00<00:01, 9.01M
                                                                                




sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:  29%|▎| 216k/753k [00:00<00:00, 2.20M
sub-CRMBM2_UNIT1.nii.gz:  21%|██▋          | 5.52M/26.8M [00:00<00:01, 13.4MB/s]
                                                                                

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 3.73M/15.7M [00:00<00:01, 7.63


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 1.73M/13.7M [00:00<00:01, 6.71
sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/815k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  25%|███▎         | 6.83M/26.8M [00:00<00:01, 12.8MB/s]
sub-CRMBM2_rec-uncombined5_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]




                                                                                
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 2.41M/13.7M [00:00<00:01, 6.54

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.51M/15.7M [00:00<00:01, 7.25



sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:  64%|▋| 526k/815k [00:00<00:00, 5.35M




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



                                                                                
sub-CRMBM2_UNIT1.nii.gz:  30%|███▉         | 8.08M/26.8M [00:00<00:01, 11.2MB/s]
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.05M/13.7M [00:00<00:01, 6.00
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 5.24M/15.7M [00:00<00:01, 6.65
sub-CRMBM2_UNIT1.nii.gz:  35%|████▌        | 9.39M/26.8M [00:00<00:01, 11.9MB/s]
sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/771k [00:00<?, ?B/s]


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 4.87M/13.7M [00:00<00:00, 9.99




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

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.29M/15.7M [00:00<00:01, 7.81
sub-CRMBM2_UNIT1.nii.gz:  40%|█████▎       | 10.8M/26.8M [00:00<00:01, 12.8MB/s]
sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:  97%|▉| 747k/771k [00:00<00:00, 7.55M



                                                                                
sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:  89%|▉| 646k/723k [00:00<00:00, 5.69M


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 6.08M/13.7M [00:00<00:00, 10.1




                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  45%|▍| 7.09M/15.7M [00:01<00:01, 6.78
sub-CRMBM2_UNIT1.nii.gz:  45%|█████▊       | 12.1M/26.8M [00:01<00:01, 11.6MB/s]



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



                                                                                
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 7.25M/13.7M [00:00<00:00, 10.0
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  50%|▍| 7.85M/15.7M [00:01<00:01, 7.08
sub-CRMBM2_UNIT1.nii.gz:  50%|██████▌      | 13.5M/26.8M [00:01<00:01, 12.3MB/s]
sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/700k [00:00<?, ?B/s]


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 9.09M/13.7M [00:00<00:00, 12.6




sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 8.86M/15.7M [00:01<00:00, 8.00
sub-CRMBM2_UNIT1.nii.gz:  56%|███████▎     | 15.0M/26.8M [00:01<00:00, 13.3MB/s]
                                                                                




sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:  79%|▊| 592k/753k [00:00<00:00, 5.53M
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  75%|▊| 10.4M/13.7M [00:01<00:00, 11.9




                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 9.68M/15.7M [00:01<00:00, 7.04



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



                                                                                
sub-CRMBM2_UNIT1.nii.gz:  61%|███████▉     | 16.3M/26.8M [00:01<00:01, 10.8MB/s]



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



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



                                                                                


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 11.5M/13.7M [00:01<00:00, 9.53
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 10.4M/15.7M [00:01<00:00, 6.10
sub-CRMBM2_UNIT1.nii.gz:  65%|████████▍    | 17.4M/26.8M [00:01<00:00, 10.4MB/s]
sub-CRMBM2_acq-anat_TB1TFL.json:   0%|              | 0.00/2.71k [00:00<?, ?B/s]



                                                                                


sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 12.9M/13.7M [00:01<00:00, 10.4
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 11.1M/15.7M [00:01<00:00, 6.45
sub-CRMBM2_UNIT1.nii.gz:  70%|█████████    | 18.7M/26.8M [00:01<00:00, 11.2MB/s]


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

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 12.1M/15.7M [00:01<00:00, 7.36
sub-CRMBM2_UNIT1.nii.gz:  76%|█████████▉   | 20.4M/26.8M [00:01<00:00, 12.8MB/s]
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/731k [00:00<?, ?B/s]
sub-CRMBM2_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/802k [00:00<?, ?B/s]


sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  24%|▏| 968k/4.02M [00:00<00:00, 9.86M

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  83%|▊| 13.0M/15.7M [00:01<00:00, 7.93
sub-CRMBM2_UNIT1.nii.gz:  82%|██████████▋  | 21.9M/26.8M [00:01<00:00, 13.7MB/s]
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:  75%|▊| 552k/731k [00:00<00:00, 5.61M



                                                                                
sub-CRMBM2_acq-anat_TB1TFL.nii.gz:  70%|███▍ | 561k/802k [00:00<00:00, 5.23MB/s]




                                                                                
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  47%|▍| 1.90M/4.02M [00:00<00:00, 7.12
sub-CRMBM2_UNIT1.nii.gz:  87%|███████████▎ | 23.3M/26.8M [00:02<00:00, 12.1MB/s]

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.8M/15.7M [00:02<00:00, 6.99
sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  96%|▉| 3.87M/4.02M [00:00<00:00, 12.2



sub-CRMBM2_acq-coilQaTra_GFactor.json:   0%|        | 0.00/2.13k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  94%|████████████▏| 25.2M/26.8M [00:02<00:00, 14.2MB/s]



                                                                                

sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 14.9M/15.7M [00:02<00:00, 8.12
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]


                                                                                
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  23%|▏| 634k/2.69M [00:00<00:00, 6

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

                                                                                

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

                                                                                
sub-CRMBM2_UNIT1.nii.gz:  99%|████████████▉| 26.7M/26.8M [00:02<00:00, 10.5MB/s]
                                                                                
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  46%|▍| 1.25M/2.69M [00:00<00:00, 
sub-CRMBM2_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-CRMBM2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.5k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]
                                                                                

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

sub-CRMBM2_acq-famp_TB1TFL.json:   0%|              | 0.00/2.74k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/91.7k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]
                                                                                

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

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

                                                                                
sub-CRMBM2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/80.0k [00:00<?, ?B/s]


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


                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   1%| | 147k/11.7M [00:00<00:10, 1.20MB

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


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


                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   6%| | 776k/11.7M [00:00<00:02, 3.95MB
sub-CRMBM3_T2starw.json:   0%|                      | 0.00/2.42k [00:00<?, ?B/s]

sub-CRMBM2_acq-famp_TB1TFL.nii.gz:  93%|████▋| 867k/929k [00:00<00:00, 8.82MB/s]


                                                                                

                                                                                
sub-CRMBM3_T2starw.nii.gz:   0%|                    | 0.00/1.03M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.32M/11.7M [00:00<00:02, 4.68M


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


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



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


                                                                                



                                                                                
sub-CRMBM3_T2starw.nii.gz:  41%|████▉       | 429k/1.03M [00:00<00:00, 4.28MB/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 1.79M/11.7M [00:00<00:02, 4.29M

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

                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  23%|▏| 2.69M/11.7M [00:00<00:01, 5.98M
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.1M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  65%|▋| 7.68M/11.7M [00:00<00:00, 20.7M
sub-CRMBM3_UNIT1.nii.gz:   0%|                      | 0.00/26.7M [00:00<?, ?B/s]



sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/788k [00:00<?, ?B/s]
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 934k/15.1M [00:00<00:01, 9.52M
sub-CRMBM3_UNIT1.nii.gz:   3%|▍             | 849k/26.7M [00:00<00:03, 8.64MB/s]



                                                                                



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/17.3M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 9.77M/11.7M [00:00<00:00, 17.2M
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.82M/15.1M [00:00<00:01, 8.04


sub-CRMBM3_UNIT1.nii.gz:   6%|▊            | 1.66M/26.7M [00:00<00:03, 7.35MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 883k/17.3M [00:00<00:01, 9.02M
sub-CRMBM3_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]




                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 11.6M/11.7M [00:00<00:00, 15.2M

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 2.61M/15.1M [00:00<00:01, 7.30
                                                                                
sub-CRMBM3_UNIT1.nii.gz:   9%|█▏           | 2.37M/26.7M [00:00<00:04, 6.16MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 1.73M/17.3M [00:00<00:02, 6.63
sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/798k [00:00<?, ?B/s]

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.32M/15.1M [00:00<00:01, 7.33
sub-CRMBM3_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]




                                                                                


sub-CRMBM3_UNIT1.nii.gz:  12%|█▌           | 3.32M/26.7M [00:00<00:03, 7.03MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.41M/17.3M [00:00<00:02, 6.80
sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:  74%|▋| 589k/798k [00:00<00:00, 6.01M
                                                                                


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  27%|▎| 4.03M/15.1M [00:00<00:01, 7.12
sub-CRMBM3_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_UNIT1.nii.gz:  16%|██           | 4.18M/26.7M [00:00<00:03, 7.30MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.08M/17.3M [00:00<00:02, 6.50

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  32%|▎| 4.81M/15.1M [00:00<00:01, 7.44
sub-CRMBM3_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]




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





                                                                                
sub-CRMBM3_UNIT1.nii.gz:  21%|██▋          | 5.62M/26.7M [00:00<00:02, 8.72MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 4.47M/17.3M [00:00<00:01, 8.23

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 5.61M/15.1M [00:00<00:01, 7.70
sub-CRMBM3_UNIT1.nii.gz:  28%|███▋         | 7.48M/26.7M [00:00<00:01, 11.7MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.38M/17.3M [00:00<00:00, 11.7

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▍| 7.53M/15.1M [00:00<00:00, 11.5
sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/758k [00:00<?, ?B/s]
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/861k [00:00<?, ?B/s]


sub-CRMBM3_UNIT1.nii.gz:  34%|████▍        | 9.14M/26.7M [00:00<00:01, 13.3MB/s]

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  61%|▌| 9.25M/15.1M [00:00<00:00, 13.5



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 8.08M/17.3M [00:00<00:00, 13.4
sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:  94%|▉| 714k/758k [00:00<00:00, 7.25M
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:  85%|▊| 732k/861k [00:00<00:00, 7.46M
                                                                                





                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 10.6M/15.1M [00:01<00:00, 11.7


sub-CRMBM3_UNIT1.nii.gz:  39%|█████        | 10.5M/26.7M [00:01<00:01, 11.6MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 9.43M/17.3M [00:00<00:00, 11.7
sub-CRMBM3_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  78%|▊| 11.7M/15.1M [00:01<00:00, 11.3
sub-CRMBM3_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/775k [00:00<?, ?B/s]


sub-CRMBM3_UNIT1.nii.gz:  44%|█████▋       | 11.7M/26.7M [00:01<00:01, 11.3MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 10.6M/17.3M [00:01<00:00, 11.4
                                                                                

sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/817k [00:00<?, ?B/s]
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  87%|▊| 13.2M/15.1M [00:01<00:00, 11.6


sub-CRMBM3_UNIT1.nii.gz:  49%|██████▎      | 13.0M/26.7M [00:01<00:01, 11.4MB/s]



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 11.9M/17.3M [00:01<00:00, 11.4
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:  73%|▋| 600k/817k [00:00<00:00, 6.14M
                                                                                
sub-CRMBM3_UNIT1.nii.gz:  54%|███████      | 14.4M/26.7M [00:01<00:01, 11.5MB/s]

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 14.7M/15.1M [00:01<00:00, 11.7



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 13.4M/17.3M [00:01<00:00, 11.6

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

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

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


sub-CRMBM3_UNIT1.nii.gz:  58%|███████▌     | 15.5M/26.7M [00:01<00:01, 11.0MB/s]

                                                                                



sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  84%|▊| 14.5M/17.3M [00:01<00:00, 11.0
sub-CRMBM3_rec-uncombined6_T2starw.nii.gz:  43%|▍| 356k/835k [00:00<00:00, 3.62M
                                                                                

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




sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 15.6M/17.3M [00:01<00:00, 10.7


sub-CRMBM3_UNIT1.nii.gz:  62%|████████     | 16.6M/26.7M [00:01<00:01, 10.5MB/s]
sub-CRMBM3_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 16.6M/17.3M [00:01<00:00, 10.5


sub-CRMBM3_UNIT1.nii.gz:  66%|████████▌    | 17.6M/26.7M [00:01<00:00, 10.3MB/s]
                                                                                
sub-CRMBM3_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.18k [00:00<?, ?B/s]
                                                                                

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


sub-CRMBM3_UNIT1.nii.gz:  71%|█████████▎   | 19.0M/26.7M [00:01<00:00, 11.4MB/s]
sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/773k [00:00<?, ?B/s]
                                                                                



sub-CRMBM3_UNIT1.nii.gz:  77%|█████████▉   | 20.4M/26.7M [00:02<00:00, 12.3MB/s]
sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:  99%|▉| 764k/773k [00:00<00:00, 7.79M

                                                                                
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:   0%|     | 0.00/4.11M [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.json:   0%|        | 0.00/2.07k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_UNIT1.nii.gz:  81%|██████████▌  | 21.6M/26.7M [00:02<00:00, 11.6MB/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  16%|▏| 680k/4.11M [00:00<00:00, 6.93M

sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  28%|▎| 764k/2.69M [00:00<00:00, 7



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
sub-CRMBM3_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]




                                                                                
sub-CRMBM3_UNIT1.nii.gz:  86%|███████████▏ | 22.8M/26.7M [00:02<00:00, 11.7MB/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.33M/4.11M [00:00<00:00, 6.68



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   5%| | 544k/11.7M [00:00<00:02, 5.51MB
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  56%|▌| 1.49M/2.69M [00:00<00:00, 
sub-CRMBM3_UNIT1.nii.gz:  91%|███████████▊ | 24.2M/26.7M [00:02<00:00, 12.3MB/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  59%|▌| 2.43M/4.11M [00:00<00:00, 8.84




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




                                                                                
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  88%|▉| 2.36M/2.69M [00:00<00:00, 



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.36M/11.7M [00:00<00:01, 6.36M

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

                                                                                
sub-CRMBM3_UNIT1.nii.gz:  95%|████████████▎| 25.4M/26.7M [00:02<00:00, 10.5MB/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  80%|▊| 3.29M/4.11M [00:00<00:00, 7.47



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 1.98M/11.7M [00:00<00:01, 5.84M
                                                                                
sub-CRMBM3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.4k [00:00<?, ?B/s]


                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  22%|▏| 2.62M/11.7M [00:00<00:01, 5.97M
                                                                                

sub-CRMBM3_acq-famp_TB1TFL.json:   0%|              | 0.00/2.70k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  36%|▎| 4.27M/11.7M [00:00<00:00, 9.69M
sub-CRMBM3_acq-refv-0.66_TB1DREAM.json:   0%|       | 0.00/2.16k [00:00<?, ?B/s]
                                                                                

sub-CRMBM3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.0k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  52%|▌| 6.12M/11.7M [00:00<00:00, 12.8M
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:   0%|             | 0.00/954k [00:00<?, ?B/s]


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


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


sub-CRMBM3_acq-famp_TB1TFL.nii.gz:  32%|█▌   | 306k/954k [00:00<00:00, 2.62MB/s]
                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  78%|▊| 9.21M/11.7M [00:00<00:00, 13.7M
sub-CRMBM3_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_acq-refv_TB1DREAM.nii.gz:   0%|          | 0.00/86.1k [00:00<?, ?B/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:   0%|      | 0.00/91.2k [00:00<?, ?B/s]



sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 10.5M/11.7M [00:01<00:00, 12.8M
                                                                                
sub-MGH1_T2starw.nii.gz:   0%|                      | 0.00/1.27M [00:00<?, ?B/s]
                                                                                

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

                                                                                
sub-MGH1_inv-1_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_T2starw.nii.gz:  35%|████▉         | 459k/1.27M [00:00<00:00, 4.47MB/s]

                                                                                
                                                                                



sub-MGH1_UNIT1.nii.gz:   5%|▊               | 889k/17.0M [00:00<00:02, 7.88MB/s]
sub-MGH1_inv-2_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]
                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/7.98M [00:00<?, ?B/s]
sub-MGH1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                
sub-MGH1_UNIT1.nii.gz:  10%|█▌             | 1.73M/17.0M [00:00<00:02, 7.91MB/s]

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



sub-MGH1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 867k/7.98M [00:00<00:00, 8.82MB/
sub-MGH1_UNIT1.nii.gz:  17%|██▌            | 2.95M/17.0M [00:00<00:01, 9.97MB/s]

sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 866k/9.54M [00:00<00:01, 8.78MB/



                                                                                



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



                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 1.69M/7.98M [00:00<00:00, 6.79MB
sub-MGH1_UNIT1.nii.gz:  23%|███▍           | 3.92M/17.0M [00:00<00:01, 9.48MB/s]



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



                                                                                
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 1.69M/9.54M [00:00<00:01, 6.36MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  31%|▎| 2.46M/7.98M [00:00<00:00, 7.25MB



sub-MGH1_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/779k [00:00<?, ?B/s]
sub-MGH1_UNIT1.nii.gz:  29%|████▎          | 4.97M/17.0M [00:00<00:01, 9.96MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 2.84M/9.54M [00:00<00:00, 8.46MB



                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 3.29M/7.98M [00:00<00:00, 7.76MB
sub-MGH1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/666k [00:00<?, ?B/s]


sub-MGH1_UNIT1.nii.gz:  36%|█████▎         | 6.06M/17.0M [00:00<00:01, 10.4MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  41%|▍| 3.87M/9.54M [00:00<00:00, 9.26MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 4.22M/7.98M [00:00<00:00, 8.43MB



                                                                                
sub-MGH1_UNIT1.nii.gz:  42%|██████▏        | 7.08M/17.0M [00:00<00:01, 10.3MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 5.21M/9.54M [00:00<00:00, 10.8MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  69%|▋| 5.51M/7.98M [00:00<00:00, 10.1MB



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




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




                                                                                
sub-MGH1_UNIT1.nii.gz:  49%|███████▎       | 8.38M/17.0M [00:00<00:00, 11.1MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 6.29M/9.54M [00:00<00:00, 10.9MB



sub-MGH1_rec-uncombined03_T2starw.nii.gz:  84%|▊| 578k/688k [00:00<00:00, 5.88MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 6.50M/7.98M [00:00<00:00, 10.1MB



                                                                                
sub-MGH1_UNIT1.nii.gz:  56%|████████▍      | 9.52M/17.0M [00:00<00:00, 11.4MB/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 7.62M/9.54M [00:00<00:00, 11.8MB
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 7.86M/7.98M [00:00<00:00, 11.4MB
                                                                                
sub-MGH1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/789k [00:00<?, ?B/s]


sub-MGH1_UNIT1.nii.gz:  64%|█████████▌     | 10.9M/17.0M [00:01<00:00, 12.2MB/s]



sub-MGH1_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/771k [00:00<?, ?B/s]
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  92%|▉| 8.82M/9.54M [00:00<00:00, 12.0MB




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




                                                                                
sub-MGH1_rec-uncombined05_T2starw.nii.gz:  86%|▊| 679k/789k [00:00<00:00, 6.53MB


sub-MGH1_UNIT1.nii.gz:  71%|██████████▌    | 12.0M/17.0M [00:01<00:00, 12.0MB/s]
                                                                                
sub-MGH1_rec-uncombined06_T2starw.nii.gz:  75%|▊| 578k/771k [00:00<00:00, 4.78MB

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




                                                                                
sub-MGH1_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_UNIT1.nii.gz:  77%|███████████▌   | 13.2M/17.0M [00:01<00:00, 9.34MB/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_UNIT1.nii.gz:  94%|██████████████▏| 16.1M/17.0M [00:01<00:00, 13.9MB/s]

sub-MGH1_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/871k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined07_T2starw.nii.gz:  97%|▉| 783k/804k [00:00<00:00, 8.00MB
                                                                                



                                                                                
sub-MGH1_rec-uncombined09_T2starw.nii.gz:  60%|▌| 527k/871k [00:00<00:00, 5.04MB
sub-MGH1_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/957k [00:00<?, ?B/s]


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


                                                                                
                                                                                
sub-MGH1_rec-uncombined08_T2starw.nii.gz:  81%|▊| 777k/957k [00:00<00:00, 7.95MB
                                                                                

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

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


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


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


                                                                                

sub-MGH1_rec-uncombined10_T2starw.nii.gz:  93%|▉| 778k/833k [00:00<00:00, 6.76MB
sub-MGH1_rec-uncombined11_T2starw.nii.gz:  88%|▉| 783k/895k [00:00<00:00, 6.75MB


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

                                                                                
sub-MGH1_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/783k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined12_T2starw.nii.gz:  62%|▌| 594k/955k [00:00<00:00, 6.05MB
sub-MGH1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

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


sub-MGH1_rec-uncombined14_T2starw.nii.gz:  89%|▉| 696k/783k [00:00<00:00, 6.06MB
sub-MGH1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/789k [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-uncombined16_T2starw.nii.gz:   0%|      | 0.00/960k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

sub-MGH1_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/985k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined16_T2starw.nii.gz:  48%|▍| 459k/960k [00:00<00:00, 4.69MB


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



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

                                                                                



                                                                                
sub-MGH1_rec-uncombined17_T2starw.nii.gz:  59%|▌| 577k/985k [00:00<00:00, 5.12MB


sub-MGH1_rec-uncombined19_T2starw.nii.gz:  51%|▌| 425k/827k [00:00<00:00, 4.13MB

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

                                                                                
                                                                                



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

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

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

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


                                                                                


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


                                                                                
sub-MGH1_acq-anat_TB1TFL.nii.gz:  88%|██████▏| 816k/927k [00:00<00:00, 7.17MB/s]

sub-MGH1_rec-uncombined20_T2starw.nii.gz:  86%|▊| 798k/922k [00:00<00:00, 7.01MB
                                                                                


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

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

                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.08M/16.1M [00:00<00:01, 10.4MB/
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.44M [00:00<?, ?B/s]


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



                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  16%|▏| 713k/4.44M [00:00<00:00, 7.25MB/
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.08M/16.1M [00:00<00:01, 9.37MB/


sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  18%|▏| 663k/3.70M [00:00<00:00, 6.7



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



                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.41M/4.44M [00:00<00:00, 7.38MB
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 3.32M/16.1M [00:00<00:01, 10.9MB/


sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  37%|▎| 1.38M/3.70M [00:00<00:00, 7.



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



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



                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  48%|▍| 2.12M/4.44M [00:00<00:00, 6.61MB
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.38M/16.1M [00:00<00:01, 10.1MB/


sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  56%|▌| 2.08M/3.70M [00:00<00:00, 6.
sub-MGH1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]



                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  77%|▊| 3.43M/4.44M [00:00<00:00, 9.23MB
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  36%|▎| 5.72M/16.1M [00:00<00:00, 11.4MB/



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


sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  88%|▉| 3.25M/3.70M [00:00<00:00, 8.
                                                                                
                                                                                



sub-MGH1_acq-famp_TB1TFL.nii.gz:  44%|███    | 416k/950k [00:00<00:00, 3.98MB/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  42%|▍| 6.83M/16.1M [00:00<00:00, 10.9MB/

sub-MGH1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.8k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.4k [00:00<?, ?B/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  49%|▍| 7.90M/16.1M [00:00<00:00, 10.7MB/


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


                                                                                


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

                                                                                
                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  55%|▌| 8.93M/16.1M [00:00<00:00, 10.2MB/

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

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

                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.8M/16.1M [00:00<00:00, 12.9MB/

sub-MGH1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/96.5k [00:00<?, ?B/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-MGH1_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.2M/16.1M [00:01<00:00, 12.5MB/


sub-MGH2_UNIT1.nii.gz:   0%|                        | 0.00/17.1M [00:00<?, ?B/s]
sub-MGH2_T2starw.nii.gz:  30%|████▏         | 358k/1.16M [00:00<00:00, 3.65MB/s]



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



                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 13.4M/16.1M [00:01<00:00, 12.5MB/


sub-MGH2_UNIT1.nii.gz:   4%|▋               | 698k/17.1M [00:00<00:02, 7.11MB/s]
sub-MGH2_T2starw.nii.gz:  91%|███████████▊ | 1.06M/1.16M [00:00<00:00, 5.89MB/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:   0%|       | 0.00/7.82M [00:00<?, ?B/s]
sub-MGH2_UNIT1.nii.gz:   8%|█▏             | 1.36M/17.1M [00:00<00:02, 6.54MB/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  91%|▉| 14.6M/16.1M [00:01<00:00, 11.7MB/
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 1.01M/7.82M [00:00<00:00, 10.6MB
                                                                                
sub-MGH2_UNIT1.nii.gz:  18%|██▋            | 3.01M/17.1M [00:00<00:01, 10.3MB/s]
sub-MGH2_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/761k [00:00<?, ?B/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/9.49M [00:00<?, ?B/s]
sub-MGH2_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]




                                                                                
sub-MGH2_rec-uncombined01_T2starw.nii.gz:  94%|▉| 714k/761k [00:00<00:00, 6.58MB


sub-MGH2_UNIT1.nii.gz:  25%|███▊           | 4.34M/17.1M [00:00<00:01, 11.0MB/s]
                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 543k/9.49M [00:00<00:02, 4.55MB/

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 2.02M/7.82M [00:00<00:00, 6.82MB
sub-MGH2_UNIT1.nii.gz:  33%|████▉          | 5.57M/17.1M [00:00<00:01, 11.6MB/s]
sub-MGH2_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 1.28M/9.49M [00:00<00:01, 6.24MB
sub-MGH2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/591k [00:00<?, ?B/s]

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 3.18M/7.82M [00:00<00:00, 8.62MB
sub-MGH2_UNIT1.nii.gz:  39%|█████▊         | 6.68M/17.1M [00:00<00:00, 11.3MB/s]
                                                                                

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




sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 2.11M/9.49M [00:00<00:01, 7.00MB

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 4.20M/7.82M [00:00<00:00, 9.27MB
sub-MGH2_UNIT1.nii.gz:  45%|██████▊        | 7.78M/17.1M [00:00<00:00, 10.7MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 3.42M/9.49M [00:00<00:00, 9.49MB

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 5.48M/7.82M [00:00<00:00, 10.6MB
sub-MGH2_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                

sub-MGH2_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/701k [00:00<?, ?B/s]
sub-MGH2_UNIT1.nii.gz:  52%|███████▊       | 9.00M/17.1M [00:00<00:00, 11.3MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 4.56M/9.49M [00:00<00:00, 10.3MB

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 6.56M/7.82M [00:00<00:00, 10.8MB
                                                                                
sub-MGH2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/628k [00:00<?, ?B/s]


sub-MGH2_UNIT1.nii.gz:  59%|████████▊      | 10.1M/17.1M [00:00<00:00, 11.2MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 5.59M/9.49M [00:00<00:00, 10.5MB

sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 7.64M/7.82M [00:00<00:00, 10.8MB

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

                                                                                
sub-MGH2_rec-uncombined03_T2starw.nii.gz:  69%|▋| 436k/628k [00:00<00:00, 4.18MB
                                                                                
sub-MGH2_UNIT1.nii.gz:  65%|█████████▊     | 11.2M/17.1M [00:01<00:00, 9.70MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 6.61M/9.49M [00:00<00:00, 9.25MB
sub-MGH2_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/727k [00:00<?, ?B/s]
sub-MGH2_UNIT1.nii.gz:  73%|███████████    | 12.6M/17.1M [00:01<00:00, 11.1MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  84%|▊| 7.94M/9.49M [00:00<00:00, 10.6MB

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

sub-MGH2_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MGH2_UNIT1.nii.gz:  80%|███████████▉   | 13.7M/17.1M [00:01<00:00, 10.5MB/s]



sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 8.98M/9.49M [00:00<00:00, 10.1MB

sub-MGH2_rec-uncombined06_T2starw.nii.gz:  54%|▌| 379k/697k [00:00<00:00, 3.87MB
                                                                                

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


sub-MGH2_UNIT1.nii.gz:  86%|████████████▉  | 14.8M/17.1M [00:01<00:00, 10.7MB/s]
sub-MGH2_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MGH2_UNIT1.nii.gz:  94%|██████████████▏| 16.2M/17.1M [00:01<00:00, 11.6MB/s]
sub-MGH2_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/880k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/807k [00:00<?, ?B/s]
                                                                                


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


                                                                                
sub-MGH2_rec-uncombined09_T2starw.nii.gz:  64%|▋| 515k/807k [00:00<00:00, 4.87MB
sub-MGH2_rec-uncombined08_T2starw.nii.gz:  73%|▋| 646k/880k [00:00<00:00, 5.68MB


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

sub-MGH2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/817k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined10_T2starw.nii.gz:  17%|▏| 136k/777k [00:00<00:00, 1.29MB
                                                                                
sub-MGH2_rec-uncombined11_T2starw.nii.gz:  79%|▊| 645k/817k [00:00<00:00, 6.01MB
sub-MGH2_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                

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

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

                                                                                
                                                                                

sub-MGH2_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
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:   0%|      | 0.00/733k [00:00<?, ?B/s]


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


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


                                                                                
sub-MGH2_rec-uncombined13_T2starw.nii.gz:  51%|▌| 375k/740k [00:00<00:00, 3.84MB
sub-MGH2_rec-uncombined14_T2starw.nii.gz:  58%|▌| 425k/733k [00:00<00:00, 4.30MB


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

                                                                                
                                                                                
sub-MGH2_rec-uncombined16_T2starw.nii.gz:  71%|▋| 662k/927k [00:00<00:00, 6.76MB


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


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


                                                                                
sub-MGH2_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/856k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined17_T2starw.nii.gz:  93%|▉| 918k/985k [00:00<00:00, 9.34MB



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

sub-MGH2_rec-uncombined15_T2starw.nii.gz:  97%|▉| 714k/734k [00:00<00:00, 6.02MB



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

                                                                                
                                                                                
sub-MGH2_rec-uncombined18_T2starw.nii.gz:  42%|▍| 358k/856k [00:00<00:00, 2.90MB
sub-MGH2_rec-uncombined19_T2starw.nii.gz:  53%|▌| 442k/828k [00:00<00:00, 4.51MB


                                                                                
sub-MGH2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.41k [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:   0%|               | 0.00/869k [00:00<?, ?B/s]
                                                                                

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

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

                                                                                
sub-MGH2_acq-anat_TB1TFL.nii.gz:  72%|█████  | 628k/869k [00:00<00:00, 5.07MB/s]

sub-MGH2_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/941k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.9M [00:00<?, ?B/s]

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


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


                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   5%| | 884k/15.9M [00:00<00:01, 9.04MB/s

sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  23%|▏| 952k/4.12M [00:00<00:00, 9.69MB/


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


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



sub-MGH2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/90.8k [00:00<?, ?B/s]
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.78M/15.9M [00:00<00:01, 9.34MB/

sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  49%|▍| 2.03M/4.12M [00:00<00:00, 10.8MB



                                                                                



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



                                                                                
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 408k/3.65M [00:00<00:00, 3.9
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  74%|▋| 3.06M/4.12M [00:00<00:00, 9.91MB



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



                                                                                
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  31%|▎| 1.13M/3.65M [00:00<00:00, 6.



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:  17%|▏| 2.67M/15.9M [00:00<00:02, 6.77MB/
                                                                                

sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  97%|▉| 4.02M/4.12M [00:00<00:00, 9.20MB
                                                                                

sub-MGH2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.1k [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  47%|▍| 1.71M/3.65M [00:00<00:00, 5.

                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 3.39M/15.9M [00:00<00:02, 5.96MB/
sub-MGH2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/927k [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  82%|▊| 3.00M/3.65M [00:00<00:00, 8.
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 5.09M/15.9M [00:00<00:01, 9.27MB/


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

sub-MGH2_acq-famp_TB1TFL.nii.gz:  77%|█████▍ | 713k/927k [00:00<00:00, 7.30MB/s]


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

                                                                                


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

                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 6.09M/15.9M [00:00<00:01, 7.71MB/
sub-MGH3_T2starw.json:   0%|                        | 0.00/2.43k [00:00<?, ?B/s]

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

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

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

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

                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  75%|▋| 11.9M/15.9M [00:01<00:00, 15.2MB/
sub-MGH3_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]

                                                                                

sub-MGH2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/96.1k [00:00<?, ?B/s]


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

                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  87%|▊| 13.9M/15.9M [00:01<00:00, 16.6MB/
sub-MGH3_UNIT1.nii.gz:   0%|                        | 0.00/17.1M [00:00<?, ?B/s]


sub-MGH3_T2starw.nii.gz:  73%|██████████▏   | 987k/1.33M [00:00<00:00, 10.1MB/s]
                                                                                

sub-MGH3_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.98k [00:00<?, ?B/s]
                                                                                
sub-MGH3_UNIT1.nii.gz:   3%|▍               | 460k/17.1M [00:00<00:03, 4.62MB/s]


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


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


                                                                                


sub-MGH3_UNIT1.nii.gz:   9%|█▍             | 1.59M/17.1M [00:00<00:01, 8.17MB/s]


sub-MGH3_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 647k/8.41M [00:00<00:01, 6.62MB/



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

sub-MGH3_UNIT1.nii.gz:  14%|██             | 2.42M/17.1M [00:00<00:01, 8.35MB/s]


sub-MGH3_rec-uncombined01_T2starw.nii.gz:  88%|▉| 697k/795k [00:00<00:00, 7.05MB



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


                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 1.28M/8.41M [00:00<00:01, 5.94MB
sub-MGH3_UNIT1.nii.gz:  21%|███▏           | 3.65M/17.1M [00:00<00:01, 10.1MB/s]



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 713k/10.4M [00:00<00:01, 7.25MB/


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


                                                                                
sub-MGH3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/632k [00:00<?, ?B/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  24%|▏| 2.01M/8.41M [00:00<00:01, 6.64MB
sub-MGH3_UNIT1.nii.gz:  28%|████▏          | 4.80M/17.1M [00:00<00:01, 10.7MB/s]



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 1.39M/10.4M [00:00<00:01, 7.04MB
                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 3.06M/8.41M [00:00<00:00, 8.26MB
sub-MGH3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/683k [00:00<?, ?B/s]

sub-MGH3_UNIT1.nii.gz:  35%|█████▏         | 5.90M/17.1M [00:00<00:01, 11.0MB/s]



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 2.07M/10.4M [00:00<00:01, 7.00MB
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 4.61M/8.41M [00:00<00:00, 11.0MB


                                                                                
sub-MGH3_UNIT1.nii.gz:  41%|██████▏        | 7.09M/17.1M [00:00<00:00, 11.3MB/s]


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



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 3.12M/10.4M [00:00<00:00, 8.53MB
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 5.69M/8.41M [00:00<00:00, 11.1MB
sub-MGH3_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]




                                                                                


sub-MGH3_rec-uncombined04_T2starw.nii.gz:  81%|▊| 612k/758k [00:00<00:00, 6.02MB

sub-MGH3_UNIT1.nii.gz:  48%|███████▎       | 8.28M/17.1M [00:00<00:00, 11.4MB/s]



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 4.15M/10.4M [00:00<00:00, 9.33MB
                                                                                
sub-MGH3_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


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


                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 6.77M/8.41M [00:00<00:00, 8.40MB



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 5.06M/10.4M [00:00<00:00, 7.97MB

sub-MGH3_UNIT1.nii.gz:  55%|████████▏      | 9.37M/17.1M [00:00<00:00, 9.49MB/s]
sub-MGH3_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 8.18M/8.41M [00:00<00:00, 9.83MB



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 6.47M/10.4M [00:00<00:00, 9.76MB

sub-MGH3_UNIT1.nii.gz:  63%|█████████▍     | 10.7M/17.1M [00:01<00:00, 10.7MB/s]


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



sub-MGH3_rec-uncombined05_T2starw.nii.gz:  42%|▍| 323k/768k [00:00<00:00, 3.30MB
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 7.44M/10.4M [00:00<00:00, 9.20MB

sub-MGH3_UNIT1.nii.gz:  69%|██████████▎    | 11.8M/17.1M [00:01<00:00, 10.0MB/s]


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



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 9.12M/10.4M [00:00<00:00, 11.5MB

sub-MGH3_UNIT1.nii.gz:  79%|███████████▊   | 13.5M/17.1M [00:01<00:00, 11.9MB/s]


sub-MGH3_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/808k [00:00<?, ?B/s]
                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  99%|▉| 10.3M/10.4M [00:01<00:00, 11.7MB

sub-MGH3_UNIT1.nii.gz:  86%|████████████▊  | 14.7M/17.1M [00:01<00:00, 12.0MB/s]



                                                                                
sub-MGH3_rec-uncombined07_T2starw.nii.gz:  78%|▊| 628k/808k [00:00<00:00, 5.02MB
sub-MGH3_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/860k [00:00<?, ?B/s]


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


                                                                                
sub-MGH3_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined09_T2starw.nii.gz:  40%|▍| 340k/860k [00:00<00:00, 3.45MB


                                                                                
sub-MGH3_UNIT1.nii.gz:  93%|█████████████▉ | 15.8M/17.1M [00:01<00:00, 9.82MB/s]
                                                                                
sub-MGH3_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/988k [00:00<?, ?B/s]


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


                                                                                
sub-MGH3_UNIT1.nii.gz:  99%|██████████████▊| 16.9M/17.1M [00:01<00:00, 10.2MB/s]

                                                                                

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-uncombined08_T2starw.nii.gz:  48%|▍| 476k/988k [00:00<00:00, 3.89MB
                                                                                


sub-MGH3_rec-uncombined10_T2starw.nii.gz:  62%|▌| 509k/824k [00:00<00:00, 5.13MB
sub-MGH3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/910k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                

                                                                                
sub-MGH3_rec-uncombined11_T2starw.nii.gz:  26%|▎| 238k/910k [00:00<00:00, 2.10MB

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


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



                                                                                
                                                                                


sub-MGH3_rec-uncombined14_T2starw.nii.gz:  83%|▊| 663k/799k [00:00<00:00, 5.56MB


sub-MGH3_rec-uncombined12_T2starw.nii.gz:  66%|▋| 662k/995k [00:00<00:00, 5.62MB

                                                                                
                                                                                
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-uncombined16_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

                                                                                

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

                                                                                
sub-MGH3_rec-uncombined13_T2starw.nii.gz:  53%|▌| 408k/776k [00:00<00:00, 3.67MB
                                                                                
sub-MGH3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/820k [00:00<?, ?B/s]

sub-MGH3_rec-uncombined17_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-uncombined18_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]


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

sub-MGH3_rec-uncombined18_T2starw.nii.gz:  95%|▉| 968k/0.99M [00:00<00:00, 9.79M

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

                                                                                
sub-MGH3_rec-uncombined16_T2starw.nii.gz:  38%|▍| 412k/1.07M [00:00<00:00, 4.22M


sub-MGH3_rec-uncombined19_T2starw.nii.gz:  53%|▌| 527k/994k [00:00<00:00, 5.38MB

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

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

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


sub-MGH3_rec-uncombined17_T2starw.nii.gz:  29%|▎| 322k/1.08M [00:00<00:00, 3.26M
                                                                                
                                                                                
sub-MGH3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

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

sub-MGH3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.08k [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:  92%|▉| 986k/1.05M [00:00<00:00, 10.1M

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

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


                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  36%|▎| 1.63M/4.52M [00:00<00:00, 14.7MB


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


                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   3%| | 561k/16.8M [00:00<00:03, 5.41MB/s


sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]
sub-MGH3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/91.4k [00:00<?, ?B/s]

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  10%| | 1.61M/16.8M [00:00<00:01, 8.69MB/
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  67%|▋| 3.03M/4.52M [00:00<00:00, 12.1MB


sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  28%|▎| 1.02M/3.65M [00:00<00:00, 10



                                                                                

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



                                                                                

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.45M/16.8M [00:00<00:01, 7.90MB/



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



                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  93%|▉| 4.21M/4.52M [00:00<00:00, 9.83MB
                                                                                

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

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 3.22M/16.8M [00:00<00:02, 7.12MB/


sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  56%|▌| 2.05M/3.65M [00:00<00:00, 5.
sub-MGH3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]



                                                                                
sub-MGH3_acq-famp_TB1TFL.nii.gz:  65%|████▌  | 628k/970k [00:00<00:00, 6.40MB/s]

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  25%|▎| 4.28M/16.8M [00:00<00:01, 8.40MB/



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


sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  75%|▋| 2.74M/3.65M [00:00<00:00, 6.



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

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 5.11M/16.8M [00:00<00:01, 8.31MB/
                                                                                
sub-MGH3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]
                                                                                



sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  93%|▉| 3.41M/3.65M [00:00<00:00, 5.
sub-MGH3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.13k [00:00<?, ?B/s]
                                                                                



                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  35%|▎| 5.92M/16.8M [00:00<00:01, 7.26MB/
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-MGH3_acq-coilQaTra_GFactor.nii.gz:  51%|▌| 8.55M/16.8M [00:00<00:00, 11.9MB/
sub-MNI1_UNIT1.json:   0%|                          | 0.00/2.02k [00:00<?, ?B/s]


sub-MGH3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/98.6k [00:00<?, ?B/s]
                                                                                



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


sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 9.70M/16.8M [00:01<00:00, 11.0MB/
sub-MNI1_T2starw.nii.gz:   0%|                      | 0.00/1.33M [00:00<?, ?B/s]


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


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

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.7M/16.8M [00:01<00:00, 16.4MB/
sub-MNI1_T2starw.nii.gz:  52%|███████▎      | 709k/1.33M [00:00<00:00, 7.25MB/s]
sub-MNI1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                



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


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 986k/17.1M [00:00<00:02, 8.05MB/
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  85%|▊| 14.4M/16.8M [00:01<00:00, 15.5MB/
                                                                                
sub-MNI1_UNIT1.nii.gz:   1%|▏               | 357k/25.9M [00:00<00:07, 3.64MB/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.74M/17.1M [00:00<00:02, 7.68MB
sub-MNI1_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.1M [00:00<?, ?B/s]

sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  95%|▉| 16.0M/16.8M [00:01<00:00, 13.9MB/



sub-MNI1_UNIT1.nii.gz:   4%|▌              | 1.08M/25.9M [00:00<00:04, 5.97MB/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.59M/17.1M [00:00<00:01, 8.18MB

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 594k/19.1M [00:00<00:03, 6.06MB/



sub-MNI1_UNIT1.nii.gz:   7%|▉              | 1.69M/25.9M [00:00<00:04, 6.17MB/s]

sub-MNI1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/822k [00:00<?, ?B/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.69M/17.1M [00:00<00:01, 9.41MB




sub-MNI1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/766k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.44M/19.1M [00:00<00:02, 7.77MB



sub-MNI1_UNIT1.nii.gz:  11%|█▋             | 2.97M/25.9M [00:00<00:02, 8.98MB/s]

sub-MNI1_rec-uncombined01_T2starw.nii.gz:  99%|▉| 816k/822k [00:00<00:00, 8.33MB

                                                                                
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 4.75M/17.1M [00:00<00:01, 9.81MB




sub-MNI1_rec-uncombined02_T2starw.nii.gz:  62%|▌| 476k/766k [00:00<00:00, 4.85MB
sub-MNI1_UNIT1.nii.gz:  15%|██▏            | 3.86M/25.9M [00:00<00:02, 9.10MB/s]




                                                                                
sub-MNI1_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 2.19M/19.1M [00:00<00:02, 6.23MB

                                                                                


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 5.70M/17.1M [00:00<00:01, 8.86MB
sub-MNI1_UNIT1.nii.gz:  18%|██▋            | 4.74M/25.9M [00:00<00:02, 8.72MB/s]
sub-MNI1_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.40M/19.1M [00:00<00:01, 8.46MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 6.95M/17.1M [00:00<00:01, 10.1MB
sub-MNI1_UNIT1.nii.gz:  23%|███▍           | 6.02M/25.9M [00:00<00:02, 10.2MB/s]

sub-MNI1_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/843k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.64M/19.1M [00:00<00:01, 9.89MB




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


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▍| 8.55M/17.1M [00:00<00:00, 12.0MB
sub-MNI1_UNIT1.nii.gz:  28%|████▎          | 7.38M/25.9M [00:00<00:01, 11.4MB/s]

sub-MNI1_rec-uncombined03_T2starw.nii.gz:  89%|▉| 747k/843k [00:00<00:00, 7.56MB

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.81M/19.1M [00:00<00:01, 9.96MB




sub-MNI1_rec-uncombined04_T2starw.nii.gz:  67%|▋| 616k/914k [00:00<00:00, 5.49MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  57%|▌| 9.73M/17.1M [00:01<00:00, 11.4MB




                                                                                

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

                                                                                
sub-MNI1_UNIT1.nii.gz:  33%|████▉          | 8.49M/25.9M [00:00<00:01, 9.53MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.79M/19.1M [00:00<00:01, 9.35MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 10.9M/17.1M [00:01<00:00, 10.8MB
sub-MNI1_UNIT1.nii.gz:  40%|██████         | 10.4M/25.9M [00:01<00:01, 12.4MB/s]

sub-MNI1_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.76M/19.1M [00:00<00:00, 12.5MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.7M/17.1M [00:01<00:00, 13.3MB
sub-MNI1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/865k [00:00<?, ?B/s]



sub-MNI1_UNIT1.nii.gz:  46%|██████▉        | 12.0M/25.9M [00:01<00:01, 13.4MB/s]

sub-MNI1_rec-uncombined06_T2starw.nii.gz: 100%|█| 828k/828k [00:00<00:00, 8.37MB

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 10.2M/19.1M [00:01<00:00, 12.3MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 14.0M/17.1M [00:01<00:00, 12.5MB




sub-MNI1_rec-uncombined05_T2starw.nii.gz:  59%|▌| 511k/865k [00:00<00:00, 5.23MB
sub-MNI1_UNIT1.nii.gz:  51%|███████▋       | 13.3M/25.9M [00:01<00:01, 12.5MB/s]

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

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 11.5M/19.1M [00:01<00:00, 11.8MB
                                                                                


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 15.3M/17.1M [00:01<00:00, 11.2MB
sub-MNI1_UNIT1.nii.gz:  56%|████████▍      | 14.6M/25.9M [00:01<00:01, 11.8MB/s]

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

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.7M/19.1M [00:01<00:00, 12.1MB
sub-MNI1_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/891k [00:00<?, ?B/s]


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 16.5M/17.1M [00:01<00:00, 11.7MB
                                                                                
sub-MNI1_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI1_rec-uncombined07_T2starw.nii.gz:  55%|▌| 493k/891k [00:00<00:00, 4.26MB



sub-MNI1_UNIT1.nii.gz:  61%|█████████      | 15.7M/25.9M [00:01<00:01, 10.1MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 13.9M/19.1M [00:01<00:00, 10.2MB

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

                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 14.9M/19.1M [00:01<00:00, 10.2MB



sub-MNI1_UNIT1.nii.gz:  65%|█████████▊     | 17.0M/25.9M [00:01<00:00, 10.3MB/s]

sub-MNI1_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/894k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/979k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 16.7M/19.1M [00:01<00:00, 12.4MB



sub-MNI1_UNIT1.nii.gz:  72%|██████████▊    | 18.8M/25.9M [00:01<00:00, 12.4MB/s]

sub-MNI1_rec-uncombined09_T2starw.nii.gz:  99%|▉| 884k/894k [00:00<00:00, 9.05MB

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

                                                                                


sub-MNI1_rec-uncombined08_T2starw.nii.gz:  61%|▌| 594k/979k [00:00<00:00, 4.88MB
                                                                                
sub-MNI1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

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



sub-MNI1_UNIT1.nii.gz:  77%|███████████▌   | 20.0M/25.9M [00:02<00:00, 10.1MB/s]
                                                                                

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

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

                                                                                
sub-MNI1_UNIT1.nii.gz:  82%|████████████▎  | 21.2M/25.9M [00:02<00:00, 10.5MB/s]

sub-MNI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/941k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined10_T2starw.nii.gz:  51%|▌| 441k/860k [00:00<00:00, 4.50MB


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


                                                                                
sub-MNI1_UNIT1.nii.gz:  87%|████████████▉  | 22.5M/25.9M [00:02<00:00, 11.1MB/s]

sub-MNI1_rec-uncombined11_T2starw.nii.gz:  78%|▊| 731k/941k [00:00<00:00, 7.44MB
                                                                                
sub-MNI1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/810k [00:00<?, ?B/s]

                                                                                
sub-MNI1_UNIT1.nii.gz:  91%|█████████████▋ | 23.6M/25.9M [00:02<00:00, 11.1MB/s]
                                                                                
sub-MNI1_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/975k [00:00<?, ?B/s]

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

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



sub-MNI1_UNIT1.nii.gz:  95%|██████████████▎| 24.7M/25.9M [00:02<00:00, 10.9MB/s]
sub-MNI1_rec-uncombined12_T2starw.nii.gz:  73%|▋| 715k/975k [00:00<00:00, 7.30MB


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


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


                                                                                

sub-MNI1_rec-uncombined14_T2starw.nii.gz:  74%|▋| 595k/800k [00:00<00:00, 5.12MB
                                                                                
sub-MNI1_UNIT1.nii.gz:  99%|██████████████▉| 25.8M/25.9M [00:02<00:00, 10.5MB/s]



                                                                                
                                                                                
sub-MNI1_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.39k [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:   0%|      | 0.00/940k [00:00<?, ?B/s]

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


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



sub-MNI1_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/777k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined19_T2starw.nii.gz:  77%|▊| 628k/813k [00:00<00:00, 6.20MB
sub-MNI1_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/894k [00:00<?, ?B/s]


sub-MNI1_rec-uncombined17_T2starw.nii.gz:  54%|▌| 527k/968k [00:00<00:00, 5.38MB



sub-MNI1_rec-uncombined15_T2starw.nii.gz:  65%|▋| 505k/777k [00:00<00:00, 5.12MB
                                                                                
                                                                                

sub-MNI1_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined18_T2starw.nii.gz:  44%|▍| 390k/894k [00:00<00:00, 3.83MB

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

                                                                                
                                                                                
sub-MNI1_rec-uncombined18_T2starw.nii.gz:  85%|▊| 764k/894k [00:00<00:00, 3.62MB
                                                                                
sub-MNI1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]
                                                                                

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-anat_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-anat_TB1TFL.nii.gz:  97%|██████▊| 912k/943k [00:00<00:00, 8.06MB/s]
                                                                                
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.59M [00:00<?, ?B/s]

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.2M [00:00<?, ?B/s]
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.68M [00:00<?, ?B/s]
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  32%|▎| 1.46M/4.59M [00:00<00:00, 15.3MB



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



                                                                                



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

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.23M/16.2M [00:00<00:01, 12.8MB/



                                                                                
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:   9%| | 356k/3.68M [00:00<00:00, 3.6
sub-MNI1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]



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



                                                                                


sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  23%|▏| 884k/3.68M [00:00<00:00, 4.5
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.46M/16.2M [00:00<00:02, 7.16MB/
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  64%|▋| 2.92M/4.59M [00:00<00:00, 7.98MB
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  52%|▌| 1.91M/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-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 3.27M/16.2M [00:00<00:01, 7.37MB/



                                                                                
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  84%|▊| 3.87M/4.59M [00:00<00:00, 7.43MB


sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  71%|▋| 2.62M/3.68M [00:00<00:00, 7.
sub-MNI1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.11k [00:00<?, ?B/s]



                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  26%|▎| 4.14M/16.2M [00:00<00:01, 7.41MB/
                                                                                



sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  96%|▉| 3.54M/3.68M [00:00<00:00, 7.
sub-MNI1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 4.90M/16.2M [00:00<00:01, 7.25MB/
sub-MNI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.9k [00:00<?, ?B/s]

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  40%|▍| 6.42M/16.2M [00:00<00:01, 9.70MB/
                                                                                
sub-MNI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.3k [00:00<?, ?B/s]


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


sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  47%|▍| 7.59M/16.2M [00:00<00:00, 9.78MB/
sub-MNI1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-famp_TB1TFL.nii.gz:  12%|▊      | 114k/952k [00:00<00:00, 1.15MB/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  57%|▌| 9.15M/16.2M [00:01<00:00, 10.9MB/
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-MNI1_acq-coilQaTra_GFactor.nii.gz:  63%|▋| 10.2M/16.2M [00:01<00:00, 10.4MB/
sub-MNI2_T2starw.nii.gz:   0%|                      | 0.00/1.18M [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  80%|▊| 12.9M/16.2M [00:01<00:00, 14.0MB/
sub-MNI2_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]


sub-MNI2_inv-1_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.json:   0%|                          | 0.00/2.03k [00:00<?, ?B/s]



                                                                                



sub-MNI2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:   2%|▎               | 611k/26.1M [00:00<00:05, 5.05MB/s]



                                                                                
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 582k/14.8M [00:00<00:03, 4.86MB/

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  88%|▉| 14.2M/16.2M [00:01<00:00, 11.9MB/
sub-MNI2_UNIT1.nii.gz:   5%|▊              | 1.33M/26.1M [00:00<00:04, 6.41MB/s]



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



                                                                                
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.43M/14.8M [00:00<00:02, 6.70MB

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  96%|▉| 15.5M/16.2M [00:01<00:00, 12.3MB/
                                                                                

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

                                                                                
sub-MNI2_UNIT1.nii.gz:   7%|█              | 1.96M/26.1M [00:00<00:04, 6.09MB/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:  14%|▏| 2.09M/14.8M [00:00<00:02, 6.37MB
sub-MNI2_UNIT1.nii.gz:  12%|█▊             | 3.10M/26.1M [00:00<00:02, 8.25MB/s]
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 970k/16.7M [00:00<00:01, 9.92MB/



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


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 3.78M/14.8M [00:00<00:01, 10.4MB
sub-MNI2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/723k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:  18%|██▋            | 4.67M/26.1M [00:00<00:02, 11.0MB/s]
                                                                                
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 4.94M/14.8M [00:00<00:01, 10.3MB




sub-MNI2_rec-uncombined02_T2starw.nii.gz:  69%|▋| 501k/723k [00:00<00:00, 5.10MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.89M/16.7M [00:00<00:02, 7.60MB




                                                                                
sub-MNI2_UNIT1.nii.gz:  22%|███▎           | 5.74M/26.1M [00:00<00:02, 9.82MB/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 6.05M/14.8M [00:00<00:00, 10.7MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  17%|▏| 2.88M/16.7M [00:00<00:01, 8.67MB
sub-MNI2_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI2_UNIT1.nii.gz:  27%|████           | 7.15M/26.1M [00:00<00:01, 11.2MB/s]



sub-MNI2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/775k [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  49%|▍| 7.31M/14.8M [00:00<00:00, 11.5MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.02M/16.7M [00:00<00:01, 9.84MB
                                                                                
sub-MNI2_UNIT1.nii.gz:  33%|████▉          | 8.57M/26.1M [00:00<00:01, 12.2MB/s]



sub-MNI2_rec-uncombined04_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  57%|▌| 8.48M/14.8M [00:00<00:00, 11.3MB



                                                                                

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.01M/16.7M [00:00<00:01, 9.24MB
sub-MNI2_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 9.69M/14.8M [00:01<00:00, 10.8MB
sub-MNI2_UNIT1.nii.gz:  37%|█████▌         | 9.77M/26.1M [00:01<00:01, 10.5MB/s]

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.26M/16.7M [00:00<00:01, 10.4MB
sub-MNI2_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/782k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:  43%|██████▍        | 11.3M/26.1M [00:01<00:01, 12.0MB/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 11.2M/14.8M [00:01<00:00, 12.2MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 7.79M/16.7M [00:00<00:00, 12.1MB




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




                                                                                
sub-MNI2_rec-uncombined04_T2starw.nii.gz: 100%|▉| 781k/782k [00:00<00:00, 6.59MB



                                                                                
sub-MNI2_UNIT1.nii.gz:  48%|███████▏       | 12.5M/26.1M [00:01<00:01, 11.2MB/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 12.4M/14.8M [00:01<00:00, 11.3MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  54%|▌| 8.97M/16.7M [00:00<00:00, 11.2MB



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



                                                                                
sub-MNI2_UNIT1.nii.gz:  52%|███████▊       | 13.6M/26.1M [00:01<00:01, 11.4MB/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  91%|▉| 13.5M/14.8M [00:01<00:00, 11.4MB

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



sub-MNI2_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/767k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/760k [00:00<?, ?B/s]
                                                                                



sub-MNI2_rec-uncombined05_T2starw.nii.gz:  73%|▋| 562k/767k [00:00<00:00, 5.53MB

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  68%|▋| 11.4M/16.7M [00:01<00:00, 11.3MB
sub-MNI2_UNIT1.nii.gz:  57%|████████▌      | 15.0M/26.1M [00:01<00:01, 11.4MB/s]
sub-MNI2_rec-uncombined06_T2starw.nii.gz:  65%|▋| 493k/760k [00:00<00:00, 5.01MB



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

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  75%|▊| 12.5M/16.7M [00:01<00:00, 10.7MB
sub-MNI2_UNIT1.nii.gz:  62%|█████████▎     | 16.1M/26.1M [00:01<00:00, 10.6MB/s]
sub-MNI2_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                
sub-MNI2_rec-uncombined07_T2starw.nii.gz:  95%|▉| 747k/783k [00:00<00:00, 7.41MB


                                                                                

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  83%|▊| 13.8M/16.7M [00:01<00:00, 10.6MB
sub-MNI2_UNIT1.nii.gz:  66%|█████████▉     | 17.4M/26.1M [00:01<00:00, 10.6MB/s]


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_UNIT1.nii.gz:  71%|██████████▋    | 18.6M/26.1M [00:01<00:00, 11.3MB/s]

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 15.1M/16.7M [00:01<00:00, 11.3MB


sub-MNI2_rec-uncombined08_T2starw.nii.gz:  93%|▉| 732k/784k [00:00<00:00, 7.46MB


                                                                                
sub-MNI2_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/781k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:  77%|███████████▌   | 20.1M/26.1M [00:01<00:00, 12.4MB/s]

sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  99%|▉| 16.5M/16.7M [00:01<00:00, 12.4MB



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



                                                                                
                                                                                
sub-MNI2_rec-uncombined09_T2starw.nii.gz:  60%|▌| 471k/781k [00:00<00:00, 3.86MB

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


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


                                                                                
sub-MNI2_rec-uncombined10_T2starw.nii.gz:  37%|▎| 289k/782k [00:00<00:00, 2.72MB
sub-MNI2_UNIT1.nii.gz:  82%|████████████▏  | 21.3M/26.1M [00:02<00:00, 9.77MB/s]
                                                                                

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


                                                                                
sub-MNI2_UNIT1.nii.gz:  87%|█████████████  | 22.7M/26.1M [00:02<00:00, 10.7MB/s]
sub-MNI2_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/831k [00:00<?, ?B/s]

                                                                                
sub-MNI2_UNIT1.nii.gz:  93%|█████████████▉ | 24.3M/26.1M [00:02<00:00, 12.3MB/s]


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

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


sub-MNI2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/727k [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:  98%|██████████████▋| 25.6M/26.1M [00:02<00:00, 12.7MB/s]
                                                                                

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



sub-MNI2_rec-uncombined13_T2starw.nii.gz:  26%|▎| 191k/727k [00:00<00:00, 1.86MB

sub-MNI2_rec-uncombined14_T2starw.nii.gz:  70%|▋| 509k/730k [00:00<00:00, 4.84MB
                                                                                
                                                                                
sub-MNI2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

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

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

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

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


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


                                                                                
                                                                                
sub-MNI2_rec-uncombined18_T2starw.nii.gz:  93%|▉| 730k/788k [00:00<00:00, 6.97MB
sub-MNI2_rec-uncombined20_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_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/815k [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_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.13M [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]


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



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



                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 322k/4.13M [00:00<00:01, 2.67MB/
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   4%| | 583k/15.9M [00:00<00:02, 5.95MB/s
sub-MNI2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.12k [00:00<?, ?B/s]
                                                                                


sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  30%|▎| 1.23M/4.13M [00:00<00:00, 5.72MB
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.18M/15.9M [00:00<00:02, 6.20MB/
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]

sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  75%|▋| 3.09M/4.13M [00:00<00:00, 11.3MB


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



sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 3.18M/15.9M [00:00<00:01, 11.7MB/


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


                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   9%| | 322k/3.65M [00:00<00:01, 3.2
                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.26M/15.9M [00:00<00:01, 10.3MB/
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  30%|▎| 1.10M/3.65M [00:00<00:00, 6.

sub-MNI2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.2k [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:  37%|▎| 5.91M/15.9M [00:00<00:00, 12.6MB/
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  54%|▌| 1.97M/3.65M [00:00<00:00, 7.
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:  90%|██████▎| 815k/908k [00:00<00:00, 7.66MB/s]
sub-MNI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.6k [00:00<?, ?B/s]

                                                                                



sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  45%|▍| 7.23M/15.9M [00:00<00:00, 12.9MB/
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  74%|▋| 2.70M/3.65M [00:00<00:00, 7.


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

                                                                                

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

                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  95%|▉| 3.48M/3.65M [00:00<00:00, 7.
                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  53%|▌| 8.48M/15.9M [00:00<00:00, 9.91MB/
sub-MNI2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/89.8k [00:00<?, ?B/s]
                                                                                

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

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

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



sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  63%|▋| 10.0M/15.9M [00:00<00:00, 11.3MB/
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  75%|▋| 11.9M/15.9M [00:01<00:00, 13.5MB/
sub-MNI3_UNIT1.json:   0%|                          | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/86.5k [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  91%|▉| 14.5M/15.9M [00:01<00:00, 17.0MB/
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.3M [00:00<?, ?B/s]
                                                                                
sub-MNI3_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 798k/17.3M [00:00<00:02, 7.27MB/

sub-MNI3_T2starw.nii.gz:   0%|                      | 0.00/1.36M [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 2.11M/17.3M [00:00<00:01, 11.0MB

sub-MNI3_T2starw.nii.gz:  94%|████████████▏| 1.28M/1.36M [00:00<00:00, 13.4MB/s]

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



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

                                                                                



                                                                                
sub-MNI3_UNIT1.nii.gz:   2%|▏               | 408k/26.1M [00:00<00:06, 4.07MB/s]
sub-MNI3_rec-uncombined01_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.17M/17.3M [00:00<00:01, 8.56MB
sub-MNI3_UNIT1.nii.gz:   5%|▊              | 1.33M/26.1M [00:00<00:03, 6.55MB/s]

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%|       | 0.00/19.6M [00:00<?, ?B/s]




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




                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.05M/17.3M [00:00<00:01, 8.66MB
sub-MNI3_UNIT1.nii.gz:   9%|█▎             | 2.35M/26.1M [00:00<00:03, 8.19MB/s]

sub-MNI3_rec-uncombined01_T2starw.nii.gz:  81%|▊| 663k/814k [00:00<00:00, 6.77MB
                                                                                



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 340k/19.6M [00:00<00:05, 3.40MB/
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 4.92M/17.3M [00:00<00:01, 8.28MB


sub-MNI3_UNIT1.nii.gz:  14%|██             | 3.53M/26.1M [00:00<00:02, 9.73MB/s]

sub-MNI3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/765k [00:00<?, ?B/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.26M/19.6M [00:00<00:02, 7.08MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.42M/17.3M [00:00<00:01, 10.5MB

                                                                                


sub-MNI3_UNIT1.nii.gz:  19%|██▊            | 4.96M/26.1M [00:00<00:02, 10.7MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 1.94M/19.6M [00:00<00:02, 7.10MB

sub-MNI3_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/898k [00:00<?, ?B/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.58M/17.3M [00:00<00:00, 10.9MB


sub-MNI3_UNIT1.nii.gz:  25%|███▊           | 6.56M/26.1M [00:00<00:01, 12.6MB/s]
sub-MNI3_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]




                                                                                
sub-MNI3_rec-uncombined04_T2starw.nii.gz:  69%|▋| 624k/898k [00:00<00:00, 6.05MB



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 3.01M/19.6M [00:00<00:02, 8.11MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▍| 8.66M/17.3M [00:00<00:00, 11.0MB

                                                                                
sub-MNI3_UNIT1.nii.gz:  30%|████▍          | 7.78M/26.1M [00:00<00:01, 11.4MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.26M/19.6M [00:00<00:01, 9.82MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.0M/17.3M [00:01<00:00, 11.9MB

sub-MNI3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:  36%|█████▍         | 9.50M/26.1M [00:00<00:01, 13.3MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.89M/19.6M [00:00<00:01, 12.2MB

                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 11.6M/17.3M [00:01<00:00, 13.3MB

sub-MNI3_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/844k [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:  41%|██████▏        | 10.8M/26.1M [00:00<00:01, 13.0MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 7.06M/19.6M [00:00<00:01, 12.0MB




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




                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.9M/17.3M [00:01<00:00, 12.8MB
sub-MNI3_rec-uncombined05_T2starw.nii.gz:  83%|▊| 697k/844k [00:00<00:00, 6.61MB

                                                                                
sub-MNI3_UNIT1.nii.gz:  46%|██████▉        | 12.1M/26.1M [00:01<00:01, 11.9MB/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  42%|▍| 8.21M/19.6M [00:00<00:01, 11.0MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 14.1M/17.3M [00:01<00:00, 11.9MB

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

                                                                                
sub-MNI3_UNIT1.nii.gz:  52%|███████▊       | 13.5M/26.1M [00:01<00:01, 12.7MB/s]

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



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.62M/19.6M [00:00<00:00, 12.0MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 15.4M/17.3M [00:01<00:00, 12.3MB
                                                                                



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 11.0M/19.6M [00:01<00:00, 12.3MB
sub-MNI3_UNIT1.nii.gz:  58%|████████▋      | 15.1M/26.1M [00:01<00:00, 12.7MB/s]

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

                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  96%|▉| 16.6M/17.3M [00:01<00:00, 12.3MB
                                                                                
sub-MNI3_rec-uncombined08_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined08_T2starw.nii.gz:   0%|      | 0.00/945k [00:00<?, ?B/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 12.2M/19.6M [00:01<00:00, 10.0MB


sub-MNI3_UNIT1.nii.gz:  62%|█████████▎     | 16.3M/26.1M [00:01<00:00, 10.4MB/s]
sub-MNI3_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/872k [00:00<?, ?B/s]
                                                                                



sub-MNI3_UNIT1.nii.gz:  69%|██████████▎    | 18.0M/26.1M [00:01<00:00, 11.7MB/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  72%|▋| 14.0M/19.6M [00:01<00:00, 11.5MB
sub-MNI3_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/861k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined07_T2starw.nii.gz:  68%|▋| 594k/872k [00:00<00:00, 6.05MB




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




                                                                                
sub-MNI3_rec-uncombined09_T2starw.nii.gz:  83%|▊| 714k/861k [00:00<00:00, 6.52MB


sub-MNI3_UNIT1.nii.gz:  74%|███████████    | 19.2M/26.1M [00:01<00:00, 11.5MB/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 15.2M/19.6M [00:01<00:00, 11.5MB

                                                                                
                                                                                
sub-MNI3_UNIT1.nii.gz:  78%|███████████▋   | 20.4M/26.1M [00:01<00:00, 11.4MB/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  84%|▊| 16.4M/19.6M [00:01<00:00, 11.3MB
sub-MNI3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                

sub-MNI3_rec-uncombined10_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_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 17.5M/19.6M [00:01<00:00, 10.8MB


sub-MNI3_UNIT1.nii.gz:  82%|████████████▎  | 21.5M/26.1M [00:02<00:00, 10.9MB/s]
                                                                                
sub-MNI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/847k [00:00<?, ?B/s]

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

                                                                                
sub-MNI3_UNIT1.nii.gz:  87%|█████████████  | 22.7M/26.1M [00:02<00:00, 10.8MB/s]



sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 18.7M/19.6M [00:01<00:00, 10.7MB
                                                                                
sub-MNI3_rec-uncombined10_T2starw.nii.gz:  66%|▋| 560k/847k [00:00<00:00, 5.04MB
sub-MNI3_UNIT1.nii.gz:  92%|█████████████▊ | 24.0M/26.1M [00:02<00:00, 11.6MB/s]
                                                                                
sub-MNI3_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/806k [00:00<?, ?B/s]


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


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


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


                                                                                
sub-MNI3_rec-uncombined13_T2starw.nii.gz:  79%|▊| 640k/806k [00:00<00:00, 5.13MB


sub-MNI3_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/815k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined12_T2starw.nii.gz:  46%|▍| 425k/933k [00:00<00:00, 4.34MB
                                                                                
                                                                                
sub-MNI3_rec-uncombined14_T2starw.nii.gz:  71%|▋| 578k/815k [00:00<00:00, 5.58MB
sub-MNI3_rec-uncombined16_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-uncombined17_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                


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

                                                                                
sub-MNI3_rec-uncombined15_T2starw.nii.gz:  75%|▋| 561k/750k [00:00<00:00, 4.52MB
                                                                                
sub-MNI3_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/966k [00:00<?, ?B/s]

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


sub-MNI3_rec-uncombined19_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-uncombined18_T2starw.nii.gz:   0%|      | 0.00/965k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined16_T2starw.nii.gz:  50%|▌| 484k/966k [00:00<00:00, 4.93MB

sub-MNI3_rec-uncombined17_T2starw.nii.gz:  39%|▍| 409k/1.02M [00:00<00:00, 4.17M
                                                                                
sub-MNI3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/912k [00:00<?, ?B/s]


sub-MNI3_rec-uncombined18_T2starw.nii.gz:  60%|▌| 578k/965k [00:00<00:00, 5.28MB

sub-MNI3_rec-uncombined17_T2starw.nii.gz:  86%|▊| 901k/1.02M [00:00<00:00, 4.66M

                                                                                
                                                                                
sub-MNI3_rec-uncombined19_T2starw.nii.gz:  45%|▍| 408k/912k [00:00<00:00, 4.16MB

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


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_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/921k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/16.1M [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:   6%| | 0.98M/16.1M [00:00<00:01, 10.3MB/

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  29%|▎| 1.04M/3.65M [00:00<00:00, 10
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  21%|▏| 974k/4.52M [00:00<00:00, 9.97MB/



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



                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.96M/16.1M [00:00<00:01, 9.30MB/
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  42%|▍| 1.91M/4.52M [00:00<00:00, 9.85MB

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  57%|▌| 2.09M/3.65M [00:00<00:00, 9.



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



                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 3.08M/16.1M [00:00<00:01, 10.4MB/
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  71%|▋| 3.22M/4.52M [00:00<00:00, 11.6MB

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  82%|▊| 3.00M/3.65M [00:00<00:00, 8.



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



                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.42M/16.1M [00:00<00:01, 11.8MB/
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz: 100%|▉| 4.51M/4.52M [00:00<00:00, 12.4MB


                                                                                

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

                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  34%|▎| 5.56M/16.1M [00:00<00:01, 11.0MB/
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 11.0M/16.1M [00:00<00:00, 25.5MB/

sub-MNI3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.8k [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-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.1k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  84%|▊| 13.5M/16.1M [00:00<00:00, 22.3MB/

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

                                                                                
                                                                                

sub-MNI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/946k [00:00<?, ?B/s]
sub-MNI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/93.7k [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:  18%|█▏     | 169k/946k [00:00<00:00, 1.58MB/s]
                                                                                
sub-MPI1_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]
                                                                                
sub-MPI1_T2starw.nii.gz:   0%|                      | 0.00/1.29M [00:00<?, ?B/s]

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


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

                                                                                


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


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

                                                                                
sub-MPI1_T2starw.nii.gz:  40%|█████▋        | 531k/1.29M [00:00<00:00, 4.38MB/s]
                                                                                
sub-MPI1_UNIT1.nii.gz:   3%|▌               | 815k/25.0M [00:00<00:03, 7.19MB/s]
sub-MPI1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/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:   0%|       | 0.00/19.8M [00:00<?, ?B/s]


sub-MPI1_UNIT1.nii.gz:  10%|█▍             | 2.47M/25.0M [00:00<00:01, 12.9MB/s]



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




                                                                                
sub-MPI1_rec-uncombined10_T2starw.nii.gz:  69%|▋| 680k/980k [00:00<00:00, 6.94MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 595k/19.8M [00:00<00:03, 6.08MB/
                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 460k/18.5M [00:00<00:04, 4.00MB/
sub-MPI1_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                



sub-MPI1_UNIT1.nii.gz:  15%|██▏            | 3.74M/25.0M [00:00<00:02, 9.56MB/s]
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.16M/19.8M [00:00<00:03, 5.41MB
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.20M/18.5M [00:00<00:02, 6.09MB


sub-MPI1_UNIT1.nii.gz:  22%|███▎           | 5.55M/25.0M [00:00<00:01, 12.5MB/s]
sub-MPI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/977k [00:00<?, ?B/s]




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

sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 2.20M/19.8M [00:00<00:02, 7.71MB
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 2.09M/18.5M [00:00<00:02, 7.50MB


sub-MPI1_UNIT1.nii.gz:  27%|████           | 6.88M/25.0M [00:00<00:01, 12.9MB/s]
sub-MPI1_rec-uncombined11_T2starw.nii.gz:  73%|▋| 713k/977k [00:00<00:00, 7.30MB
sub-MPI1_rec-uncombined12_T2starw.nii.gz:  74%|▋| 713k/969k [00:00<00:00, 7.26MB

sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.95M/19.8M [00:00<00:02, 7.62MB
                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.11M/18.5M [00:00<00:01, 8.40MB




                                                                                
sub-MPI1_UNIT1.nii.gz:  33%|████▉          | 8.21M/25.0M [00:00<00:01, 11.6MB/s]
sub-MPI1_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.70M/19.8M [00:00<00:02, 6.93MB



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.39M/18.5M [00:00<00:01, 9.27MB
sub-MPI1_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_UNIT1.nii.gz:  38%|█████▋         | 9.40M/25.0M [00:00<00:01, 11.0MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.55M/18.5M [00:00<00:01, 10.1MB

sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.38M/19.8M [00:00<00:02, 6.33MB
sub-MPI1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/954k [00:00<?, ?B/s]
sub-MPI1_UNIT1.nii.gz:  44%|██████▌        | 11.0M/25.0M [00:00<00:01, 12.7MB/s]




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



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.17M/18.5M [00:00<00:00, 12.3MB

sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.25M/19.8M [00:00<00:02, 7.14MB
sub-MPI1_rec-uncombined13_T2starw.nii.gz:  80%|▊| 764k/954k [00:00<00:00, 7.77MB
                                                                                





sub-MPI1_rec-uncombined15_T2starw.nii.gz:  77%|▊| 749k/971k [00:00<00:00, 7.64MB


sub-MPI1_UNIT1.nii.gz:  49%|███████▍       | 12.3M/25.0M [00:01<00:01, 11.7MB/s]
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.95M/19.8M [00:00<00:02, 6.92MB



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.36M/18.5M [00:00<00:00, 11.4MB




                                                                                
sub-MPI1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 6.66M/19.8M [00:01<00:01, 7.02MB


sub-MPI1_UNIT1.nii.gz:  54%|████████       | 13.5M/25.0M [00:01<00:01, 11.0MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  51%|▌| 9.47M/18.5M [00:01<00:00, 10.8MB
sub-MPI1_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 7.97M/19.8M [00:01<00:01, 8.96MB


sub-MPI1_UNIT1.nii.gz:  59%|████████▉      | 14.8M/25.0M [00:01<00:00, 11.8MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  59%|▌| 10.9M/18.5M [00:01<00:00, 11.9MB
sub-MPI1_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]




sub-MPI1_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.66M/19.8M [00:01<00:00, 11.5MB


sub-MPI1_UNIT1.nii.gz:  65%|█████████▊     | 16.4M/25.0M [00:01<00:00, 13.0MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 12.4M/18.5M [00:01<00:00, 13.0MB
sub-MPI1_rec-uncombined14_T2starw.nii.gz:  70%|▋| 731k/1.03M [00:00<00:00, 7.41M




sub-MPI1_rec-uncombined17_T2starw.nii.gz:  72%|▋| 748k/1.01M [00:00<00:00, 7.62M
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 10.9M/19.8M [00:01<00:00, 11.1MB




                                                                                
sub-MPI1_UNIT1.nii.gz:  71%|██████████▌    | 17.7M/25.0M [00:01<00:00, 11.4MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 13.6M/18.5M [00:01<00:00, 11.4MB
sub-MPI1_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 12.2M/19.8M [00:01<00:00, 11.8MB
                                                                                
sub-MPI1_UNIT1.nii.gz:  76%|███████████▍   | 19.0M/25.0M [00:01<00:00, 12.1MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 14.9M/18.5M [00:01<00:00, 11.9MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 13.6M/19.8M [00:01<00:00, 12.6MB
sub-MPI1_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_UNIT1.nii.gz:  81%|████████████▏  | 20.4M/25.0M [00:01<00:00, 12.7MB/s]
sub-MPI1_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 16.3M/18.5M [00:01<00:00, 12.3MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  75%|▋| 14.8M/19.8M [00:01<00:00, 12.0MB




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




                                                                                
sub-MPI1_rec-uncombined16_T2starw.nii.gz:  54%|▌| 561k/1.01M [00:00<00:00, 5.50M



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  95%|▉| 17.5M/18.5M [00:01<00:00, 12.1MB


sub-MPI1_UNIT1.nii.gz:  86%|████████████▉  | 21.7M/25.0M [00:01<00:00, 12.0MB/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 16.0M/19.8M [00:01<00:00, 11.0MB



                                                                                
sub-MPI1_UNIT1.nii.gz:  91%|█████████████▋ | 22.9M/25.0M [00:02<00:00, 11.3MB/s]
sub-MPI1_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 17.1M/19.8M [00:01<00:00, 10.0MB


sub-MPI1_UNIT1.nii.gz:  96%|██████████████▎| 24.0M/25.0M [00:02<00:00, 11.2MB/s]
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_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 18.8M/19.8M [00:02<00:00, 12.0MB
sub-MPI1_rec-uncombined18_T2starw.nii.gz:  72%|▋| 765k/1.04M [00:00<00:00, 7.82M
                                                                                
                                                                                
sub-MPI1_rec-uncombined19_T2starw.nii.gz:  67%|▋| 731k/1.06M [00:00<00:00, 6.06M


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

sub-MPI1_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                


sub-MPI1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined21_T2starw.nii.gz:  58%|▌| 612k/1.03M [00:00<00:00, 5.67M

sub-MPI1_rec-uncombined1_T2starw.nii.gz:  60%|▌| 613k/0.99M [00:00<00:00, 5.69MB


sub-MPI1_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI1_rec-uncombined21_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

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



sub-MPI1_rec-uncombined20_T2starw.nii.gz:  32%|▎| 341k/1.05M [00:00<00:00, 2.74M
                                                                                
sub-MPI1_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

sub-MPI1_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]


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



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



                                                                                
sub-MPI1_rec-uncombined23_T2starw.nii.gz:  54%|▌| 578k/1.04M [00:00<00:00, 5.35M
sub-MPI1_rec-uncombined24_T2starw.nii.gz:  57%|▌| 578k/0.99M [00:00<00:00, 5.89M

                                                                                


sub-MPI1_rec-uncombined2_T2starw.nii.gz:  60%|▌| 583k/968k [00:00<00:00, 5.10MB/

sub-MPI1_rec-uncombined3_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-uncombined3_T2starw.nii.gz:  31%|▎| 306k/993k [00:00<00:00, 3.13MB/
sub-MPI1_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined5_T2starw.nii.gz:   0%|      | 0.00/0.98M [00:00<?, ?B/s]

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

                                                                                
sub-MPI1_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/967k [00:00<?, ?B/s]
sub-MPI1_rec-uncombined5_T2starw.nii.gz:  63%|▋| 630k/0.98M [00:00<00:00, 6.44MB


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



sub-MPI1_rec-uncombined9_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI1_rec-uncombined6_T2starw.nii.gz:  44%|▍| 424k/967k [00:00<00:00, 4.23MB/
sub-MPI1_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                



sub-MPI1_rec-uncombined4_T2starw.nii.gz:  25%|▏| 238k/967k [00:00<00:00, 2.25MB/
                                                                                
                                                                                
sub-MPI1_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]

sub-MPI1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/996k [00:00<?, ?B/s]
sub-MPI1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MPI1_rec-uncombined8_T2starw.nii.gz:  73%|▋| 731k/996k [00:00<00:00, 6.70MB/

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

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


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

                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  12%| | 476k/3.99M [00:00<00:00, 4.88MB/


sub-MPI1_rec-uncombined9_T2starw.nii.gz:  49%|▍| 477k/981k [00:00<00:00, 4.88MB/
sub-MPI1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.07k [00:00<?, ?B/s]

                                                                                

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


                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  25%|▏| 1.00M/3.99M [00:00<00:00, 4.60MB

sub-MPI1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/844k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.05k [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  59%|▌| 2.36M/3.99M [00:00<00:00, 8.68MB

                                                                                

sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.59M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.6M [00:00<?, ?B/s]



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



                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  84%|▊| 3.36M/3.99M [00:00<00:00, 8.83MB



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



                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   2%| | 339k/15.6M [00:00<00:04, 3.41MB/s

sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  14%|▏| 527k/3.59M [00:00<00:00, 4.5
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.21M/15.6M [00:00<00:02, 6.80MB/

sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  38%|▍| 1.36M/3.59M [00:00<00:00, 6.
sub-MPI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/87.9k [00:00<?, ?B/s]
                                                                                

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


sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  62%|▌| 2.22M/3.59M [00:00<00:00, 7.


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.06M/15.6M [00:00<00:02, 6.94MB/
sub-MPI1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/88.6k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  90%|▉| 3.23M/3.59M [00:00<00:00, 8.


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 3.09M/15.6M [00:00<00:01, 8.33MB/
sub-MPI1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/82.7k [00:00<?, ?B/s]

                                                                                

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



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



                                                                                
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  25%|▎| 3.90M/15.6M [00:00<00:01, 7.72MB/

sub-MPI1_acq-famp_TB1TFL.nii.gz:  57%|████   | 544k/948k [00:00<00:00, 5.55MB/s]
sub-MPI1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.06k [00:00<?, ?B/s]
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  31%|▎| 4.90M/15.6M [00:00<00:01, 8.47MB/
sub-MPI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI2_T2starw.json:   0%|                        | 0.00/2.40k [00:00<?, ?B/s]
                                                                                



sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  37%|▎| 5.73M/15.6M [00:00<00:01, 7.89MB/
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:   0%|        | 0.00/90.7k [00:00<?, ?B/s]

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


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  56%|▌| 8.68M/15.6M [00:00<00:00, 14.5MB/
                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.2M [00:00<?, ?B/s]

sub-MPI2_T2starw.nii.gz:  77%|██████████   | 0.98M/1.27M [00:00<00:00, 10.3MB/s]


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.5M/15.6M [00:00<00:00, 15.7MB/
                                                                                

sub-MPI2_UNIT1.json:   0%|                          | 0.00/2.03k [00:00<?, ?B/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:   2%| | 337k/18.2M [00:00<00:06, 2.77MB/
sub-MPI2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.05k [00:00<?, ?B/s]

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

                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 931k/18.2M [00:00<00:04, 4.31MB/


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 12.1M/15.6M [00:01<00:00, 11.7MB/
sub-MPI2_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.94M/18.2M [00:00<00:02, 7.02MB


sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 13.9M/15.6M [00:01<00:00, 13.4MB/
sub-MPI2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/971k [00:00<?, ?B/s]


                                                                                
sub-MPI2_UNIT1.nii.gz:   0%|                        | 0.00/25.5M [00:00<?, ?B/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.05M/18.2M [00:00<00:01, 8.75MB
sub-MPI2_rec-uncombined11_T2starw.nii.gz:  84%|▊| 816k/971k [00:00<00:00, 8.33MB

                                                                                
sub-MPI2_UNIT1.nii.gz:   3%|▍               | 725k/25.5M [00:00<00:03, 7.24MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.91M/18.2M [00:00<00:01, 8.80MB

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.4M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined10_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]
sub-MPI2_UNIT1.nii.gz:   7%|█              | 1.77M/25.5M [00:00<00:02, 9.50MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.35M/18.2M [00:00<00:01, 10.9MB

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 0.98M/19.4M [00:00<00:01, 10.2MB
sub-MPI2_rec-uncombined10_T2starw.nii.gz:  81%|▊| 806k/0.98M [00:00<00:00, 8.19M
sub-MPI2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]


sub-MPI2_UNIT1.nii.gz:  11%|█▌             | 2.72M/25.5M [00:00<00:02, 9.66MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  38%|▍| 6.88M/18.2M [00:00<00:00, 12.5MB



                                                                                
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 1.96M/19.4M [00:00<00:02, 8.05MB




sub-MPI2_rec-uncombined13_T2starw.nii.gz:  57%|▌| 551k/968k [00:00<00:00, 5.61MB
sub-MPI2_UNIT1.nii.gz:  15%|██▏            | 3.73M/25.5M [00:00<00:02, 10.0MB/s]



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



                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 8.10M/18.2M [00:00<00:00, 11.1MB
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.93M/19.4M [00:00<00:01, 8.89MB




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



                                                                                


sub-MPI2_UNIT1.nii.gz:  18%|██▊            | 4.70M/25.5M [00:00<00:02, 8.59MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  51%|▌| 9.21M/18.2M [00:01<00:00, 10.4MB

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.81M/19.4M [00:00<00:01, 8.63MB
sub-MPI2_UNIT1.nii.gz:  25%|███▊           | 6.40M/25.5M [00:00<00:01, 11.4MB/s]
sub-MPI2_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  59%|▌| 10.7M/18.2M [00:01<00:00, 11.4MB

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.15M/19.4M [00:00<00:01, 10.2MB



sub-MPI2_rec-uncombined12_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]
sub-MPI2_UNIT1.nii.gz:  30%|████▍          | 7.54M/25.5M [00:00<00:01, 11.3MB/s]




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




                                                                                



sub-MPI2_rec-uncombined12_T2starw.nii.gz:  64%|▋| 645k/0.98M [00:00<00:00, 6.38M

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.29M/19.4M [00:00<00:01, 10.5MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 11.8M/18.2M [00:01<00:00, 11.2MB
                                                                                
sub-MPI2_UNIT1.nii.gz:  34%|█████          | 8.67M/25.5M [00:00<00:01, 10.5MB/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.45M/19.4M [00:00<00:01, 11.0MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 13.0M/18.2M [00:01<00:00, 11.5MB
sub-MPI2_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]


sub-MPI2_UNIT1.nii.gz:  41%|██████         | 10.3M/25.5M [00:00<00:01, 12.5MB/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 9.06M/19.4M [00:00<00:00, 12.8MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.6M/18.2M [00:01<00:00, 12.9MB
sub-MPI2_rec-uncombined14_T2starw.nii.gz:  70%|▋| 749k/1.05M [00:00<00:00, 7.66M
sub-MPI2_rec-uncombined16_T2starw.nii.gz:  66%|▋| 713k/1.06M [00:00<00:00, 7.19M



                                                                                
sub-MPI2_UNIT1.nii.gz:  45%|██████▊        | 11.6M/25.5M [00:01<00:01, 11.7MB/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 10.3M/19.4M [00:01<00:00, 11.9MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  87%|▊| 15.8M/18.2M [00:01<00:00, 12.1MB




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



                                                                                
sub-MPI2_UNIT1.nii.gz:  50%|███████▌       | 12.7M/25.5M [00:01<00:01, 10.9MB/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 11.4M/19.4M [00:01<00:00, 11.0MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.0M/18.2M [00:01<00:00, 11.2MB
sub-MPI2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MPI2_UNIT1.nii.gz:  56%|████████▎      | 14.1M/25.5M [00:01<00:01, 11.1MB/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.8M/19.4M [00:01<00:00, 11.2MB
sub-MPI2_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined18_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_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 14.9M/19.4M [00:01<00:00, 13.3MB


sub-MPI2_UNIT1.nii.gz:  64%|█████████▌     | 16.3M/25.5M [00:01<00:00, 13.2MB/s]
sub-MPI2_rec-uncombined18_T2starw.nii.gz:  51%|▌| 545k/1.04M [00:00<00:00, 5.58M
sub-MPI2_rec-uncombined15_T2starw.nii.gz:  61%|▌| 596k/984k [00:00<00:00, 6.10MB
                                                                                
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  84%|▊| 16.4M/19.4M [00:01<00:00, 13.0MB


sub-MPI2_UNIT1.nii.gz:  70%|██████████▍    | 17.7M/25.5M [00:01<00:00, 12.9MB/s]




                                                                                
sub-MPI2_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.00M [00:00<?, ?B/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 17.7M/19.4M [00:01<00:00, 13.2MB


sub-MPI2_UNIT1.nii.gz:  75%|███████████▏   | 19.1M/25.5M [00:01<00:00, 13.1MB/s]



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



                                                                                
sub-MPI2_rec-uncombined17_T2starw.nii.gz:  84%|▊| 868k/1.00M [00:00<00:00, 7.68M
                                                                                
sub-MPI2_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]

sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  98%|▉| 19.0M/19.4M [00:01<00:00, 12.4MB


sub-MPI2_UNIT1.nii.gz:  80%|███████████▉   | 20.3M/25.5M [00:01<00:00, 12.3MB/s]
                                                                                
sub-MPI2_rec-uncombined1_T2starw.nii.gz:  80%|▊| 816k/0.99M [00:00<00:00, 8.34MB
                                                                                

sub-MPI2_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI2_UNIT1.nii.gz:  86%|████████████▊  | 21.8M/25.5M [00:01<00:00, 12.5MB/s]

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

                                                                                

sub-MPI2_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined19_T2starw.nii.gz:  32%|▎| 339k/1.03M [00:00<00:00, 3.41M
sub-MPI2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                


sub-MPI2_UNIT1.nii.gz:  90%|█████████████▌ | 23.0M/25.5M [00:02<00:00, 11.4MB/s]

sub-MPI2_rec-uncombined20_T2starw.nii.gz:  61%|▌| 646k/1.04M [00:00<00:00, 6.49M
                                                                                
sub-MPI2_rec-uncombined22_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_UNIT1.nii.gz:  95%|██████████████▏| 24.1M/25.5M [00:02<00:00, 10.4MB/s]
                                                                                
sub-MPI2_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


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

                                                                                


                                                                                
sub-MPI2_rec-uncombined22_T2starw.nii.gz:  87%|▊| 940k/1.06M [00:00<00:00, 6.36M

sub-MPI2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined21_T2starw.nii.gz:  81%|▊| 850k/1.03M [00:00<00:00, 8.19M

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

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


sub-MPI2_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined24_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



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



                                                                                


sub-MPI2_rec-uncombined23_T2starw.nii.gz:  38%|▍| 407k/1.04M [00:00<00:00, 4.04M
sub-MPI2_rec-uncombined2_T2starw.nii.gz:  98%|▉| 935k/959k [00:00<00:00, 7.45MB/

sub-MPI2_rec-uncombined24_T2starw.nii.gz:  36%|▎| 369k/0.99M [00:00<00:00, 3.30M
                                                                                
                                                                                


sub-MPI2_rec-uncombined23_T2starw.nii.gz: 100%|█| 1.04M/1.04M [00:00<00:00, 5.38


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

sub-MPI2_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/999k [00:00<?, ?B/s]
                                                                                

sub-MPI2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/971k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined3_T2starw.nii.gz:  54%|▌| 543k/999k [00:00<00:00, 5.52MB/

                                                                                
sub-MPI2_rec-uncombined4_T2starw.nii.gz:  94%|▉| 918k/971k [00:00<00:00, 7.45MB/

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

                                                                                

sub-MPI2_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/981k [00:00<?, ?B/s]


sub-MPI2_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/970k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]
                                                                                


sub-MPI2_rec-uncombined5_T2starw.nii.gz:  75%|▋| 731k/981k [00:00<00:00, 7.01MB/


sub-MPI2_rec-uncombined6_T2starw.nii.gz:  75%|▊| 730k/970k [00:00<00:00, 7.01MB/
                                                                                


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

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

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

                                                                                
sub-MPI2_rec-uncombined9_T2starw.nii.gz:   0%|       | 0.00/994k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined7_T2starw.nii.gz:  86%|▊| 884k/1.00M [00:00<00:00, 8.78MB


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


                                                                                
sub-MPI2_rec-uncombined8_T2starw.nii.gz:   0%|      | 0.00/0.98M [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]
                                                                                


sub-MPI2_rec-uncombined9_T2starw.nii.gz:  36%|▎| 357k/994k [00:00<00:00, 2.92MB/
sub-MPI2_rec-uncombined8_T2starw.nii.gz:  49%|▍| 492k/0.98M [00:00<00:00, 5.01MB

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

sub-MPI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [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:  98%|▉| 985k/0.98M [00:00<00:00, 4.55MB


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

sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.94M [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.64M [00:00<?, ?B/s]


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


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


                                                                                


sub-MPI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/88.3k [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  12%| | 476k/3.94M [00:00<00:00, 4.58MB/
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 408k/3.64M [00:00<00:00, 4.1


                                                                                
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  38%|▍| 1.50M/3.94M [00:00<00:00, 8.14MB

sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  41%|▍| 1.48M/3.64M [00:00<00:00, 8.
sub-MPI2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.06k [00:00<?, ?B/s]


                                                                                
sub-MPI2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/937k [00:00<?, ?B/s]
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  76%|▊| 2.98M/3.94M [00:00<00:00, 11.4MB

sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  70%|▋| 2.55M/3.64M [00:00<00:00, 9.



sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.5M [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:  62%|████▎  | 578k/937k [00:00<00:00, 5.89MB/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   3%| | 494k/15.5M [00:00<00:03, 4.24MB/s
sub-MPI2_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   6%| | 918k/15.5M [00:00<00:03, 4.15MB/s

sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  96%|▉| 3.48M/3.64M [00:00<00:00, 6.

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

sub-MPI2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/84.2k [00:00<?, ?B/s]
                                                                                




sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.31M/15.5M [00:00<00:03, 3.98MB/
sub-MPI2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.4k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.38M/15.5M [00:00<00:00, 14.3MB/
sub-MPI3_UNIT1.nii.gz:   0%|                        | 0.00/25.5M [00:00<?, ?B/s]

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

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

                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 5.84M/15.5M [00:00<00:00, 14.4MB/
sub-MPI3_UNIT1.nii.gz:   2%|▎               | 578k/25.5M [00:00<00:04, 5.91MB/s]
sub-MPI3_T2starw.nii.gz:   0%|                      | 0.00/1.30M [00:00<?, ?B/s]


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


                                                                                


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


                                                                                
sub-MPI3_T2starw.nii.gz:   8%|█             | 101k/1.30M [00:00<00:01, 1.03MB/s]
sub-MPI3_UNIT1.nii.gz:   4%|▋              | 1.13M/25.5M [00:00<00:05, 5.00MB/s]



sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  47%|▍| 7.27M/15.5M [00:00<00:00, 12.4MB/
sub-MPI3_T2starw.nii.gz:  93%|████████████ | 1.21M/1.30M [00:00<00:00, 7.26MB/s]

                                                                                
sub-MPI3_UNIT1.nii.gz:  10%|█▍             | 2.52M/25.5M [00:00<00:02, 8.97MB/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 8.93M/15.5M [00:00<00:00, 13.3MB/

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


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/20.1M [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  14%|██▏            | 3.67M/25.5M [00:00<00:02, 10.1MB/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 10.5M/15.5M [00:00<00:00, 14.2MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 884k/18.4M [00:00<00:02, 9.00MB/


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 885k/20.1M [00:00<00:02, 9.06MB/
sub-MPI3_UNIT1.nii.gz:  19%|██▉            | 4.93M/25.5M [00:00<00:01, 11.2MB/s]




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




                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 11.9M/15.5M [00:01<00:00, 13.5MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.73M/18.4M [00:00<00:02, 7.82MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.74M/20.1M [00:00<00:02, 7.65MB
sub-MPI3_UNIT1.nii.gz:  24%|███▌           | 6.02M/25.5M [00:00<00:01, 10.6MB/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.4M/15.5M [00:01<00:00, 13.9MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.92M/18.4M [00:00<00:01, 9.76MB
sub-MPI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/999k [00:00<?, ?B/s]


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 3.07M/20.1M [00:00<00:01, 10.2MB
sub-MPI3_UNIT1.nii.gz:  28%|████▏          | 7.15M/25.5M [00:00<00:01, 10.9MB/s]
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  95%|▉| 14.7M/15.5M [00:01<00:00, 14.0MB/

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.28M/18.4M [00:00<00:01, 11.4MB
sub-MPI3_rec-uncombined10_T2starw.nii.gz:  75%|▋| 747k/999k [00:00<00:00, 7.57MB


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.39M/20.1M [00:00<00:01, 11.5MB



                                                                                
sub-MPI3_UNIT1.nii.gz:  32%|████▊          | 8.22M/25.5M [00:00<00:01, 10.2MB/s]




                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.39M/18.4M [00:00<00:01, 10.2MB


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.51M/20.1M [00:00<00:01, 10.5MB
sub-MPI3_UNIT1.nii.gz:  37%|█████▍         | 9.32M/25.5M [00:00<00:01, 10.5MB/s]



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



                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.66M/18.4M [00:00<00:01, 11.1MB



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


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 6.90M/20.1M [00:00<00:01, 11.8MB
sub-MPI3_UNIT1.nii.gz:  41%|██████▏        | 10.5M/25.5M [00:01<00:01, 10.9MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.28M/18.4M [00:00<00:00, 12.9MB




sub-MPI3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/994k [00:00<?, ?B/s]



sub-MPI3_rec-uncombined11_T2starw.nii.gz:  90%|▉| 884k/984k [00:00<00:00, 8.94MB


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  42%|▍| 8.39M/20.1M [00:00<00:00, 12.9MB



                                                                                
sub-MPI3_UNIT1.nii.gz:  45%|██████▊        | 11.5M/25.5M [00:01<00:01, 10.4MB/s]
sub-MPI3_rec-uncombined12_T2starw.nii.gz:  56%|▌| 560k/994k [00:00<00:00, 5.70MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.55M/18.4M [00:00<00:00, 12.3MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  48%|▍| 9.65M/20.1M [00:00<00:00, 12.4MB




                                                                                
sub-MPI3_UNIT1.nii.gz:  50%|███████▌       | 12.8M/25.5M [00:01<00:01, 10.4MB/s]



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



                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.8M/18.4M [00:01<00:00, 11.0MB


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  54%|▌| 10.9M/20.1M [00:01<00:00, 10.9MB
sub-MPI3_UNIT1.nii.gz:  55%|████████▏      | 13.9M/25.5M [00:01<00:01, 10.7MB/s]



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



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

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 11.8M/18.4M [00:01<00:00, 11.0MB


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 12.0M/20.1M [00:01<00:00, 11.1MB
sub-MPI3_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]




                                                                                
sub-MPI3_UNIT1.nii.gz:  59%|████████▊      | 15.0M/25.5M [00:01<00:01, 10.9MB/s]
sub-MPI3_rec-uncombined14_T2starw.nii.gz:  53%|▌| 562k/1.03M [00:00<00:00, 5.69M

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 12.9M/18.4M [00:01<00:00, 10.9MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  65%|▋| 13.1M/20.1M [00:01<00:00, 11.0MB
sub-MPI3_UNIT1.nii.gz:  63%|█████████▍     | 16.1M/25.5M [00:01<00:00, 10.9MB/s]



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

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 14.1M/18.4M [00:01<00:00, 11.2MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 14.2M/20.1M [00:01<00:00, 11.3MB
sub-MPI3_UNIT1.nii.gz:  68%|██████████▏    | 17.2M/25.5M [00:01<00:00, 11.2MB/s]
sub-MPI3_rec-uncombined13_T2starw.nii.gz:  91%|▉| 884k/968k [00:00<00:00, 9.03MB



                                                                                
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 15.3M/20.1M [00:01<00:00, 11.3MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  85%|▊| 15.6M/18.4M [00:01<00:00, 11.6MB
sub-MPI3_UNIT1.nii.gz:  72%|██████████▊    | 18.3M/25.5M [00:01<00:00, 11.3MB/s]



sub-MPI3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/986k [00:00<?, ?B/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  84%|▊| 16.9M/20.1M [00:01<00:00, 12.7MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.1M/18.4M [00:01<00:00, 12.9MB
sub-MPI3_UNIT1.nii.gz:  78%|███████████▋   | 19.8M/25.5M [00:01<00:00, 12.6MB/s]



sub-MPI3_rec-uncombined15_T2starw.nii.gz:  88%|▉| 867k/986k [00:00<00:00, 8.86MB




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



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



                                                                                




sub-MPI3_rec-uncombined17_T2starw.nii.gz:  56%|▌| 594k/1.04M [00:00<00:00, 4.80M
sub-MPI3_UNIT1.nii.gz:  83%|████████████▍  | 21.0M/25.5M [00:02<00:00, 11.3MB/s]


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 18.1M/20.1M [00:01<00:00, 11.3MB

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz: 100%|▉| 18.4M/18.4M [00:01<00:00, 11.5MB
                                                                                
                                                                                
sub-MPI3_UNIT1.nii.gz:  87%|█████████████  | 22.2M/25.5M [00:02<00:00, 11.0MB/s]


sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 19.2M/20.1M [00:01<00:00, 11.0MB


                                                                                
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-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  91%|█████████████▋ | 23.2M/25.5M [00:02<00:00, 10.8MB/s]
sub-MPI3_rec-uncombined16_T2starw.nii.gz:  60%|▌| 628k/1.02M [00:00<00:00, 6.42M
                                                                                
sub-MPI3_UNIT1.nii.gz:  98%|██████████████▋| 24.9M/25.5M [00:02<00:00, 11.9MB/s]


sub-MPI3_rec-uncombined18_T2starw.nii.gz:  88%|▉| 960k/1.07M [00:00<00:00, 8.02M

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

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

sub-MPI3_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined19_T2starw.nii.gz:  26%|▎| 288k/1.08M [00:00<00:00, 2.75M
sub-MPI3_rec-uncombined21_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI3_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/1.02M [00:00<?, ?B/s]

sub-MPI3_rec-uncombined20_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:  86%|▊| 901k/1.02M [00:00<00:00, 9.19MB
sub-MPI3_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                

sub-MPI3_rec-uncombined20_T2starw.nii.gz:  86%|▊| 935k/1.07M [00:00<00:00, 9.49M
                                                                                
sub-MPI3_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]


sub-MPI3_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.05M [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:  83%|▊| 917k/1.07M [00:00<00:00, 7.88M


sub-MPI3_rec-uncombined21_T2starw.nii.gz:  82%|▊| 883k/1.05M [00:00<00:00, 7.62M

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



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

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



sub-MPI3_rec-uncombined23_T2starw.nii.gz:  17%|▏| 186k/1.07M [00:00<00:00, 1.77M
                                                                                
                                                                                
sub-MPI3_rec-uncombined2_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-uncombined24_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined3_T2starw.nii.gz:   0%|      | 0.00/1.00M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]



                                                                                

sub-MPI3_rec-uncombined24_T2starw.nii.gz:  69%|▋| 714k/1.01M [00:00<00:00, 7.29M
sub-MPI3_rec-uncombined2_T2starw.nii.gz:  82%|▊| 816k/992k [00:00<00:00, 7.00MB/



sub-MPI3_rec-uncombined5_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined3_T2starw.nii.gz:  65%|▋| 662k/1.00M [00:00<00:00, 6.75MB
                                                                                
                                                                                
sub-MPI3_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined5_T2starw.nii.gz:  30%|▎| 306k/1.01M [00:00<00:00, 2.56MB


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

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

                                                                                
sub-MPI3_rec-uncombined8_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-uncombined8_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined4_T2starw.nii.gz:  59%|▌| 579k/984k [00:00<00:00, 5.92MB/
                                                                                
sub-MPI3_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined8_T2starw.nii.gz:  55%|▌| 562k/0.99M [00:00<00:00, 4.79MB

sub-MPI3_rec-uncombined6_T2starw.nii.gz:  60%|▌| 595k/992k [00:00<00:00, 4.97MB/
sub-MPI3_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.03M [00:00<?, ?B/s]

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

                                                                                
sub-MPI3_rec-uncombined7_T2starw.nii.gz:  21%|▏| 221k/1.03M [00:00<00:00, 2.11MB

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_rec-uncombined9_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                



                                                                                
sub-MPI3_acq-anat_TB1TFL.nii.gz:  99%|██████▉| 833k/843k [00:00<00:00, 7.54MB/s]
sub-MPI3_rec-uncombined9_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]

                                                                                
                                                                                

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

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


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

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


                                                                                
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  22%|▏| 901k/3.96M [00:00<00:00, 9.20MB/

sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   6%| | 884k/15.6M [00:00<00:01, 9.03MB/s


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


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



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


                                                                                
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  45%|▍| 1.76M/3.96M [00:00<00:00, 8.24MB

sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.73M/15.6M [00:00<00:01, 7.79MB/


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


                                                                                
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  12%| | 436k/3.58M [00:00<00:00, 4.4
sub-MPI3_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.07k [00:00<?, ?B/s]


                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.51M/15.6M [00:00<00:01, 7.50MB/
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  72%|▋| 2.85M/3.96M [00:00<00:00, 8.72MB


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


                                                                                
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  30%|▎| 1.07M/3.58M [00:00<00:00, 5.
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  23%|▏| 3.65M/15.6M [00:00<00:01, 9.08MB/
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  95%|▉| 3.74M/3.96M [00:00<00:00, 8.92MB


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



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




sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  43%|▍| 1.55M/3.58M [00:00<00:00, 4.
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  29%|▎| 4.54M/15.6M [00:00<00:01, 8.25MB/
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  87%|▊| 3.10M/3.58M [00:00<00:00, 9.



                                                                                
sub-MPI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/955k [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-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/82.6k [00:00<?, ?B/s]

sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  42%|▍| 6.57M/15.6M [00:00<00:00, 12.2MB/



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


                                                                                
sub-MPI3_acq-famp_TB1TFL.nii.gz:  20%|█▎     | 187k/955k [00:00<00:00, 1.71MB/s]
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  50%|▌| 7.79M/15.6M [00:00<00:00, 10.6MB/
                                                                                
sub-MPI3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.09k [00:00<?, ?B/s]


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



                                                                                
sub-MPI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.6k [00:00<?, ?B/s]
                                                                                


sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  57%|▌| 8.89M/15.6M [00:00<00:00, 9.44MB/
sub-MSSM1_inv-1_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  81%|▊| 12.7M/15.6M [00:01<00:00, 17.1MB/
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.7M [00:00<?, ?B/s]


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


                                                                                


sub-MSSM1_T2starw.nii.gz:   0%|                     | 0.00/1.78M [00:00<?, ?B/s]
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  95%|▉| 14.8M/15.6M [00:01<00:00, 18.4MB/



sub-MSSM1_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 612k/18.7M [00:00<00:03, 4.91MB



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


sub-MSSM1_T2starw.nii.gz:  35%|████▌        | 645k/1.78M [00:00<00:00, 6.53MB/s]
                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.23M/18.7M [00:00<00:03, 5.80M



sub-MSSM1_UNIT1.nii.gz:   2%|▎              | 664k/26.6M [00:00<00:04, 6.80MB/s]


sub-MSSM1_T2starw.nii.gz:  74%|████████▊   | 1.31M/1.78M [00:00<00:00, 6.88MB/s]
sub-MSSM1_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                

sub-MSSM1_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/374k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.98M/18.7M [00:00<00:02, 6.12M

                                                                                



sub-MSSM1_UNIT1.nii.gz:   5%|▋             | 1.31M/26.6M [00:00<00:04, 5.95MB/s]
sub-MSSM1_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_UNIT1.nii.gz:   9%|█▏            | 2.28M/26.6M [00:00<00:03, 7.02MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.81M/18.7M [00:00<00:01, 9.75M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/20.7M [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/378k [00:00<?, ?B/s]




sub-MSSM1_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]




                                                                                
                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.03M/18.7M [00:00<00:01, 10.7M



sub-MSSM1_UNIT1.nii.gz:  13%|█▊            | 3.48M/26.6M [00:00<00:02, 8.96MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 509k/20.7M [00:00<00:04, 4.58MB
sub-MSSM1_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.12M/18.7M [00:00<00:01, 10.3M



sub-MSSM1_UNIT1.nii.gz:  17%|██▍           | 4.59M/26.6M [00:00<00:02, 9.27MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.24M/20.7M [00:00<00:03, 6.21M
sub-MSSM1_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/756k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 7.72M/18.7M [00:00<00:00, 12.2M



sub-MSSM1_UNIT1.nii.gz:  23%|███▎          | 6.21M/26.6M [00:00<00:01, 11.7MB/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.40M/20.7M [00:00<00:02, 8.76M




sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_UNIT1.nii.gz:  28%|███▉          | 7.37M/26.6M [00:00<00:01, 11.5MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  48%|▍| 8.91M/18.7M [00:00<00:00, 11.9M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.44M/20.7M [00:00<00:01, 9.53M




sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:  83%|▊| 629k/759k [00:00<00:00, 6.




                                                                                
sub-MSSM1_UNIT1.nii.gz:  32%|████▌         | 8.60M/26.6M [00:00<00:01, 11.9MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 10.1M/18.7M [00:01<00:00, 12.1M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.67M/20.7M [00:00<00:01, 10.7M
sub-MSSM1_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                


sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/768k [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:  37%|█████▏        | 9.89M/26.6M [00:00<00:01, 12.3MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  61%|▌| 11.4M/18.7M [00:01<00:00, 12.4M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.97M/20.7M [00:00<00:01, 11.7M
sub-MSSM1_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]




                                                                                
sub-MSSM1_rec-uncombined00007_T2starw.nii.gz: 100%|▉| 765k/768k [00:00<00:00, 6.
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 12.7M/18.7M [00:01<00:00, 12.2M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  35%|▎| 7.20M/20.7M [00:00<00:01, 11.8M



sub-MSSM1_UNIT1.nii.gz:  42%|█████▉        | 11.2M/26.6M [00:01<00:01, 12.2MB/s]


                                                                                
sub-MSSM1_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 13.9M/18.7M [00:01<00:00, 11.6M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  41%|▍| 8.50M/20.7M [00:00<00:01, 11.4M



sub-MSSM1_UNIT1.nii.gz:  47%|██████▌       | 12.4M/26.6M [00:01<00:01, 11.6MB/s]
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/770k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  85%|▊| 15.9M/18.7M [00:01<00:00, 14.1M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 10.5M/20.7M [00:00<00:00, 14.1M



sub-MSSM1_UNIT1.nii.gz:  54%|███████▌      | 14.4M/26.6M [00:01<00:00, 14.1MB/s]




sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/760k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:  97%|▉| 744k/770k [00:00<00:00, 7.


                                                                                




sub-MSSM1_rec-uncombined00011_T2starw.nii.gz: 100%|█| 760k/760k [00:00<00:00, 7.
                                                                                

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 11.8M/20.7M [00:01<00:00, 12.9M



sub-MSSM1_UNIT1.nii.gz:  59%|████████▎     | 15.8M/26.6M [00:01<00:00, 12.9MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  92%|▉| 17.2M/18.7M [00:01<00:00, 11.9M
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 13.2M/20.7M [00:01<00:00, 13.1M



sub-MSSM1_UNIT1.nii.gz:  64%|█████████     | 17.1M/26.6M [00:01<00:00, 13.2MB/s]
                                                                                
sub-MSSM1_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 14.4M/20.7M [00:01<00:00, 11.3M



sub-MSSM1_UNIT1.nii.gz:  69%|█████████▋    | 18.4M/26.6M [00:01<00:00, 11.3MB/s]
sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/367k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
                                                                                




sub-MSSM1_UNIT1.nii.gz:  73%|██████████▎   | 19.6M/26.6M [00:01<00:00, 11.1MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 15.7M/20.7M [00:01<00:00, 11.2M
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/746k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_UNIT1.nii.gz:  79%|███████████   | 20.9M/26.6M [00:01<00:00, 11.9MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  82%|▊| 17.0M/20.7M [00:01<00:00, 11.9M
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:  98%|▉| 731k/746k [00:00<00:00, 7.
                                                                                
sub-MSSM1_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/743k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00015_T2starw.nii.gz:  60%|▌| 443k/743k [00:00<00:00, 4.

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 18.2M/20.7M [00:01<00:00, 10.4M



sub-MSSM1_UNIT1.nii.gz:  83%|███████████▌  | 22.1M/26.6M [00:02<00:00, 10.4MB/s]
                                                                                
sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/737k [00:00<?, ?B/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 20.0M/20.7M [00:01<00:00, 12.5M



sub-MSSM1_UNIT1.nii.gz:  90%|████████████▌ | 23.8M/26.6M [00:02<00:00, 12.3MB/s]
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-uncombined00023_T2starw.nii.gz:  53%|▌| 391k/737k [00:00<00:00, 3.
                                                                                


sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:  49%|▍| 375k/759k [00:00<00:00, 3.
                                                                                




sub-MSSM1_UNIT1.nii.gz:  94%|█████████████▏| 25.1M/26.6M [00:02<00:00, 10.0MB/s]


                                                                                
sub-MSSM1_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:  98%|█████████████▊| 26.2M/26.6M [00:02<00:00, 10.3MB/s]
                                                                                
sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:  88%|▉| 664k/759k [00:00<00:00, 6.

sub-MSSM1_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/356k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM1_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00027_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-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/722k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                

sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:  68%|▋| 492k/722k [00:00<00:00, 5.
                                                                                
sub-MSSM1_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00029_T2starw.nii.gz:  92%|▉| 664k/722k [00:00<00:00, 5.
                                                                                
sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:  65%|▋| 476k/736k [00:00<00:00, 4.

sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:  65%|▋| 475k/736k [00:00<00:00, 4.
                                                                                
                                                                                
sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/351k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/706k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/346k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:  28%|▎| 198k/706k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/701k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                

sub-MSSM1_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:  78%|▊| 544k/701k [00:00<00:00, 4.
                                                                                
sub-MSSM1_rec-uncombined00043_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-uncombined00045_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MSSM1_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/703k [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:   0%|  | 0.00/712k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/334k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/678k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:  58%|▌| 409k/712k [00:00<00:00, 4.

                                                                                


sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:  50%|▌| 340k/678k [00:00<00:00, 2.
                                                                                



                                                                                
sub-MSSM1_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/339k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/677k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
                                                                                
                                                                                
sub-MSSM1_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/680k [00:00<?, ?B/s]
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-uncombined00055_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/685k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.31k [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_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.34M [00:00<?, ?B/s]
sub-MSSM1_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/16.1M [00:00<?, ?B/s]
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  33%|▎| 1.44M/4.34M [00:00<00:00, 15.1M


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM1_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/93.1k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:   6%| | 969k/16.1M [00:00<00:01, 8.07MB/


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  21%|▏| 764k/3.61M [00:00<00:00, 7.



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



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



                                                                                
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  67%|▋| 2.89M/4.34M [00:00<00:00, 8.49M


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  40%|▍| 1.44M/3.61M [00:00<00:00, 6

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.73M/16.1M [00:00<00:02, 6.72MB



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



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



                                                                                
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  57%|▌| 2.04M/3.61M [00:00<00:00, 5

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.37M/16.1M [00:00<00:02, 6.06MB
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  89%|▉| 3.85M/4.34M [00:00<00:00, 7.45M
                                                                                
sub-MSSM1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/93.3k [00:00<?, ?B/s]



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


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  78%|▊| 2.81M/3.61M [00:00<00:00, 6

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  20%|▏| 3.14M/16.1M [00:00<00:02, 6.70MB
                                                                                
sub-MSSM1_acq-famp_TB1TFL.nii.gz:  86%|█████▏| 714k/830k [00:00<00:00, 7.30MB/s]


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  98%|▉| 3.53M/3.61M [00:00<00:00, 6

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.33M/16.1M [00:00<00:01, 8.57MB


                                                                                



                                                                                
sub-MSSM2_T2starw.nii.gz:   0%|                     | 0.00/1.78M [00:00<?, ?B/s]
sub-MSSM2_UNIT1.json:   0%|                         | 0.00/1.14k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 5.19M/16.1M [00:00<00:01, 8.20MB


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


                                                                                
sub-MSSM2_T2starw.nii.gz:  22%|██▉          | 408k/1.78M [00:00<00:00, 3.44MB/s]
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/17.4M [00:00<?, ?B/s]

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  43%|▍| 6.97M/16.1M [00:00<00:00, 11.3MB
                                                                                

sub-MSSM2_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 369k/17.4M [00:00<00:04, 3.60MB
sub-MSSM2_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  50%|▌| 8.10M/16.1M [00:00<00:00, 10.9MB
sub-MSSM2_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.02M/17.4M [00:00<00:03, 5.52M
sub-MSSM2_UNIT1.nii.gz:   2%|▎              | 624k/26.6M [00:00<00:04, 6.37MB/s]

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  57%|▌| 9.22M/16.1M [00:01<00:00, 11.1MB
sub-MSSM2_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/361k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_UNIT1.nii.gz:   5%|▋             | 1.31M/26.6M [00:00<00:03, 6.69MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.75M/17.4M [00:00<00:02, 6.23M

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  65%|▋| 10.4M/16.1M [00:01<00:00, 11.4MB
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.0M [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]




                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  73%|▋| 11.7M/16.1M [00:01<00:00, 11.6MB
sub-MSSM2_UNIT1.nii.gz:   9%|█▎            | 2.43M/26.6M [00:00<00:03, 7.96MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.67M/17.4M [00:00<00:02, 6.77M



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 562k/19.0M [00:00<00:03, 5.73MB
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 13.3M/16.1M [00:01<00:00, 12.9MB
sub-MSSM2_UNIT1.nii.gz:  15%|██            | 3.92M/26.6M [00:00<00:02, 10.7MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.83M/17.4M [00:00<00:01, 8.55M



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.43M/19.0M [00:00<00:02, 7.75M




sub-MSSM2_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_UNIT1.nii.gz:  19%|██▋           | 5.17M/26.6M [00:00<00:02, 10.6MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.07M/17.4M [00:00<00:01, 9.23M

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 14.5M/16.1M [00:01<00:00, 12.1MB



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.18M/19.0M [00:00<00:02, 7.12M
sub-MSSM2_UNIT1.nii.gz:  25%|███▌          | 6.71M/26.6M [00:00<00:01, 12.4MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  38%|▍| 6.62M/17.4M [00:00<00:01, 11.3M

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz: 100%|▉| 16.0M/16.1M [00:01<00:00, 13.1MB

                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.70M/19.0M [00:00<00:01, 9.44M
sub-MSSM2_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.76M/17.4M [00:00<00:00, 10.8M

sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  30%|████▏         | 7.92M/26.6M [00:00<00:01, 11.5MB/s]



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 4.98M/19.0M [00:00<00:01, 10.7M
                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.10M/17.4M [00:01<00:00, 11.3M
sub-MSSM2_UNIT1.nii.gz:  34%|████▊         | 9.18M/26.6M [00:00<00:01, 11.6MB/s]



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.09M/19.0M [00:00<00:01, 11.0M

sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/728k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




                                                                                
sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:  79%|▊| 578k/728k [00:00<00:00, 5.



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.15M/19.0M [00:00<00:01, 10.9M


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.2M/17.4M [00:01<00:00, 11.2M
sub-MSSM2_UNIT1.nii.gz:  39%|█████▍        | 10.3M/26.6M [00:01<00:01, 11.2MB/s]

                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 8.28M/19.0M [00:00<00:01, 11.2M


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 11.3M/17.4M [00:01<00:00, 11.3M
sub-MSSM2_UNIT1.nii.gz:  44%|██████▏       | 11.7M/26.6M [00:01<00:01, 12.0MB/s]

sub-MSSM2_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 9.68M/19.0M [00:00<00:00, 12.2M

sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/741k [00:00<?, ?B/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  73%|▋| 12.7M/17.4M [00:01<00:00, 12.2M
sub-MSSM2_UNIT1.nii.gz:  49%|██████▊       | 13.0M/26.6M [00:01<00:01, 12.5MB/s]
                                                                                


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.0M/17.4M [00:01<00:00, 12.2M



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.1M/19.0M [00:01<00:00, 12.3M

sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  53%|███████▍      | 14.2M/26.6M [00:01<00:01, 12.3MB/s]
                                                                                
sub-MSSM2_UNIT1.nii.gz:  58%|████████▏     | 15.5M/26.6M [00:01<00:00, 12.1MB/s]


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 15.4M/17.4M [00:01<00:00, 12.0M



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.4M/19.0M [00:01<00:00, 12.2M
sub-MSSM2_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




sub-MSSM2_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                




                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 13.8M/19.0M [00:01<00:00, 11.8M


sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  96%|▉| 16.7M/17.4M [00:01<00:00, 11.7M
sub-MSSM2_UNIT1.nii.gz:  63%|████████▊     | 16.9M/26.6M [00:01<00:00, 11.8MB/s]
                                                                                
sub-MSSM2_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/737k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  68%|█████████▍    | 18.0M/26.6M [00:01<00:00, 11.2MB/s]



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 14.9M/19.0M [00:01<00:00, 11.2M
sub-MSSM2_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:  81%|▊| 595k/737k [00:00<00:00, 6.
sub-MSSM2_UNIT1.nii.gz:  72%|██████████    | 19.2M/26.6M [00:01<00:00, 11.5MB/s]



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  85%|▊| 16.1M/19.0M [00:01<00:00, 11.6M

                                                                                
sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/354k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/352k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_UNIT1.nii.gz:  76%|██████████▋   | 20.3M/26.6M [00:01<00:00, 10.8MB/s]


                                                                                



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 17.2M/19.0M [00:01<00:00, 10.1M
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_UNIT1.nii.gz:  80%|███████████▏  | 21.3M/26.6M [00:02<00:00, 9.91MB/s]



sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 18.2M/19.0M [00:01<00:00, 10.1M
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/696k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                


sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/702k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  84%|███████████▋  | 22.3M/26.6M [00:02<00:00, 9.97MB/s]
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  59%|▌| 408k/696k [00:00<00:00, 4.

                                                                                
sub-MSSM2_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:  90%|▉| 629k/702k [00:00<00:00, 5.
sub-MSSM2_UNIT1.nii.gz:  88%|████████████▎ | 23.4M/26.6M [00:02<00:00, 9.72MB/s]


                                                                                
sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/697k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_UNIT1.nii.gz:  92%|████████████▊ | 24.4M/26.6M [00:02<00:00, 10.1MB/s]

                                                                                
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/711k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/707k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  98%|█████████████▋| 26.0M/26.6M [00:02<00:00, 11.9MB/s]



sub-MSSM2_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]




sub-MSSM2_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]



                                                                                




                                                                                
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:  81%|▊| 578k/711k [00:00<00:00, 5.


sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:  75%|▋| 528k/707k [00:00<00:00, 4.

                                                                                
                                                                                
                                                                                

sub-MSSM2_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/345k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.26k [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:   0%|  | 0.00/680k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/342k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/676k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:  40%|▍| 136k/342k [00:00<00:00, 1.
                                                                                



sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  50%|▍| 336k/676k [00:00<00:00, 3.
sub-MSSM2_rec-uncombined00035_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-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  95%|▉| 642k/676k [00:00<00:00, 2.



                                                                                
sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/662k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/682k [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:   0%|  | 0.00/333k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:  92%|▉| 629k/682k [00:00<00:00, 5.


sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:  80%|▊| 527k/662k [00:00<00:00, 4.

                                                                                



sub-MSSM2_rec-uncombined00038_T2starw.nii.gz:  65%|▋| 217k/333k [00:00<00:00, 2.
                                                                                



                                                                                
sub-MSSM2_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/335k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/656k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/648k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:  81%|▊| 531k/656k [00:00<00:00, 5.
                                                                                
                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/655k [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-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/324k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


sub-MSSM2_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                



                                                                                
sub-MSSM2_rec-uncombined00050_T2starw.nii.gz:  63%|▋| 203k/324k [00:00<00:00, 1.
sub-MSSM2_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/647k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MSSM2_rec-uncombined00055_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/627k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/639k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00053_T2starw.nii.gz:  77%|▊| 491k/639k [00:00<00:00, 4.


sub-MSSM2_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:  48%|▍| 306k/633k [00:00<00:00, 3.

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

sub-MSSM2_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.01M [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/612k [00:00<?, ?B/s]


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


                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  35%|▎| 1.41M/4.01M [00:00<00:00, 14.8M


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

sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:  97%|▉| 595k/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-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 425k/3.61M [00:00<00:00, 4.
sub-MSSM2_acq-famp_TB1TFL.json:   0%|               | 0.00/1.74k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  70%|▋| 2.82M/4.01M [00:00<00:00, 8.39M


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

sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  41%|▍| 1.49M/3.61M [00:00<00:00, 8



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



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



                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   2%| | 322k/15.8M [00:00<00:04, 3.29MB/
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  94%|▉| 3.76M/4.01M [00:00<00:00, 7.80M
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  64%|▋| 2.30M/3.61M [00:00<00:00, 7
                                                                                

sub-MSSM2_acq-famp-1.5_TB1DREAM.json:   0%|         | 0.00/1.35k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   5%| | 832k/15.8M [00:00<00:03, 4.39MB/
sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  88%|▉| 3.17M/3.61M [00:00<00:00, 8
sub-MSSM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/90.5k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.43M/15.8M [00:00<00:03, 4.70MB
sub-MSSM2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/86.8k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  22%|▏| 3.50M/15.8M [00:00<00:01, 10.9MB
sub-MSSM2_acq-refv-1.5_TB1DREAM.json:   0%|         | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.1k [00:00<?, ?B/s]

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



sub-MSSM2_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/85.5k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  34%|▎| 5.38M/15.8M [00:00<00:00, 13.7MB
sub-MSSM2_acq-famp_TB1TFL.nii.gz:  64%|███▊  | 509k/794k [00:00<00:00, 5.19MB/s]

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

sub-MSSM2_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  43%|▍| 6.72M/15.8M [00:00<00:00, 11.1MB
sub-MSSM3_T2starw.nii.gz:   0%|                     | 0.00/1.51M [00:00<?, ?B/s]

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

                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  59%|▌| 9.25M/15.8M [00:00<00:00, 15.3MB
sub-MSSM3_T2starw.nii.gz:  66%|███████▉    | 1.00M/1.51M [00:00<00:00, 10.4MB/s]
                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.9M [00:00<?, ?B/s]


sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  70%|▋| 11.0M/15.8M [00:00<00:00, 16.3MB
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/22.0M [00:00<?, ?B/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_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 951k/18.9M [00:00<00:01, 9.60MB


sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  82%|▊| 12.9M/15.8M [00:01<00:00, 17.3MB
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 572k/22.0M [00:00<00:03, 5.84MB



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



                                                                                
sub-MSSM3_UNIT1.nii.gz:   2%|▎              | 577k/26.6M [00:00<00:05, 4.64MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.86M/18.9M [00:00<00:02, 7.58M


sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  93%|▉| 14.7M/15.8M [00:01<00:00, 15.3MB

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 1.14M/22.0M [00:00<00:03, 5.98M
sub-MSSM3_UNIT1.nii.gz:   5%|▊             | 1.44M/26.6M [00:00<00:03, 7.06MB/s]



sub-MSSM3_rec-uncombined00001_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.87M/22.0M [00:00<00:03, 6.44M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.61M/18.9M [00:00<00:02, 7.18M
                                                                                
sub-MSSM3_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


                                                                                




sub-MSSM3_UNIT1.nii.gz:   8%|█▏            | 2.15M/26.6M [00:00<00:04, 5.59MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 2.48M/22.0M [00:00<00:03, 5.81M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.30M/18.9M [00:00<00:02, 6.48M
sub-MSSM3_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                


sub-MSSM3_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                




sub-MSSM3_UNIT1.nii.gz:  13%|█▊            | 3.37M/26.6M [00:00<00:03, 7.89MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  14%|▏| 3.05M/22.0M [00:00<00:03, 5.53M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.93M/18.9M [00:00<00:02, 6.01M
sub-MSSM3_UNIT1.nii.gz:  17%|██▍           | 4.54M/26.6M [00:00<00:02, 9.26MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 4.14M/22.0M [00:00<00:02, 7.36M


sub-MSSM3_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/377k [00:00<?, ?B/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  31%|▎| 5.81M/18.9M [00:00<00:01, 9.94M
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/766k [00:00<?, ?B/s]




sub-MSSM3_UNIT1.nii.gz:  23%|███▎          | 6.23M/26.6M [00:00<00:01, 11.9MB/s]


                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.91M/22.0M [00:00<00:02, 7.51M
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:  67%|▋| 511k/766k [00:00<00:00, 5.
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.84M/18.9M [00:00<00:01, 9.90M



                                                                                
sub-MSSM3_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.76M/22.0M [00:00<00:02, 7.57M
sub-MSSM3_UNIT1.nii.gz:  28%|███▉          | 7.43M/26.6M [00:00<00:02, 9.82MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  41%|▍| 7.84M/18.9M [00:00<00:01, 9.58M
sub-MSSM3_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 7.04M/22.0M [00:00<00:01, 9.27M
sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]




sub-MSSM3_UNIT1.nii.gz:  33%|████▌         | 8.76M/26.6M [00:00<00:01, 10.9MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  48%|▍| 9.14M/18.9M [00:01<00:00, 10.7M
                                                                                
sub-MSSM3_UNIT1.nii.gz:  38%|█████▎        | 10.0M/26.6M [00:01<00:01, 11.2MB/s]

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 8.52M/22.0M [00:01<00:01, 10.3M


sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/769k [00:00<?, ?B/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 10.3M/18.9M [00:01<00:00, 10.9M
sub-MSSM3_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 9.76M/22.0M [00:01<00:01, 10.6M


sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:  97%|▉| 748k/769k [00:00<00:00, 6.




sub-MSSM3_UNIT1.nii.gz:  43%|█████▉        | 11.3M/26.6M [00:01<00:01, 11.2MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  61%|▌| 11.5M/18.9M [00:01<00:00, 11.1M


                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  50%|▌| 11.0M/22.0M [00:01<00:01, 11.3M




sub-MSSM3_UNIT1.nii.gz:  47%|██████▋       | 12.6M/26.6M [00:01<00:01, 11.8MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 12.9M/18.9M [00:01<00:00, 11.8M
sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/768k [00:00<?, ?B/s]



sub-MSSM3_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_UNIT1.nii.gz:  52%|███████▎      | 13.8M/26.6M [00:01<00:01, 11.9MB/s]

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  56%|▌| 12.3M/22.0M [00:01<00:00, 11.5M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 14.1M/18.9M [00:01<00:00, 12.0M
sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:  63%|▋| 487k/768k [00:00<00:00, 4.



sub-MSSM3_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 13.4M/22.0M [00:01<00:00, 10.5M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 15.3M/18.9M [00:01<00:00, 10.9M




sub-MSSM3_UNIT1.nii.gz:  56%|███████▉      | 15.0M/26.6M [00:01<00:01, 10.8MB/s]
sub-MSSM3_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/367k [00:00<?, ?B/s]

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 15.4M/22.0M [00:01<00:00, 13.3M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  91%|▉| 17.3M/18.9M [00:01<00:00, 13.6M




sub-MSSM3_UNIT1.nii.gz:  64%|████████▉     | 17.0M/26.6M [00:01<00:00, 13.4MB/s]



sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/762k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 16.7M/22.0M [00:01<00:00, 12.7M



sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:  78%|▊| 594k/762k [00:00<00:00, 6.




sub-MSSM3_UNIT1.nii.gz:  69%|█████████▋    | 18.3M/26.6M [00:01<00:00, 12.9MB/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 18.6M/18.9M [00:01<00:00, 12.9M
                                                                                
                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 17.9M/22.0M [00:01<00:00, 10.9M




sub-MSSM3_UNIT1.nii.gz:  74%|██████████▎   | 19.6M/26.6M [00:01<00:00, 11.2MB/s]
sub-MSSM3_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  91%|▉| 19.9M/22.0M [00:02<00:00, 13.4M




sub-MSSM3_UNIT1.nii.gz:  81%|███████████▍  | 21.6M/26.6M [00:02<00:00, 13.7MB/s]
sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/748k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]



sub-MSSM3_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:  75%|▋| 560k/748k [00:00<00:00, 5.


                                                                                

sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 21.3M/22.0M [00:02<00:00, 12.3M
sub-MSSM3_UNIT1.nii.gz:  87%|████████████▏ | 23.0M/26.6M [00:02<00:00, 12.4MB/s]
                                                                                

sub-MSSM3_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM3_UNIT1.nii.gz:  91%|████████████▊ | 24.3M/26.6M [00:02<00:00, 11.8MB/s]
sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
                                                                                





sub-MSSM3_UNIT1.nii.gz:  99%|█████████████▊| 26.3M/26.6M [00:02<00:00, 13.3MB/s]
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/756k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM3_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

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-uncombined00027_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/358k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:   0%|  | 0.00/728k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/363k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:  60%|▌| 441k/728k [00:00<00:00, 3.
                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/730k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/731k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/705k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:  89%|▉| 646k/730k [00:00<00:00, 5.
                                                                                
sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/735k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:  74%|▋| 544k/735k [00:00<00:00, 5.
                                                                                

sub-MSSM3_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/347k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/710k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/353k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]


                                                                                

                                                                                

sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/708k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:  43%|▍| 305k/710k [00:00<00:00, 2.
                                                                                

sub-MSSM3_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:  55%|▌| 390k/708k [00:00<00:00, 3.
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                

sub-MSSM3_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/705k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:  24%|▏| 170k/712k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:  79%|▊| 560k/705k [00:00<00:00, 5.


                                                                                
sub-MSSM3_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/672k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/335k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00049_T2starw.nii.gz:  72%|▋| 242k/335k [00:00<00:00, 2.
                                                                                

sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/342k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [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:   0%|  | 0.00/686k [00:00<?, ?B/s]

sub-MSSM3_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/686k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/642k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/687k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:  92%|▉| 594k/642k [00:00<00:00, 6.
                                                                                

sub-MSSM3_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:  92%|▉| 629k/687k [00:00<00:00, 6.

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

sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/676k [00:00<?, ?B/s]
                                                                                

sub-MSSM3_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.32M [00:00<?, ?B/s]

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


sub-MSSM3_acq-famp-0.66_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-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 341k/4.32M [00:00<00:01, 3.48MB
sub-MSSM3_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]



                                                                                


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   4%| | 594k/16.0M [00:00<00:03, 5.19MB/

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  15%|▏| 560k/3.61M [00:00<00:00, 5.
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  23%|▏| 1.01M/4.32M [00:00<00:00, 5.62M



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




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



                                                                                
                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.23M/16.0M [00:00<00:02, 5.32MB

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.21M/3.61M [00:00<00:00, 5
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  36%|▎| 1.56M/4.32M [00:00<00:00, 5.24M
sub-MSSM3_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  55%|▌| 1.99M/3.61M [00:00<00:00, 6


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.11M/16.0M [00:00<00:02, 6.80MB
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  52%|▌| 2.24M/4.32M [00:00<00:00, 5.93M



sub-MSSM3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/89.7k [00:00<?, ?B/s]
                                                                                



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



                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 2.78M/16.0M [00:00<00:02, 6.68MB

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  72%|▋| 2.61M/3.61M [00:00<00:00, 6
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  65%|▋| 2.82M/4.32M [00:00<00:00, 5.61M



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



                                                                                
                                                                                


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  25%|▏| 3.97M/16.0M [00:00<00:01, 8.59MB
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  82%|▊| 3.56M/4.32M [00:00<00:00, 6.27M

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



sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  31%|▎| 4.89M/16.0M [00:00<00:01, 8.85MB
                                                                                
sub-MSSM3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/92.7k [00:00<?, ?B/s]

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

                                                                                


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  41%|▍| 6.60M/16.0M [00:00<00:00, 11.3MB
                                                                                
sub-NTNU1_UNIT1.nii.gz:   0%|                       | 0.00/26.0M [00:00<?, ?B/s]
sub-NTNU1_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  51%|▌| 8.25M/16.0M [00:00<00:00, 12.4MB

sub-NTNU1_T2starw.nii.gz:   0%|                     | 0.00/1.33M [00:00<?, ?B/s]
sub-NTNU1_UNIT1.nii.gz:   3%|▍              | 781k/26.0M [00:00<00:03, 7.97MB/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/21.4M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  61%|▌| 9.77M/16.0M [00:00<00:00, 13.4MB

sub-NTNU1_T2starw.nii.gz:  64%|████████▎    | 867k/1.33M [00:00<00:00, 8.83MB/s]
sub-NTNU1_UNIT1.nii.gz:   7%|▉             | 1.76M/26.0M [00:00<00:02, 9.39MB/s]
                                                                                



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 866k/21.4M [00:00<00:02, 8.86MB

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.7M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  69%|▋| 11.1M/16.0M [00:01<00:00, 12.4MB
sub-NTNU1_UNIT1.nii.gz:  10%|█▍            | 2.66M/26.0M [00:00<00:02, 8.28MB/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:   4%| | 713k/19.7M [00:00<00:03, 6.11MB



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.69M/21.4M [00:00<00:03, 6.33M


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.3M/16.0M [00:01<00:00, 12.0MB
sub-NTNU1_UNIT1.nii.gz:  14%|█▉            | 3.61M/26.0M [00:00<00:02, 8.87MB/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:   7%| | 1.31M/19.7M [00:00<00:03, 6.28M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 2.34M/21.4M [00:00<00:03, 6.31M
sub-NTNU1_UNIT1.nii.gz:  18%|██▌           | 4.64M/26.0M [00:00<00:02, 9.51MB/s]


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  84%|▊| 13.4M/16.0M [00:01<00:00, 11.7MB
sub-NTNU1_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 2.26M/19.7M [00:00<00:02, 7.85M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 3.17M/21.4M [00:00<00:02, 7.11M
sub-NTNU1_UNIT1.nii.gz:  23%|███▏          | 6.02M/26.0M [00:00<00:01, 11.1MB/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  92%|▉| 14.8M/16.0M [00:01<00:00, 12.5MB
sub-NTNU1_rec-uncombined01_T2starw.nii.gz:  68%|▋| 735k/1.06M [00:00<00:00, 7.46

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.57M/19.7M [00:00<00:01, 10.0M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.50M/21.4M [00:00<00:01, 9.32M


                                                                                
sub-NTNU1_UNIT1.nii.gz:  28%|███▉          | 7.32M/26.0M [00:00<00:01, 10.9MB/s]




                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.54M/19.7M [00:00<00:01, 9.36M
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 5.43M/21.4M [00:00<00:01, 9.03M
sub-NTNU1_UNIT1.nii.gz:  33%|████▋         | 8.61M/26.0M [00:00<00:01, 11.7MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.51M/19.7M [00:00<00:01, 12.9M


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




sub-NTNU1_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 7.32M/21.4M [00:00<00:01, 12.3M
sub-NTNU1_UNIT1.nii.gz:  40%|█████▌        | 10.3M/26.0M [00:00<00:01, 13.6MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  40%|▍| 7.79M/19.7M [00:00<00:00, 13.1M


sub-NTNU1_rec-uncombined03_T2starw.nii.gz:  67%|▋| 714k/1.04M [00:00<00:00, 7.28




sub-NTNU1_rec-uncombined02_T2starw.nii.gz:  69%|▋| 713k/1.01M [00:00<00:00, 7.28
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.54M/21.4M [00:00<00:01, 12.4M
sub-NTNU1_UNIT1.nii.gz:  45%|██████▎       | 11.6M/26.0M [00:01<00:01, 13.4MB/s]




                                                                                
                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.07M/19.7M [00:00<00:00, 11.5M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.76M/21.4M [00:01<00:01, 11.2M
sub-NTNU1_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                


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


                                                                                
sub-NTNU1_UNIT1.nii.gz:  50%|██████▉       | 12.9M/26.0M [00:01<00:01, 10.5MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.2M/19.7M [00:01<00:00, 10.7M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 10.9M/21.4M [00:01<00:01, 10.4M


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


                                                                                
sub-NTNU1_UNIT1.nii.gz:  54%|███████▌      | 14.1M/26.0M [00:01<00:01, 10.7MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.5M/19.7M [00:01<00:00, 11.4M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 12.1M/21.4M [00:01<00:00, 11.0M


sub-NTNU1_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]




                                                                                
sub-NTNU1_UNIT1.nii.gz:  60%|████████▍     | 15.6M/26.0M [00:01<00:00, 11.6MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 12.6M/19.7M [00:01<00:00, 11.5M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 13.2M/21.4M [00:01<00:00, 11.1M


sub-NTNU1_rec-uncombined04_T2starw.nii.gz:  52%|▌| 544k/1.02M [00:00<00:00, 5.55
sub-NTNU1_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]




                                                                                
sub-NTNU1_UNIT1.nii.gz:  65%|█████████     | 16.8M/26.0M [00:01<00:00, 11.6MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 13.8M/19.7M [00:01<00:00, 11.4M


                                                                                



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 14.3M/21.4M [00:01<00:00, 11.1M
sub-NTNU1_UNIT1.nii.gz:  69%|█████████▋    | 18.0M/26.0M [00:01<00:00, 11.8MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  77%|▊| 15.1M/19.7M [00:01<00:00, 12.2M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 15.7M/21.4M [00:01<00:00, 12.0M
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU1_UNIT1.nii.gz:  77%|██████████▊   | 20.0M/26.0M [00:01<00:00, 14.3MB/s]
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  86%|▊| 16.9M/19.7M [00:01<00:00, 13.9M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 17.4M/21.4M [00:01<00:00, 13.8M
sub-NTNU1_rec-uncombined05_T2starw.nii.gz:  69%|▋| 725k/1.03M [00:00<00:00, 7.35
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:  69%|▋| 732k/1.04M [00:00<00:00, 7.42
sub-NTNU1_UNIT1.nii.gz:  82%|███████████▌  | 21.4M/26.0M [00:01<00:00, 13.9MB/s]



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 18.7M/21.4M [00:01<00:00, 13.6M

sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 18.2M/19.7M [00:01<00:00, 13.6M


                                                                                
                                                                                
sub-NTNU1_UNIT1.nii.gz:  88%|████████████▎ | 22.8M/26.0M [00:02<00:00, 12.5MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 19.5M/19.7M [00:01<00:00, 12.4M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  94%|▉| 20.1M/21.4M [00:01<00:00, 12.4M


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


                                                                                

                                                                                
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_UNIT1.nii.gz:  92%|████████████▉ | 24.0M/26.0M [00:02<00:00, 11.9MB/s]



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz: 100%|▉| 21.3M/21.4M [00:02<00:00, 11.8M



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

sub-NTNU1_rec-uncombined08_T2starw.nii.gz:  64%|▋| 664k/1.01M [00:00<00:00, 6.58


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


sub-NTNU1_rec-uncombined07_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_UNIT1.nii.gz:  97%|█████████████▌| 25.2M/26.0M [00:02<00:00, 9.30MB/s]
                                                                                



sub-NTNU1_rec-uncombined07_T2starw.nii.gz:  41%|▍| 454k/1.09M [00:00<00:00, 3.66
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-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined12_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined09_T2starw.nii.gz:  55%|▌| 612k/1.08M [00:00<00:00, 5.29


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



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

sub-NTNU1_rec-uncombined10_T2starw.nii.gz:  81%|▊| 902k/1.09M [00:00<00:00, 9.23
                                                                                
                                                                                
sub-NTNU1_rec-uncombined11_T2starw.nii.gz:  41%|▍| 466k/1.12M [00:00<00:00, 4.09



sub-NTNU1_rec-uncombined13_T2starw.nii.gz:  40%|▍| 442k/1.09M [00:00<00:00, 3.89
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-uncombined14_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined12_T2starw.nii.gz:  58%|▌| 659k/1.11M [00:00<00:00, 4.58
                                                                                

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

sub-NTNU1_rec-uncombined15_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.14M [00:00<?, ?B/s]
                                                                                

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

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

                                                                                
sub-NTNU1_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]


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


                                                                                

sub-NTNU1_rec-uncombined16_T2starw.nii.gz:  60%|▌| 674k/1.09M [00:00<00:00, 5.93
sub-NTNU1_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]

                                                                                
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:  52%|▌| 526k/0.98M [00:00<00:00, 5.07

sub-NTNU1_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.46k [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:  35%|▎| 357k/0.99M [00:00<00:00, 2.99
                                                                                

sub-NTNU1_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined22_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-uncombined20_T2starw.nii.gz: 100%|█| 0.99M/0.99M [00:00<00:00, 8.2
                                                                                
sub-NTNU1_rec-uncombined19_T2starw.nii.gz:  36%|▎| 374k/1.01M [00:00<00:00, 3.12
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]


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

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

                                                                                
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:  53%|▌| 543k/1.00M [00:00<00:00, 5.28


sub-NTNU1_rec-uncombined22_T2starw.nii.gz:  43%|▍| 442k/1.01M [00:00<00:00, 4.52

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

sub-NTNU1_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]


sub-NTNU1_rec-uncombined22_T2starw.nii.gz:  89%|▉| 917k/1.01M [00:00<00:00, 4.57

sub-NTNU1_rec-uncombined23_T2starw.nii.gz:  32%|▎| 324k/0.98M [00:00<00:00, 3.30
                                                                                


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


                                                                                
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:  36%|▎| 373k/1.01M [00:00<00:00, 3.80

sub-NTNU1_rec-uncombined23_T2starw.nii.gz:  93%|▉| 935k/0.98M [00:00<00:00, 5.02

                                                                                
sub-NTNU1_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/846k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.23k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]

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

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


                                                                                
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  17%|▏| 696k/4.11M [00:00<00:00, 6.82MB
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   3%| | 549k/15.6M [00:00<00:03, 5.17MB/


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


                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  33%|▎| 1.34M/4.11M [00:00<00:00, 5.94M
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.28M/15.6M [00:00<00:02, 6.67MB
sub-NTNU1_acq-famp_TB1TFL.json:   0%|               | 0.00/2.71k [00:00<?, ?B/s]



                                                                                


sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  20%|▏| 730k/3.61M [00:00<00:00, 7.
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  51%|▌| 2.08M/4.11M [00:00<00:00, 6.69M
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.01M/15.6M [00:00<00:02, 7.11MB



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


sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  43%|▍| 1.54M/3.61M [00:00<00:00, 7
sub-NTNU1_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.6k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  69%|▋| 2.83M/4.11M [00:00<00:00, 6.53M
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.80M/15.6M [00:00<00:01, 7.27MB


sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  64%|▋| 2.30M/3.61M [00:00<00:00, 7
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.38M/15.6M [00:00<00:01, 10.1MB

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


sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  87%|▊| 3.13M/3.61M [00:00<00:00, 8
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  37%|▎| 5.72M/15.6M [00:00<00:00, 11.4MB


sub-NTNU1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.3k [00:00<?, ?B/s]

sub-NTNU1_acq-famp_TB1TFL.nii.gz:  79%|████▋ | 748k/951k [00:00<00:00, 7.62MB/s]


                                                                                
sub-NTNU1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.7k [00:00<?, ?B/s]

                                                                                


                                                                                

sub-NTNU1_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.20k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 6.81M/15.6M [00:00<00:00, 9.36MB

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

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

                                                                                

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

sub-NTNU2_T2starw.nii.gz:   0%|                     | 0.00/1.32M [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  50%|▍| 7.77M/15.6M [00:00<00:00, 9.02MB
sub-NTNU2_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_T2starw.nii.gz:  73%|█████████▌   | 987k/1.32M [00:00<00:00, 10.1MB/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  62%|▌| 9.74M/15.6M [00:01<00:00, 12.1MB
sub-NTNU2_UNIT1.nii.gz:   0%|                       | 0.00/26.1M [00:00<?, ?B/s]

                                                                                

sub-NTNU2_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.3M [00:00<?, ?B/s]
sub-NTNU2_UNIT1.nii.gz:   1%|▏              | 373k/26.1M [00:00<00:07, 3.80MB/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  70%|▋| 11.0M/15.6M [00:01<00:00, 11.5MB
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.03M/18.3M [00:00<00:01, 10.7M
sub-NTNU2_UNIT1.nii.gz:   6%|▊             | 1.44M/26.1M [00:00<00:03, 8.19MB/s]



sub-NTNU2_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  82%|▊| 12.8M/15.6M [00:01<00:00, 13.6MB
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/19.9M [00:00<?, ?B/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 2.07M/18.3M [00:00<00:01, 10.3M


sub-NTNU2_UNIT1.nii.gz:   9%|█▎            | 2.37M/26.1M [00:00<00:02, 8.85MB/s]
sub-NTNU2_rec-uncombined01_T2starw.nii.gz:  68%|▋| 713k/1.02M [00:00<00:00, 7.26
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  91%|▉| 14.2M/15.6M [00:01<00:00, 13.3MB
                                                                                




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 680k/19.9M [00:00<00:03, 5.57MB

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.14M/18.3M [00:00<00:01, 9.90M


sub-NTNU2_UNIT1.nii.gz:  12%|█▋            | 3.24M/26.1M [00:00<00:02, 8.94MB/s]
sub-NTNU2_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 15.5M/15.6M [00:01<00:00, 11.7MB
                                                                                


sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.19M/18.3M [00:00<00:01, 10.2M




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.26M/19.9M [00:00<00:03, 5.86M
sub-NTNU2_UNIT1.nii.gz:  16%|██▎           | 4.26M/26.1M [00:00<00:02, 8.67MB/s]
sub-NTNU2_rec-uncombined02_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                



sub-NTNU2_UNIT1.nii.gz:  20%|██▊           | 5.20M/26.1M [00:00<00:02, 8.75MB/s]




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.83M/19.9M [00:00<00:03, 5.01M

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.18M/18.3M [00:00<00:01, 8.91M
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:   0%|     | 0.00/983k [00:00<?, ?B/s]
sub-NTNU2_UNIT1.nii.gz:  26%|███▋          | 6.85M/26.1M [00:00<00:01, 11.4MB/s]




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 3.05M/19.9M [00:00<00:02, 7.69M

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.80M/18.3M [00:00<00:01, 11.3M



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



                                                                                
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:  59%|▌| 579k/983k [00:00<00:00, 5.90M
                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 4.05M/19.9M [00:00<00:02, 7.91M


sub-NTNU2_UNIT1.nii.gz:  30%|████▎         | 7.96M/26.1M [00:00<00:01, 10.4MB/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  43%|▍| 7.93M/18.3M [00:00<00:01, 10.4M
sub-NTNU2_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.77M/19.9M [00:00<00:01, 10.9M


sub-NTNU2_UNIT1.nii.gz:  37%|█████▏        | 9.71M/26.1M [00:00<00:01, 12.6MB/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.61M/18.3M [00:00<00:00, 12.4M



sub-NTNU2_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined03_T2starw.nii.gz:  82%|▊| 850k/1.01M [00:00<00:00, 8.63
                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.88M/19.9M [00:00<00:01, 10.9M


sub-NTNU2_UNIT1.nii.gz:  42%|█████▉        | 11.0M/26.1M [00:01<00:01, 12.0MB/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  59%|▌| 10.8M/18.3M [00:01<00:00, 11.9M



sub-NTNU2_rec-uncombined04_T2starw.nii.gz:  55%|▌| 561k/1.00M [00:00<00:00, 5.64
                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.01M/19.9M [00:00<00:01, 10.7M
sub-NTNU2_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 12.0M/18.3M [00:01<00:00, 10.7M


sub-NTNU2_UNIT1.nii.gz:  47%|██████▌       | 12.1M/26.1M [00:01<00:01, 10.7MB/s]
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.22M/19.9M [00:01<00:00, 11.3M
sub-NTNU2_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  73%|▋| 13.3M/18.3M [00:01<00:00, 11.4M


sub-NTNU2_UNIT1.nii.gz:  52%|███████▏      | 13.5M/26.1M [00:01<00:01, 11.5MB/s]
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.3M/19.9M [00:01<00:00, 11.4M
sub-NTNU2_rec-uncombined05_T2starw.nii.gz:  87%|▊| 866k/0.98M [00:00<00:00, 8.83

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 14.8M/18.3M [00:01<00:00, 12.5M


sub-NTNU2_UNIT1.nii.gz:  57%|████████      | 15.0M/26.1M [00:01<00:00, 12.6MB/s]
                                                                                
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  58%|▌| 11.5M/19.9M [00:01<00:00, 11.4M
sub-NTNU2_UNIT1.nii.gz:  62%|████████▋     | 16.2M/26.1M [00:01<00:00, 12.4MB/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 16.0M/18.3M [00:01<00:00, 12.2M
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:  85%|▊| 866k/1.00M [00:00<00:00, 8.83




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  65%|▋| 12.9M/19.9M [00:01<00:00, 12.6M



sub-NTNU2_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-NTNU2_UNIT1.nii.gz:  67%|█████████▎    | 17.4M/26.1M [00:01<00:00, 11.3MB/s]

sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 17.2M/18.3M [00:01<00:00, 11.1M
sub-NTNU2_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                





sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 14.2M/19.9M [00:01<00:00, 10.8M
sub-NTNU2_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1.nii.gz:  71%|█████████▉    | 18.6M/26.1M [00:01<00:00, 10.9MB/s]

                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 15.2M/19.9M [00:01<00:00, 10.2M


sub-NTNU2_UNIT1.nii.gz:  77%|██████████▊   | 20.2M/26.1M [00:01<00:00, 12.4MB/s]
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 17.5M/19.9M [00:01<00:00, 13.8M


sub-NTNU2_UNIT1.nii.gz:  84%|███████████▊  | 22.0M/26.1M [00:02<00:00, 14.1MB/s]
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:  85%|▊| 917k/1.05M [00:00<00:00, 9.36
sub-NTNU2_rec-uncombined08_T2starw.nii.gz:   0%|     | 0.00/999k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:  66%|▋| 697k/1.04M [00:00<00:00, 6.19




sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 18.9M/19.9M [00:01<00:00, 13.0M

                                                                                
sub-NTNU2_rec-uncombined08_T2starw.nii.gz:  48%|▍| 477k/999k [00:00<00:00, 4.04M


sub-NTNU2_UNIT1.nii.gz:  89%|████████████▌ | 23.4M/26.1M [00:02<00:00, 12.4MB/s]
                                                                                
                                                                                


sub-NTNU2_UNIT1.nii.gz:  94%|█████████████▏| 24.6M/26.1M [00:02<00:00, 12.4MB/s]
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]

sub-NTNU2_rec-uncombined10_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.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                


sub-NTNU2_UNIT1.nii.gz: 100%|█████████████▉| 26.1M/26.1M [00:02<00:00, 13.2MB/s]
                                                                                
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:  27%|▎| 288k/1.04M [00:00<00:00, 2.50
sub-NTNU2_rec-uncombined10_T2starw.nii.gz:  50%|▍| 527k/1.04M [00:00<00:00, 5.38


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


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



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


                                                                                



                                                                                
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:  92%|▉| 986k/1.04M [00:00<00:00, 4.21
                                                                                
sub-NTNU2_rec-uncombined10_T2starw.nii.gz:  99%|▉| 1.03M/1.04M [00:00<00:00, 3.9

                                                                                
sub-NTNU2_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined16_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                

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-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.07M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined13_T2starw.nii.gz:  91%|▉| 985k/1.05M [00:00<00:00, 10.0
                                                                                
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:  56%|▌| 629k/1.10M [00:00<00:00, 6.38


sub-NTNU2_rec-uncombined15_T2starw.nii.gz:  58%|▌| 630k/1.06M [00:00<00:00, 6.40
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:  57%|▌| 628k/1.07M [00:00<00:00, 6.40


                                                                                
                                                                                

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

                                                                                
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:  40%|▍| 425k/1.03M [00:00<00:00, 3.95



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

                                                                                
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:  77%|▊| 815k/1.03M [00:00<00:00, 3.55
                                                                                
sub-NTNU2_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

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


                                                                                
sub-NTNU2_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/973k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/993k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined17_T2starw.nii.gz:  70%|▋| 697k/993k [00:00<00:00, 7.11M

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

sub-NTNU2_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                

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


sub-NTNU2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/980k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:  65%|▋| 662k/0.99M [00:00<00:00, 6.74



sub-NTNU2_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:  86%|▊| 845k/980k [00:00<00:00, 7.38M

sub-NTNU2_rec-uncombined20_T2starw.nii.gz:  88%|▉| 867k/987k [00:00<00:00, 7.52M


                                                                                

                                                                                

sub-NTNU2_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/991k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

sub-NTNU2_rec-uncombined23_T2starw.nii.gz:  27%|▎| 271k/991k [00:00<00:00, 2.75M
                                                                                
                                                                                
sub-NTNU2_rec-uncombined24_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-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]


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

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:  66%|▋| 679k/1.00M [00:00<00:00, 5.64


sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 340k/4.04M [00:00<00:01, 3.47MB
                                                                                



sub-NTNU2_acq-anat_TB1TFL.nii.gz:  58%|███▍  | 424k/731k [00:00<00:00, 4.32MB/s]
sub-NTNU2_acq-anat_TB1TFL.json:   0%|               | 0.00/2.68k [00:00<?, ?B/s]

sub-NTNU2_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.28k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:  17%|▏| 696k/4.04M [00:00<00:01, 3.31MB



                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:  82%|▊| 3.30M/4.04M [00:00<00:00, 13.9M
sub-NTNU2_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.25k [00:00<?, ?B/s]
                                                                                



                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.5M [00:00<?, ?B/s]

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


sub-NTNU2_acq-famp-1.5_TB1DREAM.json:   0%|         | 0.00/2.25k [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:   1%| | 182k/15.5M [00:00<00:08, 1.85MB/

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 119k/3.62M [00:00<00:03, 1.


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


                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.21M/15.5M [00:00<00:02, 7.08MB

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  32%|▎| 1.14M/3.62M [00:00<00:00, 6


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


                                                                                


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:   0%|      | 0.00/88.6k [00:00<?, ?B/s]


                                                                                
                                                                                

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  50%|▍| 1.81M/3.62M [00:00<00:00, 5
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.89M/15.5M [00:00<00:02, 5.99MB
sub-NTNU2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/82.6k [00:00<?, ?B/s]
                                                                                


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


                                                                                


sub-NTNU2_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/935k [00:00<?, ?B/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 2.95M/15.5M [00:00<00:01, 7.22MB

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  77%|▊| 2.80M/3.62M [00:00<00:00, 6
sub-NTNU2_acq-famp_TB1TFL.nii.gz:  75%|████▍ | 697k/935k [00:00<00:00, 7.08MB/s]



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



                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  26%|▎| 4.08M/15.5M [00:00<00:01, 8.56MB

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  96%|▉| 3.47M/3.62M [00:00<00:00, 6

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


                                                                                
                                                                                

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

                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 4.92M/15.5M [00:00<00:01, 7.39MB

sub-NTNU3_T2starw.nii.gz:   0%|                     | 0.00/1.33M [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:  87%|██████████▍ | 1.16M/1.33M [00:00<00:00, 10.7MB/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  50%|▌| 7.80M/15.5M [00:00<00:00, 12.7MB
sub-NTNU3_T2starw.json:   0%|                       | 0.00/2.47k [00:00<?, ?B/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_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_UNIT1.nii.gz:   1%|▏              | 374k/25.8M [00:00<00:07, 3.81MB/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 9.05M/15.5M [00:01<00:00, 10.5MB


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


                                                                                
sub-NTNU3_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_UNIT1.nii.gz:   3%|▍              | 748k/25.8M [00:00<00:06, 3.78MB/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  65%|▋| 10.1M/15.5M [00:01<00:00, 10.2MB
sub-NTNU3_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:  10%|█▍            | 2.59M/25.8M [00:00<00:02, 10.9MB/s]



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.6M [00:00<?, ?B/s]
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  81%|▊| 12.5M/15.5M [00:01<00:00, 13.8MB
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]


sub-NTNU3_rec-uncombined02_T2starw.nii.gz:  90%|▉| 923k/1.00M [00:00<00:00, 9.45
                                                                                

sub-NTNU3_UNIT1.nii.gz:  15%|██            | 3.83M/25.8M [00:00<00:02, 11.1MB/s]



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 497k/18.6M [00:00<00:03, 5.05MB
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:  50%|▍| 543k/1.06M [00:00<00:00, 5.54
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 13.9M/15.5M [00:01<00:00, 13.0MB


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


                                                                                
sub-NTNU3_UNIT1.nii.gz:  19%|██▋           | 4.89M/25.8M [00:00<00:02, 10.9MB/s]



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.05M/18.6M [00:00<00:03, 5.55M




                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 15.2M/15.5M [00:01<00:00, 11.8MB
                                                                                
sub-NTNU3_UNIT1.nii.gz:  24%|███▎          | 6.08M/25.8M [00:00<00:01, 10.5MB/s]



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.73M/18.6M [00:00<00:03, 5.61M
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:   0%|      | 0.00/20.4M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined04_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]




                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 2.30M/18.6M [00:00<00:02, 5.72M
sub-NTNU3_rec-uncombined03_T2starw.nii.gz:  53%|▌| 561k/1.03M [00:00<00:00, 5.73

sub-NTNU3_UNIT1.nii.gz:  27%|███▊          | 7.09M/25.8M [00:00<00:01, 10.4MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 575k/20.4M [00:00<00:03, 5.85MB
                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 3.00M/18.6M [00:00<00:02, 5.88M
sub-NTNU3_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.13M/20.4M [00:00<00:04, 4.47M

sub-NTNU3_UNIT1.nii.gz:  31%|████▍         | 8.09M/25.8M [00:00<00:02, 8.84MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.25M/18.6M [00:00<00:01, 8.13M
sub-NTNU3_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_UNIT1.nii.gz:  37%|█████         | 9.42M/25.8M [00:01<00:01, 10.2MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.92M/20.4M [00:00<00:03, 5.91M
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.33M/18.6M [00:00<00:01, 9.09M
sub-NTNU3_UNIT1.nii.gz:  42%|█████▉        | 10.9M/25.8M [00:01<00:01, 11.6MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  16%|▏| 3.32M/20.4M [00:00<00:01, 9.01M
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:  86%|▊| 883k/1.01M [00:00<00:00, 8.94




sub-NTNU3_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 6.36M/18.6M [00:00<00:01, 9.59M
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.31M/20.4M [00:00<00:01, 9.43M




sub-NTNU3_rec-uncombined07_T2starw.nii.gz:  49%|▍| 545k/1.08M [00:00<00:00, 5.58

sub-NTNU3_UNIT1.nii.gz:  47%|██████▌       | 12.0M/25.8M [00:01<00:01, 11.4MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  42%|▍| 7.81M/18.6M [00:00<00:00, 11.3M




                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  26%|▎| 5.37M/20.4M [00:00<00:01, 9.98M

sub-NTNU3_UNIT1.nii.gz:  51%|███████▏      | 13.2M/25.8M [00:01<00:01, 11.6MB/s]
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.05M/18.6M [00:01<00:00, 11.8M
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 7.01M/20.4M [00:00<00:01, 12.3M

sub-NTNU3_UNIT1.nii.gz:  57%|████████      | 14.8M/25.8M [00:01<00:00, 12.9MB/s]




sub-NTNU3_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:  79%|▊| 832k/1.03M [00:00<00:00, 8.48



sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 10.4M/18.6M [00:01<00:00, 12.6M
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 8.21M/20.4M [00:00<00:01, 11.8M




sub-NTNU3_rec-uncombined05_T2starw.nii.gz:  52%|▌| 543k/1.02M [00:00<00:00, 5.51

sub-NTNU3_UNIT1.nii.gz:  62%|████████▋     | 16.0M/25.8M [00:01<00:00, 12.3MB/s]
sub-NTNU3_rec-uncombined06_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 11.7M/18.6M [00:01<00:00, 11.2M




                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.37M/20.4M [00:01<00:01, 10.7M

sub-NTNU3_UNIT1.nii.gz:  67%|█████████▎    | 17.2M/25.8M [00:01<00:00, 11.2MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  70%|▋| 12.9M/18.6M [00:01<00:00, 11.7M
sub-NTNU3_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.6M/20.4M [00:01<00:00, 11.1M

sub-NTNU3_UNIT1.nii.gz:  71%|█████████▉    | 18.3M/25.8M [00:01<00:00, 11.3MB/s]
sub-NTNU3_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 14.1M/18.6M [00:01<00:00, 10.0M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 11.7M/20.4M [00:01<00:00, 10.5M
sub-NTNU3_UNIT1.nii.gz:  75%|██████████▌   | 19.5M/25.8M [00:01<00:00, 10.8MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  86%|▊| 16.0M/18.6M [00:01<00:00, 12.7M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 13.6M/20.4M [00:01<00:00, 13.2M
sub-NTNU3_UNIT1.nii.gz:  83%|███████████▋  | 21.5M/25.8M [00:02<00:00, 13.7MB/s]
sub-NTNU3_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                

sub-NTNU3_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.3M/18.6M [00:01<00:00, 12.6M
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 14.9M/20.4M [00:01<00:00, 12.9M
sub-NTNU3_rec-uncombined09_T2starw.nii.gz:  57%|▌| 629k/1.08M [00:00<00:00, 6.38

sub-NTNU3_UNIT1.nii.gz:  89%|████████████▍ | 22.9M/25.8M [00:02<00:00, 13.2MB/s]
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]



                                                                                
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 16.2M/20.4M [00:01<00:00, 11.8M
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:  34%|▎| 348k/0.99M [00:00<00:00, 3.55

sub-NTNU3_UNIT1.nii.gz:  94%|█████████████ | 24.2M/25.8M [00:02<00:00, 11.9MB/s]
                                                                                


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 17.6M/20.4M [00:01<00:00, 12.6M
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.10M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.07M [00:00<?, ?B/s]

sub-NTNU3_UNIT1.nii.gz:  99%|█████████████▉| 25.6M/25.8M [00:02<00:00, 12.7MB/s]

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

                                                                                
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:  45%|▍| 509k/1.10M [00:00<00:00, 4.61



sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  39%|▍| 424k/1.07M [00:00<00:00, 4.29


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  92%|▉| 18.9M/20.4M [00:01<00:00, 11.8M

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

                                                                                
                                                                                
sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  93%|▉| 0.99M/1.07M [00:00<00:00, 4.6
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.11M [00:00<?, ?B/s]



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

                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  98%|▉| 20.0M/20.4M [00:02<00:00, 9.54M


                                                                                
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:  33%|▎| 375k/1.11M [00:00<00:00, 3.13

sub-NTNU3_rec-uncombined14_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-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]

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

                                                                                
sub-NTNU3_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.12M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined16_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                

sub-NTNU3_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined14_T2starw.nii.gz:  30%|▎| 345k/1.12M [00:00<00:00, 3.51
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]



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



                                                                                
sub-NTNU3_rec-uncombined17_T2starw.nii.gz:  85%|▊| 867k/0.99M [00:00<00:00, 6.92

                                                                                
                                                                                



sub-NTNU3_rec-uncombined16_T2starw.nii.gz:  28%|▎| 304k/1.06M [00:00<00:00, 3.09
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:  67%|▋| 748k/1.09M [00:00<00:00, 6.79

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


sub-NTNU3_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:  57%|▌| 578k/0.98M [00:00<00:00, 5.90


sub-NTNU3_rec-uncombined19_T2starw.nii.gz:  19%|▏| 192k/1.01M [00:00<00:00, 1.96

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

sub-NTNU3_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:  91%|▉| 933k/1.01M [00:00<00:00, 4.82

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


                                                                                
sub-NTNU3_rec-uncombined21_T2starw.nii.gz:  32%|▎| 323k/0.98M [00:00<00:00, 3.31


sub-NTNU3_rec-uncombined22_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:  84%|▊| 849k/0.99M [00:00<00:00, 8.68
                                                                                
                                                                                


sub-NTNU3_rec-uncombined22_T2starw.nii.gz:  60%|▌| 612k/1.00M [00:00<00:00, 5.63
sub-NTNU3_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

sub-NTNU3_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/994k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU3_acq-anat_TB1TFL.json:   0%|               | 0.00/2.70k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined23_T2starw.nii.gz:  51%|▌| 509k/994k [00:00<00:00, 4.33M
sub-NTNU3_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                

sub-NTNU3_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/2.21k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined24_T2starw.nii.gz:  68%|▋| 697k/1.00M [00:00<00:00, 7.09
sub-NTNU3_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                

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

sub-NTNU3_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.23k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-anat_TB1TFL.nii.gz:  94%|█████▌| 782k/834k [00:00<00:00, 8.00MB/s]

                                                                                
sub-NTNU3_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.09M [00:00<?, ?B/s]

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

                                                                                
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.62M [00:00<?, ?B/s]
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  27%|▎| 1.10M/4.09M [00:00<00:00, 11.5M
sub-NTNU3_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.18k [00:00<?, ?B/s]


                                                                                

sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  38%|▍| 1.36M/3.62M [00:00<00:00, 1


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.6M [00:00<?, ?B/s]
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.20M/4.09M [00:00<00:00, 10.5M
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   6%| | 0.98M/15.6M [00:00<00:01, 10.2MB



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

sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  68%|▋| 2.46M/3.62M [00:00<00:00, 1
                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  83%|▊| 3.38M/4.09M [00:00<00:00, 11.0M



sub-NTNU3_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/955k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-famp_TB1TFL.json:   0%|               | 0.00/2.73k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-famp_TB1TFL.nii.gz:  55%|███▎  | 526k/955k [00:00<00:00, 4.64MB/s]


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 1.96M/15.6M [00:00<00:02, 6.75MB

sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  97%|▉| 3.50M/3.62M [00:00<00:00, 8

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



sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.85M/15.6M [00:00<00:01, 7.13MB
sub-NTNU3_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.20k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.4k [00:00<?, ?B/s]
                                                                                

sub-NTNU3_acq-refv_TB1DREAM.json:   0%|             | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  25%|▎| 3.95M/15.6M [00:00<00:01, 8.02MB
sub-UCL1_UNIT1.json:   0%|                          | 0.00/2.12k [00:00<?, ?B/s]

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


                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 5.21M/15.6M [00:00<00:01, 9.60MB
sub-NTNU3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.6k [00:00<?, ?B/s]
                                                                                

sub-UCL1_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  55%|▌| 8.63M/15.6M [00:00<00:00, 17.5MB

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/15.4M [00:00<?, ?B/s]
sub-UCL1_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-UCL1_T2starw.nii.gz:  83%|███████████▌  | 897k/1.06M [00:00<00:00, 9.18MB/s]
                                                                                

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


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.4M/15.6M [00:00<00:00, 16.0MB

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 419k/15.4M [00:00<00:03, 4.28MB/
sub-UCL1_UNIT1.nii.gz:   0%|                        | 0.00/26.5M [00:00<?, ?B/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.01M/17.0M [00:00<00:01, 10.6MB


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  78%|▊| 12.2M/15.6M [00:00<00:00, 16.6MB

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.47M/15.4M [00:00<00:01, 8.30MB
sub-UCL1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.12k [00:00<?, ?B/s]




                                                                                



sub-UCL1_UNIT1.nii.gz:   2%|▎               | 609k/26.5M [00:00<00:04, 6.19MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.27M/15.4M [00:00<00:01, 7.55MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.04M/17.0M [00:00<00:01, 8.43MB


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 13.9M/15.6M [00:01<00:00, 14.9MB
sub-UCL1_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                



sub-UCL1_UNIT1.nii.gz:   5%|▋              | 1.22M/26.5M [00:00<00:04, 6.31MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.27M/15.4M [00:00<00:01, 8.64MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.05M/17.0M [00:00<00:01, 9.29MB
sub-UCL1_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                


sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 15.4M/15.6M [00:01<00:00, 14.0MB
sub-UCL1_UNIT1.nii.gz:   7%|█              | 1.91M/26.5M [00:00<00:04, 6.40MB/s]


                                                                                

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 4.32M/15.4M [00:00<00:01, 9.40MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.97M/17.0M [00:00<00:01, 8.74MB


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


                                                                                
sub-UCL1_UNIT1.nii.gz:  11%|█▋             | 2.97M/26.5M [00:00<00:03, 8.19MB/s]

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 5.22M/15.4M [00:00<00:01, 8.83MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.10M/17.0M [00:00<00:01, 9.70MB


sub-UCL1_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/883k [00:00<?, ?B/s]



sub-UCL1_UNIT1.nii.gz:  16%|██▍            | 4.22M/26.5M [00:00<00:02, 9.92MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 6.93M/15.4M [00:00<00:00, 11.6MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.77M/17.0M [00:00<00:00, 12.2MB




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


sub-UCL1_rec-uncombined2_T2starw.nii.gz:  92%|▉| 816k/883k [00:00<00:00, 8.30MB/



sub-UCL1_UNIT1.nii.gz:  21%|███▏           | 5.66M/26.5M [00:00<00:01, 11.6MB/s]
                                                                                

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 8.07M/15.4M [00:00<00:00, 11.2MB
sub-UCL1_rec-uncombined1_T2starw.nii.gz:  61%|▌| 544k/889k [00:00<00:00, 5.56MB/
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 7.97M/17.0M [00:00<00:00, 11.6MB




                                                                                
sub-UCL1_UNIT1.nii.gz:  26%|███▊           | 6.78M/26.5M [00:00<00:01, 10.6MB/s]

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  60%|▌| 9.16M/15.4M [00:00<00:00, 11.3MB


sub-UCL1_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/871k [00:00<?, ?B/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  54%|▌| 9.11M/17.0M [00:00<00:00, 11.5MB




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




                                                                                
sub-UCL1_UNIT1.nii.gz:  29%|████▍          | 7.81M/26.5M [00:00<00:01, 10.6MB/s]


sub-UCL1_rec-uncombined3_T2starw.nii.gz:  64%|▋| 556k/871k [00:00<00:00, 5.66MB/
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 10.3M/15.4M [00:01<00:00, 11.0MB


                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 10.2M/17.0M [00:01<00:00, 11.3MB
sub-UCL1_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/810k [00:00<?, ?B/s]



sub-UCL1_UNIT1.nii.gz:  34%|█████          | 8.91M/26.5M [00:00<00:01, 10.8MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 11.3M/15.4M [00:01<00:00, 11.1MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 11.3M/17.0M [00:01<00:00, 11.4MB
sub-UCL1_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                



sub-UCL1_UNIT1.nii.gz:  38%|█████▋         | 10.1M/26.5M [00:01<00:01, 11.0MB/s]


sub-UCL1_rec-uncombined4_T2starw.nii.gz:  99%|▉| 799k/810k [00:00<00:00, 6.52MB/


                                                                                
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 12.4M/15.4M [00:01<00:00, 10.3MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 12.4M/17.0M [00:01<00:00, 10.5MB



sub-UCL1_UNIT1.nii.gz:  43%|██████▍        | 11.5M/26.5M [00:01<00:01, 11.8MB/s]
sub-UCL1_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]


                                                                                

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  90%|▉| 13.8M/15.4M [00:01<00:00, 11.3MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 13.6M/17.0M [00:01<00:00, 11.1MB



sub-UCL1_UNIT1.nii.gz:  48%|███████▏       | 12.6M/26.5M [00:01<00:01, 11.9MB/s]


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




                                                                                
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 15.2M/15.4M [00:01<00:00, 11.6MB
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  87%|▊| 14.8M/17.0M [00:01<00:00, 11.4MB

                                                                                
sub-UCL1_rec-uncombined5_T2starw.nii.gz:  45%|▍| 407k/897k [00:00<00:00, 3.82MB/



sub-UCL1_UNIT1.nii.gz:  52%|███████▊       | 13.8M/26.5M [00:01<00:01, 10.8MB/s]


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

                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  94%|▉| 15.9M/17.0M [00:01<00:00, 10.7MB
sub-UCL1_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/828k [00:00<?, ?B/s]



sub-UCL1_UNIT1.nii.gz:  56%|████████▍      | 14.8M/26.5M [00:01<00:01, 10.6MB/s]
                                                                                
sub-UCL1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/855k [00:00<?, ?B/s]


sub-UCL1_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/862k [00:00<?, ?B/s]

                                                                                
sub-UCL1_UNIT1.nii.gz:  62%|█████████▎     | 16.4M/26.5M [00:01<00:00, 11.3MB/s]
sub-UCL1_rec-uncombined8_T2starw.nii.gz:  88%|▉| 748k/855k [00:00<00:00, 7.57MB/

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

                                                                                


sub-UCL1_rec-uncombined6_T2starw.nii.gz:  85%|▊| 735k/862k [00:00<00:00, 7.52MB/
sub-UCL1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/886k [00:00<?, ?B/s]



sub-UCL1_UNIT1.nii.gz:  67%|██████████     | 17.7M/26.5M [00:01<00:00, 11.8MB/s]
                                                                                



                                                                                
sub-UCL1_acq-anat_TB1TFL.nii.gz:  58%|████   | 510k/886k [00:00<00:00, 5.22MB/s]



sub-UCL1_UNIT1.nii.gz:  71%|██████████▋    | 18.8M/26.5M [00:01<00:00, 11.7MB/s]

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

sub-UCL1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.19M [00:00<?, ?B/s]
sub-UCL1_UNIT1.nii.gz:  75%|███████████▎   | 20.0M/26.5M [00:01<00:00, 10.7MB/s]
sub-UCL1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.10k [00:00<?, ?B/s]

                                                                                
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  25%|▏| 1.03M/4.19M [00:00<00:00, 10.5MB

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



sub-UCL1_UNIT1.nii.gz:  83%|████████████▍  | 22.0M/26.5M [00:02<00:00, 13.4MB/s]
                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]


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


                                                                                



sub-UCL1_UNIT1.nii.gz:  88%|█████████████▎ | 23.4M/26.5M [00:02<00:00, 13.9MB/s]
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  49%|▍| 2.04M/4.19M [00:00<00:00, 8.45MB
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   6%| | 677k/11.7M [00:00<00:01, 6.90MB/s
sub-UCL1_UNIT1.nii.gz:  94%|██████████████ | 24.8M/26.5M [00:02<00:00, 13.9MB/s]


sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/2.69M [00:00<?, ?B/s]
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  74%|▋| 3.10M/4.19M [00:00<00:00, 9.46MB




sub-UCL1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.9k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 1.72M/11.7M [00:00<00:01, 9.35MB/




                                                                                
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  21%|▏| 582k/2.69M [00:00<00:00, 5.9



sub-UCL1_UNIT1.nii.gz:  99%|██████████████▊| 26.2M/26.5M [00:02<00:00, 13.1MB/s]



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



                                                                                
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  43%|▍| 1.15M/2.69M [00:00<00:00, 5.

sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  22%|▏| 2.62M/11.7M [00:00<00:01, 6.74MB/
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  96%|▉| 4.02M/4.19M [00:00<00:00, 6.96MB
                                                                                
sub-UCL1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.70k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.16k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  62%|▌| 1.68M/2.69M [00:00<00:00, 4.

sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 3.33M/11.7M [00:00<00:01, 5.95MB/
                                                                                
sub-UCL1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]


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

sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  48%|▍| 5.63M/11.7M [00:00<00:00, 11.0MB/


                                                                                


sub-UCL1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]
sub-UCL1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.17k [00:00<?, ?B/s]



                                                                                
                                                                                
sub-UCL1_acq-famp_TB1TFL.nii.gz:  27%|█▉     | 255k/943k [00:00<00:00, 2.07MB/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  58%|▌| 6.85M/11.7M [00:00<00:00, 10.0MB/
                                                                                
sub-UCL1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.16k [00:00<?, ?B/s]


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



                                                                                
sub-UCL1_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/86.7k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 7.93M/11.7M [00:00<00:00, 9.86MB/
                                                                                

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


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



                                                                                
sub-UCL1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/89.4k [00:00<?, ?B/s]
                                                                                


sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 8.96M/11.7M [00:01<00:00, 8.30MB/
                                                                                
sub-UCL2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/s]
                                                                                
sub-UCL2_UNIT1.nii.gz:   0%|                        | 0.00/26.7M [00:00<?, ?B/s]

sub-UCL2_T2starw.nii.gz:   0%|                      | 0.00/1.02M [00:00<?, ?B/s]
sub-UCL2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/s]


                                                                                
sub-UCL2_UNIT1.nii.gz:   6%|▉              | 1.61M/26.7M [00:00<00:01, 16.8MB/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:   0%|       | 0.00/13.6M [00:00<?, ?B/s]

sub-UCL2_T2starw.nii.gz:  77%|██████████▋   | 800k/1.02M [00:00<00:00, 8.08MB/s]
sub-UCL2_rec-uncombined1_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
                                                                                


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 629k/15.3M [00:00<00:02, 6.41MB/



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 340k/13.6M [00:00<00:04, 3.46MB/
sub-UCL2_UNIT1.nii.gz:  12%|█▊             | 3.22M/26.7M [00:00<00:02, 11.1MB/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:   8%| | 1.26M/15.3M [00:00<00:02, 5.73MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.00M/13.6M [00:00<00:02, 5.51MB
sub-UCL2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

                                                                                
sub-UCL2_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/786k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  16%|██▍            | 4.39M/26.7M [00:00<00:02, 10.3MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 1.97M/15.3M [00:00<00:02, 6.40MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.68M/13.6M [00:00<00:01, 6.24MB
                                                                                
sub-UCL2_UNIT1.nii.gz:  21%|███▏           | 5.69M/26.7M [00:00<00:02, 10.7MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 2.87M/15.3M [00:00<00:01, 7.33MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  20%|▏| 2.68M/13.6M [00:00<00:01, 7.92MB
sub-UCL2_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/832k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  27%|████           | 7.30M/26.7M [00:00<00:01, 12.5MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.45M/15.3M [00:00<00:01, 10.5MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  32%|▎| 4.29M/13.6M [00:00<00:00, 11.1MB
                                                                                

sub-UCL2_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 5.48M/15.3M [00:00<00:01, 9.67MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 5.35M/13.6M [00:00<00:00, 10.2MB
sub-UCL2_UNIT1.nii.gz:  32%|████▊          | 8.57M/26.7M [00:00<00:01, 11.4MB/s]
sub-UCL2_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/880k [00:00<?, ?B/s]




sub-UCL2_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/797k [00:00<?, ?B/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 7.22M/15.3M [00:00<00:00, 12.2MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 7.14M/13.6M [00:00<00:00, 12.8MB
sub-UCL2_UNIT1.nii.gz:  38%|█████▊         | 10.3M/26.7M [00:00<00:01, 13.1MB/s]
sub-UCL2_rec-uncombined5_T2starw.nii.gz:  83%|▊| 730k/880k [00:00<00:00, 7.43MB/




sub-UCL2_rec-uncombined3_T2starw.nii.gz:  93%|▉| 742k/797k [00:00<00:00, 7.59MB/
                                                                                




                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.42M/15.3M [00:00<00:00, 10.7MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  62%|▌| 8.39M/13.6M [00:00<00:00, 11.0MB
sub-UCL2_UNIT1.nii.gz:  43%|██████▍        | 11.6M/26.7M [00:01<00:01, 11.3MB/s]
sub-UCL2_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 9.70M/15.3M [00:01<00:00, 11.4MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 9.67M/13.6M [00:00<00:00, 11.7MB

sub-UCL2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/751k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  48%|███████▏       | 12.9M/26.7M [00:01<00:01, 11.9MB/s]
sub-UCL2_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
sub-UCL2_rec-uncombined4_T2starw.nii.gz:  65%|▋| 492k/751k [00:00<00:00, 5.00MB/


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 10.8M/15.3M [00:01<00:00, 11.1MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 10.8M/13.6M [00:01<00:00, 11.2MB
sub-UCL2_UNIT1.nii.gz:  53%|███████▉       | 14.1M/26.7M [00:01<00:01, 11.5MB/s]

                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 12.1M/15.3M [00:01<00:00, 11.7MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  90%|▉| 12.2M/13.6M [00:01<00:00, 12.0MB

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

                                                                                
sub-UCL2_UNIT1.nii.gz:  57%|████████▌      | 15.3M/26.7M [00:01<00:01, 11.1MB/s]
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 13.5M/15.3M [00:01<00:00, 12.5MB



sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz: 100%|▉| 13.5M/13.6M [00:01<00:00, 12.6MB



                                                                                
sub-UCL2_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/860k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  63%|█████████▍     | 16.7M/26.7M [00:01<00:00, 12.1MB/s]



sub-UCL2_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 14.7M/15.3M [00:01<00:00, 11.7MB

sub-UCL2_rec-uncombined6_T2starw.nii.gz:  89%|▉| 764k/860k [00:00<00:00, 7.76MB/
sub-UCL2_UNIT1.nii.gz:  67%|██████████     | 18.0M/26.7M [00:01<00:00, 12.6MB/s]

                                                                                


                                                                                
sub-UCL2_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/802k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  72%|██████████▊    | 19.3M/26.7M [00:01<00:00, 12.4MB/s]

                                                                                
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_UNIT1.nii.gz:  77%|███████████▌   | 20.7M/26.7M [00:01<00:00, 13.2MB/s]


sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.92M [00:00<?, ?B/s]
sub-UCL2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]



                                                                                
sub-UCL2_acq-anat_TB1TFL.nii.gz:  92%|██████▍| 730k/797k [00:00<00:00, 7.41MB/s]

                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   9%| | 358k/3.92M [00:00<00:01, 3.44MB/
sub-UCL2_UNIT1.nii.gz:  82%|████████████▎  | 22.0M/26.7M [00:01<00:00, 12.2MB/s]

sub-UCL2_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/814k [00:00<?, ?B/s]



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



                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  27%|▎| 1.06M/3.92M [00:00<00:00, 5.74MB
sub-UCL2_UNIT1.nii.gz:  87%|█████████████  | 23.2M/26.7M [00:02<00:00, 12.3MB/s]

sub-UCL2_rec-uncombined8_T2starw.nii.gz:  90%|▉| 731k/814k [00:00<00:00, 7.45MB/

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



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



                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  50%|▌| 1.98M/3.92M [00:00<00:00, 6.63MB
sub-UCL2_UNIT1.nii.gz:  92%|█████████████▊ | 24.7M/26.7M [00:02<00:00, 12.3MB/s]
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   6%| | 713k/11.7M [00:00<00:01, 7.24MB/s



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



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


sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  69%|▋| 2.69M/3.92M [00:00<00:00, 6.94MB
sub-UCL2_UNIT1.nii.gz:  97%|██████████████▌| 25.9M/26.7M [00:02<00:00, 12.4MB/s]
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.39M/11.7M [00:00<00:01, 7.07MB/
                                                                                
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  23%|▏| 629k/2.68M [00:00<00:00, 6.2
sub-UCL2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.4k [00:00<?, ?B/s]
                                                                                



sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:  86%|▊| 3.36M/3.92M [00:00<00:00, 6.78MB
sub-UCL2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.11k [00:00<?, ?B/s]
                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.08M/11.7M [00:00<00:01, 5.60MB/



sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  45%|▍| 1.21M/2.68M [00:00<00:00, 5.


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




sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  73%|▋| 1.96M/2.68M [00:00<00:00, 6.

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 3.55M/11.7M [00:00<00:01, 8.17MB/
sub-UCL2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]


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



                                                                                

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 4.53M/11.7M [00:00<00:00, 8.78MB/



sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  95%|▉| 2.56M/2.68M [00:00<00:00, 6.



                                                                                
sub-UCL2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/80.0k [00:00<?, ?B/s]


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-coilQaTra_GFactor.nii.gz:  46%|▍| 5.41M/11.7M [00:00<00:00, 8.00MB/
sub-UCL2_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.14k [00:00<?, ?B/s]


                                                                                


sub-UCL3_T2starw.json:   0%|                        | 0.00/2.44k [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:  73%|█████▏ | 698k/952k [00:00<00:00, 5.91MB/s]

sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  54%|▌| 6.33M/11.7M [00:00<00:00, 8.30MB/
                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  66%|▋| 7.77M/11.7M [00:00<00:00, 10.2MB/
sub-UCL2_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [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.nii.gz:   0%|            | 0.00/84.3k [00:00<?, ?B/s]
                                                                                


sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 9.69M/11.7M [00:01<00:00, 13.0MB/


                                                                                
sub-UCL3_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]
sub-UCL2_acq-coilQaTra_GFactor.nii.gz: 100%|▉| 11.7M/11.7M [00:01<00:00, 15.4MB/

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


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

                                                                                


                                                                                
sub-UCL3_T2starw.nii.gz:  99%|████████████▊| 1.04M/1.06M [00:00<00:00, 8.61MB/s]
                                                                                
sub-UCL3_UNIT1.nii.gz:   0%|                        | 0.00/26.3M [00:00<?, ?B/s]
sub-UCL3_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.13k [00:00<?, ?B/s]

                                                                                

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

                                                                                
sub-UCL3_UNIT1.nii.gz:   4%|▋              | 1.18M/26.3M [00:00<00:02, 10.6MB/s]

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

                                                                                
sub-UCL3_UNIT1.nii.gz:  17%|██▍            | 4.37M/26.3M [00:00<00:00, 23.2MB/s]
sub-UCL3_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/877k [00:00<?, ?B/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/16.1M [00:00<?, ?B/s]



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.6M [00:00<?, ?B/s]
sub-UCL3_UNIT1.nii.gz:  33%|████▉          | 8.73M/26.3M [00:00<00:00, 33.0MB/s]




sub-UCL3_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/849k [00:00<?, ?B/s]
                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 528k/16.1M [00:00<00:03, 5.36MB/



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 510k/17.6M [00:00<00:03, 5.21MB/




sub-UCL3_rec-uncombined2_T2starw.nii.gz:  66%|▋| 560k/849k [00:00<00:00, 5.63MB/
                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.13M/16.1M [00:00<00:02, 5.95MB

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

                                                                                



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.06M/17.6M [00:00<00:03, 4.82MB
sub-UCL3_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/861k [00:00<?, ?B/s]




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


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.86M/16.1M [00:00<00:02, 6.69MB




                                                                                



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.87M/17.6M [00:00<00:02, 6.30MB
sub-UCL3_UNIT1.nii.gz:  45%|██████▊        | 12.0M/26.3M [00:00<00:00, 16.7MB/s]
sub-UCL3_rec-uncombined3_T2starw.nii.gz:  63%|▋| 543k/861k [00:00<00:00, 5.49MB/


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.64M/16.1M [00:00<00:01, 7.27MB

                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.26M/17.6M [00:00<00:01, 8.45MB

sub-UCL3_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/801k [00:00<?, ?B/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.70M/16.1M [00:00<00:01, 8.65MB




sub-UCL3_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
sub-UCL3_rec-uncombined4_T2starw.nii.gz:  78%|▊| 629k/801k [00:00<00:00, 6.44MB/



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.30M/17.6M [00:00<00:01, 9.23MB

                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.61M/16.1M [00:00<00:01, 8.43MB
sub-UCL3_UNIT1.nii.gz:  54%|████████▏      | 14.3M/26.3M [00:00<00:00, 13.2MB/s]

sub-UCL3_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/875k [00:00<?, ?B/s]




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




                                                                                



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 5.55M/17.6M [00:00<00:01, 9.55MB
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 5.70M/16.1M [00:00<00:01, 9.37MB
sub-UCL3_rec-uncombined5_T2starw.nii.gz:  68%|▋| 595k/875k [00:00<00:00, 6.02MB/




sub-UCL3_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/856k [00:00<?, ?B/s]

                                                                                



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 7.04M/17.6M [00:00<00:00, 11.3MB
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  43%|▍| 6.87M/16.1M [00:00<00:00, 9.96MB
sub-UCL3_UNIT1.nii.gz:  61%|█████████▏     | 16.1M/26.3M [00:01<00:00, 12.3MB/s]
sub-UCL3_rec-uncombined6_T2starw.nii.gz:  61%|▌| 524k/856k [00:00<00:00, 5.31MB/

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


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  49%|▍| 7.84M/16.1M [00:00<00:00, 9.50MB



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.13M/17.6M [00:00<00:01, 9.75MB
                                                                                
sub-UCL3_UNIT1.nii.gz:  67%|██████████     | 17.6M/26.3M [00:01<00:00, 10.7MB/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.76M/16.1M [00:01<00:00, 9.08MB



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.12M/17.6M [00:01<00:00, 9.42MB

sub-UCL3_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/808k [00:00<?, ?B/s]




sub-UCL3_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                
sub-UCL3_UNIT1.nii.gz:  71%|██████████▋    | 18.8M/26.3M [00:01<00:00, 11.0MB/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  62%|▌| 9.92M/16.1M [00:01<00:00, 9.92MB



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  58%|▌| 10.2M/17.6M [00:01<00:00, 9.73MB

sub-UCL3_rec-uncombined7_T2starw.nii.gz:  65%|▋| 527k/808k [00:00<00:00, 5.39MB/




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




                                                                                
                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 10.9M/16.1M [00:01<00:00, 9.13MB



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 11.1M/17.6M [00:01<00:00, 9.28MB
sub-UCL3_UNIT1.nii.gz:  76%|███████████▍   | 20.0M/26.3M [00:01<00:00, 10.4MB/s]
sub-UCL3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.67k [00:00<?, ?B/s]

                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 12.2M/16.1M [00:01<00:00, 10.4MB

sub-UCL3_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/860k [00:00<?, ?B/s]



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 12.5M/17.6M [00:01<00:00, 10.5MB
sub-UCL3_UNIT1.nii.gz:  81%|████████████▏  | 21.3M/26.3M [00:01<00:00, 10.9MB/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  85%|▊| 13.7M/16.1M [00:01<00:00, 11.9MB

                                                                                
sub-UCL3_UNIT1.nii.gz:  87%|████████████▉  | 22.8M/26.3M [00:01<00:00, 11.4MB/s]



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.1M/17.6M [00:01<00:00, 11.2MB

sub-UCL3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/859k [00:00<?, ?B/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 14.9M/16.1M [00:01<00:00, 11.8MB
sub-UCL3_UNIT1.nii.gz:  92%|█████████████▊ | 24.3M/26.3M [00:01<00:00, 12.4MB/s]



sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 15.6M/17.6M [00:01<00:00, 12.6MB

                                                                                
                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 16.8M/17.6M [00:01<00:00, 12.1MB
sub-UCL3_UNIT1.nii.gz:  97%|██████████████▌| 25.5M/26.3M [00:02<00:00, 12.0MB/s]

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

sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  13%|▏| 544k/4.17M [00:00<00:00, 5.57MB/
sub-UCL3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.09k [00:00<?, ?B/s]


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


                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   3%| | 385k/11.7M [00:00<00:03, 3.14MB/s

sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  45%|▍| 1.89M/4.17M [00:00<00:00, 9.90MB


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/2.68M [00:00<?, ?B/s]
sub-UCL3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]



                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   8%| | 997k/11.7M [00:00<00:02, 4.80MB/s

sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  69%|▋| 2.88M/4.17M [00:00<00:00, 10.1MB
sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  24%|▏| 646k/2.68M [00:00<00:00, 6.5



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




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




                                                                                
                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 1.47M/11.7M [00:00<00:02, 4.84MB/

sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  92%|▉| 3.83M/4.17M [00:00<00:00, 9.58MB


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  47%|▍| 1.26M/2.68M [00:00<00:00, 5.

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

                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 1.95M/11.7M [00:00<00:02, 4.88MB/


sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  70%|▋| 1.88M/2.68M [00:00<00:00, 6.

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

                                                                                
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:  26%|▎| 3.11M/11.7M [00:00<00:01, 7.08MB/


                                                                                
sub-UCL3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.9k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 5.22M/11.7M [00:00<00:00, 11.7MB/
sub-UCL3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.71k [00:00<?, ?B/s]

                                                                                

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

                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  63%|▋| 7.44M/11.7M [00:00<00:00, 15.2MB/

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


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

                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 8.91M/11.7M [00:00<00:00, 15.2MB/


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

                                                                                

sub-UCL3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.7k [00:00<?, ?B/s]


sub-UCL3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/92.2k [00:00<?, ?B/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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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:   3%|█                               | 14.0M/431M [00:00<00:02, 140MB/s]
Status:   8%|██▌                             | 33.7M/431M [00:00<00:02, 173MB/s]
Status:  12%|███▉                            | 53.1M/431M [00:00<00:02, 183MB/s]
Status:  17%|█████▍                          | 73.1M/431M [00:00<00:01, 189MB/s]
Status:  22%|██████▉                         | 93.4M/431M [00:00<00:01, 195MB/s]
Status:  26%|████████▋                        | 114M/431M [00:00<00:01, 198MB/s]
Status:  31%|██████████▎                      | 135M/431M [00:00<00:01, 202MB/s]
Status:  36%|███████████▊                     | 155M/431M [00:00<00:01, 201MB/s]
Status:  41%|█████████████▍                   | 175M/431M [00:00<00:01, 201MB/s]
Status:  45%|██████████████▉                  | 195M/431M [00:01<00:01, 200MB/s]
Status:  50%|████████████████▍                | 215M/431M [00:01<00:01, 200MB/s]
Status:  55%|██████████████████               | 236M/431M [00:01<00:00, 201MB/s]
Status:  59%|███████████████████▌             | 256M/431M [00:01<00:00, 200MB/s]
Status:  64%|█████████████████████            | 276M/431M [00:01<00:00, 199MB/s]
Status:  69%|██████████████████████▌          | 296M/431M [00:01<00:00, 199MB/s]
Status:  73%|████████████████████████▏        | 316M/431M [00:01<00:00, 199MB/s]
Status:  78%|█████████████████████████▋       | 336M/431M [00:01<00:00, 202MB/s]
Status:  83%|███████████████████████████▎     | 357M/431M [00:01<00:00, 201MB/s]
Status:  87%|████████████████████████████▊    | 377M/431M [00:01<00:00, 201MB/s]
Status:  92%|██████████████████████████████▎  | 397M/431M [00:02<00:00, 200MB/s]
Status:  97%|███████████████████████████████▉ | 417M/431M [00:02<00:00, 198MB/s]
Status: 100%|█████████████████████████████████| 431M/431M [00:02<00:00, 198MB/s]
Creating temporary folder (/tmp/sct_2024-11-04_15-09-14_install-data_apw22ctt)
Unzip data to: /tmp/sct_2024-11-04_15-09-14_install-data_apw22ctt
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...
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-09-22_sct_deepseg_m1bmonfs)
Copied sub-CRMBM1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-09-22_sct_deepseg_m1bmonfs/sub-CRMBM1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-09-22_sct_deepseg_m1bmonfs/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
/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_2024_11_04_150938.931222.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-09-50_sct_deepseg_b0a4dcf0)
Copied sub-CRMBM2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-09-50_sct_deepseg_b0a4dcf0/sub-CRMBM2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-09-50_sct_deepseg_b0a4dcf0/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
/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_2024_11_04_151007.064181.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-10-18_sct_deepseg_1q6lejym)
Copied sub-CRMBM3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-10-18_sct_deepseg_1q6lejym/sub-CRMBM3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-10-18_sct_deepseg_1q6lejym/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
/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_2024_11_04_151035.046982.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-10-46_sct_deepseg_orcol4bx)
Copied sub-MGH1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-10-46_sct_deepseg_orcol4bx/sub-MGH1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 11 seconds
Saving results to: /tmp/sct_2024-11-04_15-10-46_sct_deepseg_orcol4bx/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
/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_2024_11_04_151059.150508.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-11-11_sct_deepseg_t419ljgq)
Copied sub-MGH2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-11-11_sct_deepseg_t419ljgq/sub-MGH2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 11 seconds
Saving results to: /tmp/sct_2024-11-04_15-11-11_sct_deepseg_t419ljgq/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
/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_2024_11_04_151124.050502.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-11-36_sct_deepseg_kmonvnlp)
Copied sub-MGH3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-11-36_sct_deepseg_kmonvnlp/sub-MGH3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 11 seconds
Saving results to: /tmp/sct_2024-11-04_15-11-36_sct_deepseg_kmonvnlp/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
/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_2024_11_04_151148.985193.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-12-01_sct_deepseg_7ikqw8x9)
Copied sub-MNI1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-12-01_sct_deepseg_7ikqw8x9/sub-MNI1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-12-01_sct_deepseg_7ikqw8x9/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
/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_2024_11_04_151217.724718.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-12-29_sct_deepseg_ipjtuf72)
Copied sub-MNI2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-12-29_sct_deepseg_ipjtuf72/sub-MNI2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-12-29_sct_deepseg_ipjtuf72/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
/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_2024_11_04_151245.714764.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-12-57_sct_deepseg_r3fv1vi2)
Copied sub-MNI3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-12-57_sct_deepseg_r3fv1vi2/sub-MNI3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-12-57_sct_deepseg_r3fv1vi2/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
/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_2024_11_04_151313.771233.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-13-39_sct_deepseg_o02hkgok)
Copied sub-MPI3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-13-39_sct_deepseg_o02hkgok/sub-MPI3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-13-39_sct_deepseg_o02hkgok/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
/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_2024_11_04_151356.156174.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-14-07_sct_deepseg_tbapznnx)
Copied sub-MSSM1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-14-07_sct_deepseg_tbapznnx/sub-MSSM1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-14-07_sct_deepseg_tbapznnx/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
/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_2024_11_04_151424.133190.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-14-35_sct_deepseg_gtfq38m_)
Copied sub-MSSM2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-14-35_sct_deepseg_gtfq38m_/sub-MSSM2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-14-35_sct_deepseg_gtfq38m_/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
/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_2024_11_04_151452.160163.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-15-03_sct_deepseg_njvc_zr_)
Copied sub-MSSM3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-15-03_sct_deepseg_njvc_zr_/sub-MSSM3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-15-03_sct_deepseg_njvc_zr_/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
/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_2024_11_04_151520.110925.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-15-31_sct_deepseg_hzi2tvjv)
Copied sub-NTNU1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-15-31_sct_deepseg_hzi2tvjv/sub-NTNU1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-15-31_sct_deepseg_hzi2tvjv/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
/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_2024_11_04_151548.073844.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-15-59_sct_deepseg_dsctokfu)
Copied sub-NTNU2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-15-59_sct_deepseg_dsctokfu/sub-NTNU2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-15-59_sct_deepseg_dsctokfu/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
/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_2024_11_04_151615.995358.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-16-34_sct_deepseg_s9jcsl76)
Copied sub-UCL1_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-16-34_sct_deepseg_s9jcsl76/sub-UCL1_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-16-34_sct_deepseg_s9jcsl76/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
/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_2024_11_04_151651.179229.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-17-02_sct_deepseg_9hmlhg3m)
Copied sub-UCL2_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-17-02_sct_deepseg_9hmlhg3m/sub-UCL2_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-17-02_sct_deepseg_9hmlhg3m/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
/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_2024_11_04_151719.124059.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-17-30_sct_deepseg_hdsmk8s2)
Copied sub-UCL3_UNIT1.nii.gz to /tmp/sct_2024-11-04_15-17-30_sct_deepseg_hdsmk8s2/sub-UCL3_UNIT1.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 14 seconds
Saving results to: /tmp/sct_2024-11-04_15-17-30_sct_deepseg_hdsmk8s2/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
/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_2024_11_04_151747.772877.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-20-34_sct_deepseg_1wc2dnt6)
Copied sub-CRMBM1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-20-34_sct_deepseg_1wc2dnt6/sub-CRMBM1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 25 seconds
Saving results to: /tmp/sct_2024-11-04_15-20-34_sct_deepseg_1wc2dnt6/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
/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_2024_11_04_152101.334261.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-21-09_sct_deepseg__9gd334k)
Copied sub-CRMBM2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-21-09_sct_deepseg__9gd334k/sub-CRMBM2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 24 seconds
Saving results to: /tmp/sct_2024-11-04_15-21-09_sct_deepseg__9gd334k/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
/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_2024_11_04_152134.799457.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-21-42_sct_deepseg_zqdgjgec)
Copied sub-CRMBM3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-21-42_sct_deepseg_zqdgjgec/sub-CRMBM3_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-21-42_sct_deepseg_zqdgjgec/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
/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_2024_11_04_152208.047486.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-22-16_sct_deepseg_diujen3m)
Copied sub-MGH1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-22-16_sct_deepseg_diujen3m/sub-MGH1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-22-16_sct_deepseg_diujen3m/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
/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_2024_11_04_152241.268677.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-22-49_sct_deepseg_y0oxtwyk)
Copied sub-MGH2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-22-49_sct_deepseg_y0oxtwyk/sub-MGH2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-22-49_sct_deepseg_y0oxtwyk/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
/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_2024_11_04_152314.517137.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-23-22_sct_deepseg_l5q2ivav)
Copied sub-MGH3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-23-22_sct_deepseg_l5q2ivav/sub-MGH3_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-23-22_sct_deepseg_l5q2ivav/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
/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_2024_11_04_152347.882069.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-23-56_sct_deepseg_vgojw_u5)
Copied sub-MNI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-23-56_sct_deepseg_vgojw_u5/sub-MNI1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-23-56_sct_deepseg_vgojw_u5/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
/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_2024_11_04_152421.105688.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-24-29_sct_deepseg_kw0q_hm5)
Copied sub-MNI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-24-29_sct_deepseg_kw0q_hm5/sub-MNI2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-24-29_sct_deepseg_kw0q_hm5/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
/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_2024_11_04_152454.375464.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-25-02_sct_deepseg_nxsjnbve)
Copied sub-MNI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-25-02_sct_deepseg_nxsjnbve/sub-MNI3_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-25-02_sct_deepseg_nxsjnbve/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
/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_2024_11_04_152527.803431.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-25-36_sct_deepseg_c199uki8)
Copied sub-MPI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-25-36_sct_deepseg_c199uki8/sub-MPI1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-25-36_sct_deepseg_c199uki8/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
/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_2024_11_04_152601.053656.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-26-09_sct_deepseg_2tbc7qe0)
Copied sub-MPI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-26-09_sct_deepseg_2tbc7qe0/sub-MPI2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-26-09_sct_deepseg_2tbc7qe0/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
/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_2024_11_04_152634.476605.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-26-42_sct_deepseg_e4c9zt6j)
Copied sub-MPI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-26-42_sct_deepseg_e4c9zt6j/sub-MPI3_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-26-42_sct_deepseg_e4c9zt6j/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
/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_2024_11_04_152707.797030.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-27-16_sct_deepseg_190x44sk)
Copied sub-NTNU1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-27-16_sct_deepseg_190x44sk/sub-NTNU1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-27-16_sct_deepseg_190x44sk/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
/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_2024_11_04_152741.067313.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-27-49_sct_deepseg_i0kvlel8)
Copied sub-NTNU2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-27-49_sct_deepseg_i0kvlel8/sub-NTNU2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-27-49_sct_deepseg_i0kvlel8/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
/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_2024_11_04_152814.260748.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-28-25_sct_deepseg_c1qq9fq1)
Copied sub-UCL1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-28-25_sct_deepseg_c1qq9fq1/sub-UCL1_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-28-25_sct_deepseg_c1qq9fq1/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
/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_2024_11_04_152850.988867.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-28-59_sct_deepseg_diu8nfo5)
Copied sub-UCL2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-28-59_sct_deepseg_diu8nfo5/sub-UCL2_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-28-59_sct_deepseg_diu8nfo5/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
/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_2024_11_04_152924.229384.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_15-29-32_sct_deepseg_a0p8slxa)
Copied sub-UCL3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-04_15-29-32_sct_deepseg_a0p8slxa/sub-UCL3_acq-anat_TB1TFL.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_15-29-32_sct_deepseg_a0p8slxa/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
/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_2024_11_04_152957.455853.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b)

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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b

--
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_2024-11-04_15-30-04_register-slicewise_1lk2gzoa)

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:07,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  39%|████████▌             | 123/314 [00:00<00:00, 489.08iter/s]
Estimate cord angle for each slice:  79%|█████████████████▍    | 249/314 [00:00<00:00, 766.86iter/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, 668.86iter/s]

Build 3D deformation field:   0%|                                         | 0/302 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 14/302 [00:00<00:02, 132.37iter/s]
Build 3D deformation field:  10%|██▉                            | 29/302 [00:00<00:01, 136.81iter/s]
Build 3D deformation field:  15%|████▌                          | 44/302 [00:00<00:01, 138.75iter/s]
Build 3D deformation field:  20%|██████                         | 59/302 [00:00<00:01, 139.79iter/s]
Build 3D deformation field:  25%|███████▌                       | 74/302 [00:00<00:01, 139.83iter/s]
Build 3D deformation field:  29%|█████████                      | 88/302 [00:00<00:01, 139.27iter/s]
Build 3D deformation field:  34%|██████████▏                   | 103/302 [00:00<00:01, 140.58iter/s]
Build 3D deformation field:  39%|███████████▋                  | 118/302 [00:00<00:01, 141.04iter/s]
Build 3D deformation field:  44%|█████████████▏                | 133/302 [00:00<00:01, 140.18iter/s]
Build 3D deformation field:  49%|██████████████▋               | 148/302 [00:01<00:01, 140.27iter/s]
Build 3D deformation field:  54%|████████████████▏             | 163/302 [00:01<00:00, 139.05iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 177/302 [00:01<00:00, 138.64iter/s]
Build 3D deformation field:  63%|██████████████████▉           | 191/302 [00:01<00:00, 138.03iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 205/302 [00:01<00:00, 137.29iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 219/302 [00:01<00:00, 137.04iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 234/302 [00:01<00:00, 137.94iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 248/302 [00:01<00:00, 138.06iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 262/302 [00:01<00:00, 138.08iter/s]
Build 3D deformation field:  91%|███████████████████████████▍  | 276/302 [00:01<00:00, 137.41iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 290/302 [00:02<00:00, 137.00iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 302/302 [00:02<00:00, 138.38iter/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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-01_register-wrapper_a8p9lt6b
rm -rf /tmp/sct_2024-11-04_15-30-04_register-slicewise_1lk2gzoa

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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b
/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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-01_register-wrapper_a8p9lt6b/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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b/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_2024-11-04_15-30-01_register-wrapper_a8p9lt6b

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_2024_11_04_153010.916333.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-13_register-wrapper_i2b2xijk)

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_2024-11-04_15-30-13_register-wrapper_i2b2xijk

--
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_2024-11-04_15-30-15_register-slicewise__i7pkupa)

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.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.
Estimate cord angle for each slice:  52%|███████████▍          | 118/226 [00:00<00:00, 465.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 #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, 555.55iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   7%|██                             | 15/220 [00:00<00:01, 141.47iter/s]
Build 3D deformation field:  14%|████▎                          | 31/220 [00:00<00:01, 147.51iter/s]
Build 3D deformation field:  21%|██████▌                        | 47/220 [00:00<00:01, 149.74iter/s]
Build 3D deformation field:  29%|████████▉                      | 63/220 [00:00<00:01, 149.46iter/s]
Build 3D deformation field:  36%|███████████▏                   | 79/220 [00:00<00:00, 151.25iter/s]
Build 3D deformation field:  43%|█████████████▍                 | 95/220 [00:00<00:00, 151.32iter/s]
Build 3D deformation field:  50%|███████████████▏              | 111/220 [00:00<00:00, 148.86iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 126/220 [00:00<00:00, 148.66iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 141/220 [00:00<00:00, 148.79iter/s]
Build 3D deformation field:  71%|█████████████████████▎        | 156/220 [00:01<00:00, 148.94iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 171/220 [00:01<00:00, 148.40iter/s]
Build 3D deformation field:  85%|█████████████████████████▎    | 186/220 [00:01<00:00, 147.44iter/s]
Build 3D deformation field:  91%|███████████████████████████▍  | 201/220 [00:01<00:00, 147.08iter/s]
Build 3D deformation field:  99%|█████████████████████████████▌| 217/220 [00:01<00:00, 148.97iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 148.80iter/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_2024-11-04_15-30-13_register-wrapper_i2b2xijk
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-13_register-wrapper_i2b2xijk
rm -rf /tmp/sct_2024-11-04_15-30-15_register-slicewise__i7pkupa

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_2024-11-04_15-30-13_register-wrapper_i2b2xijk
/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_2024-11-04_15-30-13_register-wrapper_i2b2xijk

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-13_register-wrapper_i2b2xijk/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_2024-11-04_15-30-13_register-wrapper_i2b2xijk/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_2024-11-04_15-30-13_register-wrapper_i2b2xijk

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_2024_11_04_153020.213957.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-22_register-wrapper_vp65n9of)

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_2024-11-04_15-30-22_register-wrapper_vp65n9of

--
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_2024-11-04_15-30-25_register-slicewise_iqpxkq_n)

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:12,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  35%|███████▋              | 117/337 [00:00<00:00, 462.81iter/s]
Estimate cord angle for each slice:  71%|███████████████▌      | 239/337 [00:00<00:00, 734.85iter/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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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, 682.48iter/s]

Build 3D deformation field:   0%|                                         | 0/284 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/284 [00:00<00:02, 91.51iter/s]
Build 3D deformation field:   7%|██▎                             | 21/284 [00:00<00:02, 96.72iter/s]
Build 3D deformation field:  11%|███▌                            | 32/284 [00:00<00:02, 98.32iter/s]
Build 3D deformation field:  15%|████▊                           | 43/284 [00:00<00:02, 99.08iter/s]
Build 3D deformation field:  19%|██████                          | 54/284 [00:00<00:02, 99.43iter/s]
Build 3D deformation field:  23%|███████▏                        | 64/284 [00:00<00:02, 99.60iter/s]
Build 3D deformation field:  26%|████████▏                      | 75/284 [00:00<00:02, 100.45iter/s]
Build 3D deformation field:  30%|█████████▍                     | 86/284 [00:00<00:01, 101.14iter/s]
Build 3D deformation field:  34%|██████████▌                    | 97/284 [00:00<00:01, 101.16iter/s]
Build 3D deformation field:  38%|███████████▍                  | 108/284 [00:01<00:01, 101.10iter/s]
Build 3D deformation field:  42%|████████████▌                 | 119/284 [00:01<00:01, 101.02iter/s]
Build 3D deformation field:  46%|█████████████▋                | 130/284 [00:01<00:01, 100.96iter/s]
Build 3D deformation field:  50%|██████████████▉               | 141/284 [00:01<00:01, 100.86iter/s]
Build 3D deformation field:  54%|████████████████              | 152/284 [00:01<00:01, 100.79iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 163/284 [00:01<00:01, 100.95iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 174/284 [00:01<00:01, 100.55iter/s]
Build 3D deformation field:  65%|███████████████████▌          | 185/284 [00:01<00:00, 100.53iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 196/284 [00:01<00:00, 100.52iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 207/284 [00:02<00:00, 101.58iter/s]
Build 3D deformation field:  77%|███████████████████████       | 218/284 [00:02<00:00, 102.11iter/s]
Build 3D deformation field:  81%|████████████████████████▏     | 229/284 [00:02<00:00, 101.87iter/s]
Build 3D deformation field:  85%|█████████████████████████▎    | 240/284 [00:02<00:00, 101.47iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 251/284 [00:02<00:00, 101.61iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 262/284 [00:02<00:00, 102.24iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 273/284 [00:02<00:00, 103.72iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 284/284 [00:02<00:00, 102.77iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 284/284 [00:02<00:00, 101.01iter/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_2024-11-04_15-30-22_register-wrapper_vp65n9of
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-22_register-wrapper_vp65n9of
rm -rf /tmp/sct_2024-11-04_15-30-25_register-slicewise_iqpxkq_n

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_2024-11-04_15-30-22_register-wrapper_vp65n9of
/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_2024-11-04_15-30-22_register-wrapper_vp65n9of

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-22_register-wrapper_vp65n9of/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_2024-11-04_15-30-22_register-wrapper_vp65n9of/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_2024-11-04_15-30-22_register-wrapper_vp65n9of

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_2024_11_04_153034.465839.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_)

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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_

--
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_2024-11-04_15-30-39_register-slicewise_vcu4y8u2)

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:47,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  51%|███████████▎          | 116/226 [00:00<00:00, 465.56iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 561.03iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 12/189 [00:00<00:01, 113.15iter/s]
Build 3D deformation field:  13%|████                           | 25/189 [00:00<00:01, 119.66iter/s]
Build 3D deformation field:  20%|██████▏                        | 38/189 [00:00<00:01, 122.30iter/s]
Build 3D deformation field:  27%|████████▎                      | 51/189 [00:00<00:01, 123.43iter/s]
Build 3D deformation field:  34%|██████████▍                    | 64/189 [00:00<00:01, 122.96iter/s]
Build 3D deformation field:  41%|████████████▋                  | 77/189 [00:00<00:00, 122.47iter/s]
Build 3D deformation field:  48%|██████████████▊                | 90/189 [00:00<00:00, 121.91iter/s]
Build 3D deformation field:  54%|████████████████▎             | 103/189 [00:00<00:00, 121.29iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 116/189 [00:00<00:00, 119.89iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 129/189 [00:01<00:00, 120.05iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 142/189 [00:01<00:00, 120.08iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 155/189 [00:01<00:00, 120.24iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 168/189 [00:01<00:00, 120.32iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 181/189 [00:01<00:00, 121.81iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 121.18iter/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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-37_register-wrapper_xfcm6a0_
rm -rf /tmp/sct_2024-11-04_15-30-39_register-slicewise_vcu4y8u2

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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_
/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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-37_register-wrapper_xfcm6a0_/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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_/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_2024-11-04_15-30-37_register-wrapper_xfcm6a0_

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_2024_11_04_153044.721201.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7)

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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7

--
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_2024-11-04_15-30-49_register-slicewise_7y3u718s)

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:47,  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.
Estimate cord angle for each slice:  55%|████████████▏         | 123/223 [00:00<00:00, 487.99iter/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, 560.26iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 12/218 [00:00<00:01, 119.11iter/s]
Build 3D deformation field:  11%|███▌                           | 25/218 [00:00<00:01, 123.96iter/s]
Build 3D deformation field:  18%|█████▌                         | 39/218 [00:00<00:01, 127.40iter/s]
Build 3D deformation field:  24%|███████▍                       | 52/218 [00:00<00:01, 127.21iter/s]
Build 3D deformation field:  30%|█████████▏                     | 65/218 [00:00<00:01, 127.23iter/s]
Build 3D deformation field:  36%|███████████                    | 78/218 [00:00<00:01, 127.46iter/s]
Build 3D deformation field:  42%|█████████████                  | 92/218 [00:00<00:00, 128.39iter/s]
Build 3D deformation field:  49%|██████████████▌               | 106/218 [00:00<00:00, 128.90iter/s]
Build 3D deformation field:  55%|████████████████▌             | 120/218 [00:00<00:00, 129.41iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 133/218 [00:01<00:00, 129.17iter/s]
Build 3D deformation field:  67%|████████████████████          | 146/218 [00:01<00:00, 128.89iter/s]
Build 3D deformation field:  73%|██████████████████████        | 160/218 [00:01<00:00, 129.53iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 174/218 [00:01<00:00, 130.56iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 188/218 [00:01<00:00, 130.32iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 202/218 [00:01<00:00, 129.43iter/s]
Build 3D deformation field:  99%|█████████████████████████████▌| 215/218 [00:01<00:00, 129.06iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 128.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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-48_register-wrapper_qmz7nwv7
rm -rf /tmp/sct_2024-11-04_15-30-49_register-slicewise_7y3u718s

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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7
/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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-48_register-wrapper_qmz7nwv7/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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7/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_2024-11-04_15-30-48_register-wrapper_qmz7nwv7

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_2024_11_04_153054.848832.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-30-58_register-wrapper_8q43o0kb)

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_2024-11-04_15-30-58_register-wrapper_8q43o0kb

--
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_2024-11-04_15-30-59_register-slicewise_3wcs4ltm)

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:50,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  49%|██████████▊           | 117/238 [00:00<00:00, 467.83iter/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, 576.24iter/s]

Build 3D deformation field:   0%|                                         | 0/216 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 11/216 [00:00<00:01, 104.99iter/s]
Build 3D deformation field:  11%|███▎                           | 23/216 [00:00<00:01, 108.03iter/s]
Build 3D deformation field:  16%|█████                          | 35/216 [00:00<00:01, 109.30iter/s]
Build 3D deformation field:  21%|██████▌                        | 46/216 [00:00<00:01, 109.53iter/s]
Build 3D deformation field:  27%|████████▎                      | 58/216 [00:00<00:01, 110.04iter/s]
Build 3D deformation field:  32%|██████████                     | 70/216 [00:00<00:01, 110.48iter/s]
Build 3D deformation field:  38%|███████████▊                   | 82/216 [00:00<00:01, 111.01iter/s]
Build 3D deformation field:  44%|█████████████▍                 | 94/216 [00:00<00:01, 110.47iter/s]
Build 3D deformation field:  49%|██████████████▋               | 106/216 [00:00<00:01, 109.89iter/s]
Build 3D deformation field:  55%|████████████████▍             | 118/216 [00:01<00:00, 109.91iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 129/216 [00:01<00:00, 109.60iter/s]
Build 3D deformation field:  65%|███████████████████▌          | 141/216 [00:01<00:00, 110.74iter/s]
Build 3D deformation field:  71%|█████████████████████▎        | 153/216 [00:01<00:00, 111.72iter/s]
Build 3D deformation field:  76%|██████████████████████▉       | 165/216 [00:01<00:00, 112.39iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 177/216 [00:01<00:00, 112.06iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 189/216 [00:01<00:00, 111.90iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 201/216 [00:01<00:00, 111.77iter/s]
Build 3D deformation field:  99%|█████████████████████████████▌| 213/216 [00:01<00:00, 112.54iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 216/216 [00:01<00:00, 110.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_2024-11-04_15-30-58_register-wrapper_8q43o0kb
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-30-58_register-wrapper_8q43o0kb
rm -rf /tmp/sct_2024-11-04_15-30-59_register-slicewise_3wcs4ltm

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_2024-11-04_15-30-58_register-wrapper_8q43o0kb
/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_2024-11-04_15-30-58_register-wrapper_8q43o0kb

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-30-58_register-wrapper_8q43o0kb/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_2024-11-04_15-30-58_register-wrapper_8q43o0kb/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_2024-11-04_15-30-58_register-wrapper_8q43o0kb

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_2024_11_04_153106.032698.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv)

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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv

--
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_2024-11-04_15-31-11_register-slicewise_ajr24xbd)

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:17,  4.69iter/s]
Estimate cord angle for each slice:  34%|███████▍              | 125/367 [00:00<00:00, 499.98iter/s]
Estimate cord angle for each slice:  68%|██████████████▉       | 250/367 [00:00<00:00, 772.27iter/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, 723.71iter/s]

Build 3D deformation field:   0%|                                         | 0/363 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 17/363 [00:00<00:02, 164.04iter/s]
Build 3D deformation field:  10%|██▉                            | 35/363 [00:00<00:01, 169.90iter/s]
Build 3D deformation field:  15%|████▌                          | 53/363 [00:00<00:01, 173.37iter/s]
Build 3D deformation field:  20%|██████                         | 71/363 [00:00<00:01, 174.38iter/s]
Build 3D deformation field:  25%|███████▌                       | 89/363 [00:00<00:01, 174.76iter/s]
Build 3D deformation field:  30%|████████▉                     | 108/363 [00:00<00:01, 177.35iter/s]
Build 3D deformation field:  35%|██████████▍                   | 127/363 [00:00<00:01, 179.24iter/s]
Build 3D deformation field:  40%|███████████▉                  | 145/363 [00:00<00:01, 178.16iter/s]
Build 3D deformation field:  45%|█████████████▍                | 163/363 [00:00<00:01, 177.42iter/s]
Build 3D deformation field:  50%|██████████████▉               | 181/363 [00:01<00:01, 176.79iter/s]
Build 3D deformation field:  55%|████████████████▍             | 199/363 [00:01<00:00, 176.55iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 217/363 [00:01<00:00, 176.95iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 235/363 [00:01<00:00, 177.06iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 253/363 [00:01<00:00, 177.27iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 272/363 [00:01<00:00, 179.58iter/s]
Build 3D deformation field:  80%|████████████████████████      | 291/363 [00:01<00:00, 180.72iter/s]
Build 3D deformation field:  85%|█████████████████████████▌    | 310/363 [00:01<00:00, 178.86iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 328/363 [00:01<00:00, 175.91iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 346/363 [00:01<00:00, 176.18iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 363/363 [00:02<00:00, 176.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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-31-09_register-wrapper_zmm9h1nv
rm -rf /tmp/sct_2024-11-04_15-31-11_register-slicewise_ajr24xbd

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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv
/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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-31-09_register-wrapper_zmm9h1nv/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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv/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_2024-11-04_15-31-09_register-wrapper_zmm9h1nv

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_2024_11_04_153118.819092.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz)

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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz

--
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_2024-11-04_15-31-23_register-slicewise_za9hbasn)

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:16,  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.
Estimate cord angle for each slice:  35%|███████▋              | 127/361 [00:00<00:00, 507.52iter/s]
Estimate cord angle for each slice:  71%|███████████████▌      | 255/361 [00:00<00:00, 786.92iter/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, 731.91iter/s]

Build 3D deformation field:   0%|                                         | 0/345 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 17/345 [00:00<00:01, 166.12iter/s]
Build 3D deformation field:  10%|███▏                           | 35/345 [00:00<00:01, 174.06iter/s]
Build 3D deformation field:  15%|████▊                          | 53/345 [00:00<00:01, 176.36iter/s]
Build 3D deformation field:  21%|██████▍                        | 71/345 [00:00<00:01, 177.44iter/s]
Build 3D deformation field:  26%|███████▉                       | 89/345 [00:00<00:01, 178.07iter/s]
Build 3D deformation field:  31%|█████████▍                    | 108/345 [00:00<00:01, 180.22iter/s]
Build 3D deformation field:  37%|███████████                   | 127/345 [00:00<00:01, 180.34iter/s]
Build 3D deformation field:  42%|████████████▋                 | 146/345 [00:00<00:01, 180.48iter/s]
Build 3D deformation field:  48%|██████████████▎               | 165/345 [00:00<00:00, 180.64iter/s]
Build 3D deformation field:  53%|████████████████              | 184/345 [00:01<00:00, 180.43iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 203/345 [00:01<00:00, 180.38iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 222/345 [00:01<00:00, 180.33iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 241/345 [00:01<00:00, 180.52iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 260/345 [00:01<00:00, 179.22iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 279/345 [00:01<00:00, 179.83iter/s]
Build 3D deformation field:  86%|█████████████████████████▉    | 298/345 [00:01<00:00, 180.22iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 317/345 [00:01<00:00, 181.16iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 336/345 [00:01<00:00, 181.85iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 345/345 [00:01<00:00, 179.95iter/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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-31-21_register-wrapper_zd8qlvdz
rm -rf /tmp/sct_2024-11-04_15-31-23_register-slicewise_za9hbasn

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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz
/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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-31-21_register-wrapper_zd8qlvdz/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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz/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_2024-11-04_15-31-21_register-wrapper_zd8qlvdz

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_2024_11_04_153129.940520.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8)

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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8

--
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_2024-11-04_15-31-34_register-slicewise_qo_mwe2q)

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.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.
Estimate cord angle for each slice:  47%|██████████▍           | 123/260 [00:00<00:00, 487.60iter/s]
Estimate cord angle for each slice:  95%|████████████████████▉ | 247/260 [00:00<00:00, 758.09iter/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, 607.28iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 13/252 [00:00<00:01, 121.99iter/s]
Build 3D deformation field:  10%|███▏                           | 26/252 [00:00<00:01, 125.19iter/s]
Build 3D deformation field:  15%|████▊                          | 39/252 [00:00<00:01, 124.65iter/s]
Build 3D deformation field:  21%|██████▍                        | 52/252 [00:00<00:01, 124.47iter/s]
Build 3D deformation field:  26%|███████▉                       | 65/252 [00:00<00:01, 124.98iter/s]
Build 3D deformation field:  31%|█████████▌                     | 78/252 [00:00<00:01, 124.43iter/s]
Build 3D deformation field:  36%|███████████▏                   | 91/252 [00:00<00:01, 124.25iter/s]
Build 3D deformation field:  41%|████████████▍                 | 104/252 [00:00<00:01, 125.23iter/s]
Build 3D deformation field:  46%|█████████████▉                | 117/252 [00:00<00:01, 124.78iter/s]
Build 3D deformation field:  52%|███████████████▍              | 130/252 [00:01<00:00, 124.48iter/s]
Build 3D deformation field:  57%|█████████████████             | 143/252 [00:01<00:00, 125.40iter/s]
Build 3D deformation field:  62%|██████████████████▌           | 156/252 [00:01<00:00, 125.62iter/s]
Build 3D deformation field:  67%|████████████████████          | 169/252 [00:01<00:00, 125.41iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 182/252 [00:01<00:00, 126.36iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 195/252 [00:01<00:00, 126.92iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 208/252 [00:01<00:00, 127.38iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 222/252 [00:01<00:00, 128.28iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 235/252 [00:01<00:00, 125.25iter/s]
Build 3D deformation field:  98%|█████████████████████████████▌| 248/252 [00:01<00:00, 124.83iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:02<00:00, 125.42iter/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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-31-32_register-wrapper_5xzxd6p8
rm -rf /tmp/sct_2024-11-04_15-31-34_register-slicewise_qo_mwe2q

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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8
/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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-31-32_register-wrapper_5xzxd6p8/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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8/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_2024-11-04_15-31-32_register-wrapper_5xzxd6p8

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_2024_11_04_153140.887326.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-31-43_register-wrapper_btannrti)

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_2024-11-04_15-31-43_register-wrapper_btannrti

--
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_2024-11-04_15-31-45_register-slicewise_jugcq0wl)

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:56,  4.70iter/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:  46%|██████████▏           | 123/266 [00:00<00:00, 492.37iter/s]
Estimate cord angle for each slice:  95%|████████████████████▊ | 252/266 [00:00<00:00, 782.32iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 625.81iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 14/248 [00:00<00:01, 136.20iter/s]
Build 3D deformation field:  12%|███▋                           | 29/248 [00:00<00:01, 140.96iter/s]
Build 3D deformation field:  18%|█████▌                         | 44/248 [00:00<00:01, 142.80iter/s]
Build 3D deformation field:  24%|███████▍                       | 59/248 [00:00<00:01, 144.09iter/s]
Build 3D deformation field:  30%|█████████▎                     | 74/248 [00:00<00:01, 144.17iter/s]
Build 3D deformation field:  36%|███████████▏                   | 89/248 [00:00<00:01, 144.57iter/s]
Build 3D deformation field:  42%|████████████▌                 | 104/248 [00:00<00:00, 145.20iter/s]
Build 3D deformation field:  48%|██████████████▍               | 119/248 [00:00<00:00, 145.08iter/s]
Build 3D deformation field:  54%|████████████████▏             | 134/248 [00:00<00:00, 144.87iter/s]
Build 3D deformation field:  60%|██████████████████            | 149/248 [00:01<00:00, 145.22iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 164/248 [00:01<00:00, 145.29iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 179/248 [00:01<00:00, 146.21iter/s]
Build 3D deformation field:  79%|███████████████████████▌      | 195/248 [00:01<00:00, 147.80iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 210/248 [00:01<00:00, 147.45iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 225/248 [00:01<00:00, 146.69iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 240/248 [00:01<00:00, 145.97iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 145.23iter/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_2024-11-04_15-31-43_register-wrapper_btannrti
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-31-43_register-wrapper_btannrti
rm -rf /tmp/sct_2024-11-04_15-31-45_register-slicewise_jugcq0wl

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_2024-11-04_15-31-43_register-wrapper_btannrti
/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_2024-11-04_15-31-43_register-wrapper_btannrti

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-31-43_register-wrapper_btannrti/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_2024-11-04_15-31-43_register-wrapper_btannrti/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_2024-11-04_15-31-43_register-wrapper_btannrti

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_2024_11_04_153150.972484.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o)

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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o

--
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_2024-11-04_15-31-55_register-slicewise_sd_tritc)

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:57,  4.74iter/s]
Estimate cord angle for each slice:  46%|██████████▏           | 128/276 [00:00<00:00, 514.40iter/s]
Estimate cord angle for each slice:  93%|████████████████████▍ | 256/276 [00:00<00:00, 791.80iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 643.09iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 16/276 [00:00<00:01, 153.90iter/s]
Build 3D deformation field:  12%|███▋                           | 33/276 [00:00<00:01, 159.41iter/s]
Build 3D deformation field:  18%|█████▌                         | 50/276 [00:00<00:01, 162.40iter/s]
Build 3D deformation field:  24%|███████▌                       | 67/276 [00:00<00:01, 161.96iter/s]
Build 3D deformation field:  30%|█████████▍                     | 84/276 [00:00<00:01, 161.13iter/s]
Build 3D deformation field:  37%|██████████▉                   | 101/276 [00:00<00:01, 161.99iter/s]
Build 3D deformation field:  43%|████████████▊                 | 118/276 [00:00<00:00, 163.07iter/s]
Build 3D deformation field:  49%|██████████████▋               | 135/276 [00:00<00:00, 164.23iter/s]
Build 3D deformation field:  55%|████████████████▌             | 152/276 [00:00<00:00, 163.48iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 169/276 [00:01<00:00, 163.70iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 186/276 [00:01<00:00, 163.85iter/s]
Build 3D deformation field:  74%|██████████████████████        | 203/276 [00:01<00:00, 163.17iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 220/276 [00:01<00:00, 163.97iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 237/276 [00:01<00:00, 164.02iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 255/276 [00:01<00:00, 165.88iter/s]
Build 3D deformation field:  99%|█████████████████████████████▌| 272/276 [00:01<00:00, 166.64iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 163.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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-31-53_register-wrapper_j3bfqr6o
rm -rf /tmp/sct_2024-11-04_15-31-55_register-slicewise_sd_tritc

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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o
/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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-31-53_register-wrapper_j3bfqr6o/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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o/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_2024-11-04_15-31-53_register-wrapper_j3bfqr6o

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_2024_11_04_153200.670100.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-03_register-wrapper_bjizv2zp)

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_2024-11-04_15-32-03_register-wrapper_bjizv2zp

--
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_2024-11-04_15-32-05_register-slicewise_tjb_8d5e)

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<00:59,  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.
Estimate cord angle for each slice:  42%|█████████▏            | 118/282 [00:00<00:00, 471.37iter/s]
Estimate cord angle for each slice:  85%|██████████████████▋   | 239/282 [00:00<00:00, 738.21iter/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, 627.43iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/263 [00:00<00:02, 104.39iter/s]
Build 3D deformation field:   9%|██▋                            | 23/263 [00:00<00:02, 110.16iter/s]
Build 3D deformation field:  13%|████▏                          | 35/263 [00:00<00:02, 111.49iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/263 [00:00<00:01, 111.62iter/s]
Build 3D deformation field:  22%|██████▉                        | 59/263 [00:00<00:01, 112.23iter/s]
Build 3D deformation field:  27%|████████▎                      | 71/263 [00:00<00:01, 113.28iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/263 [00:00<00:01, 114.21iter/s]
Build 3D deformation field:  36%|███████████▏                   | 95/263 [00:00<00:01, 114.01iter/s]
Build 3D deformation field:  41%|████████████▏                 | 107/263 [00:00<00:01, 113.37iter/s]
Build 3D deformation field:  45%|█████████████▌                | 119/263 [00:01<00:01, 112.70iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 112.23iter/s]
Build 3D deformation field:  54%|████████████████▎             | 143/263 [00:01<00:01, 111.84iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 155/263 [00:01<00:00, 111.97iter/s]
Build 3D deformation field:  63%|███████████████████           | 167/263 [00:01<00:00, 111.51iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 179/263 [00:01<00:00, 111.25iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 191/263 [00:01<00:00, 111.74iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 203/263 [00:01<00:00, 111.92iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 215/263 [00:01<00:00, 112.25iter/s]
Build 3D deformation field:  86%|█████████████████████████▉    | 227/263 [00:02<00:00, 111.21iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 239/263 [00:02<00:00, 113.00iter/s]
Build 3D deformation field:  95%|████████████████████████████▋ | 251/263 [00:02<00:00, 114.40iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 114.82iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 112.62iter/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_2024-11-04_15-32-03_register-wrapper_bjizv2zp
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-32-03_register-wrapper_bjizv2zp
rm -rf /tmp/sct_2024-11-04_15-32-05_register-slicewise_tjb_8d5e

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_2024-11-04_15-32-03_register-wrapper_bjizv2zp
/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_2024-11-04_15-32-03_register-wrapper_bjizv2zp

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-03_register-wrapper_bjizv2zp/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_2024-11-04_15-32-03_register-wrapper_bjizv2zp/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_2024-11-04_15-32-03_register-wrapper_bjizv2zp

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_2024_11_04_153212.801256.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k)

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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k

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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k
/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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM1_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-15_register-wrapper_xtxl2e1k/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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k/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_2024-11-04_15-32-15_register-wrapper_xtxl2e1k

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_2024_11_04_153218.105498.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-20_register-wrapper_bcghntde)

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_2024-11-04_15-32-20_register-wrapper_bcghntde

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_2024-11-04_15-32-20_register-wrapper_bcghntde
/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_2024-11-04_15-32-20_register-wrapper_bcghntde

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM2_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-20_register-wrapper_bcghntde/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_2024-11-04_15-32-20_register-wrapper_bcghntde/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_2024-11-04_15-32-20_register-wrapper_bcghntde

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_2024_11_04_153222.635463.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-24_register-wrapper_piaym8b8)

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_2024-11-04_15-32-24_register-wrapper_piaym8b8

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_2024-11-04_15-32-24_register-wrapper_piaym8b8
/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_2024-11-04_15-32-24_register-wrapper_piaym8b8

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_acq-famp_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-24_register-wrapper_piaym8b8/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_2024-11-04_15-32-24_register-wrapper_piaym8b8/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_2024-11-04_15-32-24_register-wrapper_piaym8b8

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_2024_11_04_153228.542591.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-31_register-wrapper_gnrl6hom)

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_2024-11-04_15-32-31_register-wrapper_gnrl6hom

--
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_2024-11-04_15-32-32_register-slicewise_qu4yej3m)

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:02,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  42%|█████████▎            | 125/296 [00:00<00:00, 500.05iter/s]
Estimate cord angle for each slice:  86%|███████████████████   | 256/296 [00:00<00:00, 793.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 #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, 670.28iter/s]

Build 3D deformation field:   0%|                                         | 0/240 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▌                            | 20/240 [00:00<00:01, 197.95iter/s]
Build 3D deformation field:  17%|█████▎                         | 41/240 [00:00<00:00, 202.74iter/s]
Build 3D deformation field:  26%|████████                       | 62/240 [00:00<00:00, 205.31iter/s]
Build 3D deformation field:  35%|██████████▋                    | 83/240 [00:00<00:00, 206.74iter/s]
Build 3D deformation field:  44%|█████████████▏                | 105/240 [00:00<00:00, 210.30iter/s]
Build 3D deformation field:  53%|███████████████▉              | 127/240 [00:00<00:00, 210.30iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 149/240 [00:00<00:00, 210.13iter/s]
Build 3D deformation field:  71%|█████████████████████▍        | 171/240 [00:00<00:00, 210.64iter/s]
Build 3D deformation field:  80%|████████████████████████▏     | 193/240 [00:00<00:00, 211.89iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 215/240 [00:01<00:00, 210.49iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 237/240 [00:01<00:00, 209.67iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 240/240 [00:01<00:00, 208.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_2024-11-04_15-32-31_register-wrapper_gnrl6hom
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-32-31_register-wrapper_gnrl6hom
rm -rf /tmp/sct_2024-11-04_15-32-32_register-slicewise_qu4yej3m

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_2024-11-04_15-32-31_register-wrapper_gnrl6hom
/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_2024-11-04_15-32-31_register-wrapper_gnrl6hom

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-31_register-wrapper_gnrl6hom/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_2024-11-04_15-32-31_register-wrapper_gnrl6hom/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_2024-11-04_15-32-31_register-wrapper_gnrl6hom

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_2024_11_04_153237.434812.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-39_register-wrapper_j7m97_kv)

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_2024-11-04_15-32-39_register-wrapper_j7m97_kv

--
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_2024-11-04_15-32-41_register-slicewise_7sqf81vy)

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.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 #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:  53%|███████████▋          | 124/234 [00:00<00:00, 494.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 #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, 580.81iter/s]

Build 3D deformation field:   0%|                                         | 0/225 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 18/225 [00:00<00:01, 172.19iter/s]
Build 3D deformation field:  16%|█████                          | 37/225 [00:00<00:01, 178.63iter/s]
Build 3D deformation field:  25%|███████▋                       | 56/225 [00:00<00:00, 179.33iter/s]
Build 3D deformation field:  33%|██████████▎                    | 75/225 [00:00<00:00, 183.20iter/s]
Build 3D deformation field:  42%|████████████▉                  | 94/225 [00:00<00:00, 184.05iter/s]
Build 3D deformation field:  50%|███████████████               | 113/225 [00:00<00:00, 184.13iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 132/225 [00:00<00:00, 182.57iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 151/225 [00:00<00:00, 182.98iter/s]
Build 3D deformation field:  76%|██████████████████████▋       | 170/225 [00:00<00:00, 183.62iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 189/225 [00:01<00:00, 182.73iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 208/225 [00:01<00:00, 181.31iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 225/225 [00:01<00:00, 182.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_2024-11-04_15-32-39_register-wrapper_j7m97_kv
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-32-39_register-wrapper_j7m97_kv
rm -rf /tmp/sct_2024-11-04_15-32-41_register-slicewise_7sqf81vy

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_2024-11-04_15-32-39_register-wrapper_j7m97_kv
/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_2024-11-04_15-32-39_register-wrapper_j7m97_kv

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-39_register-wrapper_j7m97_kv/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_2024-11-04_15-32-39_register-wrapper_j7m97_kv/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_2024-11-04_15-32-39_register-wrapper_j7m97_kv

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_2024_11_04_153245.627341.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-48_register-wrapper_folpiy36)

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_2024-11-04_15-32-48_register-wrapper_folpiy36

--
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_2024-11-04_15-32-50_register-slicewise_pcyyz1w7)

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:08,  4.72iter/s]
Estimate cord angle for each slice:  39%|████████▌             | 125/322 [00:00<00:00, 501.75iter/s]
Estimate cord angle for each slice:  79%|█████████████████▎    | 253/322 [00:00<00:00, 783.70iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 688.61iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 14/322 [00:00<00:02, 133.00iter/s]
Build 3D deformation field:   9%|██▊                            | 29/322 [00:00<00:02, 138.75iter/s]
Build 3D deformation field:  14%|████▏                          | 44/322 [00:00<00:01, 141.39iter/s]
Build 3D deformation field:  18%|█████▋                         | 59/322 [00:00<00:01, 141.73iter/s]
Build 3D deformation field:  23%|███████                        | 74/322 [00:00<00:01, 141.88iter/s]
Build 3D deformation field:  28%|████████▌                      | 89/322 [00:00<00:01, 142.12iter/s]
Build 3D deformation field:  32%|█████████▋                    | 104/322 [00:00<00:01, 142.16iter/s]
Build 3D deformation field:  37%|███████████                   | 119/322 [00:00<00:01, 142.40iter/s]
Build 3D deformation field:  42%|████████████▍                 | 134/322 [00:00<00:01, 142.36iter/s]
Build 3D deformation field:  46%|█████████████▉                | 149/322 [00:01<00:01, 142.32iter/s]
Build 3D deformation field:  51%|███████████████▎              | 164/322 [00:01<00:01, 142.75iter/s]
Build 3D deformation field:  56%|████████████████▋             | 179/322 [00:01<00:01, 142.59iter/s]
Build 3D deformation field:  60%|██████████████████            | 194/322 [00:01<00:00, 143.05iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 209/322 [00:01<00:00, 143.87iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 224/322 [00:01<00:00, 144.79iter/s]
Build 3D deformation field:  75%|██████████████████████▎       | 240/322 [00:01<00:00, 146.31iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 255/322 [00:01<00:00, 144.08iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 270/322 [00:01<00:00, 144.81iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 285/322 [00:01<00:00, 145.24iter/s]
Build 3D deformation field:  93%|████████████████████████████  | 301/322 [00:02<00:00, 146.93iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 316/322 [00:02<00:00, 147.16iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 143.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_2024-11-04_15-32-48_register-wrapper_folpiy36
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-32-48_register-wrapper_folpiy36
rm -rf /tmp/sct_2024-11-04_15-32-50_register-slicewise_pcyyz1w7

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_2024-11-04_15-32-48_register-wrapper_folpiy36
/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_2024-11-04_15-32-48_register-wrapper_folpiy36

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-48_register-wrapper_folpiy36/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_2024-11-04_15-32-48_register-wrapper_folpiy36/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_2024-11-04_15-32-48_register-wrapper_folpiy36

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_2024_11_04_153256.992702.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-32-59_register-wrapper_ftidwvfu)

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_2024-11-04_15-32-59_register-wrapper_ftidwvfu

--
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_2024-11-04_15-33-02_register-slicewise_ug9vomrx)

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.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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  36%|███████▉              | 120/333 [00:00<00:00, 470.39iter/s]
Estimate cord angle for each slice:  74%|████████████████▏     | 245/333 [00:00<00:00, 749.53iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 333/333 [00:00<00:00, 679.08iter/s]

Build 3D deformation field:   0%|                                         | 0/303 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 13/303 [00:00<00:02, 122.17iter/s]
Build 3D deformation field:   9%|██▋                            | 26/303 [00:00<00:02, 125.95iter/s]
Build 3D deformation field:  13%|███▉                           | 39/303 [00:00<00:02, 126.52iter/s]
Build 3D deformation field:  17%|█████▎                         | 52/303 [00:00<00:01, 127.40iter/s]
Build 3D deformation field:  21%|██████▋                        | 65/303 [00:00<00:01, 126.36iter/s]
Build 3D deformation field:  26%|███████▉                       | 78/303 [00:00<00:01, 125.85iter/s]
Build 3D deformation field:  30%|█████████▎                     | 91/303 [00:00<00:01, 126.12iter/s]
Build 3D deformation field:  34%|██████████▎                   | 104/303 [00:00<00:01, 126.94iter/s]
Build 3D deformation field:  39%|███████████▋                  | 118/303 [00:00<00:01, 129.17iter/s]
Build 3D deformation field:  43%|████████████▉                 | 131/303 [00:01<00:01, 128.68iter/s]
Build 3D deformation field:  48%|██████████████▎               | 144/303 [00:01<00:01, 127.62iter/s]
Build 3D deformation field:  52%|███████████████▌              | 157/303 [00:01<00:01, 127.42iter/s]
Build 3D deformation field:  56%|████████████████▊             | 170/303 [00:01<00:01, 127.93iter/s]
Build 3D deformation field:  60%|██████████████████            | 183/303 [00:01<00:00, 127.23iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 196/303 [00:01<00:00, 127.47iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 209/303 [00:01<00:00, 126.56iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 222/303 [00:01<00:00, 126.43iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 235/303 [00:01<00:00, 126.31iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 248/303 [00:01<00:00, 126.50iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 261/303 [00:02<00:00, 127.12iter/s]
Build 3D deformation field:  90%|███████████████████████████▏  | 274/303 [00:02<00:00, 127.07iter/s]
Build 3D deformation field:  95%|████████████████████████████▍ | 287/303 [00:02<00:00, 126.91iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 300/303 [00:02<00:00, 125.61iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 303/303 [00:02<00:00, 126.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_2024-11-04_15-32-59_register-wrapper_ftidwvfu
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-32-59_register-wrapper_ftidwvfu
rm -rf /tmp/sct_2024-11-04_15-33-02_register-slicewise_ug9vomrx

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_2024-11-04_15-32-59_register-wrapper_ftidwvfu
/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_2024-11-04_15-32-59_register-wrapper_ftidwvfu

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL1_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-32-59_register-wrapper_ftidwvfu/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_2024-11-04_15-32-59_register-wrapper_ftidwvfu/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_2024-11-04_15-32-59_register-wrapper_ftidwvfu

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_2024_11_04_153309.958308.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-33-13_register-wrapper_2_qz1eju)

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_2024-11-04_15-33-13_register-wrapper_2_qz1eju

--
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_2024-11-04_15-33-15_register-slicewise_joj19lo2)

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:00,  4.70iter/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:  41%|█████████             | 118/287 [00:00<00:00, 471.50iter/s]
Estimate cord angle for each slice:  83%|██████████████████▎   | 239/287 [00:00<00:00, 739.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 #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, 644.04iter/s]

Build 3D deformation field:   0%|                                         | 0/262 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/262 [00:00<00:02, 96.16iter/s]
Build 3D deformation field:   8%|██▍                            | 21/262 [00:00<00:02, 102.27iter/s]
Build 3D deformation field:  12%|███▊                           | 32/262 [00:00<00:02, 105.40iter/s]
Build 3D deformation field:  17%|█████▏                         | 44/262 [00:00<00:02, 107.14iter/s]
Build 3D deformation field:  21%|██████▌                        | 55/262 [00:00<00:01, 107.39iter/s]
Build 3D deformation field:  25%|███████▊                       | 66/262 [00:00<00:01, 107.82iter/s]
Build 3D deformation field:  29%|█████████                      | 77/262 [00:00<00:01, 107.80iter/s]
Build 3D deformation field:  34%|██████████▍                    | 88/262 [00:00<00:01, 108.01iter/s]
Build 3D deformation field:  38%|███████████▋                   | 99/262 [00:00<00:01, 108.26iter/s]
Build 3D deformation field:  42%|████████████▌                 | 110/262 [00:01<00:01, 108.70iter/s]
Build 3D deformation field:  47%|█████████████▉                | 122/262 [00:01<00:01, 109.81iter/s]
Build 3D deformation field:  51%|███████████████▎              | 134/262 [00:01<00:01, 109.93iter/s]
Build 3D deformation field:  55%|████████████████▌             | 145/262 [00:01<00:01, 109.74iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 157/262 [00:01<00:00, 110.61iter/s]
Build 3D deformation field:  65%|███████████████████▎          | 169/262 [00:01<00:00, 108.36iter/s]
Build 3D deformation field:  69%|████████████████████▌         | 180/262 [00:01<00:00, 108.12iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 191/262 [00:01<00:00, 108.20iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 202/262 [00:01<00:00, 107.65iter/s]
Build 3D deformation field:  81%|████████████████████████▍     | 213/262 [00:01<00:00, 107.68iter/s]
Build 3D deformation field:  85%|█████████████████████████▋    | 224/262 [00:02<00:00, 107.54iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 235/262 [00:02<00:00, 107.01iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 246/262 [00:02<00:00, 106.74iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 257/262 [00:02<00:00, 106.80iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 262/262 [00:02<00:00, 107.66iter/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_2024-11-04_15-33-13_register-wrapper_2_qz1eju
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-33-13_register-wrapper_2_qz1eju
rm -rf /tmp/sct_2024-11-04_15-33-15_register-slicewise_joj19lo2

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_2024-11-04_15-33-13_register-wrapper_2_qz1eju
/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_2024-11-04_15-33-13_register-wrapper_2_qz1eju

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL2_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-33-13_register-wrapper_2_qz1eju/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_2024-11-04_15-33-13_register-wrapper_2_qz1eju/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_2024-11-04_15-33-13_register-wrapper_2_qz1eju

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_2024_11_04_153323.023267.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-33-26_register-wrapper_d7noalif)

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_2024-11-04_15-33-26_register-wrapper_d7noalif

--
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_2024-11-04_15-33-28_register-slicewise_w44t7ogj)

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:03,  4.73iter/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:  40%|████████▊             | 121/300 [00:00<00:00, 485.54iter/s]
Estimate cord angle for each slice:  81%|█████████████████▉    | 244/300 [00:00<00:00, 755.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 #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, 672.72iter/s]

Build 3D deformation field:   0%|                                         | 0/260 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/260 [00:00<00:02, 99.62iter/s]
Build 3D deformation field:   8%|██▌                            | 22/260 [00:00<00:02, 106.51iter/s]
Build 3D deformation field:  13%|████                           | 34/260 [00:00<00:02, 108.65iter/s]
Build 3D deformation field:  18%|█████▍                         | 46/260 [00:00<00:01, 110.69iter/s]
Build 3D deformation field:  22%|██████▉                        | 58/260 [00:00<00:01, 110.41iter/s]
Build 3D deformation field:  27%|████████▎                      | 70/260 [00:00<00:01, 111.76iter/s]
Build 3D deformation field:  32%|█████████▊                     | 82/260 [00:00<00:01, 111.40iter/s]
Build 3D deformation field:  36%|███████████▏                   | 94/260 [00:00<00:01, 111.62iter/s]
Build 3D deformation field:  41%|████████████▏                 | 106/260 [00:00<00:01, 112.08iter/s]
Build 3D deformation field:  45%|█████████████▌                | 118/260 [00:01<00:01, 111.63iter/s]
Build 3D deformation field:  50%|███████████████               | 130/260 [00:01<00:01, 111.74iter/s]
Build 3D deformation field:  55%|████████████████▍             | 142/260 [00:01<00:01, 111.94iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 154/260 [00:01<00:00, 111.70iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 166/260 [00:01<00:00, 111.27iter/s]
Build 3D deformation field:  68%|████████████████████▌         | 178/260 [00:01<00:00, 111.05iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 190/260 [00:01<00:00, 112.11iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 202/260 [00:01<00:00, 112.97iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 214/260 [00:01<00:00, 113.08iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 226/260 [00:02<00:00, 112.85iter/s]
Build 3D deformation field:  92%|███████████████████████████▍  | 238/260 [00:02<00:00, 112.03iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 250/260 [00:02<00:00, 111.52iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 260/260 [00:02<00:00, 111.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_2024-11-04_15-33-26_register-wrapper_d7noalif
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_15-33-26_register-wrapper_d7noalif
rm -rf /tmp/sct_2024-11-04_15-33-28_register-slicewise_w44t7ogj

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_2024-11-04_15-33-26_register-wrapper_d7noalif
/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_2024-11-04_15-33-26_register-wrapper_d7noalif

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_acq-anat_TB1TFL_reg.nii.gz
mv /tmp/sct_2024-11-04_15-33-26_register-wrapper_d7noalif/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_2024-11-04_15-33-26_register-wrapper_d7noalif/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_2024-11-04_15-33-26_register-wrapper_d7noalif

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_2024_11_04_153336.056932.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-33-39_register-wrapper_0nlsf08f)

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_2024-11-04_15-33-39_register-wrapper_0nlsf08f

--
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_2024-11-04_15-33-39_register-wrapper_0nlsf08f

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_2024-11-04_15-33-39_register-wrapper_0nlsf08f
/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_2024-11-04_15-33-39_register-wrapper_0nlsf08f

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-33-39_register-wrapper_0nlsf08f/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_2024-11-04_15-33-39_register-wrapper_0nlsf08f/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_2024-11-04_15-33-39_register-wrapper_0nlsf08f

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
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_2024_11_04_153526.771047.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a)

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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a

--
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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a

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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a
/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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-35-29_register-wrapper_v8b_vm0a/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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a/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_2024-11-04_15-35-29_register-wrapper_v8b_vm0a

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_2024_11_04_153653.575711.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-36-56_register-wrapper_83ykbo6t)

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_2024-11-04_15-36-56_register-wrapper_83ykbo6t

--
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_2024-11-04_15-36-56_register-wrapper_83ykbo6t

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_2024-11-04_15-36-56_register-wrapper_83ykbo6t
/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_2024-11-04_15-36-56_register-wrapper_83ykbo6t

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-CRMBM3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-36-56_register-wrapper_83ykbo6t/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_2024-11-04_15-36-56_register-wrapper_83ykbo6t/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_2024-11-04_15-36-56_register-wrapper_83ykbo6t

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_2024_11_04_153918.942983.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-39-22_register-wrapper_2es4puo5)

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_2024-11-04_15-39-22_register-wrapper_2es4puo5

--
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_2024-11-04_15-39-22_register-wrapper_2es4puo5

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_2024-11-04_15-39-22_register-wrapper_2es4puo5
/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_2024-11-04_15-39-22_register-wrapper_2es4puo5

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-39-22_register-wrapper_2es4puo5/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_2024-11-04_15-39-22_register-wrapper_2es4puo5/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_2024-11-04_15-39-22_register-wrapper_2es4puo5

Finished! Elapsed time: 69s

*** 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_2024_11_04_154031.522351.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr)

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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr

--
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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr

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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr
/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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-40-34_register-wrapper_bwtwo0tr/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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr/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_2024-11-04_15-40-34_register-wrapper_bwtwo0tr

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_2024_11_04_154145.115420.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6)

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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6

--
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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6

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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6
/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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-41-48_register-wrapper_6rb1q_z6/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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6/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_2024-11-04_15-41-48_register-wrapper_6rb1q_z6

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_2024_11_04_154307.414782.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q)

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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q

--
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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q

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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q
/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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-43-10_register-wrapper_5_mj3a3q/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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q/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_2024-11-04_15-43-10_register-wrapper_5_mj3a3q

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_2024_11_04_154441.042498.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-44-43_register-wrapper_egsbsi6v)

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_2024-11-04_15-44-43_register-wrapper_egsbsi6v

--
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_2024-11-04_15-44-43_register-wrapper_egsbsi6v

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_2024-11-04_15-44-43_register-wrapper_egsbsi6v
/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_2024-11-04_15-44-43_register-wrapper_egsbsi6v

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-44-43_register-wrapper_egsbsi6v/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_2024-11-04_15-44-43_register-wrapper_egsbsi6v/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_2024-11-04_15-44-43_register-wrapper_egsbsi6v

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_2024_11_04_154612.763397.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-46-15_register-wrapper_37eqo7v9)

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_2024-11-04_15-46-15_register-wrapper_37eqo7v9

--
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_2024-11-04_15-46-15_register-wrapper_37eqo7v9

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_2024-11-04_15-46-15_register-wrapper_37eqo7v9
/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_2024-11-04_15-46-15_register-wrapper_37eqo7v9

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-46-15_register-wrapper_37eqo7v9/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_2024-11-04_15-46-15_register-wrapper_37eqo7v9/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_2024-11-04_15-46-15_register-wrapper_37eqo7v9

Finished! Elapsed time: 117s

*** 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_2024_11_04_154812.611415.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx)

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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx

--
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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx

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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx
/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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-48-15_register-wrapper_bqcnt0sx/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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx/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_2024-11-04_15-48-15_register-wrapper_bqcnt0sx

Finished! Elapsed time: 97s

*** 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_2024_11_04_154952.290952.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-49-54_register-wrapper_lpkec_pp)

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_2024-11-04_15-49-54_register-wrapper_lpkec_pp

--
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_2024-11-04_15-49-54_register-wrapper_lpkec_pp

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_2024-11-04_15-49-54_register-wrapper_lpkec_pp
/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_2024-11-04_15-49-54_register-wrapper_lpkec_pp

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-49-54_register-wrapper_lpkec_pp/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_2024-11-04_15-49-54_register-wrapper_lpkec_pp/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_2024-11-04_15-49-54_register-wrapper_lpkec_pp

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_2024_11_04_155121.934341.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp)

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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp

--
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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp

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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp
/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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-51-24_register-wrapper_bzzrg7lp/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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp/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_2024-11-04_15-51-24_register-wrapper_bzzrg7lp

Finished! Elapsed time: 141s

*** 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_2024_11_04_155345.603714.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-53-48_register-wrapper_4uui3y0a)

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_2024-11-04_15-53-48_register-wrapper_4uui3y0a

--
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_2024-11-04_15-53-48_register-wrapper_4uui3y0a

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_2024-11-04_15-53-48_register-wrapper_4uui3y0a
/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_2024-11-04_15-53-48_register-wrapper_4uui3y0a

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-53-48_register-wrapper_4uui3y0a/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_2024-11-04_15-53-48_register-wrapper_4uui3y0a/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_2024-11-04_15-53-48_register-wrapper_4uui3y0a

Finished! Elapsed time: 55s

*** 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_2024_11_04_155443.463148.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-54-45_register-wrapper_fxodgp35)

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_2024-11-04_15-54-45_register-wrapper_fxodgp35

--
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_2024-11-04_15-54-45_register-wrapper_fxodgp35

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_2024-11-04_15-54-45_register-wrapper_fxodgp35
/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_2024-11-04_15-54-45_register-wrapper_fxodgp35

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-54-45_register-wrapper_fxodgp35/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_2024-11-04_15-54-45_register-wrapper_fxodgp35/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_2024-11-04_15-54-45_register-wrapper_fxodgp35

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_2024_11_04_155548.559835.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-55-50_register-wrapper_3lc73fyf)

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_2024-11-04_15-55-50_register-wrapper_3lc73fyf

--
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_2024-11-04_15-55-50_register-wrapper_3lc73fyf

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_2024-11-04_15-55-50_register-wrapper_3lc73fyf
/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_2024-11-04_15-55-50_register-wrapper_3lc73fyf

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-55-50_register-wrapper_3lc73fyf/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_2024-11-04_15-55-50_register-wrapper_3lc73fyf/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_2024-11-04_15-55-50_register-wrapper_3lc73fyf

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_2024_11_04_155737.722153.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-57-40_register-wrapper_st_qiww9)

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_2024-11-04_15-57-40_register-wrapper_st_qiww9

--
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_2024-11-04_15-57-40_register-wrapper_st_qiww9

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_2024-11-04_15-57-40_register-wrapper_st_qiww9
/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_2024-11-04_15-57-40_register-wrapper_st_qiww9

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-57-40_register-wrapper_st_qiww9/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_2024-11-04_15-57-40_register-wrapper_st_qiww9/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_2024-11-04_15-57-40_register-wrapper_st_qiww9

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_2024_11_04_155851.970624.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_15-58-54_register-wrapper_p9timrgb)

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_2024-11-04_15-58-54_register-wrapper_p9timrgb

--
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_2024-11-04_15-58-54_register-wrapper_p9timrgb

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_2024-11-04_15-58-54_register-wrapper_p9timrgb
/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_2024-11-04_15-58-54_register-wrapper_p9timrgb

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_15-58-54_register-wrapper_p9timrgb/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_2024-11-04_15-58-54_register-wrapper_p9timrgb/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_2024-11-04_15-58-54_register-wrapper_p9timrgb

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_2024_11_04_160010.532426.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-00-12_register-wrapper_nus6_l0_)

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_2024-11-04_16-00-12_register-wrapper_nus6_l0_

--
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_2024-11-04_16-00-12_register-wrapper_nus6_l0_

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_2024-11-04_16-00-12_register-wrapper_nus6_l0_
/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_2024-11-04_16-00-12_register-wrapper_nus6_l0_

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_16-00-12_register-wrapper_nus6_l0_/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_2024-11-04_16-00-12_register-wrapper_nus6_l0_/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_2024-11-04_16-00-12_register-wrapper_nus6_l0_

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_2024_11_04_160201.064148.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-02-03_register-wrapper_vq_yasru)

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_2024-11-04_16-02-03_register-wrapper_vq_yasru

--
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_2024-11-04_16-02-03_register-wrapper_vq_yasru

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_2024-11-04_16-02-03_register-wrapper_vq_yasru
/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_2024-11-04_16-02-03_register-wrapper_vq_yasru

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL1_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_16-02-03_register-wrapper_vq_yasru/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_2024-11-04_16-02-03_register-wrapper_vq_yasru/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_2024-11-04_16-02-03_register-wrapper_vq_yasru

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_2024_11_04_160403.712950.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-04-06_register-wrapper_k_ybq233)

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_2024-11-04_16-04-06_register-wrapper_k_ybq233

--
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_2024-11-04_16-04-06_register-wrapper_k_ybq233

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_2024-11-04_16-04-06_register-wrapper_k_ybq233
/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_2024-11-04_16-04-06_register-wrapper_k_ybq233

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL2_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_16-04-06_register-wrapper_k_ybq233/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_2024-11-04_16-04-06_register-wrapper_k_ybq233/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_2024-11-04_16-04-06_register-wrapper_k_ybq233

Finished! Elapsed time: 111s

*** 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_2024_11_04_160558.095930.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq)

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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq

--
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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq

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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq
/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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_acq-famp_TB1DREAM_reg.nii.gz
mv /tmp/sct_2024-11-04_16-06-01_register-wrapper_z2dm6uiq/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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq/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_2024-11-04_16-06-01_register-wrapper_z2dm6uiq

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_2024_11_04_160813.883472.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-08-23_sct_deepseg_w71xmoev)
Copied sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-08-23_sct_deepseg_w71xmoev/sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-08-23_sct_deepseg_w71xmoev/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
/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_2024_11_04_160848.385341.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-08-59_sct_deepseg_ea_9qd_f)
Copied sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-08-59_sct_deepseg_ea_9qd_f/sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-08-59_sct_deepseg_ea_9qd_f/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
/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_2024_11_04_160923.644526.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-09-34_sct_deepseg__v1e3yfc)
Copied sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-09-34_sct_deepseg__v1e3yfc/sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-09-34_sct_deepseg__v1e3yfc/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
/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_2024_11_04_160958.901705.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-10-09_sct_deepseg_kydfiwmh)
Copied sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-10-09_sct_deepseg_kydfiwmh/sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-10-09_sct_deepseg_kydfiwmh/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
/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_2024_11_04_161034.079357.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-10-45_sct_deepseg_v66y_2u_)
Copied sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-10-45_sct_deepseg_v66y_2u_/sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-10-45_sct_deepseg_v66y_2u_/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
/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_2024_11_04_161109.415813.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-11-20_sct_deepseg_3f5yrqkp)
Copied sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-11-20_sct_deepseg_3f5yrqkp/sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-11-20_sct_deepseg_3f5yrqkp/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
/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_2024_11_04_161144.538834.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-11-55_sct_deepseg_zqgvmnk8)
Copied sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-11-55_sct_deepseg_zqgvmnk8/sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-11-55_sct_deepseg_zqgvmnk8/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
/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_2024_11_04_161219.674921.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-12-30_sct_deepseg_ltg8bjjj)
Copied sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-12-30_sct_deepseg_ltg8bjjj/sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-12-30_sct_deepseg_ltg8bjjj/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
/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_2024_11_04_161254.854599.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-13-05_sct_deepseg_avej_ltr)
Copied sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-13-05_sct_deepseg_avej_ltr/sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-13-05_sct_deepseg_avej_ltr/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
/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_2024_11_04_161330.062684.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-13-40_sct_deepseg_gsyoh0ae)
Copied sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-13-40_sct_deepseg_gsyoh0ae/sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-13-40_sct_deepseg_gsyoh0ae/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
/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_2024_11_04_161405.204475.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-14-15_sct_deepseg_s3js9w_f)
Copied sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-14-15_sct_deepseg_s3js9w_f/sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-14-15_sct_deepseg_s3js9w_f/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
/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_2024_11_04_161440.264696.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-14-50_sct_deepseg_efthj5wz)
Copied sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-14-50_sct_deepseg_efthj5wz/sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-14-50_sct_deepseg_efthj5wz/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
/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_2024_11_04_161515.371160.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-15-26_sct_deepseg_u7taqqta)
Copied sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-15-26_sct_deepseg_u7taqqta/sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-15-26_sct_deepseg_u7taqqta/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
/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_2024_11_04_161550.427598.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-16-01_sct_deepseg_fmtw4sf6)
Copied sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-16-01_sct_deepseg_fmtw4sf6/sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-16-01_sct_deepseg_fmtw4sf6/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
/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_2024_11_04_161625.204044.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-16-35_sct_deepseg_we4zzxx9)
Copied sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-16-35_sct_deepseg_we4zzxx9/sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-16-35_sct_deepseg_we4zzxx9/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
/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_2024_11_04_161659.643679.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-17-10_sct_deepseg_jnorps3r)
Copied sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-17-10_sct_deepseg_jnorps3r/sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-17-10_sct_deepseg_jnorps3r/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
/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_2024_11_04_161734.418871.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-17-45_sct_deepseg_t90x36_r)
Copied sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-17-45_sct_deepseg_t90x36_r/sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-17-45_sct_deepseg_t90x36_r/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
/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_2024_11_04_161809.523990.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-18-20_sct_deepseg_jwxt3m40)
Copied sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-18-20_sct_deepseg_jwxt3m40/sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-18-20_sct_deepseg_jwxt3m40/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
/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_2024_11_04_161844.680683.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-18-55_sct_deepseg_1ihlwvmt)
Copied sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-18-55_sct_deepseg_1ihlwvmt/sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-18-55_sct_deepseg_1ihlwvmt/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
/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_2024_11_04_161919.808096.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-19-30_sct_deepseg_l6_vmv5v)
Copied sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-19-30_sct_deepseg_l6_vmv5v/sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-19-30_sct_deepseg_l6_vmv5v/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
/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_2024_11_04_161954.919293.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/deepseg/monai.py:121: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(chkp_path, map_location=torch.device(device))["state_dict"]
Creating temporary folder (/tmp/sct_2024-11-04_16-20-05_sct_deepseg_izfi6_yr)
Copied sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-04_16-20-05_sct_deepseg_izfi6_yr/sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/torch/utils/data/dataloader.py:617: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(
Starting inference...
Inference done.
Total inference time: 0 minute(s) 23 seconds
Saving results to: /tmp/sct_2024-11-04_16-20-05_sct_deepseg_izfi6_yr/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
/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_2024_11_04_162030.006784.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-20-33_register-wrapper_8tkkorgs)

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_2024-11-04_16-20-33_register-wrapper_8tkkorgs

--
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_2024-11-04_16-20-36_register-slicewise_pqrvgkg4)

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:07,  4.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 #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:  38%|████████▍             | 120/314 [00:00<00:00, 477.91iter/s]
Estimate cord angle for each slice:  78%|█████████████████▏    | 246/314 [00:00<00:00, 759.87iter/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, 688.16iter/s]

Build 3D deformation field:   0%|                                         | 0/261 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 13/261 [00:00<00:01, 128.18iter/s]
Build 3D deformation field:  10%|███▏                           | 27/261 [00:00<00:01, 134.23iter/s]
Build 3D deformation field:  16%|████▊                          | 41/261 [00:00<00:01, 134.95iter/s]
Build 3D deformation field:  21%|██████▌                        | 55/261 [00:00<00:01, 135.74iter/s]
Build 3D deformation field:  26%|████████▏                      | 69/261 [00:00<00:01, 136.08iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/261 [00:00<00:01, 135.98iter/s]
Build 3D deformation field:  37%|███████████▌                   | 97/261 [00:00<00:01, 135.94iter/s]
Build 3D deformation field:  43%|████████████▊                 | 111/261 [00:00<00:01, 136.42iter/s]
Build 3D deformation field:  48%|██████████████▎               | 125/261 [00:00<00:00, 137.18iter/s]
Build 3D deformation field:  53%|███████████████▉              | 139/261 [00:01<00:00, 137.61iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 153/261 [00:01<00:00, 137.10iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 167/261 [00:01<00:00, 137.57iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 181/261 [00:01<00:00, 138.05iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 195/261 [00:01<00:00, 137.48iter/s]
Build 3D deformation field:  80%|████████████████████████      | 209/261 [00:01<00:00, 136.99iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 224/261 [00:01<00:00, 138.01iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 238/261 [00:01<00:00, 138.06iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 252/261 [00:01<00:00, 137.39iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 261/261 [00:01<00:00, 136.74iter/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_2024-11-04_16-20-33_register-wrapper_8tkkorgs
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-20-33_register-wrapper_8tkkorgs
rm -rf /tmp/sct_2024-11-04_16-20-36_register-slicewise_pqrvgkg4

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_2024-11-04_16-20-33_register-wrapper_8tkkorgs
/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_2024-11-04_16-20-33_register-wrapper_8tkkorgs

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_2024-11-04_16-20-33_register-wrapper_8tkkorgs/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_2024-11-04_16-20-33_register-wrapper_8tkkorgs/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_2024-11-04_16-20-33_register-wrapper_8tkkorgs

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_2024_11_04_162042.548500.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q)

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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q

--
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_2024-11-04_16-20-46_register-slicewise_4h8nxp51)

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.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.
Estimate cord angle for each slice:  55%|████████████          | 124/226 [00:00<00:00, 491.84iter/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, 571.15iter/s]

Build 3D deformation field:   0%|                                         | 0/214 [00:00<?, ?iter/s]
Build 3D deformation field:   7%|██▏                            | 15/214 [00:00<00:01, 143.71iter/s]
Build 3D deformation field:  14%|████▎                          | 30/214 [00:00<00:01, 146.32iter/s]
Build 3D deformation field:  21%|██████▋                        | 46/214 [00:00<00:01, 148.41iter/s]
Build 3D deformation field:  29%|████████▉                      | 62/214 [00:00<00:01, 149.31iter/s]
Build 3D deformation field:  36%|███████████▎                   | 78/214 [00:00<00:00, 149.99iter/s]
Build 3D deformation field:  44%|█████████████▌                 | 94/214 [00:00<00:00, 150.19iter/s]
Build 3D deformation field:  51%|███████████████▍              | 110/214 [00:00<00:00, 150.51iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 126/214 [00:00<00:00, 149.74iter/s]
Build 3D deformation field:  66%|███████████████████▉          | 142/214 [00:00<00:00, 149.98iter/s]
Build 3D deformation field:  73%|██████████████████████        | 157/214 [00:01<00:00, 149.92iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 173/214 [00:01<00:00, 150.01iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 189/214 [00:01<00:00, 149.82iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 204/214 [00:01<00:00, 149.46iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 214/214 [00:01<00:00, 149.42iter/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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-20-45_register-wrapper_7jt7gg2q
rm -rf /tmp/sct_2024-11-04_16-20-46_register-slicewise_4h8nxp51

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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q
/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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q

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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q/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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q/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_2024-11-04_16-20-45_register-wrapper_7jt7gg2q

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_2024_11_04_162052.445944.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-20-54_register-wrapper_kp6hav_6)

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_2024-11-04_16-20-54_register-wrapper_kp6hav_6

--
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_2024-11-04_16-20-57_register-slicewise_0bi1t4wp)

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.70iter/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:  33%|███████▏              | 110/337 [00:00<00:00, 440.02iter/s]
Estimate cord angle for each slice:  68%|██████████████▉       | 228/337 [00:00<00:00, 708.70iter/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, 681.24iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/263 [00:00<00:02, 96.69iter/s]
Build 3D deformation field:   8%|██▍                            | 21/263 [00:00<00:02, 102.21iter/s]
Build 3D deformation field:  12%|███▊                           | 32/263 [00:00<00:02, 103.15iter/s]
Build 3D deformation field:  16%|█████                          | 43/263 [00:00<00:02, 104.16iter/s]
Build 3D deformation field:  21%|██████▎                        | 54/263 [00:00<00:02, 103.89iter/s]
Build 3D deformation field:  25%|███████▋                       | 65/263 [00:00<00:01, 103.16iter/s]
Build 3D deformation field:  29%|████████▉                      | 76/263 [00:00<00:01, 104.36iter/s]
Build 3D deformation field:  33%|██████████▎                    | 87/263 [00:00<00:01, 104.47iter/s]
Build 3D deformation field:  37%|███████████▌                   | 98/263 [00:00<00:01, 105.09iter/s]
Build 3D deformation field:  41%|████████████▍                 | 109/263 [00:01<00:01, 103.90iter/s]
Build 3D deformation field:  46%|█████████████▋                | 120/263 [00:01<00:01, 104.55iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 104.41iter/s]
Build 3D deformation field:  54%|████████████████▏             | 142/263 [00:01<00:01, 104.65iter/s]
Build 3D deformation field:  58%|█████████████████▍            | 153/263 [00:01<00:01, 104.30iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 164/263 [00:01<00:00, 104.21iter/s]
Build 3D deformation field:  67%|███████████████████▉          | 175/263 [00:01<00:00, 103.62iter/s]
Build 3D deformation field:  71%|█████████████████████▏        | 186/263 [00:01<00:00, 103.77iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 197/263 [00:01<00:00, 102.67iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 208/263 [00:02<00:00, 102.03iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 219/263 [00:02<00:00, 101.26iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 230/263 [00:02<00:00, 100.85iter/s]
Build 3D deformation field:  92%|███████████████████████████▍  | 241/263 [00:02<00:00, 100.28iter/s]
Build 3D deformation field:  96%|█████████████████████████████▋ | 252/263 [00:02<00:00, 99.86iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 100.23iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 102.68iter/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_2024-11-04_16-20-54_register-wrapper_kp6hav_6
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-20-54_register-wrapper_kp6hav_6
rm -rf /tmp/sct_2024-11-04_16-20-57_register-slicewise_0bi1t4wp

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_2024-11-04_16-20-54_register-wrapper_kp6hav_6
/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_2024-11-04_16-20-54_register-wrapper_kp6hav_6

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_2024-11-04_16-20-54_register-wrapper_kp6hav_6/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_2024-11-04_16-20-54_register-wrapper_kp6hav_6/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_2024-11-04_16-20-54_register-wrapper_kp6hav_6

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_2024_11_04_162106.190860.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-21-09_register-wrapper_j_luxm2m)

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_2024-11-04_16-21-09_register-wrapper_j_luxm2m

--
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_2024-11-04_16-21-11_register-slicewise_u924ctxi)

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:47,  4.72iter/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:  58%|████████████▋         | 130/226 [00:00<00:00, 521.51iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 578.93iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 12/189 [00:00<00:01, 111.47iter/s]
Build 3D deformation field:  13%|███▉                           | 24/189 [00:00<00:01, 115.37iter/s]
Build 3D deformation field:  19%|█████▉                         | 36/189 [00:00<00:01, 116.95iter/s]
Build 3D deformation field:  25%|███████▊                       | 48/189 [00:00<00:01, 118.12iter/s]
Build 3D deformation field:  32%|██████████                     | 61/189 [00:00<00:01, 120.31iter/s]
Build 3D deformation field:  39%|████████████▏                  | 74/189 [00:00<00:00, 120.77iter/s]
Build 3D deformation field:  46%|██████████████▎                | 87/189 [00:00<00:00, 119.30iter/s]
Build 3D deformation field:  52%|████████████████▏              | 99/189 [00:00<00:00, 119.38iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 112/189 [00:00<00:00, 120.06iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 125/189 [00:01<00:00, 120.63iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 138/189 [00:01<00:00, 121.07iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 151/189 [00:01<00:00, 121.61iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 164/189 [00:01<00:00, 121.42iter/s]
Build 3D deformation field:  94%|████████████████████████████  | 177/189 [00:01<00:00, 121.98iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 120.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_2024-11-04_16-21-09_register-wrapper_j_luxm2m
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-21-09_register-wrapper_j_luxm2m
rm -rf /tmp/sct_2024-11-04_16-21-11_register-slicewise_u924ctxi

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_2024-11-04_16-21-09_register-wrapper_j_luxm2m
/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_2024-11-04_16-21-09_register-wrapper_j_luxm2m

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_2024-11-04_16-21-09_register-wrapper_j_luxm2m/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_2024-11-04_16-21-09_register-wrapper_j_luxm2m/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_2024-11-04_16-21-09_register-wrapper_j_luxm2m

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_2024_11_04_162116.108572.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-21-19_register-wrapper_ng3tjloa)

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_2024-11-04_16-21-19_register-wrapper_ng3tjloa

--
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_2024-11-04_16-21-20_register-slicewise_f7hmsuzs)

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:47,  4.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 #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:  55%|████████████          | 122/223 [00:00<00:00, 485.43iter/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, 566.03iter/s]

Build 3D deformation field:   0%|                                         | 0/208 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 13/208 [00:00<00:01, 120.97iter/s]
Build 3D deformation field:  12%|███▉                           | 26/208 [00:00<00:01, 125.12iter/s]
Build 3D deformation field:  19%|█████▊                         | 39/208 [00:00<00:01, 126.64iter/s]
Build 3D deformation field:  25%|███████▊                       | 52/208 [00:00<00:01, 127.28iter/s]
Build 3D deformation field:  31%|█████████▋                     | 65/208 [00:00<00:01, 126.96iter/s]
Build 3D deformation field:  38%|███████████▊                   | 79/208 [00:00<00:01, 128.72iter/s]
Build 3D deformation field:  45%|█████████████▊                 | 93/208 [00:00<00:00, 129.94iter/s]
Build 3D deformation field:  51%|███████████████▎              | 106/208 [00:00<00:00, 129.67iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 119/208 [00:00<00:00, 127.36iter/s]
Build 3D deformation field:  63%|███████████████████           | 132/208 [00:01<00:00, 127.79iter/s]
Build 3D deformation field:  70%|█████████████████████         | 146/208 [00:01<00:00, 129.35iter/s]
Build 3D deformation field:  76%|██████████████████████▉       | 159/208 [00:01<00:00, 128.86iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 173/208 [00:01<00:00, 129.85iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 187/208 [00:01<00:00, 130.57iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 201/208 [00:01<00:00, 129.95iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 208/208 [00:01<00:00, 128.54iter/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_2024-11-04_16-21-19_register-wrapper_ng3tjloa
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-21-19_register-wrapper_ng3tjloa
rm -rf /tmp/sct_2024-11-04_16-21-20_register-slicewise_f7hmsuzs

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_2024-11-04_16-21-19_register-wrapper_ng3tjloa
/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_2024-11-04_16-21-19_register-wrapper_ng3tjloa

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_2024-11-04_16-21-19_register-wrapper_ng3tjloa/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_2024-11-04_16-21-19_register-wrapper_ng3tjloa/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_2024-11-04_16-21-19_register-wrapper_ng3tjloa

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_2024_11_04_162125.832220.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-21-28_register-wrapper_18u2cobm)

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_2024-11-04_16-21-28_register-wrapper_18u2cobm

--
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_2024-11-04_16-21-30_register-slicewise_kp_skk98)

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:50,  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.
Estimate cord angle for each slice:  50%|██████████▉           | 118/238 [00:00<00:00, 471.18iter/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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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, 583.06iter/s]

Build 3D deformation field:   0%|                                         | 0/200 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 11/200 [00:00<00:01, 101.54iter/s]
Build 3D deformation field:  11%|███▍                           | 22/200 [00:00<00:01, 106.15iter/s]
Build 3D deformation field:  17%|█████▎                         | 34/200 [00:00<00:01, 108.67iter/s]
Build 3D deformation field:  23%|███████▏                       | 46/200 [00:00<00:01, 109.65iter/s]
Build 3D deformation field:  29%|████████▉                      | 58/200 [00:00<00:01, 110.48iter/s]
Build 3D deformation field:  35%|██████████▊                    | 70/200 [00:00<00:01, 112.40iter/s]
Build 3D deformation field:  41%|████████████▋                  | 82/200 [00:00<00:01, 113.59iter/s]
Build 3D deformation field:  47%|██████████████▌                | 94/200 [00:00<00:00, 112.63iter/s]
Build 3D deformation field:  53%|███████████████▉              | 106/200 [00:00<00:00, 112.43iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 118/200 [00:01<00:00, 113.31iter/s]
Build 3D deformation field:  65%|███████████████████▌          | 130/200 [00:01<00:00, 113.24iter/s]
Build 3D deformation field:  71%|█████████████████████▎        | 142/200 [00:01<00:00, 112.93iter/s]
Build 3D deformation field:  77%|███████████████████████       | 154/200 [00:01<00:00, 112.17iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 166/200 [00:01<00:00, 111.79iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 178/200 [00:01<00:00, 111.49iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 190/200 [00:01<00:00, 111.28iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 200/200 [00:01<00:00, 111.58iter/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_2024-11-04_16-21-28_register-wrapper_18u2cobm
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-21-28_register-wrapper_18u2cobm
rm -rf /tmp/sct_2024-11-04_16-21-30_register-slicewise_kp_skk98

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_2024-11-04_16-21-28_register-wrapper_18u2cobm
/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_2024-11-04_16-21-28_register-wrapper_18u2cobm

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_2024-11-04_16-21-28_register-wrapper_18u2cobm/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_2024-11-04_16-21-28_register-wrapper_18u2cobm/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_2024-11-04_16-21-28_register-wrapper_18u2cobm

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_2024_11_04_162137.596760.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-21-41_register-wrapper_ou9ozema)

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_2024-11-04_16-21-41_register-wrapper_ou9ozema

--
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_2024-11-04_16-21-43_register-slicewise_1hv9jqeb)

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:17,  4.72iter/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:  37%|████████▏             | 137/367 [00:00<00:00, 548.90iter/s]
Estimate cord angle for each slice:  72%|███████████████▉      | 265/367 [00:00<00:00, 814.94iter/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, 757.52iter/s]

Build 3D deformation field:   0%|                                         | 0/320 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 17/320 [00:00<00:01, 166.11iter/s]
Build 3D deformation field:  11%|███▍                           | 35/320 [00:00<00:01, 171.09iter/s]
Build 3D deformation field:  17%|█████▏                         | 53/320 [00:00<00:01, 174.42iter/s]
Build 3D deformation field:  22%|██████▉                        | 71/320 [00:00<00:01, 171.70iter/s]
Build 3D deformation field:  28%|████████▌                      | 89/320 [00:00<00:01, 171.67iter/s]
Build 3D deformation field:  33%|██████████                    | 107/320 [00:00<00:01, 172.02iter/s]
Build 3D deformation field:  39%|███████████▋                  | 125/320 [00:00<00:01, 172.46iter/s]
Build 3D deformation field:  45%|█████████████▍                | 143/320 [00:00<00:01, 172.70iter/s]
Build 3D deformation field:  50%|███████████████               | 161/320 [00:00<00:00, 172.55iter/s]
Build 3D deformation field:  56%|████████████████▊             | 179/320 [00:01<00:00, 172.52iter/s]
Build 3D deformation field:  62%|██████████████████▍           | 197/320 [00:01<00:00, 172.48iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 215/320 [00:01<00:00, 172.80iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 233/320 [00:01<00:00, 174.55iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 251/320 [00:01<00:00, 174.28iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 269/320 [00:01<00:00, 173.79iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 287/320 [00:01<00:00, 173.41iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 305/320 [00:01<00:00, 173.66iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 320/320 [00:01<00:00, 172.93iter/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_2024-11-04_16-21-41_register-wrapper_ou9ozema
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-21-41_register-wrapper_ou9ozema
rm -rf /tmp/sct_2024-11-04_16-21-43_register-slicewise_1hv9jqeb

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_2024-11-04_16-21-41_register-wrapper_ou9ozema
/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_2024-11-04_16-21-41_register-wrapper_ou9ozema

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_2024-11-04_16-21-41_register-wrapper_ou9ozema/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_2024-11-04_16-21-41_register-wrapper_ou9ozema/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_2024-11-04_16-21-41_register-wrapper_ou9ozema

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_2024_11_04_162149.298685.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd)

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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd

--
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_2024-11-04_16-21-54_register-slicewise_jw8_vuhy)

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:17,  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.
Estimate cord angle for each slice:  35%|███████▌              | 125/361 [00:00<00:00, 495.57iter/s]
Estimate cord angle for each slice:  69%|███████████████▏      | 249/361 [00:00<00:00, 765.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 #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, 728.33iter/s]

Build 3D deformation field:   0%|                                         | 0/327 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 18/327 [00:00<00:01, 172.52iter/s]
Build 3D deformation field:  11%|███▌                           | 37/327 [00:00<00:01, 180.40iter/s]
Build 3D deformation field:  17%|█████▍                         | 57/327 [00:00<00:01, 184.88iter/s]
Build 3D deformation field:  23%|███████▏                       | 76/327 [00:00<00:01, 184.94iter/s]
Build 3D deformation field:  29%|█████████                      | 95/327 [00:00<00:01, 185.81iter/s]
Build 3D deformation field:  35%|██████████▍                   | 114/327 [00:00<00:01, 186.10iter/s]
Build 3D deformation field:  41%|████████████▎                 | 134/327 [00:00<00:01, 188.23iter/s]
Build 3D deformation field:  47%|██████████████▏               | 154/327 [00:00<00:00, 189.40iter/s]
Build 3D deformation field:  53%|███████████████▊              | 173/327 [00:00<00:00, 189.20iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 192/327 [00:01<00:00, 189.20iter/s]
Build 3D deformation field:  65%|███████████████████▎          | 211/327 [00:01<00:00, 188.09iter/s]
Build 3D deformation field:  70%|█████████████████████         | 230/327 [00:01<00:00, 187.79iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 249/327 [00:01<00:00, 187.29iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 268/327 [00:01<00:00, 186.58iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 287/327 [00:01<00:00, 185.16iter/s]
Build 3D deformation field:  94%|████████████████████████████  | 306/327 [00:01<00:00, 186.55iter/s]
Build 3D deformation field: 100%|█████████████████████████████▉| 326/327 [00:01<00:00, 188.20iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 327/327 [00:01<00:00, 186.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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-21-52_register-wrapper_lp7bdbrd
rm -rf /tmp/sct_2024-11-04_16-21-54_register-slicewise_jw8_vuhy

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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd
/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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd

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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd/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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd/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_2024-11-04_16-21-52_register-wrapper_lp7bdbrd

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_2024_11_04_162201.005666.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-03_register-wrapper_uzojmwa8)

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_2024-11-04_16-22-03_register-wrapper_uzojmwa8

--
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_2024-11-04_16-22-05_register-slicewise_uxu529bt)

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.70iter/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:  47%|██████████▏           | 121/260 [00:00<00:00, 484.19iter/s]
Estimate cord angle for each slice:  94%|████████████████████▋ | 245/260 [00:00<00:00, 757.84iter/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, 609.57iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 12/252 [00:00<00:02, 116.79iter/s]
Build 3D deformation field:  10%|███                            | 25/252 [00:00<00:01, 121.69iter/s]
Build 3D deformation field:  15%|████▋                          | 38/252 [00:00<00:01, 122.91iter/s]
Build 3D deformation field:  20%|██████▎                        | 51/252 [00:00<00:01, 123.22iter/s]
Build 3D deformation field:  25%|███████▊                       | 64/252 [00:00<00:01, 124.25iter/s]
Build 3D deformation field:  31%|█████████▍                     | 77/252 [00:00<00:01, 125.35iter/s]
Build 3D deformation field:  36%|███████████                    | 90/252 [00:00<00:01, 126.05iter/s]
Build 3D deformation field:  41%|████████████▎                 | 103/252 [00:00<00:01, 126.41iter/s]
Build 3D deformation field:  46%|█████████████▊                | 116/252 [00:00<00:01, 126.36iter/s]
Build 3D deformation field:  51%|███████████████▎              | 129/252 [00:01<00:00, 125.88iter/s]
Build 3D deformation field:  56%|████████████████▉             | 142/252 [00:01<00:00, 125.03iter/s]
Build 3D deformation field:  62%|██████████████████▍           | 155/252 [00:01<00:00, 125.47iter/s]
Build 3D deformation field:  67%|████████████████████          | 168/252 [00:01<00:00, 125.57iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 181/252 [00:01<00:00, 125.28iter/s]
Build 3D deformation field:  77%|███████████████████████       | 194/252 [00:01<00:00, 125.02iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 207/252 [00:01<00:00, 125.10iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 220/252 [00:01<00:00, 124.85iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 233/252 [00:01<00:00, 126.08iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 246/252 [00:01<00:00, 126.27iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:02<00:00, 125.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_2024-11-04_16-22-03_register-wrapper_uzojmwa8
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-03_register-wrapper_uzojmwa8
rm -rf /tmp/sct_2024-11-04_16-22-05_register-slicewise_uxu529bt

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_2024-11-04_16-22-03_register-wrapper_uzojmwa8
/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_2024-11-04_16-22-03_register-wrapper_uzojmwa8

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_2024-11-04_16-22-03_register-wrapper_uzojmwa8/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_2024-11-04_16-22-03_register-wrapper_uzojmwa8/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_2024-11-04_16-22-03_register-wrapper_uzojmwa8

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_2024_11_04_162211.727301.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-14_register-wrapper_mvu3ouod)

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_2024-11-04_16-22-14_register-wrapper_mvu3ouod

--
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_2024-11-04_16-22-16_register-slicewise_grm34agy)
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.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 #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:  45%|██████████            | 121/266 [00:00<00:00, 479.63iter/s]
Estimate cord angle for each slice:  93%|████████████████████▍ | 247/266 [00:00<00:00, 761.85iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 615.78iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 14/248 [00:00<00:01, 137.73iter/s]
Build 3D deformation field:  12%|███▋                           | 29/248 [00:00<00:01, 142.05iter/s]
Build 3D deformation field:  18%|█████▌                         | 44/248 [00:00<00:01, 145.48iter/s]
Build 3D deformation field:  24%|███████▍                       | 59/248 [00:00<00:01, 145.93iter/s]
Build 3D deformation field:  30%|█████████▍                     | 75/248 [00:00<00:01, 148.16iter/s]
Build 3D deformation field:  37%|███████████▍                   | 91/248 [00:00<00:01, 150.63iter/s]
Build 3D deformation field:  43%|████████████▉                 | 107/248 [00:00<00:00, 151.57iter/s]
Build 3D deformation field:  50%|██████████████▉               | 123/248 [00:00<00:00, 151.16iter/s]
Build 3D deformation field:  56%|████████████████▊             | 139/248 [00:00<00:00, 151.99iter/s]
Build 3D deformation field:  62%|██████████████████▊           | 155/248 [00:01<00:00, 152.43iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 171/248 [00:01<00:00, 151.24iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 187/248 [00:01<00:00, 149.97iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 203/248 [00:01<00:00, 149.31iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 218/248 [00:01<00:00, 148.76iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 233/248 [00:01<00:00, 147.98iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 147.45iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 148.80iter/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_2024-11-04_16-22-14_register-wrapper_mvu3ouod
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-14_register-wrapper_mvu3ouod
rm -rf /tmp/sct_2024-11-04_16-22-16_register-slicewise_grm34agy

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_2024-11-04_16-22-14_register-wrapper_mvu3ouod
/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_2024-11-04_16-22-14_register-wrapper_mvu3ouod

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_2024-11-04_16-22-14_register-wrapper_mvu3ouod/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_2024-11-04_16-22-14_register-wrapper_mvu3ouod/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_2024-11-04_16-22-14_register-wrapper_mvu3ouod

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_2024_11_04_162221.565519.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-24_register-wrapper_40aq6qft)

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_2024-11-04_16-22-24_register-wrapper_40aq6qft

--
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_2024-11-04_16-22-25_register-slicewise_c4yg2mbl)

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:57,  4.77iter/s]
Estimate cord angle for each slice:  46%|██████████▏           | 128/276 [00:00<00:00, 516.70iter/s]
Estimate cord angle for each slice:  92%|████████████████████▎ | 255/276 [00:00<00:00, 792.15iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 645.33iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 15/276 [00:00<00:01, 148.63iter/s]
Build 3D deformation field:  12%|███▌                           | 32/276 [00:00<00:01, 155.55iter/s]
Build 3D deformation field:  17%|█████▍                         | 48/276 [00:00<00:01, 157.47iter/s]
Build 3D deformation field:  24%|███████▎                       | 65/276 [00:00<00:01, 160.68iter/s]
Build 3D deformation field:  30%|█████████▏                     | 82/276 [00:00<00:01, 162.15iter/s]
Build 3D deformation field:  36%|███████████                    | 99/276 [00:00<00:01, 162.72iter/s]
Build 3D deformation field:  42%|████████████▌                 | 116/276 [00:00<00:00, 162.83iter/s]
Build 3D deformation field:  48%|██████████████▍               | 133/276 [00:00<00:00, 164.68iter/s]
Build 3D deformation field:  55%|████████████████▍             | 151/276 [00:00<00:00, 166.27iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 168/276 [00:01<00:00, 156.94iter/s]
Build 3D deformation field:  67%|████████████████████          | 185/276 [00:01<00:00, 158.39iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 202/276 [00:01<00:00, 159.73iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 219/276 [00:01<00:00, 160.77iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 236/276 [00:01<00:00, 160.97iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 253/276 [00:01<00:00, 160.86iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 270/276 [00:01<00:00, 160.60iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 160.64iter/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_2024-11-04_16-22-24_register-wrapper_40aq6qft
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-24_register-wrapper_40aq6qft
rm -rf /tmp/sct_2024-11-04_16-22-25_register-slicewise_c4yg2mbl

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_2024-11-04_16-22-24_register-wrapper_40aq6qft
/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_2024-11-04_16-22-24_register-wrapper_40aq6qft

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_2024-11-04_16-22-24_register-wrapper_40aq6qft/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_2024-11-04_16-22-24_register-wrapper_40aq6qft/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_2024-11-04_16-22-24_register-wrapper_40aq6qft

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_2024_11_04_162231.469605.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-34_register-wrapper_7ajc5z46)

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_2024-11-04_16-22-34_register-wrapper_7ajc5z46

--
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_2024-11-04_16-22-36_register-slicewise_1hjtcpeq)

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:00,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  42%|█████████▎            | 119/282 [00:00<00:00, 472.46iter/s]
Estimate cord angle for each slice:  85%|██████████████████▋   | 240/282 [00:00<00:00, 738.17iter/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, 625.36iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/263 [00:00<00:02, 107.41iter/s]
Build 3D deformation field:   9%|██▋                            | 23/263 [00:00<00:02, 112.62iter/s]
Build 3D deformation field:  13%|████▏                          | 35/263 [00:00<00:02, 112.07iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/263 [00:00<00:01, 111.32iter/s]
Build 3D deformation field:  22%|██████▉                        | 59/263 [00:00<00:01, 111.22iter/s]
Build 3D deformation field:  27%|████████▎                      | 71/263 [00:00<00:01, 111.38iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/263 [00:00<00:01, 111.18iter/s]
Build 3D deformation field:  36%|███████████▏                   | 95/263 [00:00<00:01, 110.67iter/s]
Build 3D deformation field:  41%|████████████▏                 | 107/263 [00:00<00:01, 110.36iter/s]
Build 3D deformation field:  45%|█████████████▌                | 119/263 [00:01<00:01, 110.24iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 110.02iter/s]
Build 3D deformation field:  54%|████████████████▎             | 143/263 [00:01<00:01, 109.94iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 155/263 [00:01<00:00, 110.03iter/s]
Build 3D deformation field:  63%|███████████████████           | 167/263 [00:01<00:00, 109.33iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 179/263 [00:01<00:00, 109.61iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 191/263 [00:01<00:00, 109.77iter/s]
Build 3D deformation field:  77%|███████████████████████       | 202/263 [00:01<00:00, 109.67iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 213/263 [00:01<00:00, 109.54iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 225/263 [00:02<00:00, 109.78iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 237/263 [00:02<00:00, 110.00iter/s]
Build 3D deformation field:  94%|████████████████████████████▎ | 248/263 [00:02<00:00, 109.96iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 260/263 [00:02<00:00, 110.34iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 110.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_2024-11-04_16-22-34_register-wrapper_7ajc5z46
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-34_register-wrapper_7ajc5z46
rm -rf /tmp/sct_2024-11-04_16-22-36_register-slicewise_1hjtcpeq

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_2024-11-04_16-22-34_register-wrapper_7ajc5z46
/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_2024-11-04_16-22-34_register-wrapper_7ajc5z46

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_2024-11-04_16-22-34_register-wrapper_7ajc5z46/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_2024-11-04_16-22-34_register-wrapper_7ajc5z46/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_2024-11-04_16-22-34_register-wrapper_7ajc5z46

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_2024_11_04_162243.396153.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-46_register-wrapper_2tttx5o7)

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_2024-11-04_16-22-46_register-wrapper_2tttx5o7

--
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_2024-11-04_16-22-47_register-slicewise_xonz964g)

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.70iter/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:  53%|███████████▋          | 127/238 [00:00<00:00, 507.34iter/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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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, 593.78iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 17/220 [00:00<00:01, 169.74iter/s]
Build 3D deformation field:  16%|████▉                          | 35/220 [00:00<00:01, 174.59iter/s]
Build 3D deformation field:  24%|███████▍                       | 53/220 [00:00<00:00, 176.40iter/s]
Build 3D deformation field:  32%|██████████                     | 71/220 [00:00<00:00, 177.21iter/s]
Build 3D deformation field:  41%|████████████▋                  | 90/220 [00:00<00:00, 178.28iter/s]
Build 3D deformation field:  50%|██████████████▊               | 109/220 [00:00<00:00, 180.69iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 129/220 [00:00<00:00, 183.95iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 148/220 [00:00<00:00, 185.28iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 167/220 [00:00<00:00, 184.42iter/s]
Build 3D deformation field:  85%|█████████████████████████▎    | 186/220 [00:01<00:00, 185.87iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 205/220 [00:01<00:00, 185.04iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 182.24iter/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_2024-11-04_16-22-46_register-wrapper_2tttx5o7
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-46_register-wrapper_2tttx5o7
rm -rf /tmp/sct_2024-11-04_16-22-47_register-slicewise_xonz964g

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_2024-11-04_16-22-46_register-wrapper_2tttx5o7
/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_2024-11-04_16-22-46_register-wrapper_2tttx5o7

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_2024-11-04_16-22-46_register-wrapper_2tttx5o7/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_2024-11-04_16-22-46_register-wrapper_2tttx5o7/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_2024-11-04_16-22-46_register-wrapper_2tttx5o7

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_2024_11_04_162251.815267.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-22-54_register-wrapper_dcireaqm)

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_2024-11-04_16-22-54_register-wrapper_dcireaqm

--
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_2024-11-04_16-22-55_register-slicewise_by9t27up)

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:48,  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.
Estimate cord angle for each slice:  56%|████████████▎         | 127/228 [00:00<00:00, 507.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 #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, 584.70iter/s]

Build 3D deformation field:   0%|                                         | 0/213 [00:00<?, ?iter/s]
Build 3D deformation field:   9%|██▊                            | 19/213 [00:00<00:01, 187.03iter/s]
Build 3D deformation field:  18%|█████▋                         | 39/213 [00:00<00:00, 192.13iter/s]
Build 3D deformation field:  28%|████████▌                      | 59/213 [00:00<00:00, 193.07iter/s]
Build 3D deformation field:  37%|███████████▍                   | 79/213 [00:00<00:00, 194.49iter/s]
Build 3D deformation field:  46%|██████████████▍                | 99/213 [00:00<00:00, 194.38iter/s]
Build 3D deformation field:  56%|████████████████▊             | 119/213 [00:00<00:00, 193.72iter/s]
Build 3D deformation field:  65%|███████████████████▌          | 139/213 [00:00<00:00, 195.72iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 159/213 [00:00<00:00, 195.68iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 179/213 [00:00<00:00, 194.71iter/s]
Build 3D deformation field:  93%|████████████████████████████  | 199/213 [00:01<00:00, 193.91iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 213/213 [00:01<00:00, 193.27iter/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_2024-11-04_16-22-54_register-wrapper_dcireaqm
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-22-54_register-wrapper_dcireaqm
rm -rf /tmp/sct_2024-11-04_16-22-55_register-slicewise_by9t27up

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_2024-11-04_16-22-54_register-wrapper_dcireaqm
/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_2024-11-04_16-22-54_register-wrapper_dcireaqm

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_2024-11-04_16-22-54_register-wrapper_dcireaqm/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_2024-11-04_16-22-54_register-wrapper_dcireaqm/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_2024-11-04_16-22-54_register-wrapper_dcireaqm

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_2024_11_04_162259.311960.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-01_register-wrapper_svhlyr9b)

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_2024-11-04_16-23-01_register-wrapper_svhlyr9b

--
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_2024-11-04_16-23-03_register-slicewise_b0f2aiq2)

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:01,  4.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 #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:  41%|█████████             | 119/289 [00:00<00:00, 473.97iter/s]
Estimate cord angle for each slice:  84%|██████████████████▍   | 242/289 [00:00<00:00, 747.39iter/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, 659.28iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 13/218 [00:00<00:01, 128.96iter/s]
Build 3D deformation field:  12%|███▊                           | 27/218 [00:00<00:01, 130.94iter/s]
Build 3D deformation field:  19%|█████▊                         | 41/218 [00:00<00:01, 130.78iter/s]
Build 3D deformation field:  25%|███████▊                       | 55/218 [00:00<00:01, 131.67iter/s]
Build 3D deformation field:  32%|█████████▊                     | 69/218 [00:00<00:01, 132.11iter/s]
Build 3D deformation field:  38%|███████████▊                   | 83/218 [00:00<00:01, 134.04iter/s]
Build 3D deformation field:  44%|█████████████▊                 | 97/218 [00:00<00:00, 133.61iter/s]
Build 3D deformation field:  51%|███████████████▎              | 111/218 [00:00<00:00, 132.31iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 125/218 [00:00<00:00, 131.79iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 139/218 [00:01<00:00, 132.18iter/s]
Build 3D deformation field:  70%|█████████████████████         | 153/218 [00:01<00:00, 131.37iter/s]
Build 3D deformation field:  77%|██████████████████████▉       | 167/218 [00:01<00:00, 130.79iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 181/218 [00:01<00:00, 130.51iter/s]
Build 3D deformation field:  89%|██████████████████████████▊   | 195/218 [00:01<00:00, 128.67iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 209/218 [00:01<00:00, 130.23iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 131.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_2024-11-04_16-23-01_register-wrapper_svhlyr9b
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-01_register-wrapper_svhlyr9b
rm -rf /tmp/sct_2024-11-04_16-23-03_register-slicewise_b0f2aiq2

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_2024-11-04_16-23-01_register-wrapper_svhlyr9b
/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_2024-11-04_16-23-01_register-wrapper_svhlyr9b

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_2024-11-04_16-23-01_register-wrapper_svhlyr9b/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_2024-11-04_16-23-01_register-wrapper_svhlyr9b/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_2024-11-04_16-23-01_register-wrapper_svhlyr9b

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_2024_11_04_162309.496858.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-12_register-wrapper_qa86pfh7)

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_2024-11-04_16-23-12_register-wrapper_qa86pfh7

--
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_2024-11-04_16-23-13_register-slicewise_r_fges0r)

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:03,  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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  40%|████████▊             | 119/296 [00:00<00:00, 471.59iter/s]
Estimate cord angle for each slice:  84%|██████████████████▍   | 248/296 [00:00<00:00, 766.08iter/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, 656.11iter/s]

Build 3D deformation field:   0%|                                         | 0/238 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▌                            | 20/238 [00:00<00:01, 195.62iter/s]
Build 3D deformation field:  17%|█████▎                         | 41/238 [00:00<00:00, 201.83iter/s]
Build 3D deformation field:  26%|████████                       | 62/238 [00:00<00:00, 204.06iter/s]
Build 3D deformation field:  35%|██████████▊                    | 83/238 [00:00<00:00, 203.59iter/s]
Build 3D deformation field:  44%|█████████████                 | 104/238 [00:00<00:00, 204.37iter/s]
Build 3D deformation field:  53%|███████████████▊              | 125/238 [00:00<00:00, 206.14iter/s]
Build 3D deformation field:  61%|██████████████████▍           | 146/238 [00:00<00:00, 206.18iter/s]
Build 3D deformation field:  70%|█████████████████████         | 167/238 [00:00<00:00, 205.69iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 188/238 [00:00<00:00, 206.07iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 209/238 [00:01<00:00, 206.69iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 230/238 [00:01<00:00, 207.05iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 238/238 [00:01<00:00, 205.54iter/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_2024-11-04_16-23-12_register-wrapper_qa86pfh7
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-12_register-wrapper_qa86pfh7
rm -rf /tmp/sct_2024-11-04_16-23-13_register-slicewise_r_fges0r

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_2024-11-04_16-23-12_register-wrapper_qa86pfh7
/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_2024-11-04_16-23-12_register-wrapper_qa86pfh7

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_2024-11-04_16-23-12_register-wrapper_qa86pfh7/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_2024-11-04_16-23-12_register-wrapper_qa86pfh7/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_2024-11-04_16-23-12_register-wrapper_qa86pfh7

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_2024_11_04_162318.319478.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-20_register-wrapper_ag1aziuf)

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_2024-11-04_16-23-20_register-wrapper_ag1aziuf

--
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_2024-11-04_16-23-22_register-slicewise_nsu7gqay)

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.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:  54%|███████████▊          | 126/234 [00:00<00:00, 501.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 #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, 593.67iter/s]

Build 3D deformation field:   0%|                                         | 0/211 [00:00<?, ?iter/s]
Build 3D deformation field:   9%|██▋                            | 18/211 [00:00<00:01, 172.22iter/s]
Build 3D deformation field:  17%|█████▎                         | 36/211 [00:00<00:00, 175.80iter/s]
Build 3D deformation field:  26%|████████                       | 55/211 [00:00<00:00, 177.91iter/s]
Build 3D deformation field:  35%|██████████▊                    | 74/211 [00:00<00:00, 181.40iter/s]
Build 3D deformation field:  44%|█████████████▋                 | 93/211 [00:00<00:00, 183.81iter/s]
Build 3D deformation field:  53%|███████████████▉              | 112/211 [00:00<00:00, 183.14iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 131/211 [00:00<00:00, 182.17iter/s]
Build 3D deformation field:  71%|█████████████████████▎        | 150/211 [00:00<00:00, 180.67iter/s]
Build 3D deformation field:  80%|████████████████████████      | 169/211 [00:00<00:00, 179.63iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 187/211 [00:01<00:00, 179.39iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 206/211 [00:01<00:00, 181.05iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 211/211 [00:01<00:00, 180.74iter/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_2024-11-04_16-23-20_register-wrapper_ag1aziuf
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-20_register-wrapper_ag1aziuf
rm -rf /tmp/sct_2024-11-04_16-23-22_register-slicewise_nsu7gqay

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_2024-11-04_16-23-20_register-wrapper_ag1aziuf
/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_2024-11-04_16-23-20_register-wrapper_ag1aziuf

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_2024-11-04_16-23-20_register-wrapper_ag1aziuf/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_2024-11-04_16-23-20_register-wrapper_ag1aziuf/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_2024-11-04_16-23-20_register-wrapper_ag1aziuf

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_2024_11_04_162326.503024.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-28_register-wrapper__833jrfg)

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_2024-11-04_16-23-28_register-wrapper__833jrfg

--
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_2024-11-04_16-23-30_register-slicewise_bquy79_z)

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:08,  4.65iter/s]
Estimate cord angle for each slice:  39%|████████▍             | 124/322 [00:00<00:00, 493.85iter/s]
Estimate cord angle for each slice:  78%|█████████████████     | 250/322 [00:00<00:00, 770.09iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 680.42iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 14/322 [00:00<00:02, 132.65iter/s]
Build 3D deformation field:   9%|██▊                            | 29/322 [00:00<00:02, 140.45iter/s]
Build 3D deformation field:  14%|████▏                          | 44/322 [00:00<00:01, 140.32iter/s]
Build 3D deformation field:  18%|█████▋                         | 59/322 [00:00<00:01, 141.26iter/s]
Build 3D deformation field:  23%|███████                        | 74/322 [00:00<00:01, 141.64iter/s]
Build 3D deformation field:  28%|████████▌                      | 89/322 [00:00<00:01, 141.52iter/s]
Build 3D deformation field:  32%|█████████▋                    | 104/322 [00:00<00:01, 141.79iter/s]
Build 3D deformation field:  37%|███████████                   | 119/322 [00:00<00:01, 141.11iter/s]
Build 3D deformation field:  42%|████████████▍                 | 134/322 [00:00<00:01, 142.05iter/s]
Build 3D deformation field:  46%|█████████████▉                | 149/322 [00:01<00:01, 141.73iter/s]
Build 3D deformation field:  51%|███████████████▎              | 164/322 [00:01<00:01, 141.42iter/s]
Build 3D deformation field:  56%|████████████████▋             | 179/322 [00:01<00:01, 141.04iter/s]
Build 3D deformation field:  60%|██████████████████            | 194/322 [00:01<00:00, 140.83iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 209/322 [00:01<00:00, 141.66iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 224/322 [00:01<00:00, 142.34iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 239/322 [00:01<00:00, 142.56iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 254/322 [00:01<00:00, 143.06iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 269/322 [00:01<00:00, 143.79iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 284/322 [00:01<00:00, 144.51iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 299/322 [00:02<00:00, 144.20iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 314/322 [00:02<00:00, 144.65iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 142.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_2024-11-04_16-23-28_register-wrapper__833jrfg
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-28_register-wrapper__833jrfg
rm -rf /tmp/sct_2024-11-04_16-23-30_register-slicewise_bquy79_z

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_2024-11-04_16-23-28_register-wrapper__833jrfg
/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_2024-11-04_16-23-28_register-wrapper__833jrfg

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_2024-11-04_16-23-28_register-wrapper__833jrfg/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_2024-11-04_16-23-28_register-wrapper__833jrfg/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_2024-11-04_16-23-28_register-wrapper__833jrfg

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_2024_11_04_162337.864713.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-40_register-wrapper_brouaww8)

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_2024-11-04_16-23-40_register-wrapper_brouaww8

--
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_2024-11-04_16-23-43_register-slicewise__bfoa1af)

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:10,  4.74iter/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:  41%|█████████             | 138/333 [00:00<00:00, 554.08iter/s]
Estimate cord angle for each slice:  79%|█████████████████▍    | 263/333 [00:00<00:00, 805.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 #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, 708.09iter/s]

Build 3D deformation field:   0%|                                         | 0/282 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 12/282 [00:00<00:02, 116.89iter/s]
Build 3D deformation field:   9%|██▊                            | 26/282 [00:00<00:02, 126.64iter/s]
Build 3D deformation field:  14%|████▍                          | 40/282 [00:00<00:01, 128.82iter/s]
Build 3D deformation field:  19%|█████▊                         | 53/282 [00:00<00:01, 128.90iter/s]
Build 3D deformation field:  23%|███████▎                       | 66/282 [00:00<00:01, 128.86iter/s]
Build 3D deformation field:  28%|████████▊                      | 80/282 [00:00<00:01, 129.38iter/s]
Build 3D deformation field:  33%|██████████▏                    | 93/282 [00:00<00:01, 128.47iter/s]
Build 3D deformation field:  38%|███████████▎                  | 106/282 [00:00<00:01, 128.92iter/s]
Build 3D deformation field:  42%|████████████▋                 | 119/282 [00:00<00:01, 128.26iter/s]
Build 3D deformation field:  47%|██████████████                | 132/282 [00:01<00:01, 128.49iter/s]
Build 3D deformation field:  51%|███████████████▍              | 145/282 [00:01<00:01, 128.39iter/s]
Build 3D deformation field:  56%|████████████████▊             | 158/282 [00:01<00:00, 128.27iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 172/282 [00:01<00:00, 128.85iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 186/282 [00:01<00:00, 129.43iter/s]
Build 3D deformation field:  71%|█████████████████████▏        | 199/282 [00:01<00:00, 128.52iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 212/282 [00:01<00:00, 128.46iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 225/282 [00:01<00:00, 128.08iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 238/282 [00:01<00:00, 128.34iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 251/282 [00:01<00:00, 128.26iter/s]
Build 3D deformation field:  94%|████████████████████████████  | 264/282 [00:02<00:00, 126.56iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 277/282 [00:02<00:00, 126.96iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 282/282 [00:02<00:00, 128.02iter/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_2024-11-04_16-23-40_register-wrapper_brouaww8
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-40_register-wrapper_brouaww8
rm -rf /tmp/sct_2024-11-04_16-23-43_register-slicewise__bfoa1af

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_2024-11-04_16-23-40_register-wrapper_brouaww8
/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_2024-11-04_16-23-40_register-wrapper_brouaww8

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_2024-11-04_16-23-40_register-wrapper_brouaww8/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_2024-11-04_16-23-40_register-wrapper_brouaww8/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_2024-11-04_16-23-40_register-wrapper_brouaww8

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_2024_11_04_162350.359997.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-23-53_register-wrapper_yn_zft7y)

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_2024-11-04_16-23-53_register-wrapper_yn_zft7y

--
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_2024-11-04_16-23-55_register-slicewise_io98o01n)

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:00,  4.72iter/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:  43%|█████████▍            | 123/287 [00:00<00:00, 492.58iter/s]
Estimate cord angle for each slice:  86%|███████████████████   | 248/287 [00:00<00:00, 766.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 #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, 659.89iter/s]

Build 3D deformation field:   0%|                                         | 0/255 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                              | 10/255 [00:00<00:02, 99.26iter/s]
Build 3D deformation field:   8%|██▌                            | 21/255 [00:00<00:02, 104.19iter/s]
Build 3D deformation field:  13%|███▉                           | 32/255 [00:00<00:02, 105.03iter/s]
Build 3D deformation field:  17%|█████▏                         | 43/255 [00:00<00:02, 105.97iter/s]
Build 3D deformation field:  21%|██████▌                        | 54/255 [00:00<00:01, 106.18iter/s]
Build 3D deformation field:  25%|███████▉                       | 65/255 [00:00<00:01, 106.41iter/s]
Build 3D deformation field:  30%|█████████▏                     | 76/255 [00:00<00:01, 106.43iter/s]
Build 3D deformation field:  35%|██████████▋                    | 88/255 [00:00<00:01, 108.38iter/s]
Build 3D deformation field:  39%|███████████▊                  | 100/255 [00:00<00:01, 109.52iter/s]
Build 3D deformation field:  44%|█████████████▏                | 112/255 [00:01<00:01, 109.62iter/s]
Build 3D deformation field:  48%|██████████████▍               | 123/255 [00:01<00:01, 108.79iter/s]
Build 3D deformation field:  53%|███████████████▊              | 134/255 [00:01<00:01, 108.31iter/s]
Build 3D deformation field:  57%|█████████████████             | 145/255 [00:01<00:01, 108.04iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 156/255 [00:01<00:00, 107.68iter/s]
Build 3D deformation field:  65%|███████████████████▋          | 167/255 [00:01<00:00, 108.04iter/s]
Build 3D deformation field:  70%|█████████████████████         | 179/255 [00:01<00:00, 109.18iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 191/255 [00:01<00:00, 110.38iter/s]
Build 3D deformation field:  80%|███████████████████████▉      | 203/255 [00:01<00:00, 108.69iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 214/255 [00:01<00:00, 108.42iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 225/255 [00:02<00:00, 108.04iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 236/255 [00:02<00:00, 108.20iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 247/255 [00:02<00:00, 107.93iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 255/255 [00:02<00:00, 107.80iter/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_2024-11-04_16-23-53_register-wrapper_yn_zft7y
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-23-53_register-wrapper_yn_zft7y
rm -rf /tmp/sct_2024-11-04_16-23-55_register-slicewise_io98o01n

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_2024-11-04_16-23-53_register-wrapper_yn_zft7y
/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_2024-11-04_16-23-53_register-wrapper_yn_zft7y

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_2024-11-04_16-23-53_register-wrapper_yn_zft7y/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_2024-11-04_16-23-53_register-wrapper_yn_zft7y/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_2024-11-04_16-23-53_register-wrapper_yn_zft7y

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_2024_11_04_162403.702139.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-24-06_register-wrapper_v954hmqr)

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_2024-11-04_16-24-06_register-wrapper_v954hmqr

--
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_2024-11-04_16-24-09_register-slicewise_c6gqn2m9)

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:03,  4.72iter/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:  40%|████████▊             | 121/300 [00:00<00:00, 485.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 #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:  84%|██████████████████▍   | 252/300 [00:00<00:00, 784.28iter/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, 684.69iter/s]

Build 3D deformation field:   0%|                                         | 0/223 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 11/223 [00:00<00:02, 104.63iter/s]
Build 3D deformation field:  10%|███▏                           | 23/223 [00:00<00:01, 108.59iter/s]
Build 3D deformation field:  16%|████▊                          | 35/223 [00:00<00:01, 110.10iter/s]
Build 3D deformation field:  21%|██████▌                        | 47/223 [00:00<00:01, 112.43iter/s]
Build 3D deformation field:  26%|████████▏                      | 59/223 [00:00<00:01, 113.07iter/s]
Build 3D deformation field:  32%|█████████▊                     | 71/223 [00:00<00:01, 113.08iter/s]
Build 3D deformation field:  37%|███████████▌                   | 83/223 [00:00<00:01, 113.97iter/s]
Build 3D deformation field:  43%|█████████████▏                 | 95/223 [00:00<00:01, 113.74iter/s]
Build 3D deformation field:  48%|██████████████▍               | 107/223 [00:00<00:01, 112.94iter/s]
Build 3D deformation field:  53%|████████████████              | 119/223 [00:01<00:00, 112.29iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 131/223 [00:01<00:00, 112.54iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 143/223 [00:01<00:00, 113.12iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 155/223 [00:01<00:00, 110.95iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 167/223 [00:01<00:00, 111.24iter/s]
Build 3D deformation field:  80%|████████████████████████      | 179/223 [00:01<00:00, 111.57iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 191/223 [00:01<00:00, 112.29iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 203/223 [00:01<00:00, 112.32iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 215/223 [00:01<00:00, 113.01iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 223/223 [00:01<00:00, 112.39iter/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_2024-11-04_16-24-06_register-wrapper_v954hmqr
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-04_16-24-06_register-wrapper_v954hmqr
rm -rf /tmp/sct_2024-11-04_16-24-09_register-slicewise_c6gqn2m9

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_2024-11-04_16-24-06_register-wrapper_v954hmqr
/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_2024-11-04_16-24-06_register-wrapper_v954hmqr

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_2024-11-04_16-24-06_register-wrapper_v954hmqr/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_2024-11-04_16-24-06_register-wrapper_v954hmqr/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_2024-11-04_16-24-06_register-wrapper_v954hmqr

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_2024_11_04_162415.975223.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2642/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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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

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()

    
_images/b63fc54c92e8dccda50b1a01289e31ddac72b1ba0fb10443b15fa58001557efc.png _images/9531c6e5107ba104051a16051ca12d505e85a649f7c75f1c07c83da0af1b6cc8.png _images/734cdc66e8a28897cbcc552ad7484a1b09fd0434a113c78d0a91b6d75868716a.png

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 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 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 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 Mean [arb] across C1-T2":
        ax.set_ylim(50, 200)
        ax.get_legend().remove()
    else:
        ax.set_ylim(0, 0.5)     
    ax.set_title(fig_type)

    plt.grid()
_images/6410bb0e2ac1f5fcdd5add7c1fdd3758011b98ae445fecdc5b138320335f3adc.png _images/bd21faf448a3a8a1f75d3464785ebaba4596e7aa1213f8da2d5f2eb1ba851463.png _images/0363beff493da9437febe884fc261390ceed79dd20630101adf9be901366446c.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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-26-52_register-wrapper_d64lx6pw)

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_2024-11-04_16-26-52_register-wrapper_d64lx6pw

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_2024-11-04_16-26-52_register-wrapper_d64lx6pw
/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_2024-11-04_16-26-52_register-wrapper_d64lx6pw

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-26-52_register-wrapper_d64lx6pw/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_2024-11-04_16-26-52_register-wrapper_d64lx6pw/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_2024-11-04_16-26-52_register-wrapper_d64lx6pw

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y)

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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y

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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y
/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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-26-56_register-wrapper_lrlrkz2y/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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y/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_2024-11-04_16-26-56_register-wrapper_lrlrkz2y

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv)

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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv

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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv
/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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv

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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv/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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv/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_2024-11-04_16-26-59_register-wrapper_iw4rhjfv

Finished! Elapsed time: 2s
👉 PROCESSING: MNI3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa)

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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa

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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa
/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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-03_register-wrapper_ybz5dnpa/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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa/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_2024-11-04_16-27-03_register-wrapper_ybz5dnpa

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-07_register-wrapper_ujiepq7s)

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_2024-11-04_16-27-07_register-wrapper_ujiepq7s

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_2024-11-04_16-27-07_register-wrapper_ujiepq7s
/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_2024-11-04_16-27-07_register-wrapper_ujiepq7s

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-07_register-wrapper_ujiepq7s/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_2024-11-04_16-27-07_register-wrapper_ujiepq7s/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_2024-11-04_16-27-07_register-wrapper_ujiepq7s

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh)

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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh

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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh
/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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh

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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh/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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh/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_2024-11-04_16-27-09_register-wrapper_fqwrtxjh

Finished! Elapsed time: 2s
👉 PROCESSING: MGH3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-13_register-wrapper_638hrt4v)

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_2024-11-04_16-27-13_register-wrapper_638hrt4v

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_2024-11-04_16-27-13_register-wrapper_638hrt4v
/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_2024-11-04_16-27-13_register-wrapper_638hrt4v

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-13_register-wrapper_638hrt4v/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_2024-11-04_16-27-13_register-wrapper_638hrt4v/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_2024-11-04_16-27-13_register-wrapper_638hrt4v

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i)

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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i

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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i
/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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-17_register-wrapper_6jbd0f2i/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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i/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_2024-11-04_16-27-17_register-wrapper_6jbd0f2i

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-20_register-wrapper_wi31u9tb)

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_2024-11-04_16-27-20_register-wrapper_wi31u9tb

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_2024-11-04_16-27-20_register-wrapper_wi31u9tb
/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_2024-11-04_16-27-20_register-wrapper_wi31u9tb

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_2024-11-04_16-27-20_register-wrapper_wi31u9tb/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_2024-11-04_16-27-20_register-wrapper_wi31u9tb/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_2024-11-04_16-27-20_register-wrapper_wi31u9tb

Finished! Elapsed time: 2s
👉 PROCESSING: MPI3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_)

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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_

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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_
/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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-24_register-wrapper_oq8n9h6_/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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_/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_2024-11-04_16-27-24_register-wrapper_oq8n9h6_

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-28_register-wrapper_bba0fqyo)

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_2024-11-04_16-27-28_register-wrapper_bba0fqyo

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_2024-11-04_16-27-28_register-wrapper_bba0fqyo
/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_2024-11-04_16-27-28_register-wrapper_bba0fqyo

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-28_register-wrapper_bba0fqyo/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_2024-11-04_16-27-28_register-wrapper_bba0fqyo/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_2024-11-04_16-27-28_register-wrapper_bba0fqyo

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-30_register-wrapper_me1lmfgd)

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_2024-11-04_16-27-30_register-wrapper_me1lmfgd

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_2024-11-04_16-27-30_register-wrapper_me1lmfgd
/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_2024-11-04_16-27-30_register-wrapper_me1lmfgd

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_2024-11-04_16-27-30_register-wrapper_me1lmfgd/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_2024-11-04_16-27-30_register-wrapper_me1lmfgd/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_2024-11-04_16-27-30_register-wrapper_me1lmfgd

Finished! Elapsed time: 2s
👉 PROCESSING: NTNU3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-34_register-wrapper_lx88ty0v)

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_2024-11-04_16-27-34_register-wrapper_lx88ty0v

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_2024-11-04_16-27-34_register-wrapper_lx88ty0v
/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_2024-11-04_16-27-34_register-wrapper_lx88ty0v

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-34_register-wrapper_lx88ty0v/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_2024-11-04_16-27-34_register-wrapper_lx88ty0v/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_2024-11-04_16-27-34_register-wrapper_lx88ty0v

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-38_register-wrapper_1j82qv6a)

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_2024-11-04_16-27-38_register-wrapper_1j82qv6a

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_2024-11-04_16-27-38_register-wrapper_1j82qv6a
/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_2024-11-04_16-27-38_register-wrapper_1j82qv6a

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-38_register-wrapper_1j82qv6a/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_2024-11-04_16-27-38_register-wrapper_1j82qv6a/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_2024-11-04_16-27-38_register-wrapper_1j82qv6a

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-41_register-wrapper_zllwelfj)

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_2024-11-04_16-27-41_register-wrapper_zllwelfj

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_2024-11-04_16-27-41_register-wrapper_zllwelfj
/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_2024-11-04_16-27-41_register-wrapper_zllwelfj

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_2024-11-04_16-27-41_register-wrapper_zllwelfj/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_2024-11-04_16-27-41_register-wrapper_zllwelfj/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_2024-11-04_16-27-41_register-wrapper_zllwelfj

Finished! Elapsed time: 2s
👉 PROCESSING: MSSM3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-45_register-wrapper_q5v05_ly)

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_2024-11-04_16-27-45_register-wrapper_q5v05_ly

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_2024-11-04_16-27-45_register-wrapper_q5v05_ly
/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_2024-11-04_16-27-45_register-wrapper_q5v05_ly

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-45_register-wrapper_q5v05_ly/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_2024-11-04_16-27-45_register-wrapper_q5v05_ly/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_2024-11-04_16-27-45_register-wrapper_q5v05_ly

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-48_register-wrapper_jhkgr_84)

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_2024-11-04_16-27-48_register-wrapper_jhkgr_84

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_2024-11-04_16-27-48_register-wrapper_jhkgr_84
/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_2024-11-04_16-27-48_register-wrapper_jhkgr_84

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-04_16-27-48_register-wrapper_jhkgr_84/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_2024-11-04_16-27-48_register-wrapper_jhkgr_84/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_2024-11-04_16-27-48_register-wrapper_jhkgr_84

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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_2024-11-04_16-27-51_register-wrapper_hjs8xirh)

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_2024-11-04_16-27-51_register-wrapper_hjs8xirh

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_2024-11-04_16-27-51_register-wrapper_hjs8xirh
/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_2024-11-04_16-27-51_register-wrapper_hjs8xirh

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_2024-11-04_16-27-51_register-wrapper_hjs8xirh/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_2024-11-04_16-27-51_register-wrapper_hjs8xirh/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_2024-11-04_16-27-51_register-wrapper_hjs8xirh

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.
👉 PROCESSING: MNI3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.
👉 PROCESSING: MGH3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.
👉 PROCESSING: MPI3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.
👉 PROCESSING: NTNU3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.
👉 PROCESSING: MSSM3
--
Spinal Cord Toolbox (git-master-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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-a458fa37fd22179dd2a6c13d33b7d191552abee7)

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 'float64'. Header metadata will be overwritten to use 'float64'.

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/81e030f2f89050c90afb512bf0861cebc3ab5e98746cb4efe500253276de98b0.png _images/b573d5a5345d81c8c88193263d17170ea82ef9476142690370104a70f6379d14.png _images/157789f8dbc0128cbef96aa2df25c05e506e60b89f6a8f52cd1b0790887a8004.png

Generate g-factor maps#

# map types
map_types = ["acq-coilQaSagSmall_GFactor", "T2starw"]

# legend types
legend_types = ["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']
            # show the R = 2 x 2 map
            data=(map.get_fdata()[64:191,64:191,round(map.get_fdata().shape[2]/2),5])/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])
            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=="acq-coilQaSagSmall_GFactor":
            dynmax = 1
            axes[-1].axis('off')
            splot.text(0, 3, r'mean 1/g='+str(round(mean_gfac[site],4)), size=10)
            #splot.text(0, 12, r'max gfac='+str(round(max_gfac[site],3)), size=10)
            
            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:
            dynmax = 3000
            axes[-1].axis('off') 
            
        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/c102125575a96fb13390dd5bff4dbff33c8166db96dc31b8e101f79c357e3487.png _images/6bf261ba4c53fa115fd3bb11aec5c7969a56ed056da400f03ba59163e8658fb3.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/23818d7ecbc24d5f57e924442465dc295f50dacefe4c3439b0705540ac955717.png _images/defdb526d50ba39db9df1bf89d56d0a4197100121cc41d54288eed790ac481f8.png _images/0bb9957a88d8b9582b857f876ff7ae01263a2b1bfdb797c57e637da66b80df88.png _images/76503bc018f4593c89a32a5ec40162536bd054fb1894daeaedaa7069918b5286.png _images/8d47a75d23ee828dfd33d4c2eb6656a0800684620c0039365da8bb2f87425876.png _images/387a2ea4ba485b9166c06bf9638546a6569128349384b4e0b2c3aebc2adca423.png _images/1799fd4fd4be0d8535aaafc4cc319468f996296d51069da1073baec588bd6a36.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:21:58.041261